競技プログラミングのコード生成で上位54%以内を達成,AlphaCode
Competition-Level Code Generation with AlphaCode
- 自然言語からコード生成するシステムAlphaCodeを提案
- モデルは巨大な(最大41B)transformer encode-decoder
- 競技プログラミングCidefircesの最近10件のコンテストで評価を行い5000人以上の中で平均54.3%のランキング達成
- 評価では「k件の生成結果の中からn件を提出し,解決された問題の割合」を意味するn@kという指標を使う
問題の例
問題は次のようなもの.文字列sとtが与えられ,sを構成する文字を入力しながら何回かbackspaceで文字を削除する操作を混ぜることでtの文字列を作ることができるかを問う.作ることができるならYES, できないならNOを出力する.入力形式は最初の行に問題の数,次の行からsとtが1行ずつ記載される.問題数4ならs,tが4つずつなので合計9行の入力が来る(問題数の行も入れれば9行)
提案手法が出力した回答
入力文字列を逆順にし,whileループ内で先頭から文字を消していく方法でsがtを一致するか確認するプログラムを生成できている