解説

AMI HAPPY

ねえねえ智也くん!この『C3-Bench』っていう論文、タイトルがかっこいいね!「コントロールできるコード補完」ってどういうこと?

TOMOYA NEUTRAL

ああ、それはAIにプログラミングを手伝ってもらう時に、ただコードを完成させるだけじゃなくて、人間の細かい注文をどれだけ守れるかっていう話だよ。

AMI SURPRISED

えっ、AIっていつも言った通りにやってくれるんじゃないの?「いい感じに書いて」って言えばやってくれるでしょ?

TOMOYA NEUTRAL

それが意外と難しいんだ。今までのAIの評価テストは「書いたコードがエラーなく動くか」しか見てなかったんだよ。でも実際の開発では「このアルゴリズムを使って」とか「3行以内で短く書いて」っていう制約が大事になるだろ?

AMI HAPPY

あー、なるほど!カレーを作ってって頼んで、味は美味しいけど勝手に激辛にされたら困るもんね。そういう「作り方の指定」を守れるかどうかってことか!

TOMOYA NEUTRAL

例えは極端だけど、まあそういうことだね。この論文では、その「指示を守る能力」を測るために『C3-Bench』っていう新しいテストセットを作ったんだ。

AMI NEUTRAL

そのテストって、具体的にどんなことをさせるの?

TOMOYA NEUTRAL

大きく分けて2つあるよ。1つは『ICC』。これは「特定のデータ構造を使え」とか「例外処理を入れろ」っていう、中身の書き方を指定するテスト。もう1つは『SCC』で、これは「1行だけ書け」とか「if文のブロックだけ作れ」っていう、コードの長さを指定するテストだね。

AMI SURPRISED

へぇー、長さまで指定されるんだ!厳しそう。それで、今のAIたちはちゃんとできたの?

TOMOYA NEUTRAL

40種類以上のモデルで実験したんだけど、面白い結果が出たよ。オープンソースのモデルは、普通のテストだとGPT-4みたいな高い性能を出すのに、この『指示を守るテスト』になると急に点数が下がっちゃうんだ。

AMI HAPPY

えーっ!テスト勉強は得意だけど、先生の指示は聞かないタイプの子みたいだね。

TOMOYA NEUTRAL

はは、言い得て妙だね。既存のテストに特化して学習しすぎて、柔軟な指示への対応力が足りない可能性があるんだ。そこで著者たちは、Qwen2.5-Coderっていうモデルを使って、指示とコードがセットになった学習データを自動で作る仕組みを開発したんだよ。

AMI SURPRISED

データを自動で作っちゃうの?すごい!それで強くなったの?

TOMOYA HAPPY

そう。そのデータで学習した『Qwen2.5-Coder-C3』っていうモデルは、指示を守る能力が劇的に上がって、世界トップクラスの性能になったんだ。これがこの論文のすごいところだね。

AMI HAPPY

すごーい!じゃあ、これからはもっと人間とAIが仲良くプログラミングできるようになるんだね。将来はどうなるのかな?

TOMOYA NEUTRAL

今後はもっと複雑な指示、例えばプロジェクト全体のルールを守らせるような研究が進むだろうね。ただ、まだ完璧じゃない。指示が矛盾してたり、すごく長いコードだったりすると失敗することもあるから、そこがこれからの課題かな。

AMI HAPPY

なるほどねー。じゃあ私も、智也くんに「1秒で終わる宿題」を出すように指示したら、AIみたいにやってくれる?

TOMOYA ANGRY

それは指示を守る以前に、君が自分でやらないと意味がないだろ。僕はAIじゃないんだから、甘えるなよ。

要点

  • 従来のコード補完の評価指標は「コードが正しく動くか」に偏っており、ユーザーの細かい指示(アルゴリズムの指定や行数制限など)を守れているかを評価できていなかった。
  • 指示に従ったコード補完(Controllable Code Completion: CCC)を評価するための新しいベンチマーク「C3-Bench」を提案した。
  • C3-Benchは、実装方法を指定するICC(Implementation-Control Completion)と、生成するコードの範囲を指定するSCC(Scale-Control Completion)の2つのタスクで構成される。
  • 40以上のモデルを評価した結果、オープンソースモデルは従来のベンチマークでは高性能でも、指示に従う能力(C3-Bench)では商用モデルに大きく劣ることが判明した。
  • Qwen2.5-Coderを活用したデータ合成パイプラインを構築し、指示に従う能力を強化したモデル「Qwen2.5-Coder-C3」を開発して高い性能を達成した。