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 よりも劣っていました。


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

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

ブログ    
ブログ    

推薦する

2024年のテクノロジートレンド

2024年を見据えて、多くの技術リーダーや観察者は、AIが依然として会話や企業計画の中心となるだろう...

なぜ巨人たちはドローンに群がるのか?

近年、我が国のドローン産業は急速な発展を遂げています。飛行制御、ナビゲーション、通信、センシングなど...

...

...

騒動を巻き起こしたディープマインドの論文は万能ではない

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

2021年には、神経科学AIにいくつかの大きなトレンドがあります

新年が私たちに手を振っています。素晴らしい革命の伝統を引き継ぎ、最新の AI 専門家の予測レポートを...

AI Factory がコンセプトから産業化まで迅速かつ安全に移行する方法

[[374390]]人工知能 (AI) は、組織によって競争上の優位性を獲得するための重要なテクノロ...

ディープラーニングを超える新しいAIプログラミング言語Genについて1つの記事で学びましょう

AI の急速な発展は多くの人々の学習意欲をかき立てていますが、初心者にとっては大量の手動プログラミン...

マイクロソフトは、対話してマルチモーダルコンテンツを生成できる AI モデル CoDi をリリースしました。

マイクロソフトは 7 月 11 日にプレスリリースを発行し、Combinable Diffusion...

Keras の創設者: ディープラーニング関連の仕事は過去 6 か月で減少

[[340767]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

2021 年に備えるべきビジネス インテリジェンスのトレンド トップ 10

2020 年には多くの業界セクターが根本的な変化を経験しましたが、ビジネス インテリジェンス業界も...

...

人工知能は「絶滅危惧」言語の保護に大きな役割を果たすかもしれません!

国連の統計によると、私たちが住む地球上には西暦8世紀以降、2万以上の人間の言語が出現しましたが、今日...

アリババに採用された中国の高レベル科学者がAIがもたらす想像力の空間について語る

彼はかつてアマゾンの中国トップレベルの科学者であり、1年前に世界の小売業界にセンセーションを巻き起こ...