TL;DRChatGPT、Cl…
TL;DR
CRAFTは、ルーブリック評価データセットの各採点基準を「能力プローブ」とみなし、それらを階層的な能力ツリーにクラスタリングします。対象モデルを各ノードで評価し、低スコアのノードを動的に選択することで、モデルの弱点を粒度を変えて特定。その弱点に特化したSFTデータを生成し、ファインチューニングに活用します。金融・法務ドメインの実験で、プロンプト単位のクラスタリングやランダム選択よりも高い性能向上を示しました。
解説
ねえ智也くん、このCRAFTって論文、タイトルからして難しそうだけど、簡単に教えてくれない?
ああ。CRAFTは、LLMの弱点を自動で見つけて、その弱点を克服するための学習データを作る手法だよ。
弱点を見つけるって、どうやってやるの?普通にテストして間違えた問題を集めるんじゃダメなの?
それだと、どの能力が足りないのかが曖昧なんだ。CRAFTでは、ルーブリック評価の各基準を「能力プローブ」として使って、似た基準をクラスタリングして階層的な能力ツリーを作る。
ルーブリックって、採点基準表みたいなやつだよね?それをクラスタリングするって、どういうこと?
例えば「法的根拠を正しく引用できるか」と「判例を適切に適用できるか」は似た能力だから、同じグループにまとめられる。そうやってツリー状に整理して、各ノードでモデルのスコアを測るんだ。
なるほど!で、スコアが低いノードが弱点ってわけか。でも、それってどの粒度で見るの?細かすぎると大変そうだけど。
そこが工夫で、低スコアのノードを動的に選択するんだ。ツリーの上位ノードで弱点が見つかれば広い範囲、下位ノードなら具体的な弱点に絞って対処できる。
それで特定した弱点に合わせてSFTデータを作るんだよね?どんなデータを作るの?
その弱点に関連するプロンプトを集めて、正解例を付けたデータセットを生成する。例えば「契約書の不備を見つける」が弱点なら、そのタスクの訓練データを重点的に作る。
それでファインチューニングするんだ。効果はどうだったの?
金融と法務のドメインで実験した結果、プロンプト単位でクラスタリングする方法やランダムにデータを選ぶ方法より、性能が大きく向上した。特に、弱点をピンポイントで補強できるのが強みだね。
すごい!でも、弱点ってモデルによって違うよね?この手法は汎用的に使えるの?
うん、どんなモデルにも適用できる。ただし、ルーブリック評価データセット自体が必要で、その品質に依存する。あと、クラスタリングの結果が解釈しにくい場合もある。
なるほどね。でも、弱点を自動で見つけて直してくれるなんて、まるでAIの家庭教師みたい!
家庭教師っていうか、むしろ自己採点して復習する優等生って感じだな。