BigCodeBench: 多様な関数呼び出しと複雑な命令を使用したコード生成のベンチマーク

自動ソフトウェアエンジニアリングは、プログラミング用の大型言語モデル(Large Language Models: LLMs)の最近の進歩により大きく強化されました。現在のベンチマークでは、LLMsが人間の開発者と同様に様々なソフトウェアエンジニアリングタスクを遂行できることを示していますが、その評価の多くは短い自己完結型のアルゴリズムタスクに限定されています。挑戦的で実践的なプログラミングタスクを解決するには、データ分析やウェブ開発などの機能を効率的に実装するために多様な関数呼び出しを利用できる能力が必要です。さらに、複数のツールを使用してタスクを解決するためには、複雑な指示を正確に理解し組み合わせて推論する能力も必要となります。これらの特性を満たすことは、LLMsにとって大きな課題となる可能性があります。挑戦的で実践的なプログラミングタスクを解決するLLMsの性能を評価するために、私たちはBenchというベンチマークを導入しました。このベンチマークは、139のライブラリと7つのドメインから1,140の細かいプログラミングタスクに対して複数の関数呼び出しを利用することを求めます。厳密な評価のために、各プログラミングタスクは平均分岐カバレッジ99%で5.6個のテストケースを含んでいます。また、自然言語指向のBench変種であるBenchiも提案しており、元のdocstringsを必須情報のみに短縮した指示に自動的に変換します。60種類のLLMsに対する私たちの広範な評価結果では、LLMsはまだ複雑な指示に従って関数呼び出しを使用することが十分ではなく、最高でも60%程度しか得点できず、人間のパフォーマンス(97%)とは大幅に差があります。これらの結果は、この分野でのさらなる進歩が必要であることを強調しています。