要点テキストから画像を生成する…
解説
ねえねえ智也くん!この『InfoSynth』っていう論文のタイトル、なんかかっこいいね!情報のシンセサイザー?音楽でも作るの?
いや、音楽じゃないよ。これはLLMの実力を測るための「テスト問題」を、AIを使って自動で作っちゃおうっていう研究なんだ。
えっ、AIがAIのテストを作るの?それって、自分で問題を作って自分で解くみたいな、自作自演じゃない?
鋭いね。でも実は今、大きな問題があるんだ。既存のテスト問題がネット上に溢れすぎていて、LLMが学習中にその答えを丸暗記しちゃってるんだよ。これを「データ汚染」って言うんだ。
あー、テストの前に問題集の答えを全部覚えちゃう感じか!それじゃ本当の頭の良さはわからないね。
その通り。だから、誰も見たことがない「新しくて」「バリエーション豊かな」問題をどんどん作る必要がある。この論文は、それを数学的に評価して自動生成する仕組みを作ったのがすごいところなんだ。
数学的に評価?どうやってやるの?
「KLダイバージェンス」と「エントロピー」っていう指標を使うんだ。KLダイバージェンスは、新しい問題が既存の問題とどれくらい「違うか(新規性)」を測るもの。エントロピーは、問題のセットがどれくらい「バラエティに富んでいるか(多様性)」を測るものだよ。
けーえる……えんとろぴー……。つまり、似たような問題ばっかりにならないように見張ってるってことだね!
ざっくり言うとそうだね。で、具体的な作り方だけど、「遺伝的アルゴリズム」っていう手法を使っているんだ。生物の進化みたいに、問題を「変異」させたり「交叉」させたりするんだよ。
えっ、問題が結婚して子供が生まれるの!?
例えとしては近いかな。「変異(Mutation)」は一つの問題を難しくしたり簡単にしたり作り変えること。「交叉(Crossover)」は二つの違う問題を組み合わせて新しい問題を作ることだね。
へぇー!でも、適当に混ぜたら、答えがないめちゃくちゃな問題になっちゃわない?
そこがこの論文の賢いところで、「反復的コードフィードバック」っていうのを使っている。AIに解答コードとテストケースを作らせて、実際にプログラムを実行して動くか確認するんだ。エラーが出たらAIに修正させて、合格したものだけを問題として採用するんだよ。
ちゃんと動くか実験までしてるんだ!徹底してるねー。
実験の結果、生成された問題の97%で正しい解答とテストが作れたらしい。しかも、人間が作った既存のデータセットよりも、新しさも多様性も高いことが証明されたんだ。
97%ってすごい!これがあれば、もう人間が頑張ってテストを作らなくてもいいってこと?
そうだね。これからはLLMが進化するたびに、それに見合った難易度の新しいテストを無限に生成できるようになる。モデルの本当の限界を正確に知るための大きな一歩だよ。
でも、何か弱点はないの?完璧すぎて怪しいなー。
もちろん課題はあるよ。今はPythonのコード生成問題が中心だけど、もっと複雑な推論や、文章のニュアンスを問うような問題に広げるのはまだ難しい。あと、特殊なケースの指示が問題文に反映されにくいこともあるみたいだ。
なるほどね。でも、AIがどんどん賢くなるための「特訓メニュー」をAIが作るなんて、未来感あるなあ!
よし、私もこの『遺伝的アルゴリズム』を使って、智也くんへの『おねだり』をどんどん進化させていこうかな!まずはケーキ、次は旅行、その次は……
それは進化じゃなくて、ただの強欲だろ。却下だ。
要点
- LLMの性能を測る既存のベンチマーク(テスト問題集)は、LLMの学習データに含まれてしまう「データ汚染」の問題があり、正確な評価が難しくなっている。
- 情報理論に基づいた2つの指標、KLダイバージェンス(新規性の測定)とエントロピー(多様性の測定)を用いて、ベンチマークの質を客観的に評価する手法を提案した。
- 遺伝的アルゴリズム(変異と交叉)を活用し、既存の問題から新しいプログラミング問題を自動生成するパイプライン「InfoSynth」を開発した。
- 生成された問題に対して、実際にコードを実行して検証する「反復的コードフィードバック」を導入することで、97%という高い精度で正しい解答とテストケースを作成することに成功した。
- InfoSynthは、人間が介在せずに、高品質で新しく、かつ多様な評価用データを低コストで大量に生成できる画期的な手法である。