ファインチューニングの目的は、モデルに特定の話し方や対応方針を身につけさせたり、望ましい応答のスタイルを定着させることにあります。
そのため、データセットは「モデルに覚えてほしいやり取りの例」を、多数かつ丁寧に集めて構築します。
まず “目的の定義” から始める
準備の第一歩は、何を改善したいかを明確にすることです。
- どのような状況で使うモデルなのか
- どのような返答の特徴を重視したいのか
- どのような癖を避けたいのか
この方向性が固まると、必要なデータの種類や量が自然と決まります。
学習に使うやり取りの収集
ファインチューニングの素材には、以下のようなものを使えます。
- 過去の会話のうち、望ましい応答だったもの
- 手本として示したい回答をあらためて作成したもの
- よく尋ねられる質問と、それに対する模範的な返答
- 理想とは言い難い返答(後述の「好ましい返答と比較する学習」に使える)
注意したいのは、学習させたい振る舞いが明確に伝わる例だけを選ぶという点です。
曖昧な記述や質の低い回答が混ざるほど、学習の精度は落ちていきます。
収集した内容の整理(クレンジング)
データを使う前に、以下の点を整えておくと効果が高まります。
不要な情報や個人情報の除去
実名・住所・電話番号などは削除したり、別の書き方に置き換えます。
表現の統一
語尾、敬語の使い方、言い回し、記述ルール(数字・日付など)がバラバラだと、モデルも不安定な応答をしやすくなります。
誤情報や望ましくない返答の削除
ミスを含む回答を混ぜないことで、誤ったパターンの学習を防げます。
“指示” と “理想的な応答例” を組み合わせる
ファインチューニングでは、
- 人が指示を出す文
- その指示に対して、望ましいと考える返答
の組み合わせを多数用意します。
単一の質問と回答
一対一のやり取りを記録するもっとも基本的な形です。
会話の流れ
必要であれば、複数ターンのやり取りをまとめて記録することもできます。
いずれの場合も、「この状況ではこう応じる」という型がわかりやすいほど、モデルは意図通りのスタイルを学びやすくなります。
全体の質をチェックする
良いデータセットは、次の条件を満たしています。
- 一貫した語り口が保たれていること
- よく発生する状況や重要なパターンが十分に含まれていること
- 不要な例外的ケースばかりで構成されていないこと
- 本番で使いたい品質に近い回答が多いこと
特に「質の高い回答を多数そろえる」ことが、結果の安定性を左右します。
どの種類のファインチューニングにも共通する考え方
現在のファインチューニングにはいくつか種類がありますが、データ作成の考え方は共通しています。
監督あり学習(通常のファインチューニング)
模範的なやり取りを多数与え、望ましい応答のパターンを身につけさせる方式。
好ましい応答の選択学習(比較形式のファインチューニング)
同じ指示に対し、「望ましい応答」と「望ましくない応答」をセットで与え、どちらが優れているかを学ばせる方式。
採点結果によって改善させる学習(強化学習型)
「基準となる正答」や「評価の指標」を用意し、それと照らし合わせてより良い出力を作れるように学習させる方式。
役割は違いますが、いずれも「モデルに示す例の質が結果を左右する」という点は共通しています。
作成量の目安と進め方
一度に大規模なデータを作る必要はありません。
- 最初は 50〜100 例ほどの小規模データで試す
- 結果を観察し、弱い点を追加データで補強する
- 必要に応じて数百〜数千例規模へ拡張する
という進め方が負担も少なく、品質を高めやすい方法です。
よく見られる失敗と対策
例ごとに語り口が違う
→ 表現ルールを決め、全体で統一する。
不完全な回答をそのまま混ぜてしまう
→ データセットに入れる前に、手本として成立しているかを必ず確認する。
雑談など本質でない部分が多い
→ 学んでほしい振る舞いだけが明確に伝わるよう構成を絞る。
曖昧な指示文が多い
→ モデルが理解しやすいよう、指示文もできるだけ明確にする。
以上、ファインチューニングのデータセットの作り方についてでした。
最後までお読みいただき、ありがとうございました。
