AlphaCode がリリースされました! 「AlphaGo」のプログラミング版が静かに競争し、プログラマーの半数を破る

AlphaCode がリリースされました! 「AlphaGo」のプログラミング版が静かに競争し、プログラマーの半数を破る

本日、DeepMind の「Alpha」ファミリーに新しいメンバーが加わりました。

プログラミング競技の問題が解けるAlphaCodeが登場!

実際、AlphaCode は数か月前に「ひっそりと村に入り込んで」いたが、誰もそれに気づかなかった。

有名なウェブサイト Codeforces が最近開催した 10 回のプログラミング コンテストにひっそりと参加し、そのパフォーマンスは人間の半分を上回りました。

DeepMind が最終結果を発表したのは今日になってからだった。AlphaCode は Elo スコア 1238 で、これら 10 ゲームの上位 54.3% にランクインした。

さらに重要なのは、アルゴリズムの創造性をテストするプログラミング コンテストにおいて、AI がついに劣っていないことです。これはまさに、これまでの AI に欠けていたものです。

このスコアを過去 6 か月間全体で見ると、AlphaCode のパフォーマンスはさらに優れており、わずか 10 週間の質問でユーザーの上位 28% のレベルに達しています。

Codeforces は、ロシアのプログラマー Mikhail Mirzayanov によって設立されたプログラミング コンテストの Web サイトで、週に 1 回程度「Codeforces Rounds」と呼ばれるプログラミング コンテストを開催しています。

Codeforces の Elo スコアは、プログラマーのプログラミング レベルを測定できます。

△ Codeforces 創設者 ミハイル・ミルザヤノフ

AlphaCode の結果を見て、創設者のミルザヤノフ氏も驚きました。

プログラミングコンテストではアルゴリズムを考案する能力が最も難しいため、彼はもともと AI に対して懐疑的でした。しかし、予想外に、AlphaCode の結果は彼の期待を完全に上回りました。

DeepMindがこのメッセージを公開してからわずか半日で、Twitter上で2,000回以上リツイートされ、5,000回以上「いいね!」されました。

AlphaCodeのプログラミング方法

ここまで述べてきましたが、AlphaCode がどのようにして「プログラミング試験受験者」になったのかを見てみましょう。

Codeforces の 1553D の問題は次のとおりです。

(リンク: https://codeforces.com/problemset/problem/1553/D)

文字列は s と t の 2 つあり、どちらも小文字で構成されています。文字列 s の場合、文字列全体を前から後ろへスキャンします。

Backspace キーを押すと、カーソルから削除されていない最後の文字までのすべての文字が削除されます。

たとえば、文字列 s が「abcbd」の場合、それぞれ 1 番目と 4 番目の位置で Backspace キーを押すと、文字列「bd」が表示されます。

最初のカーソル位置の前に文字がないため、最初はアクションは発生しません。 4 番目のカーソル位置の前の文字は c で、削除されていない前の文字は a なので、Backspace キーを押すと最初の 3 文字「bd」が削除されます。

さて、ここで質問です。

文字列 s を前から後ろまでスキャンして、 s を t に変更できますか?はいの場合は YES を出力し、そうでない場合は NO を出力します。

AlphaCode によって与えられたコードは次のとおりです。

 t = int(入力())
iが範囲内(t)の場合:
s = 入力()
t = 入力()
a=[]
b=[]
s 内の j の場合:
a.append(j)
j が t の場合:
b.append(j)
a.reverse()
b.リバース()
c=[]
len(b)!=0かつlen(a)!=0の場合:
a[0]==b[0]の場合:
c.append(b.pop(0))
a.pop(0)
a[0]!=b[0]かつlen(a)!=1の場合:
a.pop(0)
a.pop(0)
a[0]!=b[0]かつlen(a)==1の場合:
a.pop(0)
len(b)==0の場合:
印刷("はい")
それ以外:
印刷("いいえ")

上記のプログラムに 4 セットの文字列を入力します。

 4
アババ

アババ
bb
ああ
ああ
アババ
アババ

出力は次のようになります。

はい
いいえ
いいえ
はい

ここで、AlphaCode はもはやブラック ボックスではありません。

問題が正常に解決されるだけでなく、コードの対応する場所と強調表示された領域も表示されます。

あるネットユーザーはこう言った。「AIはこんなに注意深く見ることができるのだから、コードの後に​​コメントを追加できるともっと良いだろう。」

その他の事例については、AlphaCode の Web サイトをご覧ください。

原理

DeepMindは、Codeforcesコンテストで求められる問題解決能力は既存のAIシステムの能力を超えていると述べた。

AlphaCode モデルのプロセス全体は次のとおりです。

  1. 標準の言語モデリング目標を使用して、GitHub で Transformer ベースの言語モデルを事前トレーニングします。このモデルは、人間が書いたコードの空間を適切に表現し、問題の検索空間を大幅に削減します。
  2. 競技プログラミング データセットでモデルを微調整し、GOLD とテンパリングをトレーニング目標として使用して、検索空間をさらに縮小し、事前トレーニングを使用して競技プログラミング データの少量を補います。
  3. 各問題に対してモデルから非常に多数のサンプルを生成します。
  4. サンプルはフィルタリングされ、インスタンス テストとクラスタリングを活用してプログラムの動作に基づいてサンプルを選択し、非表示のテスト ケースで評価される候補の送信の小さなセット (最大 10 個) が取得されます。

要約すると、大規模な Transformer モデルと大規模なサンプリングおよびフィルタリングを組み合わせることで、DeepMind は解決できる問題の数において、以前の研究よりも桁違いに多くの進歩を遂げました。

試験問題を練習する人は反対する

Codeforces の創設者が言ったように、アルゴリズムを発明することがプログラミングの問題の中で最も難しい部分です。

世界的なプログラミングコンテストのウェブサイトで常に上位にランクされている Google エンジニアの Petr Mitrichev 氏は、次のように述べています。

プログラミング競技の問題を解くのは非常に難しいことです。問題解決には、優れたコーディング スキルと人間の創造性の両方が必要です。

AlphaCode は最初のプログラミング ツールではありません。Codex と GitHub Copilot はどちらも印象的な印象を与えています。

しかし、DeepMind は AlphaCode が以前のものとは大きく異なると考えています。

最近の大規模言語モデルは、コード生成において優れた能力を発揮しており、単純なプログラミングタスクを実行できるようになりました。しかし、これらのモデルは、命令をコードに変換する以上の問題解決スキルを必要とする、より複雑で目に見えない問題で評価すると、依然としてパフォーマンスが低下します。

Twitterとはまったく対照的に、Codeforcesの専門家はより抵抗力があります。

あるプログラマーはこう考えました。「この AI は本当に初心者だ。」

AlphaCode の得点は学生レベルに相当する 1238 ポイントのみであるため、情報オリンピックに参加する中学生でもこのレベルに到達できます。

DeepMind は AlphaCode が人間を支援することを目的としていると主張しているが、一部のプログラマーは懸念し始めている。

今では問題解決の世界さえも AI に奪われてしまいました。本来はプログラマー同士が学び合う場でした。AI は適切なタイミングで立ち止まり、プログラマーのために清らかな土地を残すべきです。


<<:  機械知能に取って代わられない5つのスキル

>>:  実は不滅なんです!冬季オリンピックの水中聖火リレーはロボットでどのように行われたのでしょうか?どのようなハイテク技術が使われたのでしょうか?

ブログ    
ブログ    

推薦する

...

3D MRI および CT スキャンのディープラーニング モデルの概要

医療画像データと他の日常的な画像との最大の違いの 1 つは、DICOM シリーズ データを扱う場合、...

...

バックドアの王: 暗号化アルゴリズムにおける数学的バックドアについて語る

政府や諜報機関は、データや通信の暗号化保護を制御または回避しようとしており、暗号化アルゴリズムにバッ...

額をタップして入力できる。Googleエンジニアの「帽子型キーボード」は数え切れないほどのファンを魅了。自分で作ることもできる

キーボードと帽子を組み合わせたらどうなるでしょうか?冗談はさておき、Google 日本支社のエンジニ...

Google が「同時通訳」システム Translatotron を発表: テキスト変換なしの音声翻訳

Google AI の公式ブログ *** では、音声をテキストを挟まずに直接音声に翻訳できる実験的な...

機械学習とディープラーニングの5つの主な違い

前回のシリーズの記事「機械学習とディープラーニングの違いは何でしょうか?」に続き、簡単に説明した後、...

Googleは、自社のBardを含むチャットボットの使用には注意するよう従業員に警告している。

ロイター通信は6月19日、事情に詳しい4人の関係者の話として、グーグルの親会社アルファベットはチャッ...

李蘭娟氏との対話:人工知能は流行病を「すべて捕捉」し、医療をより正確にする

[[353851]] 「新型コロナウイルス感染症の突然の発生は、厳しい課題、不確実性、状況の進展の複...

MIT とハーバード大学が協力して、ニューラル ネットワークが自身の強みを理解する方法を研究しています。

ニューラルネットワークはますます使用されるようになっています。 [[357551]]医療診断であれ、...

ディープラーニングの限界と将来

[[227297]]注: この記事は、Keras の作者である François Chollet に...