独自のコードを書くことができるマシンを構築することは、コンピューターサイエンスと人工知能の先駆者たちが追求してきた目標です。 GPT などの大規模モデルの急速な発展により、このような目標は手の届かないものから手の届くものへと変わりつつあります。 大規模言語モデルの出現により、研究者はモデルのプログラミング機能にますます注目するようになりました。このような状況の中で、上海交通大学の APEX 研究所は、LLM のプログラミング理解とコード生成機能の評価に重点を置いたバイリンガル ベンチマーク データセットである CodeApex を立ち上げました。 大規模言語モデルのプログラミング理解能力を評価するために、CodeApex は概念理解、常識推論、マルチホップ推論の 3 種類の多肢選択問題を設計しました。さらに、CodeApex はアルゴリズムの問題と対応するテスト ケースを使用して、LLM のコード生成機能を評価します。 CodeApex は、コードタスクで合計 14 個の大規模な言語モデルを評価します。その中で、GPT3.5-turbo は最高のプログラミング能力を示し、これら 2 つのタスクでそれぞれ約 50% と 56% の精度を達成しました。プログラミングタスクにおける大規模言語モデルには、まだ改善の余地がたくさんあることがわかります。独自のコードを書くことができるマシンを構築することは、有望な未来です。
導入プログラミングの理解とコード生成は、ソフトウェア エンジニアリングにおける重要なタスクであり、開発者の生産性の向上、コード品質の向上、ソフトウェア開発プロセスの自動化に重要な役割を果たします。ただし、コードの複雑さと意味の多様性のため、これらのタスクは大規模なモデルでは依然として困難です。通常の自然言語処理と比較して、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 番目にパフォーマンスの優れたモデルは下線が引かれています。) このことから、次のような結論を導き出すことができます。
コード生成大規模言語モデルをトレーニングして正確で実行可能なコードを生成するのは困難な作業です。 CodeApex は主に、指定された説明に基づいてアルゴリズムを生成する LLM の能力を評価し、ユニット テストを通じて生成されたコードの正確性を自動的に評価します。 CodeApex のコード生成タスクには、バイナリ検索やグラフ アルゴリズムなどの一般的なアルゴリズムの知識ポイントを網羅した 476 個の C++ ベースのアルゴリズム問題が含まれています。 CodeApex は問題の説明と問題を実装する関数のプロトタイプを提供し、LLM に関数の主要部分を完成させることを要求します。 CodeApex では、関数のみとコンテキスト付き関数の 2 つのシナリオが提供されます。関数のみのシナリオでは、ターゲット関数の説明のみが提供されますが、コンテキスト付き関数のシナリオでは、ターゲット関数の説明だけでなく、ターゲット関数の呼び出しコード、時間と空間の制約、および入力と出力の説明も提供されます。 実験結果と結論各言語バージョンでは、2 つのプロンプト戦略 (関数のみとコンテキスト付き関数) が使用されます。人間によるコード テストのシナリオに合わせるために、評価メトリックには AC@1、AC@all、および AC レートが含まれます。 各モデルのコード生成タスクの結果は、次の 2 つの表に示されています。 (最適: 太字、次善: 下線) 次のような結論が導き出されます。
さらに、CodeApex は各シナリオにおけるコンパイル可能なコードの割合も提供します。生成された関数をメイン関数に接続した後、コンパイル可能なコードがテスト ケースによってチェックされます。 以下が見られます:
結論は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セキュリティメカニズムの評価はそれに依存する
私たちは職場における技術革命の真っ只中にいます。 1か月ちょっと前に世界の人口の3分の1が隔離された...
今日、ビッグデータ技術の発展と進歩により、大量のデータを収集および送信するための新しい、より効率的な...
かつて、人工知能医療診断の先駆者であったIBM Watson(通称ワトソン)は、現実世界における人工...
[[219484]] 2017 年に 1 年間眠っていたのに、突然目が覚めて、今年世界で最も誇るべ...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
「ビッグデータ」と「人工知能」はテクノロジー業界で最も価値のある分野となっている。Apple、Go...
現在、カリフォルニア大学リバーサイド校が率いるチームは、ジョージ・メイソン大学およびノートルダム...
敵対的機械学習とは、主に、攻撃者の能力と攻撃の結果の調査と理解に基づいて、セキュリティ上の課題 (攻...
最近、北京市交通委員会は新たに改訂された「北京市自動運転車両路上試験管理実施規則(試行)」を発行し、...
私の国が2019年に5Gを正式に開始してから2年以上が経ちました。 2021年に入り、わが国の5G開...
9月21日、第三者機関の最新の推計によると、人工知能チャットボット「ChatGPT」のトラフィック...
Adobe の最新の Digital Intelligence Briefing によると、トップク...
最も熱心な気候変動監視者でさえ希望を抱いている。なぜなら、人類の革新と技術が私たちをこの混乱に陥れた...