解説ねえ、智也くん!この「SW…
解説
ねえねえ智也くん!この『BOAD』って論文、何?ボードゲームの必勝法か何か?
いや、全然違うよ。これはAIにソフトウェア開発を効率よくやらせるための、新しいエージェント設計の手法なんだ。
そふとうぇあ……?AIがプログラミングしてくれるってこと?
そう。でも、今のAIエージェントには大きな問題があるんだ。一つのAIに「バグを見つけて、直して、テストして」って全部やらせると、途中で関係ない情報が混ざって混乱しちゃうんだよね。
あー、わかる!私もテスト勉強中に昨日の晩ごはんのこと思い出して、何勉強してたか忘れちゃうもん!
……亜美さんと一緒にするのはどうかと思うけど、現象としては近いかな。これを「偽相関」って言って、余計な文脈のせいでAIが間違った判断をしちゃうんだ。だからこの論文では、人間みたいに「役割分担」をさせようって提案してるんだよ。
役割分担?チームを作るってこと?
その通り。司令塔のAIがいて、その下に「場所を探す専門」「コードを書く専門」「チェックする専門」みたいなサブエージェントを置く「階層型」の仕組みを作るんだ。
すごーい!でも、どうやって最強のチームを作るの?適当に集めても仲良くなれるかわかんないよ?
そこがこの論文の肝なんだ。「多腕バンディット問題(MAB)」っていう手法を使っている。これは、限られた回数の中で、どの選択肢(腕)を選べば一番報酬が得られるかを探るアルゴリズムのことだよ。
たわん……?腕がいっぱいあるの?
スロットマシンが並んでるのをイメージして。どの台が当たりやすいか分からない時、少しずつ試しながら、当たりそうな台に絞っていくでしょ?それをサブエージェント選びに応用したのが『BOAD』なんだ。
なるほど!当たりそうなAIをどんどん試していくんだね!
そう。さらに「LLM-as-a-judge」といって、別のAIに「このサブエージェントはどれくらい貢献したか」を判定させて、そのスコアを元にチームを改善していくんだ。これを「貢献度の割り当て」って呼んでいるよ。
AIがAIを評価するなんて、厳しい世界だね……。それで、結果はどうだったの?
「SWE-bench-Live」っていう、最新の実際のバグ修正を解くテストで、なんと世界3位にランクインしたんだ。しかも、GPT-4みたいな超巨大なモデルを使ったシステムよりも、もっと小さい36B(360億パラメータ)のモデルで勝っちゃったんだよ。
ええっ!小さい子が巨人を倒したみたいな感じ!?かっこいい!
そうだね。個々の能力がそこまで高くなくても、うまく役割分担して連携すれば、巨大なAI以上の力を発揮できるって証明したんだ。これは将来、もっと複雑な仕事をAIに任せるための大きな一歩になるはずだよ。
じゃあ、将来はAIが全部やってくれるから、私は寝てるだけでいいってことだよね!
まだ課題はあるよ。今はまだ評価にコストがかかるし、もっと複雑な連携が必要な場合もある。……というか、亜美さんは今も講義中に寝てるじゃないか。
それは、私が「睡眠専門サブエージェント」として役割を果たしてるからだよ!
そんな専門家いらないから、ちゃんと起きて勉強して。……ツッコミ疲れるよ。
要点
- 従来のソフトウェア開発AIは、1つのエージェントが全ての工程(問題特定、修正、検証)をこなそうとするため、不要な情報が混ざり精度が落ちるという課題があった。
- 人間が複雑な問題を分割して解くように、司令塔(オーケストレーター)と専門のサブエージェントを組み合わせる「階層型システム」を提案。
- 最適なサブエージェントの組み合わせを自動で発見するために、強化学習の一種である「多腕バンディット問題(MAB)」の枠組み(BOAD)を利用。
- 各サブエージェントがどれだけ役に立ったかを「LLM-as-a-judge」で評価し、効率的に優秀なチームを編成する。
- 最新のベンチマーク「SWE-bench-Live」において、GPT-4やClaude 3.5などの巨大モデルを用いたシステムを上回る性能を、より小さなモデルで達成した。