Linux Wi-Fiメンテナ、AIパッチに「3秒ルール」を宣言
Linuxカーネルの無線LANサブシステムを管理するヨハネス・ベルク氏が、AI生成パッチの大半を無視すると表明した。3秒見て正しさが自明でなければ読まない。
Linuxカーネルの無線LANサブシステムを管理するヨハネス・ベルク氏が、AI生成パッチの大半を無視すると表明した。3秒見て正しさが自明でなければ読まない。
syzbot、Wi-Fiサブシステムを去る
ベルク氏は802.11(Wi-Fi)、mac80211、WWAN、rfkillなど、Linuxカーネルの無線ネットワーキング全般を管理している。2007年からmac80211の責任者を務め、カーネルの無線スタックの大部分を自ら設計した人物だ。
現地時間8月6日、ベルク氏はカーネルメーリングリスト(LKML)に投稿し、syzbotが送ってくるAI生成パッチについて方針を示した。
syzbot-AI生成パッチのほぼすべてに対して、パッチを無視する権限を積極的に行使する。3秒のレビューで「明らかに正しい」と判断できない限り、そうする。LLMが別のコンピュータにメールを届けるより速くコードを吐き出せる相手と「通常通りパッチにコメントする」つもりは絶対にない
syzbotはGoogleが運営する自動ファジングシステムで、カーネルのバグを検出し、報告し、近年ではAIを使ってパッチの提案まで行う。
ベルク氏の投稿を受け、syzbotチームのアレクサンドル・ノギフ(Aleksandr Nogikh)氏が釈明した。AI生成パッチはすべて人間のエンジニアが事前にレビューし、承認したものだ。承認者の名前はFromフィールドとSigned-off-byに記載されている。LKMLへの送信後に自動返信や新バージョン送信もしない、と。
その上でsyzbotチームは、無線サブシステムへのAIパッチ送信を停止した。
「意味を考えているのか」
だがベルク氏の不満は、AIパッチの存在そのものではなかった。再返信で展開した論理は、レビュー体制の構造的な限界を突いている。
人間がレビューしたと言っても、結局のところ受け取っているのはLLMの出力を仲介者が通しただけだ、とベルク氏は指摘する。自分に時間があれば、LLMに直接話しかけて仲介者を飛ばした方がはるかに速い。
一方、仲介者が本当に必要な作業をしているなら、b4(パッチ管理ツール)の操作がハードルになっているとも思えない。
具体例がある。問題のパッチでは、switch文の2つのブランチにまったく同じ入力検証が重複して配置されていた。しかもブランチは2つしかない。
なぜ同じチェックを外に出さないのか。外に出せばエラーの返却順序が変わるが、変わった順序の方がNL80211_TDLS_ENABLE_LINKの処理としては論理的に正しい。
ベルク氏はこの点を突く。LLMが「狭い修正を作れ」と指示されたときにそこまで考えないのは当然だ。だが「人間のエンジニア」を名乗るなら、コードの意味を一歩引いて考えるべきだろう、と。
パッチを拒否しているのは、パッチの前にも途中にもコードの意味を誰も見ていないからだ。チェックをswitchの外に出せばエラーの順序が変わるか? 変わる。それは問題か? いや、NL80211_TDLS_ENABLE_LINKのエラー順序は、考えてみれば(!)むしろ新しい方が理にかなっている。LLMが「狭い修正」を指示されたときにそこまでやらないのは驚かないベルク氏は以前、貢献者のスラウォミール・ステピエン(Slawomir Stepien)氏に同じ指摘をしたことがある。議論を経て改善を試みたが、すべてのパッチに同じ手間はかけられないと述べている。
ベルク氏はステピエン氏ともう一人の貢献者クリスティアン・カニエフスキ(Krystian Kaniewski)氏に対し、巻き込んでしまったことを謝罪した。対象を限定した修正もバグ修正には違いないと認めつつ、設計を無視してチェックを各所に散らすやり方は長期的にスケールしない、と。
広がる拒否の波
ベルク氏だけではない。
7月15日、リーナス・トーバルズ氏がメーリングリストで立場を明言した。Linuxは「反AIプロジェクト」ではなく、AIも他と同じ道具だ。嫌なら fork(分岐)すればいい、と。AIツールの使用を禁じるのではなく、提出されたコードの技術的品質で判断する姿勢を改めて示した。
それから3週間後の8月4日、カーネルの事実上のNo.2であるグレッグ・クロア=ハートマン氏が、自身が管理するdrivers/staging/でLLM生成パッチの受け入れを原則禁止した。staging領域は新人開発者がカーネル開発を学ぶための場として設計されている。
コーディングスタイルの修正やAPIの整理など「手が届きやすい課題」を意図的に残してあり、LLMがそれを処理してしまえば学ぶ場が消える。唯一の例外は、実機でテスト済みのセキュリティ修正に限られる。
同時期、古いドライバーの削除も加速している。AIが誰も使っていないコードに修正パッチやバグ報告を送り続け、メンテナのレビュー帯域を圧迫するためだ。4月以降、ネットワーキングサブシステムだけで数万行のドライバーが削除されている。
7月15日 トーバルズ氏、反AIではないと明言 AIも他と同じ道具。嫌ならforkしろ 8月4日 staging領域でLLMパッチ禁止 新人の学ぶ場を守る。例外はセキュリティ修正のみ 8月5日 古いドライバーの削除が加速 AIのノイズでレビュー帯域が圧迫 8月6日 Wi-Fiメンテナ「3秒ルール」宣言 3秒で正しさが自明でなければ読まない 8月6日 syzbot、wireless停止 無線サブシステムへのAIパッチ送信を停止 |
コードを書く速度と、読む速度
トーバルズ氏の「AIは道具だ」という立場と、個別のサブシステムで進むAIパッチ拒否は矛盾しない。AI自体を否定しているメンテナはほぼいない。クロア=ハートマン氏自身、clankerブランチでAIを活用し、ksmbd/SMBコードのバグを発見している。
拒否されているのは、AIの使われ方だ。ベルク氏のメールが繰り返し指摘しているのはこの一点に尽きる。LLMはコードの意味を考えない。それ自体は驚くべきことではない。だが、仲介者もコードの意味を考えないまま修正を流し込むのであれば、レビューする人の時間だけが消費され続ける。
パッチを書く速度は機械が決める。パッチを読む速度は人が決める。その差は広がり続けている。