チャットフィードバックとは
チャット内のすべての回答は評価可能です。👍、👎(「詳細の欠落」などの最大2つの理由と任意のコメントを付加可能)、または新しい回答を求めるRefreshのいずれかを選択できます。各ユーザーは1つの回答につき1回の評価を行え、最新の評価が有効となります。例外として、👎の後のRefreshの場合、👎とその理由は「ノー」であることに変わりはないため保持されます。
これらの評価は、実際のユーザーが実際の回答をどう思ったかの記録であり、価値のあるものです。しかし、評価ボタン単独ではノイズの多い弱いラベルであり、ほとんどのファインチューニング手法では直接使用できません。インポートの役割は、評価をすべてのプロバイダーがサポートする手法で学習可能なサンプルに変換することです。
評価から実例へ
| ユーザーの操作 | 結果 | 手法 |
|---|---|---|
| 回答を👍と評価 | 学習対象の回答としての回答(それ以前の会話をコンテキストとして含む) | 教師ありファインチューニング |
| 1つのチャットで同じ質問を2回行い、一方の回答を高評価し、もう一方を低評価またはRefreshした | ペア:高評価の回答が選択され、もう一方は拒否される | 選好チューニング(DPO) |
| 回答を👎と評価 | レビューキューの項目。レビュアーが正しい回答を作成します。キューをエクスポートすると、選択/拒否のペアと学習対象の回答が得られます | DPO + 教師あり |
データの信頼性を保つルール
- 低評価の回答が学習対象の回答になることはありません。 ペアの拒否側として、または学習対象とならない以前のコンテキストとしてのみ表示されます。
- 意見の不一致は除外されます。 ある人が高評価し、別の人が低評価した回答は、評価が分かれたとみなされスキップされます。
- 同一の回答はペアになりません。 Refreshによって同じテキストが返された場合、「AよりもAを好む」というデータからは何も学習できません。
- Refresh単独では弱いシグナルです。 ユーザーは好奇心からRefreshすることもあります。カウントすることを選択した場合にのみ、悪い回答としてカウントされます。ペアの場合、「再度質問し、新しい回答を高評価した」というデータは常に使用されます。
- インポートは安定しています。 再度インポートすると、前回作成されたサンプルが複製されるのではなく、更新されます。
- 1ヶ月の間に、スタッフは420件の👍と95件の👎を付けました。また、60件のチャットで再度質問を行い、2番目の回答に「いいね」を付けました。
- 「いいね」が付けられた回答のうち12件は、同僚から「よくないね」が付けられていました。これらは評価が混在しているためスキップされます。残りの408件の「いいね」が付けられた回答は、学習用の返答となります。
- 再度質問が行われた60件のうち、4件は同じテキストが返されたため、ペアにはなりません。残りの56件が、選択/拒否のペアとなります。
- 95件の👎の回答はレビューキューに送られます。レビュアーは70件を修正し、結局問題のなかった25件を破棄します。エクスポートにより、70件のペアと70件の返答が追加されます。
- 結果:教師ありトレーニング用の478件の返答と、DPO用の126件のペアが得られました。これらの中に、「よくないね」が付けられた回答に基づくものは含まれていません。
すべての評価を直接学習させない理由
悪い回答はほとんどの手法に適合しません。 教師あり学習には模倣すべき良い回答が必要であり、DPOには同じ質問に対するより良い回答とより悪い回答が必要です。単独の👎はそのどちらでもありません。単一の良/悪ラベル向けに作られた手法としてKTO(Kahneman-Tversky Optimization、2024年)があります。その著者らは、各回答が望ましいものであったかどうかのみを学習しながら、10億から300億パラメータの規模で選好ベースの手法と同等以上の成果を上げたと報告しています。Hugging Face TRLなどのオープンソースのトレーナーはこれをサポートしていますが、ほとんどのホスト型ファインチューニングサービスは提供していません。👎は、比較対象となるより良い回答が存在して初めて有用になります。
生の評価は誤った内容を学習させる可能性があります。 人は、自分に同意し、自信に満ちた回答を好みます。Anthropicの迎合性に関する研究(2023年)では、人も選好モデルも、正しい回答よりも説得力を持って書かれた同意しやすい回答を好む場合があることが判明しました。シミュレートされたユーザーフィードバックでモデルを直接学習させた2024年の研究ではさらに踏み込み、モデルは高評価を得るために操作的または欺瞞的な戦術を確実に学習し、影響を受けやすいユーザーがわずか2%であっても、彼らを特定することを学習しました。👎の回答をレビュアーに回すことで、何が正しい回答であるかを人が決定し続けることができます。
通常うまくいく手順
- 高評価の回答に対する教師ありファインチューニング(およびレビュアーによる修正)により、モデルに良い回答とはどのようなものかを学習させます。
- 教師ありモデルから開始するペアに対するDPOにより、2つのもっともらしい回答のうちどちらが優れているかを学習させます。
OpenAIのDPOガイダンスでも同じワークフローが推奨されています。まず好ましい回答に対して教師ありファインチューニングを行い、その結果からDPOジョブを実行します。
設定
オンにすると、他の評価なしでRefreshされた回答は悪い回答としてカウントされます。ユーザーが回答が間違っている場合にのみRefreshする場合を除き、オフのままにしてください。新しい回答が高評価されたペアは、どちらの場合でも使用されます。
よくある間違い
- 低評価されなかったすべての回答を、沈黙が承認を意味するかのように学習させること。
- ユーザーが主に別の選択肢を見るためにRefreshしている場合に、「Refreshもカウントする」をオンにすること。
- 最初に良い回答で教師あり学習を行わずに、フィードバックペアでDPOを実行すること。
- 評価結果と照らし合わせることなく、少数の評価者の好みで「良い」を定義させること。
- レビューキューを未処理のまま放置し、何が間違っていたかという最も有益なフィードバックがデータにならないようにすること。
参考文献および関連資料
外部ソースは新しいタブで開きます。
- 01KTO: Model Alignment as Prospect Theoretic OptimizationEthayarajh et al., 2024 · arXiv · arxiv.org単一の望ましい/望ましくないラベルのために構築された手法。
- 02KTO TrainerHugging Face TRL docs · huggingface.coKTOがデータとして必要とするもの、および実際のDPOとの違い。
- 03Towards Understanding Sycophancy in Language ModelsSharma et al., 2023 · arXiv · arxiv.org人間の好みが、正しい回答よりも同意しやすい回答をどのように評価するか。
- 04On Targeted Manipulation and Deception when Optimizing LLMs for User FeedbackWilliams et al., 2024 · arXiv · arxiv.orgユーザーの高評価を得るために直接学習させた場合にモデルが学習すること。
- 05Direct preference optimizationOpenAI API docs · developers.openai.com推奨される順序:好ましい回答に対する教師ありファインチューニング、次にDPO。