chokudaiのブログ

chokudai(高橋直大)のブログです

競技プログラミングとChatGPTを含むAIについて

はじめに

この記事は、ChatGPTを受けての競プロ周りの情報、およびchokudai個人の意見を発信したものです。基本的にはAtCoderの運営についても同方針を取る予定ですが、方針が変わり次第、AtCoderのHP/Twitter等で告知されます。

 

現在のAtCoderにおける競プロAIの実力についての事実

AtCoderのコンテストに対するソースコードはインターネット上に多くあり、おそらくそれを学習してChatGPTなどが作成されているため、過去問を利用して解ける/解けないを判定すると、過剰に解ける側に寄ってしまいます。

そこで、最新のコンテストで調査した事例について、Twitterからいくつか引用します。

C問題までは解け、D問題は難しい、といった感じでした。

ABC279の正解状況

ABC280の正解状況

これらの結果を見た限りでは、「AtCoderの茶色に届くかどうかくらいの力がある」というのが、ChatGPT単体での実力だと思います。分布で言うと赤の矢印のあたり。回によっては茶色上位くらいまでは行くかもしれませんが、緑は厳しそうに見えます。

実は競技プログラミングAIというのは2022年2月の頃にDeepMindから発信されており、その時は、別サイトにて「上位54%の実力」と言われていたため、競プロの実力自体は特別新しい結果ではなく、ライトユーザーが簡単に試せるようになった点や、対話でコードを変更出来る点が新しい点ではないか、と考えています。

atmarkit.itmedia.co.jp

 

競技としての楽しさと競プロAI

AtCoderで提供する競技プログラミングは、教育的な面もありながら、最も重点を置いているのは競技性です。スポーツとして様々な人に楽しんでもらうのが、AtCoderの運営意義となります。

ChatGPTの登場で、競技性がどう変わるか、という話ですと、初心者~初級者帯においては少し楽しくない方向に変わり、中級者帯においてはほぼ変わらないか、新しい楽しみが生まれる、というのが現在の考えです。

前半部分はあまり楽しくない方向性に変わるかな、と思っています。問題文を張り付けてAIの出力を提出することは、やり方を考えてコードを書くことと比べて一般に楽しくはありませんし、AIの出力を読んで手動で軽微なバグ修正を行う、というのもあまり楽しくはなさそうです。

後半部分は、AIがそのまま解ける問題はほぼ存在せず、普通に使う分には何も変わらないのが現状です。後々紹介しますが、対話によってアルゴリズムをAIと作り上げていく、ということが可能であり、こちらは面白いかもしれない、と考えています。

いずれにせよ、現時点においては、ある程度の順位を取るには、自力でアルゴリズムを考え、コードを書くことが不可欠であり、ChatGPTで上位を獲得できる、という状況ではなく、競技性は崩れていないと言えそうです。

 

教育面についてと競プロAI

競技プログラミングに参加するためには、これまではプログラミングの知識が必要でした。ですが、今後競技プログラミングをやる上では、日本語でのAIとの対話のみでコードを生成・修正する、という選択肢が生まれます。

様々なものがAI化されていく中、今後「AIと対話する能力」の重要性は高まっていくでしょう。その点において、AIと対話しながらコードを作っていく、という行為は、むしろ良いことだと言えます。

一方、AtCoder Beginner ContestのA~C問題がChatGPTなどで解けるようになってしまうと、これらの問題は、自力で書くよりAIツールを使った方が良い、ということになり得ます。こうなってしまうと、競技プログラミングを学び始めたばかりの初学者が、簡単な問題でコーディングの基礎を身に着けることのないまま、AIに解けない高難易度問題に挑戦する形になり、学習を阻害する恐れがあります。使用することで瞬間的には成績が伸びるかもしれませんが、頭打ちが早くなりそうです。

AtCoderでの競プロAIでの使用可否

以上により、AtCoderにおいて、AIを使って回答することは、禁止ではないが、コピペだけの利用については非推奨、としたいと思います。

禁止をしない理由は、

  • AIが書いたコードか人間が書いたコードかを見分けることは困難であり、そもそも禁止することが難しい
  • 多くのユーザにとって、現時点では、競プロの楽しみを阻害するものにはなっていない

という点が挙げられます。

コピペのみでの取り組みを非推奨とする理由は、

  • 初学者の理解を妨げたり、モチベーションの減少につながりやすい
  • 単純にゲームや競技として見た時に面白くない

という点が挙げられます。

監視体制が取れるオンサイトコンテストのみ禁止、というのも今後ありえなくはないですが、そのレベルで「コピペだけで良い成績が取れる」となるのは現時点ではないと考えています。

 

AIの登場における競プロ自体の価値の変化

この章については、状況がすぐに変わるので、あくまで現時点で自分が知り得ているものについての言及となります。

AtCoderでは、以下のコンテストを提供しています。

Algorithm系
Heuristic系

このうち、競プロAIで解けたことが確認できているのは、AtCoder Beginner Contestの前半の問題のみとなります。

Beginner Contestという名前に反して、上位者でも楽しめるコンテストではありますが、扱う内容は教育を意識した基礎的なものであり、アドホックな実装が少ないものとなります。Regular ContestやGrand Contestでは、その問題に合わせた思考が必要となりますが、こうした問題はまだ競プロAIでは解けていません。

 

競プロ以外を見た時に、チャットAIでは以下のような傾向があるように思えます。

  • 単純に覚えれば良いもの、書き方を参照すれば良いものは答えられる
  • 工夫が必要なものはあまり答えられない
  • 単純なバグなどは自力で修正出来るが、根本的なロジックは修正出来ない

となった時に、問題に合わせたアドホックな計算量改善が出来るAtCoderのようなアルゴリズム設計能力は、現時点でAIが解決できていないジャンルであり、むしろAI登場前よりも相対的に価値が高まっているのではないか、と個人的には感じています。

「どれだけ幅広い典型的な知識や落とし穴を知っているか」の価値が落ちているように感じ、その問題固有の特徴に対して、もう少し上のレイヤーで物事を考える部分に価値があるのかな?と思います。

もちろんこれはあくまで現時点での話であり、今後はどうなるか分かりません。特に、競技として明確であるために、入出力の仕様などがはっきりしている競技プログラミングは、比較的AIで扱いやすそうなジャンルです。いつブレイクスルーが起き、人間を越えるAIが出てきてもおかしくない状況です。ですが、イラストAIの急激な進化を見ると、何が出来るようになるか、何が出来ないままになるかは、一切予想がつかない、と言ってもいいのではないかと思います。

 

まとめ

ChatGPTの登場は衝撃的でしたが、現状競技プログラミングに与える影響は小さいと言えます。今後、AIの進化などにより、状況が変わればまたルールの検討などを行いますが、今のところは特に制限せずとも、競技性が大きく変わることはなさそうです。

今後もAIの動向については注視していきたいと考えています。

AtCoderの社長のままトヨタ自動車にアルゴリズムグループを作った話

2022年1月より、トヨタ自動車 デジタル変革推進室 に主査(担当部長)としてジョインし、6月より、アルゴリズムグループを新設しました。

 

(22/08/09 11:40追記) アルゴリズムグループについての情報は以下のページにあります!!! (追記おわり)

atcoder.jp

「なんで急にそんなことやってるの?」、「AtCoderの業務に集中しろよ!って思う人もちょこちょこいると思うので、そのあたりの考えを、AtCoder社長としての立場で書きたいと思います。

 

続きを読む

Google Hash Code 2022優勝しました!

Googleが主催するプログラミングコンテストGoogle Hash Code 2022」で優勝しました!わーい!登録チーム数10000以上、提出チーム数も9031と、非常に大きな大会です。

Algorithm系のコンテスト(AtCoderだとABC,ARC,AGC)とHeuristic系のコンテスト(AtCoderだとAHC)があるのだけど、Heuristic系だと間違いなく最高峰のコンテスト。嬉しい!

ぶっちゃけ予選はともかく決勝はチームメイトのおかげだけど……><

3位も日本勢だし、Heuristic系の日本勢の強さが分かる。いいね!

 

続きを読む

競技プログラミングの在り方 ~「競技プログラミングを我々が終わらせる」を受けて~

nuc.hatenadiary.org

 

競技プログラミングについての言及があったのですが、バズってる+競技プログラミングについて、納得がいかない記述がかなり多く見受けられたので、反論記事を書きました。

 

続きを読む

NewsPicksのプロピッカーになりました

4/1よりNewsPicksのプロピッカーになったので、NewsPicksについて考えていること、なんでプロピッカーの活動をしようと思ったか、あたりをブログに書いておきます!

newspicks.com

続きを読む

ITベンチャー社長のTwitter活用戦術について

主語がちょっと大きいですが、せっかく話題になったので、自分のTwitterに対する戦術・考え方を書いていきたいと思います。

あんまりこういう戦略を書くものでもないと思ってはいるものの、色々誤解されてるよりは、考えを把握してもらえた方がまだ理解が得やすいかなあ、ということで。興味がある方だけどうぞ。

 

続きを読む

ウェブ電通報で連載をはじめました

dentsu-ho.com

 

ウェブ電通報で、まさかのプログラミング記事を書きました。

ターゲットがいつもと違うので、色々難しかった>< (マーケティング系の人たちが読んでいる?みたいです)

ぜひ読んでみてくださいー! 宣伝記事でした!