AI・機械学習
LLMはUnixが勝利した証拠である
LLMs are proof that Unix won (bastian.rieck.me)
要約
この記事は、大規模言語モデル(LLM)の登場が、長年にわたるUnix哲学の勝利を証明していると論じています。LLMは、ユーザーが自然言語で指示を出すことで、かつてはコマンドラインツールを駆使して行っていた複雑なタスクを実行できるようになりました。これは、Unixの「一つのことをうまくやる」「プログラムを連携させる」「テキストストリームを扱う」という哲学が、現代のAIにおいても普遍的なインターフェースとして生き続けていることを示唆しています。
全文翻訳
LLMはUnixが勝利した証拠である
タグ: musings
公開日: 2026年8月20日 木曜日
« 前の記事: 科学者のための誓約
私がUnixと「Unixライク」なオペレーティングシステムについて初めて学んだとき、私は興味をそそられました。それまで私は、カラフルなWindows 3.1の世界しか知りませんでした。日本の木工細工のように、すべてが一つのブロックから削り出されたように見え、明白な亀裂はありませんでした(ただし、日本の木工細工は堅牢であり、Windows 3.1では真顔で同じことは言えません)。
初めてコマンドラインプロンプトの前に座ったときの驚きを想像してみてください。点滅するカーソルが私に何かを入力するように促しましたが、当初は、私がすでにコンピューターができると知っていたことを達成する明白な方法はありませんでした。 formidableなパズル—私は夢中になりました!
幸いにも、近所の村にあった驚くほど品揃えの良い図書館のおかげで、Unixにはさまざまな種類や進化上のいとこがいること、そしてそれらの挙動の一部がPOSIXのような標準によって成文化されていることを学びました。また、GNUと、すべてをロックダウンし、いじくり回すことを防ぐことにしか興味がないように見える世界に、このすべてのソフトウェアを無料で提供した初期のハッカーたちの英雄的な努力についても学びました。おお、素晴らしい新世界よ!
しかし、私は粘り強く続けました。絶えず点滅するプロンプトを睨みつけ、それを入力しました。多くの月日が流れ、FreeBSDとの寄り道を終えた後も、私は熱心なLinuxユーザーであり続けています。それは私の作業スタイルに合っているからです。私は危険を冒して生きるのが好きで、重要な締め切りの直前にカーネルアップデートを延期することがよくあります—なんとスリリングなことでしょう—そして一般的に、どんな窮地からも抜け出せるという自分の能力について楽観的です。
私が評価しているのは、Linuxが私の自己効力感を(自己肯定感を)発揮させてくれることです。本質的に、それを使用することによって私が経験する可能性のあるほぼすべての苦痛は、ある程度、自己責任です。これは、次のiOSアップデートが私のデバイスを破壊しないことを祈るか、あるいは他のくだらないことを祈るよりもずっと良い気分です。
この態度は、しばしば無表情で見られたり、理解できない人々からの「とにかく…」という決まり文句で返されたりします。つまり、巨大なオタク、ニール・スティーブンソンのファン、または余暇が豊富にある人以外は、ほとんどすべての人々です。
niceな危険の感覚に加えて、Linuxが私を最も惹きつけるのは、デジタル粘土のように私の目的に合わせてそれを成形できる能力です。私が使用するコマンドラインツールの多くは、かなり長い間存在していますが1、それでも驚くほどうまく機能し、次のようなことを可能にしてくれます:
rg -t py "^\s*url =" \
| grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" \
| awk -F/ '{print $3}' \
| sort \
| uniq -c \
| sort -rn
自然言語で言うと、このコマンドの目的は、現在のディレクトリとそのサブディレクトリ内のすべてのPythonファイルでurlという名前の変数に割り当てられたURLからgithub.comのようなドメイン名を抽出し、カウントすることです。
これがあなたにとって gibberish(意味不明な言葉)のように聞こえるなら、私の若い頃の血気盛んな自分は、(neo)vimと活気に満ちて、古い「Linuxは非常にユーザーフレンドリーです。ただ、友達には非常にうるさいだけです」と言ってあなたを叩いたでしょう。はい、若い頃の私は、職人のように敵を作るのが得意でした。3
年月の知恵と円熟とともに、私は今では外交的になるでしょうが、このコンピューターとの作業方法が多くの人にとって so alien(非常に異質)であることは、今でも奇妙に思えます。
現代のGUIしか使ったことのない人に私の古いワークフローを説明するのは、Flatland(平面世界)に住む人に高次元を説明するようなものです。最良の場合、彼らは politely(丁寧に)耳を傾け、あなたの言葉を mildly odd(少し奇妙)として却下し、自分の古いやり方に戻るでしょう。
しかし、再び、私は粘り強く、コンピューターはあなたが好きなものを作ることを可能にする汎用インターフェースを提供するべきだという私の確信を貫きました。
GUIは、あなたがどのようなパスをたどりたいかを推測する必要があるため、このニーズを部分的にしか満たせません。対照的に、昔のUnixの長老たちは、ユーザーの行動を推測したり、レールに乗せたりすることは futile(無駄)であると悟り、代わりに、特定の哲学に従う少数の小さなツールをすべての人に装備することを選びました:一つのことをうまくやるプログラムを書け。プログラムを連携させて動け。テキストストリームを処理するプログラムを書け。なぜなら、それが universal interface(普遍的なインターフェース)だからだ。
数十年経っても、これは still works(まだ機能しています)。プログラムはより大きく、より複雑になりましたが、ビデオ編集のような非常に特定のケースではより便利になりました—しかし、多くのマシンの中心には、ほぼ無限の楽しみを提供する素晴らしいインターフェースがあります。4
しかし、CLIのドワーフとGUIのエルフの間のギャップを広げる代わりに、予期せぬことが起こりました。すなわち、大規模言語モデルの開発です。
最初はユーザーに単なる入力ボックスしか提供しませんでしたが、それは多くの人にとって deliberate break in habits(意図的な習慣の断絶)を構成しました。ここには、あなたがどのような種類の画像を作成したいかを指定するGUIはありませんでした。プロンプトは、あなたが大きな夢を見るように daring you(あなたを大胆にさせていました)。
一部の人にとっては、それはショッキングでさえあったに違いありません—プログラムがあなたに何をするように指示しないのは unheard of(前代未聞)でした。5
そして進歩は進み、初期のプロンプト6を、自然言語での ever-refined queries(常に洗練されたクエリ)のために置き去りにしました。
今や、awk、grep、そしてその仲間について知る必要はなくなり、お気に入りのLLMに尋ねることができます:
現在のディレクトリとそのサブディレクトリ内のすべてのPythonファイルでurlという名前の変数に割り当てられたURLからgithub.comのようなドメイン名を抽出し、カウントするにはどうすればよいですか?
出力は quite competent(かなり有能)です:
grep -rhoP "url\w*\s*=\s*['\"]\Khttps?://[^'\"]+" --include="*.py" .
| sed -E 's#https?://##; s#/.*##'
| sort
| uniq -c
| sort -rn
コマンドは多かれ少なかれ同じことをします。私の手作りのrgコマンドは隠しディレクトリを自動的に無視しますが、通常はコードを検索するときにそうしたいことです。しかし、私はLLMにそのコンテキストを提供しませんでした。さらに、-PはBSDバリアントのgrepを使用するオペレーティングシステムでは失敗します。ここでも、LLMはコンテキストを欠いていますが、このコマンドは私がターミナルにコピー&ペーストすると機能します。
私はCLIツールの一つを使って、自然言語コマンドと古いUnixの呪文との間の翻訳者としてLLMに機能させ、コマンドを直接実行させることさえできます。
その意味で、LLMはUnix哲学を体現しています。
もちろん、このアナロジーには馬が簡単に通り抜けられるほど大きな穴があります。LLMは小さくもなく、一つのことをするわけでもありません—あなたがそれを実行するのに、確かにうまくやっていないとさえ主張できることもあります。
これらの問題にもかかわらず、LLMはテキストがuniversal interface(普遍的なインターフェース)であることを理解しています。
ユーザーがコンピューターに話しかける方法を学ぶ必要があった代わりに、コンピューターがあなたに話しかけてくるようになりました。
数年前、この考えはutterly optimistic(完全に楽観的)に見えたでしょう。「テキストとトークン化」が汎用AIモデルを構築するためのレシピであると誰も予想しなかったでしょう。
しかし、私たちはここにいます。GUIに頼ることはますます少なくなり、代わりに、愛するUnixライクなインターフェースに戻っています。
AIを取り巻くすべての問題にもかかわらず7、私たちは何十年にもわたる vindication(正当化)から some comfort(いくらかの慰め)を見出すことができるかもしれません:テキストが至高であり、Unixが勝利したのです。
ほとんど、あるいはすべてが私の学生よりも古い。いくつかは私自身よりも古い。時は流れる。
↩︎
これらはおそらくより効率的な方法があるでしょう。もしあれば教えてください—私は自分のCLI知識が最高だとは主張していません。
↩︎
私の神経多様性のせいにするかもしれませんが、これらの事情を考慮しても、若い頃は(さらに)耐え難かったと思います。ごめんなさい!
↩︎
少なくとも、それが私の楽しみの定義です。
↩︎
この残存する感覚が、これらのモデルの最初の世代の多くの例示的なプロンプト/画像の理由であると疑っています。
↩︎
このような絶対的な傑作とともに:魔法使いが苔むした石畳の上に立ち、古い森の中で、木の杖から輝く呪文を放っている。ダイナミックな映画的な照明、アルフォンス・ミュシャによるコンセプトアート、Octane Render、Unreal Engine 5、超現実的なディテール、8K、鮮明、傑作。
プロンプトエンジニアが最もホットなAIの仕事だった頃を覚えていますか?
↩︎
この記事の場にふさわしくないため、意図的に含んでいません。
↩︎