Linus Torvalds氏がLinuxカーネルのコード作成にAIを取り入れていることに、一部で強い反発が起きています。同氏はこうした声に向けてメッセージを発しました。筆者にも言いたいことがあります。
Tux Machinesの編集者Roy Schestowitz氏は、このニュースへの反応を「Linus Torvalds Turns to Slop(Linus Torvaldsは「スロップ」に走った).」とまとめました。ポッドキャストのPivot to AI、のDavid Gerard氏も「Linuxカーネルは全面的にAIスロップコードに走った」と同調しています。一方、Tom’s Hardwareのコメント欄では、「LordVile」というユーザーが「これは、彼の給料を払っているAIの親玉たち[Linux Foundation]による宣伝工作だ」と書き込みました。さらに、「彼がAIに関して態度を二転三転させたのも同じ理由だ」とも述べています。
筆者はLinus氏と数十年来の知り合いですが、同氏がAIを使っているからといって、急に自らの基準を捨てたとは考えていません。そもそも、Linux Foundationや他の誰かのために、Linuxで自分のやりたくないことをするなど、あり得ない話です。
とはいえ、懸念は理解できます。AIを疑う理由はいくつもあり、筆者もその多くを記事にしてきました。たとえばAIモデルの崩壊です。これはAIエンジンが他のAIモデルから学習を重ね、真実との結びつきが薄れていく現象で、非常に現実的な問題です。そもそも大規模言語モデル(LLM)が回答の材料を集める元の情報源自体、あまり信頼できるものばかりではありません。
プログラミングのように、AIが質の高いデータを得られる分野でも、状況は変わりません。AI事業者は、コーディングの技を学び取った元のオープンソースコードを守る著作権やライセンスに、ほとんど、あるいはまったく注意を払っていません。学習に使う情報への対価に至っては論外です。巨大AI企業が、作品を利用する書き手やアーティストらに対価を払うべきだという考え方は、彼らにとって忌むべきものだからです。
そうした問題はあるものの、こと プログラミングに関しては、もう流れは決まっています。批判する人がどう思おうと、AIはプログラミングの道具箱の一部になりつつあります。なぜでしょうか。「バイブコーディング」だけで製品品質のソフトウェアを納品することは、依然としてできません。しかしTorvalds氏のように、自分が何をしているかを理解している人がAIを使えば、非常に役立つからです。
これを否定する人は、ラッダイト運動と同じ過ちを犯しています。「ラッダイトとは何者か」と思う読者もいるでしょう。19世紀初頭、賃金や生計を脅かす変化への抗議として機械を襲撃した繊維労働者たちです。今でも手で布を織る人はいますが、産業としての生産は機械化されました。同じことが、AIとプログラミングで起きています。筆者は、その過程のちょうど半ばまで来たとみています。2030年ごろには、「手作業」でプログラミングする人は、今日の手織り職人と同じくらい珍しくなるでしょう。
AIには、互いに独立した2つの問題があります。1つは、AIが本物のバグを見つけ出す大規模なコードベースがあり、ただでさえ多忙なメンテナーの作業が大幅に増えていること。もう1つは、対象のコードを実際には理解しないまま、AIでパッチを生成する人たちがいることです。
Linus Torvalds氏
要は、割り切るしかないということです。筆者自身も好んでいるわけではありません。文章を書くことで生計を立てており、筆者の仕事も圧迫されています。少なくともプログラミングでは、どう作られたかに関係なく、質の高い成果物が評価されます。一方、文章の世界では、本物のAIスロップが例外ではなく、ますます当たり前になりつつあります。
Linuxの話に戻ります。先日プラハで開かれたLinux Kernel Maintainers Summitで、Linuxカーネル開発者のSasha Levin氏は、メンテナーらが「Assisted-byタグを非推奨にする」ことを決めたと発表しました。つまり、コードの投稿にAIを使ったかどうかを、もう申告する必要はなくなります。
だからといって、スロップを提出してよいわけではありません。そうしたコードは審査を通りません。Torvalds氏は先日、筆者宛てのメッセージで次のように述べています。「『コミットメッセージにAIを使うな』といった類いの主張は……善意からかもしれませんが、完全に的外れだと思います。私は、有能な人々がAIをツールとして使うことをこそ、望むべきだと考えています」
ここで重要なのは「有能な」という言葉です。Torvalds氏はこうも書いています。「『何もわかっていない人がAIを使う』問題は別物です。これは抑止したいと考えています。AIを使いながら、本気で学び、カーネルコミュニティの役に立つ一員になりたいと願う人を、抑止するつもりはありません。抑止したいのは、やっつけのパッチや、パッチを送った気分になりたいだけで、それ以上の存在になるつもりなどない人たちです。誰でも最初は何もわかりませんが、時間と労力をかけて成長する人もいます」。まさにそのとおりです。
Torvalds氏はOpen Source Summit Europeで、こう語っていました。「[バイブコーディングは]プログラミングの楽しさを見つける素晴らしい方法だと思います。自分が意味のあることをしていると感じられます。新米プログラマーが、本来ならとても苦労することをできるようにしてくれます」。さらに「入り口となる薬物(ゲートウェイドラッグ)としてのAIという考え方は気に入っています」とも述べ、プログラミングへの入り口としての役割を評価しました。
そもそも、AIがLinuxコードの改善にすでに大いに役立つことは実証済みです。長年Linuxカーネルのメンテナーを務めるGreg Kroah-Hartman氏は、3月に筆者にこう語っていました。「数カ月前までは、いわゆる『AIスロップ』、つまり明らかに間違っていたり質が低かったりするAI生成のセキュリティ報告が届いていました」。ところが、「1カ月前に何かが起き、状況が一変しました。今は本物の報告が届いています」。同氏によると、これはLinuxに限った話ではありません。「あらゆるオープンソースプロジェクトに、AIで作成された本物の報告が届いています。それらは質が高く、本物です」
確かに、メンテナーは今や質の高いバグ報告に埋もれています。しかし、プラハでKroah-Hartman氏と話したとおり、AIによるバグ発見は、見つけやすい問題をいずれ出し尽くし、メンテナーの負担が軽くなる可能性があります。
AIのもう1つの成果は、LinuxにWindowsドライバーをリバースエンジニアリングして移植する作業が、AIで楽になることです。Red Hatのソフトウェアエンジニアリング担当ディレクターChristian F.K. Schaller氏は、スライドスキャナー向けのLinuxドライバーを開発する中で、hw-harnessを作成しました。このオープンソースプロジェクトは、「ハードウェアの挙動を解明し、Linuxドライバーを書くためのツール」を提供します。
バイナリのみのドライバーがハードウェアに対して何をしているかを突き止める作業は、非常に遅く面倒な手順の連続でした。Schaller氏はその一部を自動化し、WindowsドライバーからLinuxドライバーを作る作業をはるかに容易にしました。筆者も2000年代半ばに同じ作業をしたことがありますが、今でも人々が使っているのは、当時と同じ手作業の方法です。これは、Linuxデスクトップに長く残る悩みの種、つまりハードウェアドライバーが不十分、あるいはまったく存在しない問題の解決に大きく寄与する可能性があります。
Torvalds氏は、筆者にこうも語りました。「公平に言えば、私たちには確かに『AI問題』があります。正確には、互いに独立した2つのAI問題があります。1つは、AIが本物のバグを見つけ出す大規模なコードベースがあり、ただでさえかなり多忙なメンテナーの作業が大幅に増えていること。もう1つは、対象のコードを実際には理解しないまま、AIでパッチを生成する人たちがいることです」
同氏は続けます。「ただし、これらはAIそのものの問題ではなく、AIによってあらわになった問題だと考えています。どちらも非常に現実的な問題であり、それらのせいでAIを嫌い、憎むようになる人がいるのも理解できます。しかし、根本的な原因はAIそのものではないと思います」
問題は、人々がAIをどう誤用するかです。Linuxのトッププログラマーたちが示しているように、使い手が適切であれば、AIは役に立ちます。®