AI・機械学習
上級

KTO(Kahneman-Tversky Optimization)(ケーティーオーカーネマントバースキーオプティミゼーション)

ペアデータ不要でLLMをアライメントする手法。好ましい/好ましくない応答を個別に使用し、行動経済学のKahneman-Tversky理論(プロスペクト理論)に基づく損失関数を採用。ペアデータが少ない場合に特に有効。

0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
アライメント
選好最適化
LLM
ファインチューニング
ペアレスデータ

KTO(Kahneman-Tversky Optimization)とは

KTO(Kahneman-Tversky Optimization)は、IBMリサーチが2024年に提案したLLMアライメント手法です。ノーベル賞受賞者Daniel KahnemanとAmos Tverskyが提唱したプロスペクト理論(行動経済学)をLLM学習に応用しており、DPOと異なりペアデータを必要としません。

DPOとの主な違い

項目DPOKTO
データ形式(prompt, chosen, rejected)のペア(prompt, completion, label)の単独
データ収集比較評価が必要Good/Badラベル付けのみ
理論基盤Bradley-Terryモデルプロスペクト理論
長さバイアスあり軽減

プロスペクト理論とKTO

KahnemanとTverskyのプロスペクト理論では、人間は「損失」を「同等の利得」より大きく感じる傾向があります(損失回避)。KTOはこの原則をLLMの学習に組み込み:

  • Good応答: モデルの期待報酬を最大化(利得側)
  • Bad応答: モデルの期待報酬を最小化(損失回避側)

損失関数は非対称な価値関数で設計されており、良い応答と悪い応答で異なる重み付けが行われます。

KTO損失関数

# KTO損失の概念
def kto_loss(model_output, reference_output, label, beta=0.1):
    z0 = log_ratio(reference_output)  # 参照モデルの平均対数比
    ratio = log_ratio(model_output)   # 対象モデルの対数比
    
    if label == "good":  # 良い応答
        loss = 1 - sigmoid(beta * (ratio - z0))
    else:  # 悪い応答
        loss = 1 - sigmoid(beta * (z0 - ratio))
    return loss

データ形式

KTOのデータ形式はDPOより収集しやすいです。

[
  {
    "prompt": "機械学習とは何ですか?",
    "completion": "機械学習はデータからパターンを学習する...",
    "label": true
  },
  {
    "prompt": "機械学習とは何ですか?",
    "completion": "よくわかりません。難しいです。",
    "label": false
  }
]

DPOのような「同じプロンプトに対するペア」が不要なため、既存の注釈データをより柔軟に活用できます。

実装(TRLライブラリ)

from trl import KTOTrainer, KTOConfig

training_args = KTOConfig(
    beta=0.1,
    desirable_weight=1.0,
    undesirable_weight=1.0,
    output_dir="./kto-model",
)

trainer = KTOTrainer(
    model=model,
    args=training_args,
    train_dataset=dataset,
    tokenizer=tokenizer,
)
trainer.train()

KTOの性能

論文ではLlama-7B/13BのインストラクションチューニングにおいてDPOと同等以上の性能を達成。特にペアデータが少ない・収集コストが高い状況でのアドバンテージが大きいです。

よくある質問

Q1: DPOよりKTOを選ぶべき場面は? A: ペアデータの収集が困難な場合、または既存のGood/Badラベルデータが既にある場合。

Q2: good/badの比率はどうすべき? A: 論文では1:1が推奨。ただし実際には1:2程度のgood多めが安定することも多い。desirable_weightとundesirable_weightで調整可能。

Q3: KTOは日本語LLMに使えますか? A: はい。言語非依存の手法のため、日本語コーパスで収集したGood/Badペアに適用可能。

まとめ

KTOは行動経済学の知見をLLM学習に融合した革新的手法で、ペアデータが不要という実用上の大きな利点があります。2025年現在、TRLライブラリに組み込まれており、DPOと並んで選好最適化の主要手法の一つとなっています。

この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/6/7