Codex よりも優れた C 言語を記述できる AI コード生成モデルがオープンソース化されました。 最近、AI を使ってコードを書くことが非常に人気になってきており、その中で最も有名なのは OpenAI の Codex と DeepMind の AlphaCode です。 △ Codex に基づく Copilot ただし、これら 2 つの AI モデルはどちらもオープンソースではありません。 AlphaCode はいくつかのテスト例のみを提供しますが、Codex は API のみを公開します。 この目的のために、CMU の複数の研究者が GPT-2 を使用して、オープンソースの PolyCoder と呼ばれる AI コード生成モデルを作成しました。 研究者によると、PolyCoder の最大パラメータ数は 27 億個 (Codex のパラメータ数は 120 億個) しかないものの、C 言語で記述された PolyCoder が生成するコードは Codex よりも優れているとのことです。 ここでの秘密は何でしょうか? 12のプログラミング言語のコードセットを学習まず、PolyCoder の最大の特徴の 1 つでもあるトレーニング データセットを見てみましょう。 これまで、Codex や CodeParrot などの AI コード生成モデルは、主に Python 言語コードに基づいてトレーニングされていました。 たとえば、Codex の評価データセットの 1 つである HumanEval も、Python コード生成の効果を評価します。 対照的に、PolyCoder はトレーニングに合計 12 個のさまざまなプログラミング言語コード セットを使用します。 C、C#、C++、Go、Java、JavaScript、PHP、Python、Ruby、Rust、Scala、TypeScript。 その中で、C 言語のコード量が最も多く、221 GB に達しています。一方、Python コード データの量は、Codex や CodeParrot で使用される量よりも少ないです。 ここで、PolyCoder は GitHub 上の公開コードを使用し、主にさまざまなプログラミング言語で人気のあるライブラリを選択します。これらのライブラリにはそれぞれ少なくとも 50 個のスターがあります。 研究者によると、モデル生成コードが最も人気のあるプログラミング言語に偏りすぎるのを避けるため、各プログラミング言語ライブラリの星の総数は 25,000 を超えない (一般的に、プログラミング言語の人気が高いほど、ライブラリの星の数が多くなる)。 ライブラリからファイルを抽出し、簡単な処理(重複コードの削除を含む)を実行することで、合計約 254 GB のデータがトレーニング用に選別されました。 次に事前トレーニング方法があります。 言語モデルの事前トレーニングには通常 3 つの方法があります。 1 つ目は左から右への言語モデルで、前のテキストに基づいて次のテキストを予測し、コード生成などにより適しています。2 つ目はマスクされた言語モデルで、コンテキストに基づいてマスクされたフラグメントを予測し、コード分類などにより適しています。3 つ目はエンコーダー デコーダー モデルで、コード注釈などのタスクにより適しています。 ここで、PolyCoder は主に最初の事前トレーニング方法を採用します。 同じく GPT-2 でトレーニングされた CodeParrot や Codex と比較すると、PolyCoder ではハイパーパラメータ設定に若干の違いがあります。 PolyCoder は、それぞれ 27 億、4 億、1 億 6 千万のパラメータを持つ 3 つの異なるモデルを提供します。研究者は、自分のニーズとさまざまなトレーニング機能に応じて適切なモデルを選択できます。 では、最終的に学習したAIモデルのコード生成効果はどの程度なのでしょうか? 私は C を書くのは得意ですが、Python は得意ではありません。研究者らは、PolyCoder を既存の AI コード生成モデルと比較しました。 AlphaCodeは比較が難しい(インターフェースがオープンではない)ため、研究者は主にGPT-Neo、CodeParrot、Codexなどのモデルを分析しました。 青いものはオープンソースで、オレンジ色のものはオープンソースではありません。 パラメータ数に関して言えば、PolyCoder は最高ではありません。27 億のパラメータを持つ最大のモデルは Codex の 4 分の 1 未満です。 研究者らはまず、言語モデルの評価に一般的に使用される困惑度測定基準を使用して、さまざまなモデルを比較しました。 困惑度は言語モデル (LM) の品質を測定するために使用されます。困惑度が低いほど、言語モデルがコードに関して混乱することが少なくなり、モデル生成効果が向上します。 図から、PolyCoder が予想外に C 言語で最高の結果 (最も混乱が少ない) を達成したことがわかります。 PolyCoder を大量の C 言語でトレーニングした結果、モデルの全体的な原理は変更せず (GPT-2 ベース)、トレーニングに使用するコード セットを変更するだけで、さまざまな言語スタイルに適した AI コード生成モデルをトレーニングできることがわかりました。 残念ながら、他の言語では、生成された結果は Codex とまったく比較になりません。 たとえば、主に Python コードの評価に使用される HumanEval では、PolyCoder の機能は Codex に比べてはるかに劣っています。 論文の分析によると、これは Python コード データとモデル パラメータが不十分なために発生した可能性があります。 さらに、著者らは、PolyCoder を作成した主な目的は、AI コード生成モデルをオープンソース化し、より多くの人が研究に参加して使用できるようにすることだとも述べています。 コードは現在オープンソースなので、直接使用したり、コードに基づいて新しいモデルを開発したりすることができます。 興味のある友人はぜひ試してみてください! 著者について第一著者の Frank Xu 氏は現在 CMU の博士課程の学生です。彼の研究対象は NLP と情報抽出です。彼は ICLR、ACL、EMNLP などのトップ カンファレンスで多数の論文を発表しています。彼は上海交通大学で朱其立教授の指導の下、学士号と修士号を取得しました。 Uri Alon は CMU のポスドク研究員であり、プログラミング言語処理 (PLP)、NLP、ディープラーニングなどの研究を行っています。 Graham Neubig 氏は CMU の助教授です。彼の研究対象には、NLP、機械翻訳、機械学習に基づく自然言語理解などがあります。 Vincent J. Hellendoorn 氏は CMU のコンピュータ サイエンスの助教授です。彼の主な研究分野はソフトウェア エンジニアリングと機械学習です。彼は、ソフトウェア開発者がコードのデバッグやプログラムの最適化などの面倒な作業に費やす時間を削減できるように、インテリジェントな方法を使用することに尽力しています。 プロジェクトアドレス:https://github.com/VHellendoorn/コード-LMs 論文の宛先:https://arxiv.org/abs/2202.13169 |
<<: 上海交通大学が「人間行動理解エンジン」を発表:AIが超大作映画のあらゆる行動をフレームごとに理解
>>: スマートビルディング技術のトレンド: 5つの将来のアイデアと例
これは、会社のアルゴリズム グループの同僚向けに作成された技術ロードマップです。主な目的は、技術ルー...
この調査の結果、人工知能と機械学習、クラウドコンピューティング、5Gテクノロジーが2022年に影響を...
産業社会の急速かつ安定した発展は、完璧なインフラと切り離すことはできません。ディープラーニングフレー...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
クラスタリング分析は、データ ポイントを複数の特定のクラスターまたはグループに分割する教師なし学習手...
[51CTO.comよりオリジナル記事] 9月25日、DAMOアカデミーの張建鋒学長は杭州雲奇カンフ...
実際の人間の顔の 3 次元モデリング、合成、再照明は、コンピュータ グラフィックスの分野で高い応用価...
AlphaGoとイ・セドルの戦いの後、ディープラーニング技術は国内で非常に人気が高まった。多くの技術...