LLMへのPing: ユーザースペースIPスタックとしてのClaude

LLMへのPing: ユーザースペースIPスタックとしてのClaude

ネットワークの世界において、「ping」は接続性を確認するための最も基本的なテストです。それはカーネルのネットワークスタックによってマイクロ秒単位で処理される、軽量で効率的なプロセスです。しかし、その高度に最適化されたC言語のコードを、大規模言語モデル(LLM)に置き換えたらどうなるでしょうか?

軽量IPスタックである lwIP や uIP の開発者である Adam Dunkels は、最近、Claude がユーザースペースIPスタックとして機能できるかどうかを確認するための思考実験を行いました。その目的は単純かつ馬鹿げたものでした。外部のライブラリやスクリプトを使用せずに、LLMに生のIPパケットをバイト単位で読み取り、解析し、有効なICMP echo replyを、手動で構築するように指示することです。

LLM IPスタックのアーキテクチャ

これを実現するために、Dunkels は ping-respond.md というコマンドを開発しました。このMarkdownファイルは、Claude が実行する一連の指示(実質的に「プログラム」)として機能します。プロセスはいくつかの個別のステップに分解されます:

  1. パケット取得: Claude は bash コマンドを実行して、TUN デバイス(Python ヘルパー経由)から生の 16 進数文字列を読み取ります。
  2. IPv4 解析: Claude は 16 進数文字列を手動で解析し、バージョン、IHL (Internet Header Length)、TTL、およびプロトコルを特定します。プロトコルが 0x01 (ICMP) であることを検証しなければなりません。
  3. ICMP 解析: モデルは ICMP タイプ(echo request の場合は 0x08 である必要があります)を特定し、識別子とシーケンス番号を抽出します。
  4. 手動パケット構築: これは最も集中的な部分です。Claude は送信元と送信先の IP アドレスを入れ替え、16 ビットの 1 の補数算術を使用して、IP および ICMP チェックサムを手動で計算しなければなりません。
  5. 送信: 生成された 16 進数文字列は TUN デバイスに書き戻されます。

極めて重要な点として、指示には Python やいかなる計算機ツールも使用することが禁止されています。Claude はチェックサムの計算において「作業過程を表示する」ことが求められ、LLM の推論プロセスを CPU の ALU (Arithmetic Logic Unit) として扱うことになります。

結果: 非常に遅い Pong

Claude 3.5 Haiku モデルを使用した場合、実験は成功しました。Claude は、送られてきたパケットを正しく解析し、16 進数演算を行い、有効な返信を返しました。

しかし、パフォーマンスは予想通り、悲惨なものでした。ラウンドトリップタイム (RTT) は約 42.5 秒 と測定されました。

ネットワークの用語ではこれは永遠のような時間ですが、Dunkels は、RFC 1149 (アコースティックカプラー経由での IP パケットの圧縮) のような、より極端な歴史的なネットワーク実験と比較すれば、まだ速い方であると述べています。

コミュニティの反応と技術的論争

この実験は Hacker News 上で、技術的な好奇心への称賛から、リソースの浪費に対する不満まで、さまざまな反応を引き起こしました。

「LLMをプロセッサとして扱う」パラダイム

一部の観察者は、これを LLM が単なる「愚かなオートコンプリート」以上の存在であることの概念実証(PoC)と見なしました。推論のみを通じて低レベルのプロトコルスタックを実装することに成功したことで、モデルは、技術仕様への厳格な遵守と複雑な手動演算の能力を示しました。

効率性 vs. 好奇心

全員が感銘を受けたわけではありません。一部のユーザーは、このようなタスクにクラウドホスト型の LLM を使用することは、トークンと計算リソースの浪費であると主張しました。あるコメントは次のように述べています:

"If you wonder why your Copilot subscription has new limits... it's because of PhDs like Adam... he preferred to waste the service we all use just to produce a weak blog post."

他のユーザーは、同じ結果をより効率的に達成するために、小さなローカルモデルを使用するか、実際の IP ライブラリを利用する「エージェント・スキル」を作成すべきだと提案しました。

実用的な応用?

ping の実験は目新しさ(novelty)でしたが、一部のユーザーは、より実用的な(それでも遅い)応用について推測しました。Wireshark のダンプをモデルにリダイレクトして高レベルな分析を行うことで、TCP スループットを分析する手法が提案されました。逆に、セキュリティエンジニアは、侵入検知システム (IDS) のようなリアルタイムのタスクに LLM を使用することに対して警告を発し、BPF (Berkeley Packet Filter) がパケットケット処理において唯一の賢明な選択肢であると示唆しました。

結論

LLM をネットワークスタックにすることは、不条理不条理な試みですが、「コード」の概念に対する興味深い変化を浮めてき出しています。この実験では、Markdown 指示書はソースコードであり、LLM の推論ウィンドウはプロセッサでした。カーネルレベルの IP スタックに取って代わることは決してありませんが、これは、低レベルのバイナリデータやプロトコルロジックを扱う際の、現代のモデルの驚くべき柔軟性を示しています。

Sources