上海交通大学は、大規模なバイリンガルプログラミング評価ベンチマークである CodeApex をリリースしました。機械は本当にコード作成において人間に挑戦し始めているのでしょうか?

上海交通大学は、大規模なバイリンガルプログラミング評価ベンチマークである CodeApex をリリースしました。機械は本当にコード作成において人間に挑戦し始めているのでしょうか?

独自のコードを書くことができるマシンを構築することは、コンピューターサイエンスと人工知能の先駆者たちが追求してきた目標です。 GPT などの大規模モデルの急速な発展により、このような目標は手の届かないものから手の届くものへと変わりつつあります。

大規模言語モデルの出現により、研究者はモデルのプログラミング機能にますます注目するようになりました。このような状況の中で、上海交通大学の APEX 研究所は、LLM のプログラミング理解とコード生成機能の評価に重点を置いたバイリンガル ベンチマーク データセットである CodeApex を立ち上げました。

大規模言語モデルのプログラミング理解能力を評価するために、CodeApex は概念理解、常識推論、マルチホップ推論の 3 種類の多肢選択問題を設計しました。さらに、CodeApex はアルゴリズムの問​​題と対応するテスト ケースを使用して、LLM のコード生成機能を評価します。 CodeApex は、コードタスクで合計 14 個の大規模な言語モデルを評価します。その中で、GPT3.5-turbo は最高のプログラミング能力を示し、これら 2 つのタスクでそれぞれ約 50% と 56% の精度を達成しました。プログラミングタスクにおける大規模言語モデルには、まだ改善の余地がたくさんあることがわかります。独自のコードを書くことができるマシンを構築することは、有望な未来です。

  • ウェブサイト: https://apex.sjtu.edu.cn/codeapex/
  • コード: https://github.com/APEXLAB/CodeApex.git
  • 論文: https://apex.sjtu.edu.cn/codeapex/paper/

導入

プログラミングの理解とコード生成は、ソフトウェア エンジニアリングにおける重要なタスクであり、開発者の生産性の向上、コード品質の向上、ソフトウェア開発プロセスの自動化に重要な役割を果たします。ただし、コードの複雑さと意味の多様性のため、これらのタスクは大規模なモデルでは依然として困難です。通常の自然言語処理と比較して、LLM を使用してコードを生成する場合は、文法、構造、詳細処理、コンテキスト理解をより重視する必要があり、生成されるコンテンツの精度に対する要件は非常に高くなります。従来のアプローチには、文法ルールベースのモデル、テンプレートベースのモデル、ルールベースのモデルなどがあり、これらは通常、範囲と精度が制限された手動で設計されたルールとヒューリスティックアルゴリズムに依存しています。

近年、CodeBERT や GPT3.5 などの大規模な事前トレーニング済みモデルの登場により、研究者はプログラミング理解やコード生成タスクへのこれらのモデルの応用を検討し始めました。これらのモデルは、トレーニング中にコード生成タスクを統合し、コードを理解して生成できるようにします。しかし、標準的で公開されており、高品質で多様なベンチマーク データセットが不足しているため、コードの理解と生成における LLM の進歩を公平に評価することは困難です。したがって、プログラミング理解とコード生成の研究を促進するには、コードのセマンティクスと構造を広範囲にカバーするベンチマーク データセットを構築することが重要です。

既存のコード ベンチマーク データセットは、LLM に適用する場合、適用性と多様性に問題があります。たとえば、一部のデータセットは、Bert スタイルの双方向言語モデリング LLM の評価に適しています。しかし、既存の多言語コードベンチマークデータセット(Human-Eval など)には比較的単純な質問が含まれており、多様性に欠けており、いくつかの基本的な機能コードしか実装できません。

上記のギャップを埋めるために、上海交通大学の APEX データおよび知識管理研究所は、新しい大規模モデルコード理解および生成評価ベンチマークである CodeApex を構築しました。 CodeApex は、先駆的なバイリンガル (英語、中国語) ベンチマーク データセットとして、LLM のプログラミング理解とコード生成機能の評価に重点を置いています。

CodeApex の全体的な実験シナリオを上の図に示します。

最初のタスクであるプログラミング理解には、概念理解、常識的推論、マルチホップ推論に分かれた 250 個の複数選択問題が含まれます。テストに使用された問題は、大学のさまざまなコース(プログラミング、データ構造、アルゴリズム)の最終試験問題から選択されたため、データがすでに LLM トレーニング コーパス内に存在するというリスクが大幅に軽減されました。 CodeApex は、0 ショット、2 ショット、5 ショットの 3 つのシナリオで LLM のコード理解能力をテストし、また、回答のみモードと思考連鎖モードが LLM の能力に与える影響をテストしました。

2 番目のタスク コード生成には、バイナリ検索、深さ優先検索などの一般的なアルゴリズムの知識ポイントをカバーする 476 個の C++ ベースのアルゴリズム問題が含まれています。 CodeApex は問題の説明と問題を実装する関数のプロトタイプを提供し、LLM に関数の主要部分を完成させることを要求します。 CodeApex には、関数のみとコンテキスト付き関数の 2 つのシナリオも用意されています。これらの違いは、前者にはターゲット関数の説明のみが含まれるのに対し、後者にはターゲット関数の説明に加えて、ターゲット関数の呼び出しコード、時間と空間の制約、および入力と出力の説明も含まれることです。

実験結果によると、コード関連のタスクではモデルによってパフォーマンスが異なり、GPT3.5-turbo は優れた競争力と明らかな利点を示しています。さらに、CodeApex はバイリンガル シナリオでの LLM のパフォーマンスを比較し、異なる結果を明らかにしました。全体的に見ると、CodeApex リーダーボードにおける LLM の精度にはまだ改善の余地が多く残されており、コード関連のタスクにおける LLM の可能性はまだ十分に探求されていないことが示唆されています。

コード理解

大規模な言語モデルを実際のコード生成シナリオに完全に統合するには、プログラミングの理解が不可欠です。プログラミング理解には、構文の習得、コード実行フローの理解、実行アルゴリズムの理解など、あらゆる側面からコードを理解する能力が必要です。

CodeApex は、大学の期末試験から 250 個の多肢選択問題をテスト データとして抽出しました。これらのテスト データは、概念理解、常識推論、マルチホップ推論の 3 つのカテゴリに分類されました。

テストモードには、回答のみと思考連鎖の 2 種類があります。

実験結果と結論

コード理解タスクにおける CodeApex の中国語と英語の評価結果を次の 2 つの表に示します。 (最もパフォーマンスの優れたモデルは太字で表示され、2 番目にパフォーマンスの優れたモデルは下線が引かれています。)

このことから、次のような結論を導き出すことができます。

  • バイリンガル能力の比較。中国語版は英語版よりも高い得点を獲得しました。主な理由は2つあります。(1) 問題の記述は中国の大学の期末試験からのものであり、問​​題はもともと中国語で提示されていました。英語に翻訳しても、中国人特有の言語習慣が残っています。したがって、これらの偏った英語の質問が LLM に入力されると、モデルのエンコード結果にノイズが導入される可能性があります。 (2)評価されたモデルのほとんどは主に中国のデータで訓練されており、その結果は芳しくない。
  • さまざまな質問タイプ間での能力の比較。 3 つの質問カテゴリ全体で、モデルの約半数が概念理解に関して最高のパフォーマンスを示しました。これは、トレーニング中にプログラミング概念の知識が組み込まれた可能性があることを示唆しています。ほとんどのモデルは、マルチホップ推論と比較して常識推論で高いスコアを獲得しており、これは推論ステップの増加に伴って LLM の能力が大幅に低下することを示しています。
  • CoT 思考連鎖モデルの役割。 CoT モードのほとんどのモデルの精度は、Answer-Only モードの精度に近いかそれより低くなります。この現象には2つの理由がある:(1)評価対象モデルの規模がCoT出現能力を持つモデルサイズに達していない。これまでの研究では、CoT の出現には LLM に少なくとも 60B のパラメータが必要であることが示唆されています。パラメータの数が不十分な場合、CoT 設定によって追加のノイズが発生し、LLM によって生成される応答が不安定になる可能性があります。 GPT3.5-turbo は出現の段階に達しており、CoT 設定でより高い精度を達成できます。 (2)概念理解や常識的推論に関する質問に答える場合、多段階の推論はそれほど必要ではない。したがって、LLM の CoT 機能はこのような問題には役立ちません。ただし、マルチホップ推論問題の場合、一部のモデル (ChatGLM2、educhat、GPT3.5-turbo など) では CoT シナリオでの精度が大幅に向上しています。 (CodeT5 は思考連鎖を介して応答を生成できないため、CodeApex はそれを CoT セットアップから除外します。)

コード生成

大規模言語モデルをトレーニングして正確で実行可能なコードを生成するのは困難な作業です。 CodeApex は主に、指定された説明に基づいてアルゴリズムを生成する LLM の能力を評価し、ユニット テストを通じて生成されたコードの正確性を自動的に評価します。

CodeApex のコード生成タスクには、バイナリ検索やグラフ アルゴリズムなどの一般的なアルゴリズムの知識ポイントを網羅した 476 個の C++ ベースのアルゴリズム問題が含まれています。 CodeApex は問題の説明と問題を実装する関数のプロトタイプを提供し、LLM に関数の主要部分を完成させることを要求します。

CodeApex では、関数のみとコンテキスト付き関数の 2 つのシナリオが提供されます。関数のみのシナリオでは、ターゲット関数の説明のみが提供されますが、コンテキスト付き関数のシナリオでは、ターゲット関数の説明だけでなく、ターゲット関数の呼び出しコード、時間と空間の制約、および入力と出力の説明も提供されます。

実験結果と結論

各言語バージョンでは、2 つのプロンプト戦略 (関数のみとコンテキスト付き関数) が使用されます。人間によるコード テストのシナリオに合わせるために、評価メトリックには AC@1、AC@all、および AC レートが含まれます。


各モデルのコード生成タスクの結果は、次の 2 つの表に示されています。 (最適: 太字、次善: 下線)

次のような結論が導き出されます。

  • GPT3.5-turbo は平均スコアが 50% を超え、他の 11 個の LLM を上回ります。
  • WizardCoder と StarCoder は 2 位と 3 位にランクされ、コードベースの微調整によるコード生成機能の大幅な改善が強調されました。
  • コード生成タスクでは、現在テストされているモデルでは、中国語と英語の質問タイプ間で明らかなパフォーマンスの違いはありません。

さらに、CodeApex は各シナリオにおけるコンパイル可能なコードの割合も提供します。生成された関数をメイン関数に接続した後、コンパイル可能なコードがテスト ケースによってチェックされます。

以下が見られます:

  • ほとんどのモデルは 50% を超えるコンパイル可能なコードを生成でき、これは LLM が関数プロトタイプを理解できることを示しています。
  • 一般に、関数に関するコンテキスト情報を提供すると、LLM がコンパイル可能なコードを生成するのに役立ちます。

結論は

CodeApex は、LLM のプログラミング能力に焦点を当てたバイリンガル ベンチマークとして、大規模言語モデルのプログラミング理解とコード生成機能を評価します。プログラミング理解の観点から、CodeApex は 3 つのカテゴリの複数選択問題でさまざまなモデルの機能を評価します。コード生成では、CodeApex はテスト コード ケースの合格率を使用してモデルの機能を評価します。 CodeApex は、これら 2 つのタスクに対してプロンプト戦略を慎重に設計し、さまざまなシナリオで比較しました。 CodeApex は、一般的な LLM とコードの微調整に基づく特殊な LLM モデルを含む 14 の LLM で実験的に評価されます。

現在、GPT3.5はプログラミング能力において比較的良好なレベルを達成しており、プログラミング理解とコード生成タスクでそれぞれ約50%と56%の精度を達成しています。 CodeApex は、プログラミング タスクに対する大規模言語モデルの潜在能力がまだ十分に探求されていないことを示しています。近い将来、大規模言語モデルを使用したコード生成がソフトウェア開発分野に革命をもたらすと期待しています。自然言語処理と機械学習が進歩するにつれて、これらのモデルはより強力になり、コード スニペットの理解と生成に長けるようになります。開発者は、これらのモデルを利用して面倒な作業を自動化し、生産性を高め、ソフトウェアの品質を向上できるため、コーディング作業において前例のない強力な味方が得られることに気付くでしょう。

今後、CodeApex では、大規模言語モデルのコーディング機能 (コード修正など) をテストするためのテストをさらにリリースする予定であり、CodeApex のテスト データは、より多様なコードの問題を追加するために継続的に更新されます。同時に、CodeApex リストには、大規模言語モデルのコーディング能力を人間のレベルと比較するための人間実験も含まれます。 CodeApex は、大規模言語モデルのプログラミング機能の研究のためのベンチマークとリファレンスを提供し、コード分野における大規模言語モデルの発展と繁栄を促進します。

APEX Labsについて

上海交通大学の APEX データおよび知識管理研究所は、ACM クラスの主任コーチである Yu Yong 教授によって 1996 年に設立されました。当研究所は、データを効果的に採掘・管理し、知識を要約できる人工知能技術の探求に取り組んでいます。500本以上の国際的な学術論文を発表し、現実世界のシナリオでの実用的な応用を追求しています。過去 27 年間にわたり、APEX Labs は世界のさまざまなテクノロジーの波において世界的な先駆者となってきました。同ラボは、2000 年にセマンティック Web (現在はナレッジ グラフとして知られています) のコア テクノロジー、2003 年にパーソナライズされた検索エンジンと推奨システム テクノロジー、2006 年に転移学習の理論とアルゴリズム、2009 年にディープラーニング テクノロジーの研究を開始し、GPU に基づくニューラル ネットワーク トレーニング ライブラリを開発しました。 APEX 研究室は、実りある科学研究と実装成果を生み出すと同時に、堅実なデータサイエンスと機械学習の研究チームを育成し、Xue Guirong、Zhang Lei、Lin Chenxi、Liu Guangcan、Wang Haofen、Li Lei、Dai Wenyuan、Li Zhenhui、Chen Tianqi、Zhang Weinan、Yang Diyi など、人工知能分野で優れた卒業生を輩出してきました。

<<:  テレンス・タオは数学の問題を解くために大規模なモデルを使用しています。コードの生成とLaTeXの数式の編集は非常に便利です。

>>:  「答えない」データセットは盗聴者であり、LLMセキュリティメカニズムの評価はそれに依存する

ブログ    
ブログ    
ブログ    

推薦する

...

革新を続ける: 6月のロボット研究開発の概要

近年、人工知能への熱狂が多くの業界を席巻しており、ロボット工学の分野も例外ではありません。人工知能技...

テクノロジーリーダーはAIGCの長所と短所をどう評価しているか

AIGC は、現代の偉大な技術的進歩の 1 つとして広く認められています。 OpenAI の Cha...

...

Zhihu のホットトピック: 今後 3 ~ 5 年で、機械学習の人材が最も不足する分野はどれでしょうか?

[[328766]]今後 3 ~ 5 年で、機械学習のどの分野の人材が最も不足するでしょうか?今日...

3D MRI および CT スキャンのディープラーニング モデルの概要

医療画像データと他の日常的な画像との最大の違いの 1 つは、DICOM シリーズ データを扱う場合、...

...

中国、自動運転を含む情報技術の注目の10大問題を発表

ハルビンで開催された2019年中国科学技術協会年次大会において、情報技術分野のハイエンドシンクタンク...

プロフェッショナルスキルを向上させる: 10のNLPテクニックを理解して習得する

1. 感情分析感情分析とは、ツイート、製品レビュー、顧客からのフィードバックなどのテキストの背後にあ...

AIとIoTがサプライチェーンにもたらす効果

サプライ チェーン管理は経済の生命線であり、コストを最適化し、無駄を最小限に抑えながら、適切な製品を...

世界初のAI生成薬がヒト臨床試験に進出

6月30日のニュースによると、今週、完全に人工知能によって設計された世界初の医薬品が人間の臨床試験段...

コンピューティングセンターからコンピューティングネットワークまで、人工知能は静かに変化している

人工知能はデジタル経済の高品質な発展の原動力であり、新たな科学技術革命と産業変革の重要な原動力です。...

Google が新モデル EfficientNet をオープンソース化: 画像認識効率が 10 倍に向上、パラメータが 88% 削減

畳み込みニューラル ネットワークは通常、限られたリソースで開発され、その後、条件が許せば、より高い精...