CMU がオープンソースの AI コード生成モデルを作成、C 言語は Codex を上回る

CMU がオープンソースの AI コード生成モデルを作成、C 言語は Codex を上回る

最近、言語モデル (LM) は、プログラミング言語のソースコードのモデリングにおいて優れたパフォーマンスを示しています。これらのモデルは、自動コード生成や自然言語記述からのコード生成などの下流タスクに優れています。現在のSOTA大規模言語コードモデル(Austin et al. (2021)など)は、AIベースのプログラミング支援の分野で大きな進歩を遂げています。さらに、OpenAI が立ち上げた Codex は、ユーザーのコンテキストに基づいてコードを自動生成する IDE 内開発者アシスタントとして、実際の制作ツール GitHub Copilot に導入されています。

大規模な言語コード モデルは大きな成功を収めていますが、最も強力なモデルは公開されていません。これにより、リソースが豊富な企業以外ではこれらのモデルを適用することができなくなり、リソースの乏しい機関ではこの分野の研究が制限されます。たとえば、Codex はブラックボックス API 呼び出しを介してモデルの出力への有料アクセスを提供していますが、モデルの重みとトレーニング データは利用できません。これにより、研究者がコード補完以外のドメインやタスクに適応するためにモデルを微調整することが防止されます。モデルの内部にアクセスできないと、解釈可能性、より効率的な展開のためのモデルの蒸留、融合検索などの追加コンポーネントなど、モデルのその他の重要な側面を研究する研究コミュニティもできなくなります。

一方、GPTNeo、GPT-J、GPT-NeoX などの中規模および大規模の事前トレーニング済み言語モデルが公開されています。これらのモデルは、ニュース記事、オンライン フォーラム、少数の GitHub ソフトウェア リポジトリなど、さまざまなテキストの組み合わせでトレーニングされていますが、妥当なパフォーマンスでソース コードを生成するために使用できます。さらに、180GB の Python コードでトレーニングされた CodeParrot など、ソース コードのみでトレーニングされた新しいオープン ソース言語モデルもいくつかあります。

残念ながら、これらのモデルのトレーニング スキームのサイズと多様性の比較や、モデル同士の比較が不足しており、多くのモデリングとトレーニング設計の決定の影響は不明のままです。

最近の論文では、カーネギーメロン大学コンピュータサイエンス学部の数人の研究者が、Codex、GPT-J、GPT-Neo、GPT-NeoX、CodeParrot など、さまざまなプログラミング言語にわたる既存のコードモデルの体系的な評価を実施しました。これらのモデルを比較することで、コード モデリング設計の決定の状況をさらに理解し、欠けている重要な点を指摘したいと考えています。現在まで、複数のプログラミング言語のコード用に特別にトレーニングされた大規模なオープン ソース言語モデルは存在しません。研究者らは、1億6000万から27億までのパラメータを持つ3つのモデルを発表し、「PolyCoder」と名付けた。

  • 論文アドレス: https://arxiv.org/pdf/2202.13169.pdf
  • プロジェクトアドレス: https://github.com/VHellendoorn/Code-LMs

研究者らはまず、PolyCoder、オープンソースモデル、Codexのトレーニングと評価の設定を広範囲に比較しました。次に、これらのモデルをHumanEvalベンチマークで評価し、さまざまなサイズとトレーニングステップのモデルがどのように拡張されるか、さまざまな温度が生成品質にどのように影響するかを比較しました。最後に、HumanEvalは自然言語とPythonの生成のみを評価するため、12の言語それぞれに対応する目に見えない評価データセットを作成し、さまざまなモデルの困惑度を評価しました。

結果によると、Codex は Python で最高であると主張していますが、他のプログラミング言語でも驚くほど優れたパフォーマンスを発揮し、Pile (言語モデルのトレーニング用に特別に設計された 825G のデータセット) でトレーニングされた GPT-J や GPT-NeoX よりも優れたパフォーマンスを発揮します。ただし、C 言語では、PolyCoder モデルは Codex を含む他のすべてのモデルよりも低い複雑度を実現します。

下の図 1 は、Codex と Austin'21 を除くすべてのオープンソースの既存の言語コード モデルとそのサイズおよび可用性を示しています。

研究者らは、下の図 2 に示すように、コード言語モデリングで使用される 3 つの一般的な事前トレーニング方法についても説明しました。

評価セットアップ

すべてのモデルは、外部および内部ベンチマークを使用して評価されました。

外部評価。コード モデリングの最も一般的なダウンストリーム タスクの 1 つは、自然言語記述に基づくコード生成です。 Chen et al. (2021) に従い、HumanEval データセットですべてのモデルを評価しました。データセットには、コードコメントと関数定義の形式で記述された 164 個のヒントが含まれており、これにはパラメータ名と関数名のほか、生成されたコードが正しいかどうかを判断するために使用されるテスト ケースが含まれます。

内部評価。さまざまなモデルの本質的なパフォーマンスを評価するために、研究者たちは、目に見えない一連の GitHub リポジトリで各言語の難しさを計算しました。また、GPT-NeoやGPT-Jなどのモデルのトレーニングからテストまでのプロセスでのデータ漏洩を防ぐため、評価データセット上のPileトレーニングデータセットのGitHub部分に表示されていたリポジトリを削除しました。

モデル比較

研究者は主に、コード補完タスクに最適な自己回帰事前トレーニング済み言語モデルを選択しました。具体的には、OpenAI が開発し、現在実世界で導入され、コード補完タスクで優れたパフォーマンスを実証しているモデルである Codex を評価しました。 Codex は、2020 年 5 月に GitHub から取得した 5,400 万の公開 Python リポジトリの 179 GB (重複排除済み) データセットでトレーニングされました。

オープンソースモデルに関しては、研究者らはGPTの3つのバリアントモデル、GPT-Neo(27億パラメータ)、GPT-J(60億パラメータ)、GPT-NeoX(200億パラメータ)を比較しました。その中でも、GPT-NeoX は現在利用可能な最大のオープンソースの事前トレーニング済み言語モデルです。これらのモデルは Pile データセットでトレーニングされます。

現在、コミュニティには、複数のプログラミング言語コード用に特別にトレーニングされた大規模なオープンソース言語モデルがありません。この欠点を補うために、研究者らは、12 種類のプログラミング言語を網羅した GitHub のリポジトリのコレクションで、27 億のパラメータを持つモデルである PolyCoder をトレーニングしました。

ポリコーダデータ

オリジナル コード リポジトリのコレクション。研究者らは、2021年10月に12の一般的なプログラミング言語について、GitHub上で50以上のスターを獲得した最も人気のあるリポジトリを複製した。フィルタリングされていない初期のデータセットは 631 GB で、ファイル数は 3,890 万個でした。

次に、データの前処理が実行されます。 PolyCoder、CodeParrot、Codex のデータ前処理戦略の詳細な比較を表 2 に示します。

最後に、重複排除とフィルタリングがあります。全体として、非常に大きいファイルと非常に小さいファイルを除外し、重複データを削除することで、ファイルの合計数が 38% 削減され、データセットのサイズが 61% 削減されました。以下の表 1 は、フィルタリング前後のデータセット サイズの変化を示しています。

PolyCoder トレーニング

研究者は予算を考慮して、モデルアーキテクチャとして GPT-2 を選択しました。モデルサイズのスケーリングの影響を調査するために、研究者らはそれぞれ 1 億 6000 万、4 億、27 億のパラメータを持つ PolyCoder モデルをトレーニングし、27 億パラメータのモデルを使用して GPT-Neo と公平に比較​​しました。

研究者らは、GPT-NeoX ツールキットを使用して、単一のマシン上で 8 つの NVIDIA RTX 8000 GPU と並行してモデルを効率的にトレーニングしました。 27 億のパラメータを持つ PolyCode モデルのトレーニングには約 6 週間かかります。デフォルト設定では、PolyCode モデルは 320,000 ステップトレーニングされる必要があります。しかし、手元にあるリソースが限られているため、学習率の減衰を元の半分に調整し、150,000 ステップのトレーニングを行いました。

1 億 6000 万、4 億、27 億のパラメータを持つ PolyCode モデルのトレーニング損失曲線と検証損失曲線を、下の図 3 に示します。 150,000 回のトレーニング ステップを経た後でも、検証損失は依然として減少していることがわかります。

以下の表 3 は、さまざまなコード モデルをトレーニングする際の設計上の決定とハイパーパラメータの比較を示しています。

実験結果

外部評価

全体的な結果は、以下の表 4 に示されています。既存のモデルの中で、PolyCoder は、同様のサイズの GPT-Neo や、より小型の Codex 300M よりも性能が劣ります。全体的に、このモデルは Codex や GPT-Neo/J ほど優れてはいませんが、CodeParrot よりは優れています。

スケーリングの影響。モデル パラメータの数が HumanEval コード補完のパフォーマンスに与える影響をさらに理解するために、研究者は、以下の図 4 に Pass@1、Pass@10、Pass@100 のパフォーマンスの変化を示しました。

温度の影響。上記の結果はすべて、異なる温度で言語モデルをサンプリングし、各メトリックに最適な値を選択することによって得られます。研究者たちは、異なる温度が最終的な造形品質にどのように影響するかにも興味を持っており、その結果が下の図 5 に示されています。

内部評価

評価データセットにおけるさまざまなモデルの困惑度の結果を、以下の図 6 に示します。最大の困惑スコアは 4 です。ご覧のとおり、PolyCoder は Codex や C 言語の他のすべてのモデルよりも優れています。また、オープンソース モデルのみと比較すると、PolyCoder は C、JavaScript、Rust、Scala、TypeScript において、同様のサイズの GPT-Neo 2.7B よりも優れたパフォーマンスを発揮します。

さらに、C を除く他の 11 言語については、PolyCoder を含むすべてのオープン ソース モデルのパフォーマンスは Codex よりも劣っていました。


<<:  データと人工知能の整合性をどのように確保するか?

>>:  人工知能は航空宇宙に貢献しており、我が国の有人宇宙計画の宇宙ステーションの軌道上建設ミッションは着実に前進している。

ブログ    
ブログ    

推薦する

人工知能は私たちの言語を理解するのでしょうか?思っていたよりも強力だ

2016年3月の「人間対機械」は、機械に対する認識を一新した。世界一の囲碁名人イ・セドルが、人工知能...

210,000のボーナスがあなたを待っています! 「ファーウェイクラウドカップ」全国AIコンテスト募集中

現在、神府改革革新モデル区、華為(遼寧)人工知能イノベーションセンター、上海交通大学が共催する神府モ...

Transformerが3Dモデリングに革命を起こし、MeshGPT生成結果がプロのモデラーやネットユーザーに衝撃を与える:革命的なアイデア

コンピュータグラフィックスでは、「三角メッシュ」は 3D 幾何学的オブジェクトの主な表現であり、ゲー...

詳細 | ビッグデータアルゴリズムアプリケーションのテストの開発

[[324462]]アリ姉の紹介:近年、データコンピューティング能力と機械知能アルゴリズムの台頭によ...

専門家の洞察: ディープラーニングとその可能性

[[419428]] 「ディープラーニング」は最近、物理セキュリティ業界で人気の高い専門用語の 1 ...

ガートナー 2019 人工知能成熟サイクルのトレンド

このガートナーのハイプサイクルは、AIが企業に及ぼすさまざまな影響を強調しています。ガートナーの 2...

人工知能は産業の発展を促進し、産業構造のアップグレードを加速する

トップレベルの設計を継続的に改善し、コンピュータービジョン、音声認識、機械学習、ナレッジグラフなどの...

GTA6のトレーラーは1億回以上再生されており、3人のAI巨人も数秒でGTAギャングに変身できる

新しいGTAゲームの予告編を見ましたか?この予告編は3つのギネス世界記録を破り、再生回数は1億回を超...

数学を使わずに円の面積を計算する方法

機械学習の手法を使用して円の面積を計算します。円の面積はいくらかと誰かに尋ねると、r²だと答えるでし...

...

コード生成のためのツリーベースのTransformerアーキテクチャ

導入:コード生成は、プログラマーの生産性を大幅に向上させる可能性を秘めた重要な AI 問題です。自然...

GPT 1周年深夜の雑談: プログラミングなしで誰もが GPT を定義できる時代が到来!

執筆者 | Yun Zhao制作:51CTO テクノロジースタック(WeChat ID:blog)深...

人工知能がスマートファクトリーにもたらす力

現在、製造業における人工知能技術の応用が急成長しています。自社にとって適切な人工知能ツールをどのよう...

サイバーセキュリティにおける人工知能の4つの利点と課題

この記事では、サイバーセキュリティにおける機械学習と人工知能について説明します。 AI の利点と課題...