指示・SFTデータ
求める振る舞いを示すプロンプト・応答ペア。ゼロから書き起こすか、お客様の既存コンテンツをもとに書き直します。
- タスクのデモンストレーション
- 書き換え・要約のペア
- ドメイン質問応答
- 出力形式を指定した応答
LLM・生成AI
指示・応答ペア、順位づけ比較、マルチターン対話、安全性データを、お客様が承認したスタイルガイドに沿って日本国内のアノテーターが作成します。
日本語の指示データで難しいのは、答えを書くことではありません。同じ答えを、同じ文体で、1万回書くこと。そしてなぜその文体を選んだのかを、文書で説明できるようにすることです。
大人数で書いた指示データは、ぶれます。あるアノテーターはすべての応答をですますで終え、別のアノテーターは技術的な説明の途中でであるに切り替え、また別の人はチャットアシスタント風の短い文体で書く。その混ざったデータを学習したモデルは、3つとも許容されると学び、そのときどきで好きなものを出力します。日本語のファインチューニングについて最もよく耳にする不満が、これです。
ぶれるのは文体だけではありません。拒否表現のほうが厄介です。日本語の断りは間接的で、拒否がどうあるべきかを伝えられていないアノテーターは、はっきりしたお断りしますから、やわらかいそれは難しいかもしれませんまで、何でも書きます。安全性データの半分が、承諾と見分けがつかないほどやわらかく断っていれば、モデルは拒否ではなく言葉を濁すことを学びます。
ですから、納品物はデータだけということはありません。データと、それを生んだ判断の記録です。スタイルガイド、拒否のテンプレート、書式ルール、そして当該バッチがどのバージョンに沿って書かれたか。
要点
データセット種別
5つのデータセット系統。通常は組み合わせて使います。それぞれ「正しい」の定義が異なるため、ガイドラインの章もレビュー工程も別々に設けます。
求める振る舞いを示すプロンプト・応答ペア。ゼロから書き起こすか、お客様の既存コンテンツをもとに書き直します。
2つ以上の候補応答を、明文化した基準で比較します。選んだ理由は推測に委ねず、記録します。
文脈が積み上がる会話。1ターン目で決まった文体は8ターン目まで保たれなければなりません。日本語の対話データが崩れるのは、たいていここです。
断るべきプロンプト、断るべきに見えて断ってはいけないプロンプト、そしてその二つを分ける拒否の言い回し。
質問、検索された文章、根拠に基づく回答の三つ組。加えて、その文章に実は答えが含まれていない負例。
日本語固有の論点
決めずに放置すると、レビューでは問題なく見えるのにモデルの挙動が悪くなる。そういうデータセットを生む4つの判断です。
日本語は文末ごとに丁寧さの選択を迫ります。ですます、である、だ の各文体は交換可能ではなく、混ざったデータを学習したモデルは、一つの応答の中でそれらを混ぜます。
当社の対応 スタイルガイドで、プロダクトの接点ごとに既定の文体を一つ決め、例外を列挙し、それぞれの実例を示します。文体の一貫性は好みの問題ではなく、レビューで採点する項目です。
それはちょっと難しいです は拒否であって、難易度についての説明ではありません。これを字義どおりにラベル付けすると、断りを中立的な発言として読むようモデルに教えることになります。
当社の対応 拒否のカテゴリと言い回しを、それぞれの意図した強さとともに事前に定義します。安全性データは、その拒否が日本語話者に拒否として読まれるかどうかを観点にレビューします。
日本語は、文脈から明らかなものを省きます。マルチターンのデータでは指示対象が4ターン前にあることもあり、応答だけを切り離して書くアノテーターは取り違えます。
当社の対応 マルチターンの項目は、ターン単位ではなく会話全体として作成・レビューします。指示対象が本当に曖昧な場合は、会話を修正するか破棄します。推測でラベルを付けることはしません。
同じ語が漢字・ひらがな・カタカナで現れ、数字や記号は全角にも半角にもなります。統制しなければ、書式は適当でよいとモデルに教えることになります。
当社の対応 正規化ルールで、頻出語の表記、数字、記号、英数字まわりの空白、箇条書きの書式を定めます。執筆時に適用し、納品前に自動チェックします。
プロセス
パイロットは、ガイドラインの初稿を壊すためにあります。壊れなくなってから、本番を始めます。
お客様のプロダクトにとって良い応答とは何かを合意します。文体、長さ、書式、何をどう断るか、わからないときにモデルは何をすべきか。
決めたことを、実例と反例を添えた文書にします。まだ決まっていない曖昧な点は、黙って飲み込まずにこの段階で洗い出します。
小さなバッチを複数のアノテーターが独立に書きます。分かれた箇所は、ガイドラインが不明確だった箇所です。直すのはアノテーターではなくガイドラインです。
すべての項目を、一人が作成し、別の一人がレビューします。シニアレビュアーが抜き取り確認を行い、判断の相違を文書で裁定します。
納品物には、データ、ガイドラインのバージョン、レコード単位の来歴、QAレポート、前回バッチからの変更履歴を含めます。
納品
フィールドはキックオフで合意します。以下は、合わせるべき既存スキーマがない場合の標準形です。
| データセット | 標準形式 | レコードに含まれるもの |
|---|---|---|
| 指示/SFT | JSONL、messages配列 | system/user/assistantの各ターン、タスクタグ、ガイドラインのバージョン |
| 選好ペア | JSONL、chosen+rejected | 両方の候補、基準ごとのスコア、根拠の記述 |
| マルチターン対話 | JSONL、1行1会話 | 全ターンのリスト、ペルソナのメモ、文体タグ |
| 安全性・拒否 | JSONL | プロンプト、カテゴリ、期待される振る舞い、使用した拒否の言い回し |
| RAGグラウンディング | JSONL | 質問、文章、回答、引用箇所、回答可能フラグ |
品質
一般的なアノテーションQAでは、文体のぶれややわらかすぎる拒否は見つかりません。以下のチェックがそれを見つけます。
よくあるご質問
日本語の初めてのファインチューニングを検討する段階で、よくいただくご質問。
どちらも対応します。日本語ではゼロから書くことがよくあります。使える日本語のオープンな指示データが乏しく、機械翻訳したデータは英語の文構造をそのままモデルに持ち込むからです。サポートログ、マニュアル、社内文書といった既存コンテンツがある場合は、それをもとに書き直すことのほうが多く、そのほうがデータがお客様の実際の領域に根ざします。
実例を添えたスタイルガイド、本番前に複数のアノテーターが同じ項目を独立に書くキャリブレーション、そしてレビューで文体の一貫性を明示的に採点することです。ここでの一貫性は努力目標ではなく、計測できる性質です。私たちが見ているのはアノテーター間の乖離であり、解決した乖離はすべてガイドラインに書き戻します。
最終データの供給源としては使いません。翻訳された指示データは、英語の談話構造、英語の丁寧さの前提、英語の書式習慣を引き継ぎ、それを学習したモデルは、ネイティブが「翻訳調」と評する日本語を出力します。プロンプトの発想を広げる足場として翻訳を使うことはありますが、応答は日本語話者が日本語で書きます。
お客様が合意された場合に限り、かつ必ず人による書き直しとレビューを重ねます。レビューを経ない素通しは行いません。AIの補助を使ったかどうかはレコード単位で記録するので、あとから絞り込みや監査ができます。完全に人が書いたデータが必要な場合は、その前提でプロジェクトを進め、来歴のフィールドがそれを裏づけます。
多くのチームが想像するより少ない量です。丁寧に書かれ、文体の揃った数千件のほうが、その10倍のノイズの多いデータよりも日本語のファインチューニングを前進させることがよくあります。モデルが学んでいるのは、タスクと同じくらい文体だからです。まず数百件のパイロットでガイドラインを検証し、その計測結果から本番の規模を決めます。
LLM学習データ
タスクの説明と、応答の例がいくつかあれば始められます。確認が必要なタキソノミー上の論点と、範囲を定めたパイロットをお返しします。
データをご共有いただく前にNDAを締結します。パイロットの要件定義は無料です。