LLM・生成AI

日本語LLM学習データ — SFT・選好・RLHF

指示・応答ペア、順位づけ比較、マルチターン対話、安全性データを、お客様が承認したスタイルガイドに沿って日本国内のアノテーターが作成します。

日本語の指示データで難しいのは、答えを書くことではありません。同じ答えを、同じ文体で、1万回書くこと。そしてなぜその文体を選んだのかを、文書で説明できるようにすることです。

日本語の指示データが壊れる理由

大人数で書いた指示データは、ぶれます。あるアノテーターはすべての応答をですますで終え、別のアノテーターは技術的な説明の途中でであるに切り替え、また別の人はチャットアシスタント風の短い文体で書く。その混ざったデータを学習したモデルは、3つとも許容されると学び、そのときどきで好きなものを出力します。日本語のファインチューニングについて最もよく耳にする不満が、これです。

ぶれるのは文体だけではありません。拒否表現のほうが厄介です。日本語の断りは間接的で、拒否がどうあるべきかを伝えられていないアノテーターは、はっきりしたお断りしますから、やわらかいそれは難しいかもしれませんまで、何でも書きます。安全性データの半分が、承諾と見分けがつかないほどやわらかく断っていれば、モデルは拒否ではなく言葉を濁すことを学びます。

ですから、納品物はデータだけということはありません。データと、それを生んだ判断の記録です。スタイルガイド、拒否のテンプレート、書式ルール、そして当該バッチがどのバージョンに沿って書かれたか。

要点

データセット種別
指示/SFT、選好ペアと順位づけ、マルチターン対話、安全性・拒否データ、RAGのグラウンディングセット。
作成者
日本国内の日本語ネイティブのアノテーター。別のアノテーターとシニアレビュアーがレビューします。
文体の統制
本番開始前に、丁寧さの水準、文末表現、人称の扱い、書式をスタイルガイドで確定させます。
標準形式
JSONL。SFTはmessages配列、選好データはchosen/rejectedのペア。
来歴の記録
各レコードに、ガイドラインのバージョン、作成者の役割、レビュー状態を持たせます。

データセット種別

作成するデータ

5つのデータセット系統。通常は組み合わせて使います。それぞれ「正しい」の定義が異なるため、ガイドラインの章もレビュー工程も別々に設けます。

指示・SFTデータ

求める振る舞いを示すプロンプト・応答ペア。ゼロから書き起こすか、お客様の既存コンテンツをもとに書き直します。

  • タスクのデモンストレーション
  • 書き換え・要約のペア
  • ドメイン質問応答
  • 出力形式を指定した応答

選好・順位づけデータ

2つ以上の候補応答を、明文化した基準で比較します。選んだ理由は推測に委ねず、記録します。

  • ペアワイズのchosen/rejected
  • N件の順位づけ
  • 基準ごとのスコア
  • 比較ごとの根拠記述

マルチターン対話

文脈が積み上がる会話。1ターン目で決まった文体は8ターン目まで保たれなければなりません。日本語の対話データが崩れるのは、たいていここです。

  • タスク指向対話
  • 確認・言い直しのターン
  • 文脈の引き継ぎチェック
  • ペルソナと役割の一貫性

安全性・拒否・レッドチームデータ

断るべきプロンプト、断るべきに見えて断ってはいけないプロンプト、そしてその二つを分ける拒否の言い回し。

  • カテゴリ別の拒否テンプレート
  • 過剰拒否の反例
  • 敵対的プロンプト・脱獄プロンプト
  • 日本語における機微な話題の扱い

RAG・グラウンディングセット

質問、検索された文章、根拠に基づく回答の三つ組。加えて、その文章に実は答えが含まれていない負例。

  • 回答可能/回答不能のペア
  • 引用箇所の範囲指定
  • ディストラクタ文章
  • 日本語文書へのグラウンディング

日本語固有の論点

ここが日本語固有である理由

決めずに放置すると、レビューでは問題なく見えるのにモデルの挙動が悪くなる。そういうデータセットを生む4つの判断です。

丁寧さの水準

日本語は文末ごとに丁寧さの選択を迫ります。ですます、である、だ の各文体は交換可能ではなく、混ざったデータを学習したモデルは、一つの応答の中でそれらを混ぜます。

当社の対応 スタイルガイドで、プロダクトの接点ごとに既定の文体を一つ決め、例外を列挙し、それぞれの実例を示します。文体の一貫性は好みの問題ではなく、レビューで採点する項目です。

間接的な拒否

それはちょっと難しいです は拒否であって、難易度についての説明ではありません。これを字義どおりにラベル付けすると、断りを中立的な発言として読むようモデルに教えることになります。

当社の対応 拒否のカテゴリと言い回しを、それぞれの意図した強さとともに事前に定義します。安全性データは、その拒否が日本語話者に拒否として読まれるかどうかを観点にレビューします。

主語の省略

日本語は、文脈から明らかなものを省きます。マルチターンのデータでは指示対象が4ターン前にあることもあり、応答だけを切り離して書くアノテーターは取り違えます。

当社の対応 マルチターンの項目は、ターン単位ではなく会話全体として作成・レビューします。指示対象が本当に曖昧な場合は、会話を修正するか破棄します。推測でラベルを付けることはしません。

表記と書式の揺れ

同じ語が漢字・ひらがな・カタカナで現れ、数字や記号は全角にも半角にもなります。統制しなければ、書式は適当でよいとモデルに教えることになります。

当社の対応 正規化ルールで、頻出語の表記、数字、記号、英数字まわりの空白、箇条書きの書式を定めます。執筆時に適用し、納品前に自動チェックします。

プロセス

データセットができるまで

パイロットは、ガイドラインの初稿を壊すためにあります。壊れなくなってから、本番を始めます。

  1. 01

    振る舞いを定義する

    お客様のプロダクトにとって良い応答とは何かを合意します。文体、長さ、書式、何をどう断るか、わからないときにモデルは何をすべきか。

  2. 02

    スタイルガイドを起草する

    決めたことを、実例と反例を添えた文書にします。まだ決まっていない曖昧な点は、黙って飲み込まずにこの段階で洗い出します。

  3. 03

    パイロットとキャリブレーション

    小さなバッチを複数のアノテーターが独立に書きます。分かれた箇所は、ガイドラインが不明確だった箇所です。直すのはアノテーターではなくガイドラインです。

  4. 04

    本番の作成とレビュー

    すべての項目を、一人が作成し、別の一人がレビューします。シニアレビュアーが抜き取り確認を行い、判断の相違を文書で裁定します。

  5. 05

    パッケージングとバージョン管理

    納品物には、データ、ガイドラインのバージョン、レコード単位の来歴、QAレポート、前回バッチからの変更履歴を含めます。

納品

納品されるもの

フィールドはキックオフで合意します。以下は、合わせるべき既存スキーマがない場合の標準形です。

LLM学習データの標準的な納品構造。カスタムスキーマにも対応します。
データセット標準形式レコードに含まれるもの
指示/SFTJSONL、messages配列system/user/assistantの各ターン、タスクタグ、ガイドラインのバージョン
選好ペアJSONL、chosen+rejected両方の候補、基準ごとのスコア、根拠の記述
マルチターン対話JSONL、1行1会話全ターンのリスト、ペルソナのメモ、文体タグ
安全性・拒否JSONLプロンプト、カテゴリ、期待される振る舞い、使用した拒否の言い回し
RAGグラウンディングJSONL質問、文章、回答、引用箇所、回答可能フラグ

品質

この業務に固有の品質管理

一般的なアノテーションQAでは、文体のぶれややわらかすぎる拒否は見つかりません。以下のチェックがそれを見つけます。

  • 文体の一貫性を、応答ごとに、また会話の全ターンにわたって採点する。
  • 拒否の強さを、定義したカテゴリに照らして別のネイティブがレビューする。
  • 納品前に、表記・数字・記号・空白の正規化を自動チェックする。
  • バッチをまたいだ重複・近似重複の検出。データセットの多様性が静かに失われないようにする。
  • プロンプトの多様性をタスクのタキソノミーに照らして追跡し、特定カテゴリが偶然に偏らないようにする。
  • ホールドアウトしたサンプルをシニアレビュアーがブラインドで再レビューし、そのバッチの品質値を算出する。

よくあるご質問

LLM学習データについて

日本語の初めてのファインチューニングを検討する段階で、よくいただくご質問。

どちらも対応します。日本語ではゼロから書くことがよくあります。使える日本語のオープンな指示データが乏しく、機械翻訳したデータは英語の文構造をそのままモデルに持ち込むからです。サポートログ、マニュアル、社内文書といった既存コンテンツがある場合は、それをもとに書き直すことのほうが多く、そのほうがデータがお客様の実際の領域に根ざします。

実例を添えたスタイルガイド、本番前に複数のアノテーターが同じ項目を独立に書くキャリブレーション、そしてレビューで文体の一貫性を明示的に採点することです。ここでの一貫性は努力目標ではなく、計測できる性質です。私たちが見ているのはアノテーター間の乖離であり、解決した乖離はすべてガイドラインに書き戻します。

最終データの供給源としては使いません。翻訳された指示データは、英語の談話構造、英語の丁寧さの前提、英語の書式習慣を引き継ぎ、それを学習したモデルは、ネイティブが「翻訳調」と評する日本語を出力します。プロンプトの発想を広げる足場として翻訳を使うことはありますが、応答は日本語話者が日本語で書きます。

お客様が合意された場合に限り、かつ必ず人による書き直しとレビューを重ねます。レビューを経ない素通しは行いません。AIの補助を使ったかどうかはレコード単位で記録するので、あとから絞り込みや監査ができます。完全に人が書いたデータが必要な場合は、その前提でプロジェクトを進め、来歴のフィールドがそれを裏づけます。

多くのチームが想像するより少ない量です。丁寧に書かれ、文体の揃った数千件のほうが、その10倍のノイズの多いデータよりも日本語のファインチューニングを前進させることがよくあります。モデルが学んでいるのは、タスクと同じくらい文体だからです。まず数百件のパイロットでガイドラインを検証し、その計測結果から本番の規模を決めます。

LLM学習データ

モデルに教えたい振る舞いを、お聞かせください。

タスクの説明と、応答の例がいくつかあれば始められます。確認が必要なタキソノミー上の論点と、範囲を定めたパイロットをお返しします。

データをご共有いただく前にNDAを締結します。パイロットの要件定義は無料です。