Phractis

AIに「140字以内で」と頼んでも守らない。何字と言えばいいかをベイズ最適化で探した

目次
  1. きっかけ
  2. 学んだこと
  3. 自分なりの理解
  4. 実践へのつなげ方
  5. 次に試すこと

きっかけ

自宅のPCで動かしている翻訳AI(Gemma 4 26B)のプロンプトを、ベイズ最適化でチューニングしてみたが、スコアの変化が大きくないときは、そのアルゴリズムの効果が実感しにくい。

そこで、「英語の投稿を、Xの140字に収まるように翻訳する」というテーマでベイズ最適化を試してみた。AIは「140字以内で」と指示しても、はみ出してくることが多い。

学んだこと

プロンプトに指定する文字数(60〜160字の10字刻み)と、意訳の度合い(5段階)を掛け合わせた全55通りをすべて試した。評価用の英文30文を用意し、翻訳の質は自動評価指標の COMET で測定。140字を超えてしまった訳は0点とした。最後に、探索に使わなかった別の検証用30文でテストした。

指示 140字に収まった割合 スコア
文字数の指示なし 10% 9.0
「140字以内」 87% 76.1
「120字以内」+ 少し意訳 100% 86.6

結論から言うと、正解は「少なめに指定する」ことだった。「120字以内」と頼むとAIは平均114字でまとめ、すべての文が安全に140字以内に収まった。

あらかじめ全通りの答えが分かっている状態で、ベイズ最適化とランダム探索のシミュレーションをそれぞれ100回ずつ走らせてみた。その結果、20回試行した時点で頂上(最適解)を見つけられた割合は、ランダム探索の53%に対して、ベイズ最適化は87%に達した。

自分なりの理解

ベイズ最適化とは、「これまでの試行結果からスコアの地図を描き、高得点が見込めそうな場所と、まだ分かっていない未知の場所のバランスを取りながら次を試す」手法だ。

左がベイズ最適化、右がランダム探索。指定文字数を1回ずつ試していく様子

意訳の度合いを固定し、指定文字数だけを変えて試した例。青い線がベイズ最適化の予想。なお、この1回ではランダム探索も同じ12回で頂上に着いている。

そのため、「全探索するにはコストが高く、当たりが狭く、かつスコアの地形がなだらかに連続している問題」で真価を発揮する。 ベイズ最適化が役に立つかどうかは、解くべき問題の「地形の形」で決まる。

実践へのつなげ方

次に試すこと

ランダム探索だけでなく、「10字おきに規則正しく試す(グリッド探索)」とも比較してみたい。 人間がやりがちな「とりあえず均等に試してみる」方法と比べて、ベイズ最適化はどれくらい無駄撃ちを減らせているのか、効率の差を実感してみたい。