0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

教師AIを、別のAIに作らせる

0
Posted at

この記事は、自社ブログの LYR Performance Note #020 に掲載したものの転載です。

専門家を育てる「正解データ」を、人手でなく大きなAIに書かせた話

専門AIを育てる「正解データ」は、人間が作るもの——その前提を捨てた。大きなAIに書かせて、小さなAIに写経させた。苦手だった日本語→英語は、素直な写経だけで 42% → 84% に跳ねた。人間の翻訳者はゼロだ。

そこからの天井は、教師ではなく生徒の理解容量にあった(教師訳自体はほぼ全PASS)。天井を一括りに「教師が悪い」で片付けると、打ち手を間違える。

そして落とし穴が1つ。良かれと思って教師に文脈を渡すと、生徒は主語の捏造を学んだ。教師データは、本番の入力条件に揃えて作る——親切が仇になるのは、測って初めて見える。

小さなAIを「一つの仕事の専門家」に育てるには、大量の正解データが要る。「この入力には、この訳が正解」というお手本の束だ。翻訳なら、原文と、その模範訳のペア。

そして、ほとんどの人がこう思い込んでいる——その正解は、人間が作るものだ、と。プロの翻訳者を雇い、一文ずつ訳してもらい、それをお手本にする。品質は確かだが、遅い。高い。そして低資源言語では、そもそもプロが捕まらない。この「正解データを作る」工程が、専門モデルを育てる最大のボトルネックに見える。

この前提を捨てた。正解データを、人間でなく、別のAIに作らせたのだ。

大きなAIに、お手本を書かせる

やり方は単純だ。育てたいのは、小さな軽量モデル(4B=40億パラメータ)。手元には、それよりずっと大きくて賢い汎用モデル(27B級)がある。

ならば、大きいほうに正解を書かせ、小さいほうに写経させればいい。原文を大きなモデルに流し込み、出てきた訳を「お手本」として、小さなモデルに真似させる。機械学習ではこれを蒸留(distillation)と呼ぶ。正解を出す側が教師モデル、それを真似て学ぶ側が生徒モデルだ。この記事のタイトル「教師AIを、別のAIに作らせる」は、そのまま——教師モデルに正解データ(=教師データ)を書かせ、生徒に写させる、という意味だ。

このやり方の効きめは、はっきり出た。素の小型モデルは、日本語→英語の翻訳がまるで駄目で、正答率は約42%。半分以上を外していた。そこへ、大きな教師に約1.4万訳を書かせ(clean・単一temp0.1・後述する「文脈なし」)、それを約5,000件の学習例にまとめて写経させたところ——

正答率は、84%+42ポイント

念のため付け加えておくと、この84%は、凝った選別を挟まず、教師の素直な訳をそのまま写経しただけで出た数字だ。「候補をN個出させて良いものを選ぶ」といった工夫は、この後で効かせる次段のレバーであって、まずは素直な写経だけで、ここまで来る。

(判定は参照訳を使わない二値judge。人間の物差しではなく、独立したAIに「使えるか/使えないか」を採点させ、学習の前後を同じ条件で比べた。単一runでの点推定であり、絶対値には数ポイントの揺れがある。)

たった1回の学習で、素人同然だったモデルが、大きな汎用モデルに肩を並べる水準まで来た。人間の翻訳者は、一人も雇っていない。正解データを、AIが量産した

落とし穴——写経には、天井がある

ここで話が終われば美談だが、現実は続く。この手法には、はっきりした天井がある。日本語→英語の84%は、そこで頭打ちになった。残り16%を覗くと、失敗の多くは同じ顔をしていた——hallucination。原文にない主語をでっち上げたり、ありもしない目的語を補ったり。文章としては流暢で、一見それらしい。だが、原文が言っていないことを言っている。

ここで、帰属を間違えやすい。「教師が嘘を教えたから、生徒も嘘をつくのだ」と。だが日本語→英語に関しては、そうではなかった。教師(27B級)の日本語→英語は強く、独立した二値judgeで教師訳を採点すると、ほぼ全てPASSする。外していたのは、教師でなく生徒のほうだ。主語が省かれ、慣用句が絡む難しい原文を、4Bの生徒が読み切れず、辻褄を合わせようとして流暢な嘘を差し込む。つまりこの天井は、教師由来ではなく、生徒4Bの「理解の容量」に由来するhallucinationだった。だから、お手本をどれだけ綺麗にしても、データを積んでも、容量の壁そのものは動かない(後述のKTO/CPOでも、同じ壁にぶつかる)。

もっとも、「教師の嘘が生徒に遺伝する」現象が、まったく起きないわけではない。それは別の二つの場面で、はっきり起きる。一つは、教師自身がその言語を苦手とするとき——苦手な言語に入ると、巨大な汎用モデルほど急に弱くなる。そこでは教師のお手本が律速になり、写経するほど生徒が汚染される。もう一つは、次節で述べる「教師に文脈を渡したとき」だ。どちらも実測で確かめた、正真正銘の教師由来の汚染だ。天井の正体は、場面ごとに違う——これを一括りに「教師が悪い」で片付けると、打ち手を間違える。

教師の一発目は、天井ではない——best-of-N

日本語→英語の天井が生徒側だとしても、教師の側にもまだ伸びしろはある。教師の"一発目"が、教師の実力の最善とは限らないからだ。

同じ原文を教師にN通り訳させ、その中からいちばん良い一つだけを採用する。これを best-of-N と呼ぶ。選ぶ物差しには、参照訳(人間の模範解答)への一致でなく、訳の質だけを見る QE(Quality Estimation=品質推定:正解を見ずに訳の質を採点する仕組み) を使う。この選別機構の効きめと落とし穴は別稿で詳しく扱うので、ここでは要点だけにとどめる。

レバー比較では、この best-of-N 選別を投資対効果がもっとも高い"次の一手"と位置づけている(見込み+10〜15ポイント)。ただし正直に言うと、これは日本語→英語トラックで回し切った実測ではなく、設計上の見立てだ。実際に best-of-N を効かせて測れているのは別モードの Live で、そこでは選び直したお手本での再学習が+2pt(この上に重ねた選好学習と合わせて+6pt、90→96)を出している(詳細)。「候補から選ぶ」ことの価値は本物だが、日本語→英語での二桁ptは、まだ見込みの段階だと断っておく。

選別は、"物差し"がすべて

best-of-N は万能ではない。選ぶ物差しがずれれば、選ばないより悪くなる。実際、別のデータで「公式字幕への近さ」を物差しに選ばせたら、選別なしの素直な1本(82%)に、整列選別のほう(73〜77%)が負けた。使った公式字幕がソース言語の違う別方向の訳で、そこへ候補を最適化した分だけ、原文への忠実さを失ったのだ。逆に、参照訳を見ない QE judge は、その別方向の公式訳を正しくFAILと弾き、この罠を自動で避ける。

詳しくは別稿に譲るが、教訓は一つ——候補を何個振るかより、選ぶ物差しが自分の求める良さを向いているかだ。

KTOは滑った、賭け先はCPO

良いお手本を写経させた後、もう一段の磨きがある。「良い訳」と「悪い訳」を見せて、"こっちのほうが良い"という判断そのものを学ばせる——選好学習(preference learning)だ。

最初はKTO(Kahneman-Tversky Optimization)を試した。個々の訳に「good/bad」の二値ラベルだけを付けて学ばせる、実装の軽い方式だ。設計を組み、パイプラインを通し、学習を回した。

結果は——ほぼゼロ。84%が85%になっただけ。judgeの誤差の範囲に収まる。訳の中身が変わったのは100件中14件、そのうち退行はゼロだったが、失敗の主因(生徒の容量由来のhallucination)は一つも減らなかった。二値の「good/bad」という粗い信号では、4Bモデルの理解の天井を埋められない——それを対照実験で突きつけられた。

そこで、賭け先を変えた。CPO(Contrastive Preference Optimization=対照選好最適化)だ。CPOは、単なる二値でなく、{教師訳・生徒訳・参照訳}のような複数候補をランク付けし、「AはBより良い」という差そのものを学ばせる。翻訳タスクで実証(ALMA-R=翻訳向けCPOを実証した研究)のある方式で、best-of-Nで選んだ良い訳と、そうでない訳の"差"を刻める。ただし正直に書くと、日本語→英語トラックでCPOを回し切った実績は、まだない——ALMA-Rの実証を根拠に、採用を決めた段階だ。選好学習が実際に効いた実測を挙げるなら、それは別モードの Live で、Live-CPO が 90→96 の押し上げに寄与している(詳細)。

教訓は、選好学習はやり方で天と地だということ。同じ「良し悪しを教える」でも、粗い二値(KTO)は滑り、差を見せるランク学習(CPO)に賭ける。ただし念を押すと、CPOも理解の天井そのものは超えない。桁違いの規模(数万件規模の選好データ)を積んで初めて差が出てくる領域で、その天井を本当に破るには、蒸留のやり方をさらに深める必要がある。ここは正直に、まだ登り切っていない。

背骨をまとめると、順序はこうだ——まず素直な写経で土台を作り(42→84)、次に best-of-N 選別で良いお手本を選び直し(最大ROIの見込み)、その上に CPO で差を刻む

ついでの発見——「文脈を渡すと賢くなる」は、逆だった

もう一つ、思い込みが裏返った瞬間を記しておく。

教師に良い正解を書かせたいなら、前後の文脈を一緒に渡せば、より賢く訳すはずだ——そう考えるのが自然だ。人間の翻訳者だって、文脈があるほうが正確に訳す。

ところが、教師に文脈を注入して作ったお手本で生徒を育てると、生徒は主語のhallucinationを覚えた。文脈から補った主語を、文脈のない本番でも勝手に補うようになったのだ。LYRのアプリは、実際の翻訳時にはその種の会話履歴を教師と同じようには渡していない。学習時の条件と本番の条件がズレていた

対策は、教師にもあえて文脈を渡さず、本番と同じ「文脈なし」でお手本を作らせることだった。賢くしようとした親切が、本番で仇になる。教師データは、本番の入力条件に揃えて作れ——測って初めて分かった鉄則だ。

薄く、広く——61言語を一度に

最後に、この方法論のいちばん経営に効く性質を挙げておく。

AIに正解を書かせる方式は、言語を増やすコストがほぼタダだ。人間の翻訳者なら言語ごとに専門家を雇い直すが、教師モデルは61言語ぶんのお手本を、追加の人件費ゼロで吐き出す。

実際、1回の学習で全61言語を薄く広くカバーした。結果は、資源量に応じたきれいな勾配になった。

言語 合格率の目安 位置づけ
スペイン語 約91% 対訳が潤沢=易しい
アラビア語・ベトナム語・ポルトガル語 約82% 中資源
韓国語・タイ語 約77% 中資源
ヒンディー語 約59% やや低資源
スワヒリ語 約9% 最低資源=データの床

(同一学習・held-out評価〔=学習に使っていない未見データで採点〕、二値judge。各言語の点推定は数ポイント揺れる。)

合格率がそのまま「その言語にネット上の対訳がどれだけあるか」の勾配になっている。易しい言語は放っておいても高く、苦手な言語ほど教師も生徒も薄いデータしか持てず低い。日本語→英語で84%を出しながら、英語→日本語も80%を維持できた(片方向に固定されない)。

この勾配は、次にどこへ投資すべきかを一目で示す地図でもある。上澄みの言語はもう十分。ボトルネックは常に、いちばん苦手な言語だ。ただし——そこで何が律速なのかは、言語ごとに失敗の中身を診断しないと分からない。生徒の容量なのか、教師の質なのか、そもそも base がその言語を持っていないのか。「いちばん下は常に教師が悪い」と一括りにはできない(スワヒリ語のように、base が言語そのものを持たず=データの床、というケースもある)。この診断のやり方と、律速に応じた別の打ち手は、別稿で扱っている。

一度この「教師データ製造ライン」を敷いてしまえば、あとは苦手な言語を順に潰していくだけだ。専門家を育てるための燃料(正解データ)を、人手でなくAIが、薄く広く、安く供給し続ける。

教訓

  1. 正解データは、人間でなくAIに作らせられる。 大きな教師モデルにお手本を書かせ、小さな生徒に写経させる(蒸留)。苦手だった日本語→英語で、素直な写経だけで正答率は42%→84%(+42pt)。人間の翻訳者はゼロ。育成の最大コストとされる「正解づくり」が、自動化できる。(マニフェスト第2原則「まだ、安く・速くできる」:ボトルネックを、別のやり方で外す)

  2. 天井の正体は、場面ごとに違う。 日本語→英語の84%止まりは、教師でなく生徒4Bの理解容量由来のhallucination(教師訳自体はほぼ全PASS)。一方、教師の嘘が遺伝するのは「教師が苦手な言語」と「教師に文脈を渡したとき」——ここは実測で確かめた。天井を一括りに「教師が悪い」で片付けると、打ち手を間違える。

  3. 教師データは、本番の入力条件に揃えて作る。 良かれと教師に文脈を渡すと、生徒は主語の捏造を学んだ。学習条件と本番条件のズレが、そのまま欠陥になる。そして押し上げの次の一手は、生成でなく選別だ(best-of-N)——ただし参照訳への近さで選ぶと別方向へ引かれるので、質だけを見て選ぶ。


付録:生データ

共通条件: 生徒=自前の軽量モデル(蒸留4B)。教師=汎用の大型モデル(27B級)。評価は参照訳を使わない二値judge(PASS/FAIL)で学習前後を同一条件比較。点推定は単一run=絶対値に数ポイントの揺れ。

項目 結果 条件・留保
蒸留SFT(写経) 素の4B 日本語→英語 約42% → 84%(+42pt) 教師の生成 13,786訳(temp0.1・文脈なし=本番parity・選別なし)→ 学習例 5,090件。英語→日本語も80%維持
天井の所在 教師訳はほぼ全PASS = 外しているのは生徒側 hallucination は4Bの理解容量律速
多言語 held-out(61言語) スペイン語 91/アラビア・ベトナム・ポルトガル 82/韓国・タイ 77/ヒンディー 59/スワヒリ 9 合格率=資源量の勾配。スワヒリ9は base がその言語をほぼ持たない(診断
選別(best-of-N QE) レバー評価で最大ROIの見込み(+10〜15pt)、日本語→英語では未実行 実測で効いたのは Live の SFT-aug +2(CPO込みで+6)
gold-alignment trap 参照訳をアンカーにすると別方向へ引かれて崩れる reference-free QE は非整列の公式訳を正しくFAILと弾き、trapを自動回避
選好学習(KTO) null:84→85%(judgeノイズ内) 訳変更14/100・退行0・FAIL主因は不変。二値信号では理解天井を埋めない
選好学習(CPO) 採用済みだが日本語→英語では未学習 ALMA-R実証が根拠。実測は Live-CPO の 90→96。真の差は数万件規模で顕在化
文脈の扱い 教師に文脈を渡したお手本で学習すると、生徒が主語hallucinationを学ぶ 本番は会話履歴を同条件で渡していない=文脈なしで教師データを作るのが必須

関連: 品質選別の詳細は AIに「正解より良い訳」を選ばせる。この教師データで小型モデルを育てる基礎は 小さなAIを1つの仕事の専門家に育てる。教師そのものが律速になる最苦手言語の診断は いちばん苦手な言語で律速を見抜く


シリーズ「モデル — 小さく、速く、賢く」第10回の記事です。原文と続きは LYR Performance Note #020 / 記事一覧 にあります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?