こんにちは!研修講師の伊藤です🍁
文章を作り、画像を描き、プログラムまで書けるようになったAI。
最近では、簡単な指示を出すだけでWebサイトやアプリのコードを作ってくれることもあります。ここまでできるなら、AIは自分自身を動かしている仕組みも作れるのでしょうか?
そんな少し不思議な疑問を調べた研究が発表されました💡
今回は、Φ-Bench(ファイ・ベンチ)という研究をもとに、AIが苦戦した意外な仕事をご紹介します。
1.AIが苦戦したのは、⚪︎⚪︎な仕事
今回の研究でAIに任せたのは、AIモデルそのものを作る仕事ではありません。
AIが学習したり、私たちの質問に回答したりするために必要なソフトウェア基盤の開発です。
例えば、ChatGPTのようなAIに質問すると、裏側では大量の計算が行われます。その計算をできるだけ速く、少ない負荷で処理するためには、さまざまなプログラムが必要です。
処理の順番を調整したり、データを効率よく読み込んだり、GPUを無駄なく動かしたりする仕組みも欠かせません。
AIはプログラムを書くことが得意になってきました。
そこで研究チームは、次の疑問を持ちました。
AIは、自分自身を動かしている基盤も開発・改善できるのか?
自分が動くための仕組みを自分で改善する。少しSFのようですが、すでに実際のテストが行われています。
2. そもそも「AIを動かす基盤」とは?
AIモデルを料理人に例えてみましょう🍳
どれだけ腕の良い料理人でも、包丁が切れなかったり、冷蔵庫が遠くにあったり、コンロが一つしかなかったりすると、料理を素早く提供できません。
AIも同じです。
AIモデルが優秀でも、その周りのシステムが遅ければ回答には時間がかかります。大量の利用者が同時にアクセスすれば、処理が追いつかなくなるかもしれません。
ちなみに、「厨房」にあたる部分がAIインフラです。インフラとは、サービスを動かすための土台や基盤を指します。
AIインフラには、次のような技術が含まれます。
- AIの計算を高速化する処理
- GPUの能力を効率よく使う仕組み
- 大量のデータを読み書きする仕組み
- 複数のコンピュータへ処理を分ける仕組み
- AIから安定して回答を返す仕組み
この基盤を改善できれば、AIの回答を速くしたり運用にかかる費用を抑えたりできます。
ただし、優秀な料理人が厨房設計の専門家とは限りませんよね。
AIにも、同じことがいえるようです。
3. AIに85の基盤開発を任せてみた
研究チームが開発したΦ-Benchには、全部で85の課題があります📝
簡単なプログラミング問題を集めたものではありません。実際の研究論文や、公開されているAI基盤のコードをもとに作られています。
課題は、大きく3段階に分かれています。
1つ目は、指定された処理を完成させる課題です。修正する場所が決まっているため、コードの穴埋めに近い問題です。
2つ目は、大きなプログラム全体を読み、複数のファイルを修正する課題です。どこを直せばよいかも、AI自身が考えなければなりません。
3つ目は、システム全体を速くする課題です。
この課題では「ここを直してください」とは教えてもらえません。AIが処理を調べ、遅くなっている場所を探し、改善方法を考える必要があります。
さらに、実行して、速度を測り、エラーが出たら修正する。思ったほど速くならなければ、別の方法を試す。実際のエンジニアが行うような試行錯誤まで求められます。
AIにとっては、かなり手ごわい実技試験です🔥
4. 最高性能でも36.53%。なぜ難しかった?
複数の高性能AIがΦ-Benchに挑戦した結果、最高得点は36.53%でした。
特に苦戦したのが、ハードウェアやエッジ環境に関する分野です。この分野では、すべてのAIの中で最も高い結果でも5.4%にとどまりました...
ハードウェアとは、GPUやメモリなどの物理的な機器です。エッジ環境は、クラウド上の大きなサーバーではなく、スマートフォンや小型端末など利用者に近い場所で処理する環境を指します。
なぜ、コードを書けるAIでも苦戦したのでしょうか。
大きな理由は、正しいプログラムを書くだけでは解決できないからです。
システムを高速化するには、まず処理が遅い原因を探す必要があります。そのうえで、GPUの特徴やメモリの使い方を考え、複数の部品への影響を確認しながら修正します。
一つの処理だけ速くなっても、別の部分が遅くなればシステム全体は改善しません。正しく動いていても、以前より多くのメモリを使ってしまう場合もあります。
AIは部分的なコードを書くことには強くなっています。
一方で、システム全体を見ながら「どこを直すべきか」「この変更は別の部分へ影響しないか」と判断する仕事には、まだ大きな壁があるようです💦
5. AI時代にエンジニアへ求められること
今回の結果だけを見ると、「AIには基盤開発は無理なのか...」と思うかもしれません。
しかし、まったくできなかったわけではありません。
課題によっては、AIが修正と検証を繰り返しながら結果を改善できました。AIはすでに、基盤開発の一部を支援できる段階まで来ています。
ただし、すべてを安心して任せられる状態ではありません。
AIが作ったコードは正しいのか。処理は本当に速くなったのか。ほかの機能に問題は起きていないか。最終的には、システム全体を理解できる人が確認する必要があります!
AIがコードを書いてくれる時代だからこそ、エンジニアには「コードを書く力」だけでなく「仕組みを理解して判断する力」が求められます。
便利なツールを使えることと、その裏側を理解していることは別です。
AIへ任せられる作業が増えた今こそ、プログラミングやコンピュータの基礎を学ぶ意味は、むしろ大きくなっているのかもしれませんね。
参考:Φ-Bench: Can Large Language Models Engineer the Infrastructure That Powers Them?