katamari アーキテクチャ

LLM agent が『塊魂』のように機能をくっつけて膨らませる「katamari アーキテクチャ」。著者はスキル・可視性・変更の三つを主因に挙げ、非生成的な作り方で破れるかを問う。

日本語
コピー
《块魂》游戏封面:一个小人推着一颗越滚越大的球

あるいは、泥からどうやって星を作るか

lobste.rs のユーザー marginalia[1] は、指示が下手なソフトウェア開発 LLM agent の出力を『塊魂』の「katamari」に喩えた。あのゲームでは、雑多なものを転がして、見つけたものを何でも外側に貼り付けていく。この比喩は的確だ。agent 式の開発は機能をひたすら足し続け、全体の構成には目を向けない。prompt を最短で満たす経路を進むだけだ。給料が安く時間も足りない人間のエンジニアがやらかす最悪の癖を、全部備えている。ただ、この比喩は『塊魂』に対して不公平だと思う。あの魂の球は丁寧に作られている(もちろんアルゴリズムでだが、そのアルゴリズム自体が丁寧に設計されている)。でたらめに寄せ集めたように_見せる_のが目的で、しかも球を自然に丸くする方法は特許を出願できるほど複雑だった。対して LLM にはその判断力がない。提示者が求める新機能をどう適切に組み込むかが分からず、ただランダムに貼り付けていく(せいぜい何らかの確率分布に従う程度だ)。それでも katamari アーキテクチャという呼び名は耳を引くし、定着してほしいと思う。

Katamari アーキテクチャはすでに現実のものだが、手の施しようがないわけではない。過去の仕事から何か学べないか見てみよう。

最も分かりやすい対比は Big Ball of Mud アーキテクチャだ。Foote と Yoder は、いくつかの「力……が共謀して」BBoM が生まれると論じた。時間、コスト、経験、技能、可視性、複雑さ、規模である。駆動要因を調べるのは現象を理解する良い方法だ。まずチェスタトンをsteelmanし、それから彼の柵を貶せばいい。LLM はもちろんこの比喩を踏み潰す。柵を理不尽に広い世界のあちこちへ放り投げ、あなたが疑いの目で問い詰めれば、お世辞のようなでたらめを返しながら柵をランダムに動かし続ける。話が逸れた。同じ衝動が泥団子も katamari も生むのだろうか。

  • 時間:LLM には時間がいくらでもある。表面的には、どんな人間の開発者よりはるかに速く働き、夜も週末も休暇も止まらない。時間は問題ではない。

  • コスト:多くの企業は token 予算が無制限で、tokenmaxing に走る。LLM が本当にアーキテクチャを得意とするなら、コストは障害にならない。LLM の売りは人間より安く同じ仕事をすることだ。コストは問題ではない。

  • 経験:フロンティア LLM の訓練データは、歴史上書かれたソフトウェアのほぼすべてを(多かれ少なかれ)網羅し、あらゆる書籍、ブログ、フォーラム投稿も含む。LLM が知らないアーキテクチャ手法はない。ただしこの生き物の性質上、あなたが、ええと、prompt を与えない限り、無難な最大公約数的発想しか出てこない。経験は問題ではない。

  • 技能:議論の余地がある。LLM は他の自動化システムと同様、人間離れした「尖った」[2]知能を示す。驚くほど得意なタスクもあれば(大規模テキストコーパスでの制約の緩い検索)、笑えるほど下手なタスクもある(LLM の壮大な失敗は公表されたものだけで事欠かない。イチゴ症候群、洗車には車で行け、自動販売機は形而上学的に不可能など)。LLM の出力を審査して飯を食っている人間なら誰でも知っているように、彼らの間違いは人間がする間違いではなく、はるかに見つけにくい。技能の不足も katamari アーキテクチャの一因だろう。

  • 可視性[3]:LLM は先が見えないほど大量のコードを生成するのが得意で、それこそが問題の一部だ。+6,000/-400 sloc の PR を一行ずつ読む人間はいない。疲れるし、読んでも何も変わらない。コードベースに占める LLM 生成の割合が高いほど、可視性は悪くなる。Andrej Karpathy はもうコードを一切読んでいない。Foote と Yoder が言う通り、「システムが動いて出荷できるなら、中身がどうなっているか誰が気にする?」。これこそ現代の vibecoder の信条だ。認知を明け渡し、泥を受け入れよう。

  • 複雑さ:ほとんどのソフトウェアの本質的複雑さはかなり低く、この規模ではコンウェイの法則も当てはまらない。複雑さは BBoM の一部を説明できても、LLM が生む団子は説明できない。本当に複雑な領域では、ソフトウェアの大半は今も手書きだと推測するが、この勢いだと悪循環になる。

  • 変更:人的リソースは変更速度の自然なブレーキだ。自動コーディングは変更を加速する。LLM は新機能の実装を、要望を出すのと同じくらい簡単にする(かなり重い但し書きが付くが)。しかし人間による変更と違い、LLM による変更は既存のアーキテクチャ(それがアーキテクチャと呼べるなら)の上に積み重なる傾向があり、核心を突かない。LLM の影響を強く受けた団子コードベースは、よく設計された核(たいてい人間が設計したもの)を持ちながら、様式化された生活雑貨の層に覆われていることが多い。Agent がシステム全体を再設計しようと決めることはあるが、その能力を備えていることは稀だ。再設計や書き直しは、ソフトウェア職人にとって当然、複雑で苦痛で終わりのない作業と見なされている。LLM が独断で再設計に踏み込めば、失敗は決まっている。

  • 規模:Foote と Yoder の主張は(私の読み違いでなければ——原文は私にはやや曖昧だ)、もともと腕の良い設計者でも巨大プロジェクトに直面するとエレガントな解を見つけるのが難しくなる、というものだ。これは agent にはあまり当てはまらないと思う。小規模でも平凡な出来だ。とはいえ大規模になれば良くなるわけでもない。

このリストの主な要因は、スキル、可視性、そして変更だ。LLM は熟練した人間よりもうまくコードを書けない。それらはまったく新しい種類の不可視のコードであり、しかも空気抵抗を削ぎ落としてしまう——その抵抗こそが、もともとめちゃくちゃなプロジェクトを、一度に 15,000 sloc の PR を十個も出しながら一つの糞塊へと崩壊させずに済ませてきたのだ。

可視性の話は喉に引っかかって仕方ない。ユーザーがアプリの中の恐ろしい泥沼を見られないだけでも十分ひどいのに、今度は開発者までコードを読まないのか?我々は終わりだ chat

ではどうする?

LLM は加速主義の夢の実現だ。石炭を燃やし、井戸に毒を投げ込み、オープンネットワークを殺し、この惑星をハックする(雨林から始める)。潜在的な統合失調傾向を持つ者は全員排除しろ。信頼を時代遅れにしろ。名状しがたいものでインターネットを溢れさせろ。その先から我々が無限の再生可能エネルギー、無限の計算資源、安全で高性能なソフトウェア、著作権の廃止、そして普遍的な余暇を手にして出てくることを期待しろ。ついでにすべての病気も治せ。だが、億万長者が鍵を握っている限り、私のアナキスト的ユートピアは決して実現しない。jynの言うことが正しければ、数年以内に我々の携帯電話で Astra 級のモデルが動く。にわかには信じがたい。

信じるかどうかは別として、私は終末論者ではない。Vibecoder 連中は大いに間違っているが、この忌々しい球体を使ってより良いソフトウェアを構築することが明らかに可能ではある。私自身、これらの冥府の実体を我々の役に立つよう捻じ曲げる魔法を持っているとは主張しないが、非生成的な応用が最も有望だ。LLM には明らかに能力があり、丁寧に書かれたコードの中から本物のバグを見つけ出せる。fuzzing と同じで、その特権のためには膨大な計算資源を燃やす必要がある。そして fuzzing と同じで、超大規模ベンダーはお気に入りの OSS をバグなしに保つためなら、無料の計算資源を喜んで施し与える。

私が見たあるアイデアは、slopmeister とソフトウェアメンテナーの間の軍拡競争だ。「LLM を使ったと見抜けない限り、このコードベースに LLM でコントリビュートすることは許さない」。これは気に入っている——第一に、疲弊したメンテナーが、いい加減な PR を影の領域へと追いやる全権を得られる。第二に、Eliza の言葉を借りれば、「モデルが生成したコードを、もはやそう見えなくなるまで書き直す過程は、それを生成した者に、それを本当に徹底的に読み、理解することを強いる」。

Foote と Yoder は最終的に、BBoM は冷徹な合理的選択だと結論づけた——ソフトウェアは我々の足元であまりに速く変化するので、「その場しのぎで、切り開き、燃やし、使い捨てるプログラミングのやり方こそが、実際には最先端の戦略なのだ」。私は彼らに同意しないし、katamari アーキテクチャも大して変わらないと思う。BBoM も katamari アーキテクチャも対処療法であり、幻滅した実務家が負ったトラウマから生まれている——彼らは無限の虚栄機能を納品させられ、その見せかけの納品期限を何度も突き破らされてきた。ソフトウェアは世界を飲み込み、今度は我々を飲み込んでいる。我々に必要なのは、あの必死で全速力のリズムではなく、注意と集中だ。

私はより小さなソフトウェアを、バグが_より少なく_、より多くの金をもらいより少ない仕事をする人々によって作られることを望んでいる[4]。そして冗談で言っているわけではない!


  1. 優れた smallweb 検索エンジン marginalia の作者 ↩
  2. スパイクは「人間の基準」に対するものであり、つまり神経多様性(特に自閉症と ADHD)はしばしばスパイク型に分類される。私は LLM の知能が自閉症の知能に似ているなどと決して言っていない——両者のスパイクは一致しない。正常である方法は一つしかないが、異常である方法は複数ある。↩
  3. この檄文の残りの部分とは噛み合わない、より深い可視性の問題——LLM は多かれ少なかれブラックボックスだ(いくつか魅力的な試みの脳外科手術はあるものの)。中で何が起きているのか、我々はまったく知らない。説明可能 AI は今なお白昼夢であり、SOPHIE(聴くことを勧める)の時代と何も変わらない。↩
  4. 労働者所有の協同組合なら助けになるかもしれない。↩

出典: nove.dev← ホームへ戻る