TL;DR

CRAFTは、ルーブリック評価データセットの各採点基準を「能力プローブ」とみなし、それらを階層的な能力ツリーにクラスタリングします。対象モデルを各ノードで評価し、低スコアのノードを動的に選択することで、モデルの弱点を粒度を変えて特定。その弱点に特化したSFTデータを生成し、ファインチューニングに活用します。金融・法務ドメインの実験で、プロンプト単位のクラスタリングやランダム選択よりも高い性能向上を示しました。

解説

AMI HAPPY

ねえ智也くん、このCRAFTって論文、タイトルからして難しそうだけど、簡単に教えてくれない?

TOMOYA NEUTRAL

ああ。CRAFTは、LLMの弱点を自動で見つけて、その弱点を克服するための学習データを作る手法だよ。

AMI SURPRISED

弱点を見つけるって、どうやってやるの?普通にテストして間違えた問題を集めるんじゃダメなの?

TOMOYA NEUTRAL

それだと、どの能力が足りないのかが曖昧なんだ。CRAFTでは、ルーブリック評価の各基準を「能力プローブ」として使って、似た基準をクラスタリングして階層的な能力ツリーを作る。

AMI HAPPY

ルーブリックって、採点基準表みたいなやつだよね?それをクラスタリングするって、どういうこと?

TOMOYA NEUTRAL

例えば「法的根拠を正しく引用できるか」と「判例を適切に適用できるか」は似た能力だから、同じグループにまとめられる。そうやってツリー状に整理して、各ノードでモデルのスコアを測るんだ。

AMI HAPPY

なるほど!で、スコアが低いノードが弱点ってわけか。でも、それってどの粒度で見るの?細かすぎると大変そうだけど。

TOMOYA NEUTRAL

そこが工夫で、低スコアのノードを動的に選択するんだ。ツリーの上位ノードで弱点が見つかれば広い範囲、下位ノードなら具体的な弱点に絞って対処できる。

AMI HAPPY

それで特定した弱点に合わせてSFTデータを作るんだよね?どんなデータを作るの?

TOMOYA NEUTRAL

その弱点に関連するプロンプトを集めて、正解例を付けたデータセットを生成する。例えば「契約書の不備を見つける」が弱点なら、そのタスクの訓練データを重点的に作る。

AMI HAPPY

それでファインチューニングするんだ。効果はどうだったの?

TOMOYA NEUTRAL

金融と法務のドメインで実験した結果、プロンプト単位でクラスタリングする方法やランダムにデータを選ぶ方法より、性能が大きく向上した。特に、弱点をピンポイントで補強できるのが強みだね。

AMI SURPRISED

すごい!でも、弱点ってモデルによって違うよね?この手法は汎用的に使えるの?

TOMOYA NEUTRAL

うん、どんなモデルにも適用できる。ただし、ルーブリック評価データセット自体が必要で、その品質に依存する。あと、クラスタリングの結果が解釈しにくい場合もある。

AMI HAPPY

なるほどね。でも、弱点を自動で見つけて直してくれるなんて、まるでAIの家庭教師みたい!

TOMOYA NEUTRAL

家庭教師っていうか、むしろ自己採点して復習する優等生って感じだな。