BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース OpenAIが120億パラメータのコード生成AI Codexを発表

OpenAIが120億パラメータのコード生成AI Codexを発表

原文(投稿日:2021/08/31)へのリンク

OpenAIは最近、Codexを発表した。自然言語の記述からプログラムコードを生成するAIモデルだ。CodexはGPT-3言語モデルをベースとしている。GPT-3の0%と比較して、OpenAIの公開されているHumanEvalテストデータセットの問題の70%以上を解決できる。

OpenAIの研究チームは、arXivに公開した論文でそのモデルについて説明した。Codexは、GitHubのCopilotを強化する技術と同じものをベースとしており、公開されているPythonコードを使ってチューニングされたGPT-3モデルだ。システムのパフォーマンスをベンチマークするために、チームは手動でHumanEvalを作成した。これはオープンソースのテストデータセットで、モデルのプロンプトと、生成されたコードの有効性を確認するための一連の単体テストで構成される164のプログラミング問題である。Codexが問題ごとに1つのソリューションを生成したときに、ユニットテストは問題の28.7%に合格した。問題ごとに100のソリューションを生成することを許可された場合に、Codexが少なくとも1つの正しい結果を生成したものは、問題の77.5%に至った。

2018年に、OpenAIは生成型事前トレーニング済みトランスフォーマー(GPT)に関する論文を最初に公開した。NLPタスクのいくつかで最先端の結果を達成した教師なし学習モデルだ。GPT-2と呼ばれる1.5Bパラメータモデルが2019年にリリースされた。昨年、OpenAIは175BパラメータモデルのGPT-3を発表した。実験中に、モデルがコード生成のために明示的にトレーニングされなくても、「Pythonのdocstringから単純なプログラムを生成」できることがわかった。

Codexを開発するために、OpenAIは事前トレーニングされたGPT-3モデルから始めた。次に、チームは5,400万の公開GitHubリポジトリからPythonコードファイルを収集し、最終的なデータセットを159GBに絞り込んだ。モデルはGPT-3と同じテキストトークナイザーを使用する。コード内の単語の分布が自然言語と異なるため、研究者はこれが最適ではないことを発見した。さらに、Pythonコードには重要な空白が含まれているため、チームは空白の「実行」を表すトークンの追加セットを導入した。

文献にある他の以前のコード生成モデルでは、多くの場合、出力がリファレンス出力に対してファジーマッチを使ってベンチマークされる。たとえば、BLEUスコアがある。対照的に、OpenAIチームは、評価に機能的正当性を使用することを選んだ。これが人間の開発者がコードを判断する方法であると主張している。使用される特定のメトリックはpass@kである。これは、モデルがk個のコードサンプルを生成し、いずれかのサンプルが単体テストに合格した場合、モデルは問題を解決したことを意味する。12BパラメータCodexモデルは、k=1で28.8%、k=100で72.31%のスコアを達成した。これに対し、TabNineの最大の無料モデルではそれぞれ2.58%と7.59%、GPT-Jでは11.6%と27.74%である。

OpenAIは、自身のAPIにCodexを追加することに加えて、GitHubと連携して、このモデルをGitHubのCopilotコード生成ツールに組み込んだ。CodexもCopilotもオープンソースではないが、類似のオープンソースプロジェクトがいくつかある。昨年、MicrosoftはBERTをベースとするコード生成モデルのCodeBERTをオープンソース化した。今年8月、NovelAIはGPT-JをベースにしたモデルのGenjiを発売した。

Codexに関するHacker Newsのディスカッションで、あるコメント提供者は、ベンチマークでは良好に機能しているにもかかわらず、インタビューやコード競合の質問ではモデルのパフォーマンスが低いと指摘した。

これは、Codexが構文以外の言語について実際には何も理解していないことを示しています。将来のシステムがこのベンチマークで改善されることは間違いありません。ASTを活用したり、RLのような報酬関数で単体テストを使用できるかもしれません。

OpenAIのHumanEvalデータセットはGitHubで入手できる。

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT