海外コメンタリー

競技プログラミングで実力、DeepMindのコード生成AI「AlphaCode」に見る可能性

Liam Tung (Special to ZDNET.com) 翻訳校正: 村上雅章 野崎裕子

2022-02-09 06:30

 開発者にとって、これから学習するプログラミング言語の選択は、時間という多大な投資がからむだけに大きな決断となる。しかし、人工知能(AI)モデルが問題内容の理解から解決策のコード化に至るまでを実行することで、開発者の作業の大半を肩代わりしてくれるような世界が実現されれば、そもそもこうした選択に悩む意味はなくなるはずだ。

 GoogleのAI部門であるDeepMindのリサーチャーらによると、同社の「AlphaCode」システムは、初級者レベルのプログラマーを対象とした競技プログラミングの問題に対する解決策をコードで表現し、平均的なスコアを獲得できるという。こうした競技プログラミングでは、自然言語で記述された問題を理解した上で、効率的なアルゴリズムをコード化する必要がある。

 DeepMindのリサーチャーらは、査読を控えている論文の中で、Codeforcesによって開催された競技プログラミングコンテストで出題された問題に挑戦した結果について記している。5000人を超える人々が参加した過去10回にわたるコンテストの問題をAlphaCodeに解かせたところ、平均ランキングで上位54.3%の位置に付ける成績を残したという。

 DeepMindはAlphaCodeについて、人間の開発者向けの競技プログラミングコンテストで互角に戦えるだけの実力を備えた初のAIコード生成システムだと述べている。この研究によって、プログラマーの生産性向上や、コーディング方法を知らない非プログラマーが解決策を表現する上での支援がもたらされる可能性もある。

 競技プログラミングにおいて人間、そしてAlphaCodeは課題やパズルの詳細を分析し、解決に向けたプログラムを迅速に記述する必要がある。これは、単純なコーディングの課題を解決するために、GitHubで公開されているデータを用いてモデルを訓練するよりも難度が高い作業だ。

 AlphaCodeは人間と同様に、自然言語で記述された、複数段落からなる問題の詳細や、その背景にある状況、望ましい解決策の説明について、入力と出力という観点から理解する必要がある。

 競技参加者は問題を解決するにあたり、アルゴリズムを考え出し、それを効率的に実装する必要がある。またこうした制約を乗り越えるために、例えばPythonではなくC++といった、より高速なプログラミング言語を選択する必要に迫られるかもしれない。

 AlphaCodeの事前訓練データセットには、GitHubのリポジトリーから取得された、C++やC#、Go、Java、JavaScript/TypeScript、Lua、Python、PHP、Ruby、Rust、Scalaで記述されたファイルが含まれており、その容量は715GBに及んでいる。またDeepMindのチームは、Codeforcesが開催した競技プログラミングコンテストの問題や類似のデータセットを用いてモデルを洗練させた。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

注目している大規模言語モデル(LLM)を教えてください

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]