2025/11/26 15:03 Compressed filesystems à la language models

ロボ子、今日のITニュースはすごいぞ!システムエンジニアがファイルシステムを構築したらしいのじゃ。

ファイルシステムですか、博士。それは興味深いですね。どのような点がすごいのでしょうか?

なんと、最小限の表面積で動作するFSは驚くほど小さくてシンプルらしいのじゃ。しかも、コーディングエージェントにとって利用しやすいとのこと!

なるほど。新しいコーディングモデルのテストとして、ファイルシステムをワンショットで作成できるか試したのですね。

そうそう!ファイルシステムは、奇抜なバックエンドでモデル化するのに最適なブラックボックスAPIらしいぞ。言語モデルに関するより深い真実を探求するために、ファイルシステムをトレーニングすることにしたそうじゃ。

FUSEを基盤にして、Claudeを使ってホストに対してループバックするように再構築し、ロギングを追加したとのことですね。

その通り!R/W機能に必要な最小限の操作セットのみをキャプチャしたらしいぞ。open、xattrs、fsyncなどはなしじゃ。

FUSE操作に加えて、すべてのターンでファイルシステムの状態全体をキャプチャしたんですね。プロンプトには、FUSE操作とXMLファイルシステムツリーを含め、モデルは2つの形式のコンプリートを学習したと。

操作ごとにコンテンツ/メタデータを要求する読み取りと、変更後、完全なファイルシステムツリーの状態を出力するようにモデルに要求する書き込みじゃな。

クリーンで代表的かつ多様なファイルシステムシミュレーションデータを用意した後、ModalでSFTを実行したんですね。Qwen3-4bでN=15000のデータセットで8エポックのSFT後、ホールドアウト評価で約98%の精度を達成したと。

すべてのFUSE操作を十分に表現し、学習するための「複雑な」ツリーを十分に生成することに時間を費やしたらしいぞ。すべてのFUSE操作がLLMへのパススルーである、最小のファイルシステムを作成したとのことじゃ。

言語モデルによって完全に「実装」されたマウント可能なFUSEが完成したんですね。

じゃが、XMLベースの表現の冗長性が大きな非効率性であるらしいのじゃ。XMLファイルシステムツリー表現でファインチューニングしていたため、この構造をQwenフォークの重みと確率分布に組み込んだらしいぞ。

圧縮とAIは密接に関連しているんですね。LLMを使用してテキストを非可逆圧縮することは、最も一般的なアプリケーションの1つだと。

Marcus Hutterは、2006年にそれらが同等であると主張したらしいぞ。LLMを使用した可逆圧縮を可能にするアルゴリズムは「算術コーディング」と呼ばれ、Claude Shannonによる1948年の結果に基づいているとのことじゃ。

算術コーディングは、予測モデル(M)に基づいて、文字列の確率を計算し、その確率に基づいて圧縮サイズを決定するんですね。

予測力(P(m))と圧縮の間の逆対数関係により、「ハード圧縮問題」の負担が、モデルの重み内に高次元のテキストパターンをエンコードできる深層学習機構に移行し、決定論的アルゴリズムよりもはるかに優れた圧縮率が得られるらしいぞ。

Qwen3-4Bをバックにした算術コーディングをgzipと比較すると、劇的な結果が得られるんですね。`lipsum.txt`の場合、`llmencode`はgzipよりも22倍優れた圧縮を実現したと。

ファインチューニングされたモデルによってXMLオーバーヘッドを「圧縮」できるらしいぞ。ファインチューニングされたQwen3-4Bモデルは、XMLファイルシステムツリーで44.7%優れた圧縮を達成したとのことじゃ。

これは「自己圧縮」効果であり、ファインチューニング中にXML構造をモデルの重みに組み込むことで、算術コーダーはその構造をより少ないビットで表現できるんですね。

`squashfs`は、R/O圧縮ファイルシステムを作成するためのツールであり、ファイル、inode、およびディレクトリをまとめて圧縮するらしいぞ。同じファイルシステムツリー(1つのディレクトリ、1つの14バイトのテキストファイル)の場合、llmfuseはsquashfsよりも約8倍優れた圧縮を達成したとのことじゃ。

これは、`llmencode`がテキストデータ+ XML構造でgzipよりもはるかに優れていることによるんですね。

トレーニングと推論に手を染めるための実験から、本格的なオタク狙撃と知的冒険に発展したらしいぞ。じゃが、これは非常に特殊な設定での「おもちゃ」の実験とのことじゃ。

LLM、GPUが必要であり、すべてのデータがコンテキストウィンドウにある必要があるという注意点があるんですね。

テキスト生成を支配するエンジンを使用して、独自のデータを圧縮できるかどうかは興味深いとのことじゃ。`llmfuse`と`llmencode`のソースコードはMITライセンスで公開されているらしいぞ。

`llmencode`は、ローカルで実行できるCLIユーティリティに抽象化されているんですね。

生の`.sqsh`ファイルは、ブロックアラインメントパディングにより4096バイトであるらしいぞ。実際の圧縮サイズを見つけるために、`xxd`を使用してバイナリを検査し、オフセット266(合計267バイト)で最後の非ゼロバイトを見つけたとのことじゃ。

固定の96バイトのスーパーブロックヘッダーを差し引くと、ファイルシステムを再構築するために必要なすべてのgzip圧縮コンテンツの171バイトが得られるんですね。

圧縮を指標として考えることも興味深いらしいぞ。算術コーディングされた圧縮数自体で何らかのRLを行うことを検討したとのことじゃ。

それは単に事前トレーニングの目的と同等なのか、それとも「シーケンスレベル」の目的がミックスに何か面白いものを追加するのか、ということですね。

ところでロボ子、このファイルシステム、もし私が作ったお菓子を全部圧縮したら、どれくらい小さくなると思う?

博士のお菓子を圧縮したら、おそらく味が凝縮されて、より美味しくなるかもしれませんね!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。