虎嗅

日本語の見出し: 「コードの価格が下がっているが、現実はそうではない:AIコーディングが直面する最初の壁」 解説: この見出しは、AIを活用したコーディングサービスが普及する中で、実際にはコードの作成コストが大幅に下がっているわけではないという現実を指摘しています。AIコーディングは開発効率を高める可能性がありますが、コードの品質や専門性にはまだ課題があるため、実際のビジネス現場では大きな障害となっています。見出しには「最初の壁」と表現されており、これから解決すべき多くの問題があることを示唆しています。

原文:代码在变便宜,现实没有:AI Coding 撞上的第一堵墙

核要内容のまとめ

この記事は、STM32ハードウェアのバグの実例を通じて、AIが純粋なソフトウェア分野では優れた性能を発揮するものの、実際の物理世界(ハードウェア、ロボット、自動車など)に進出する際に直面する重大な障害を明らかにしています。その障害とは、物理世界の多くの重要な情報がデジタル化されておらず、AIには見えないこと、そして観測そのものが結果を変えてしまい、AIが問題の根本原因を見つけるのが困難になるという点です。記事では、AIが物理世界を制御するためには、「物理世界のデジタル化」という工学的な問題を解決する必要があり(AIに「目や耳」を与える必要がある)、そして人間のエンジニアの価値は「機械が何を見落としているかを知ること」に移行するだろうと指摘しています。

一、AIは純粋なソフトウェアでは「優秀」だが、ハードウェアの現実では「途方に暮れる」

AIはコードの作成やソフトウェアバグの修正において非常に優れていますが、それはAIが人間よりも賢いからではなく、ソフトウェアの世界が本来「デジタルに優しい」からです。要求、コード、エラーログなどはすべてテキスト形式であり、テスト結果も「合格/不合格」という構造化されたデータです。AIは「コードの作成→コンパイル→テスト→コードの修正」というプロセスを自動的に行い、テストがすべて合格であれば、そのタスクが完了したと判断します。

しかし、ハードウェアの現実では事情が異なります。例えば、記事に登場するSTM32ボードが偶発的にネットワーク接続を失うと、AIは長い時間をかけても原因を見つけることができません。なぜならAIはコードしか見ておらず、電源電圧の瞬間的な低下やメモリアドレスの重複、DMA(高速データ転送チャネル)とキャッシュの衝突といった「目に見えない要因」を把握できないからです。これらの問題には原因と現象の間に安定した関係がなく、AIにはそのようなデータがないため、自然と問題を推測することができません。

二、現実世界のバグはAIの「見えない場所」に隠されている

Webサービスのエラーは「接続失敗」や「配列オーバーライド」といった明確なメッセージを出しますが、実際のハードウェアのエラーはランダムであいまいです。時折ネットワークが切断されたり、夏になると問題が発生したり、デバッガを接続すると問題が解消されたり、ログを追加するとバグが消えたりします。これらの問題の根本原因はコード内にあるわけではなく、コードの外にあります:

  • ハードウェアレベル:電圧の変動、温度の上昇、チップのバッチ間の違い、PCB基板の配線の問題など。
  • システムレベル:メモリの2つの領域が重なっていたり(例えば、送信キューと動的メモリが同じ領域を使用している場合)、DMAが読み取ったデータがまだメモリに書き込まれていないなど。
  • 環境レベル:電磁干渉、バスの競合(複数のデバイスが同じデータバスを共有する場合)など。

これらの要因のほとんどはAIが理解できるデジタル情報に変換されていないため、AIがどんなに賢くても問題を見つけることはできません。まるで「盲人が象を触る」ような状態です。

三、観測するとバグは「隠れてしまう」——観測が現実を変えてしまう

ハードウェアのデバッグには厄介な特徴があります。問題を観察しようとすると、逆に問題自体が変わってしまうのです。例えば、ログを追加するとシステムの動作タイミングが変わり、元々存在していたバグが消えてしまうことがあります。デバッガを接続すると割り込みの応答速度が変わり、コードの最適化レベルを-O2から-O0に下げるとバグが消えることもあります。

AIはこのような仕組みを理解していません。AIは見たコードやログに基づいて推測するしかありません。例えば、「ログを追加した後にバグが消えた」としても、それをログが問題を修正したためだと思いがちですが、実際にはタイミングが変わったためかもしれません。これが経験豊富なエンジニアが「直感」で迅速に問題を特定できる理由です。彼らは観測がシステムに影響を与えることを知っており、AIにはそのような「現実経験」がありません。

四、未来のAIには現実を理解させるために「目や耳」を与える必要がある

記事では、AIが物理世界(ロボット、自動車、産業機器など)に進出するためには、モデルが賢いだけでは不十分であり、重要なのはAIに現実を「見せる」ことだと述べています。これには一連の「物理世界のデジタル化」の作業が必要です:

  • より多くのセンサーを追加する:電圧、温度、振動を測定するセンサーなど。
  • より多くのデータを記録する:チップのレジスタ状態、バスの転送トレース、オシロスコープの波形など。
  • ハードウェアアーキテクチャを最適化する:AIが「自分が送信した命令が実際に実行されたかどうかを確認できるようにする(例えば、ロボットが本当に停止したか、デバイスが本当に停止したかなど)。

そして、人間のエンジニアの価値も「コードを書くことができる」から「機械が何を見落としているかを知ること」へと変わります。例えば、どのような状態がソフトウェアの推測によるものか(実際ではないものか)、どのような「成功」がAPIの返答によるものか(実際の動作ではないものか)、どのようなセキュリティ判断が古い情報に基づいているかなどです。AIが大量のコードを自動的に生成できるようになったとき、最も危険なのは「コードに誤りがある」ことではなく、「システムがスムーズに動作するが、現実の理解が最初から間違っている」ことです。

最後のまとめ

AIは純粋なデジタル世界では非常に優れていますが、物理世界を制御するためには、まず現実をAIが理解できるデジタル情報に変換する必要があります。これにはより賢いモデルだけでなく、「目、耳、神経」を与えることも必要です。人間のエンジニアの役割は、AIが見落としている現実の情報を補うことにあります。