世界を動かす技術を、日本語で。

圧縮は予測である

2026年8月12日原文(ngrok.com)

概要

  • データ圧縮とLLM(大規模言語モデル)は本質的に同じ問題を解決しようとしている
  • 圧縮の基本的な仕組みと、それを支えるモデルやエントロピーコーダーの役割を解説
  • エントロピーや確率分布が圧縮効率に与える影響を具体例で説明
  • LLMの予測精度が圧縮性能に直結し、両者の理論的な共通点を紹介
  • 実際の用途ではリソース制約が大きな課題であり、万能な圧縮手法は存在しない現実を指摘

圧縮の仕組みと基礎

  • データ圧縮 の目的は、情報をできるだけ小さなサイズに変換すること
  • ミニフィケーション はコードの不要部分を削除するだけで、真の圧縮とは異なる
  • 真の圧縮は 冗長性 を利用してデータを短縮する
  • 例:ランレングス符号化(Run-Length Encoding)は、同じ文字の連続を「文字+回数」で表現
  • 標準的な ASCIIエンコーディング と比較し、圧縮後のビット数が大幅に減少

圧縮ツールの構造

  • 現代の圧縮ツールは主に トランスフォーム、モデル、エントロピーコーダー の3要素で構成
    • トランスフォーム :圧縮しやすくするための前処理。冗長性を増やす場合も
    • モデル :各シンボル(文字やトークンなど)の出現頻度に基づき確率を割り当てる
    • エントロピーコーダー :モデルの確率を使い、最終的なビット列へ変換

エントロピーコーディングの仕組み

  • エントロピーコーダー は確率分布を利用し、データを効率的にビット列化
  • 算術符号化(Arithmetic Coding) は、全データを1つの数値範囲で表現
  • 確率が高いシンボルほど短いビット列で表現でき、圧縮効率が向上
  • デコード時は同じ確率分布を使い、元のデータを復元

エントロピーと圧縮効率

  • エントロピー は「平均ビット/シンボル数」の下限を示す情報理論の概念
  • 確率分布が偏る(特定のシンボルが多い)ほど、圧縮効率が高まる
  • シャノンエントロピー は圧縮の理論的限界値を示す
  • ハフマン符号化 などもエントロピーコーディングの一種で、確率に応じてビット長を割り当てる

コンテキストとモデルの進化

  • シンボルの単純な出現頻度だけでなく、 コンテキスト(前後関係) を考慮することで、より精度の高いモデルが作成可能
  • 例:Qの後にUが来る確率は極めて高い
  • オーダーNモデル は直前N個のシンボルをコンテキストとして確率を計算
  • コンテキストを活用することで、圧縮効率が劇的に向上

LLMと圧縮の関係

  • LLM(大規模言語モデル) は、与えられたコンテキストから次のトークンの確率分布を予測
  • 圧縮時は「正解のトークン」に割り当てた確率に応じて必要なビット数が決定
  • モデルの予測精度が高いほど、圧縮効率も良くなる
  • LLMは クロスエントロピー を最小化するよう訓練されており、これは圧縮におけるエントロピー最小化と同義

現実世界での圧縮の制約

  • 圧縮ツールの目的は「可能な限り小さくする」だけでなく、「リソース制約下で効率的に動作する」こと
  • 例:gzipやBrotliは小さなモデルで高速に圧縮・解凍が可能
  • LLMを圧縮に使う場合、モデル自体が巨大で、通信や計算コストが現実的でない
  • 圧縮効率だけでなく、 実用性やパフォーマンス も重要な指標

圧縮と予測の本質的な共通性

  • 圧縮とLLMはどちらも「次に現れるシンボルの予測」を本質とする
  • より良い予測モデル=より低いエントロピー=より高い圧縮効率
  • 圧縮は 予測 であり、LLMは 圧縮器 とも言える
  • 両者は同じ数理的基盤(情報理論)に基づく技術

このように、データ圧縮とLLMは、異なるアプローチを取りながらも、根本では「予測精度を高めること」が共通の目標となっている。実用上はリソースや用途に応じて適切な手法を選ぶ必要があるが、理論的には両者はコインの表裏の関係にある。

Hackerたちの意見

Grant Sandersonの同じテーマについての素晴らしい動画があるよ。[0] それは続いているシリーズの一部なんだ。[0] Compression is Intelligence Part 1 - https://youtu.be/l6DKRf-fAAM?si=yyLWq8x4sSRkWd98

記事の著者はこのシリーズを知っていたのかな、それとも二人とも独立してこのテーマに出くわしたのかな。

この視点は、「LLMは新しいアイデアを持てない、ただの次トークン予測器だ」という主張に対する直感的な理解を助けてくれるよ。もしトレーニングを広大なパラメータ化された圧縮アルゴリズムの最適化と考えたらどうなるかな?そうすると、「新しい」アイデアがそのプロセスから生まれるのがずっともっとあり得るように見えてくるよね!

ちなみに、関係は双方向だよ。ちょっと試してみると面白いかも。zstdは結構クソな言語モデルだし :)

そうすると、「新しい」アイデアがそのプロセスから生まれるのがずっともっとあり得るように見えてくるよね これは私には直感的じゃないな。「新しいアイデア」って、(ほぼ定義上)トレーニングセットにはないものだと思うんだけど、もう少し詳しく説明してもらえる? 編集: でも、もしかしたら良いモデルがトレーニングから生まれることがあって、それは簡潔なアイデアが良い科学的アイデアであるという意味で良いアイデアかもしれないね。

これにはもう一つの要素があって、あまり議論されないんだ。アイデアは事実じゃない。LLMも人間も、考えるだけでは新しい知識を生み出せない。物理的な調査や実験が必要なんだ。純粋な数学だけは例外で、アイデアの領域にしか存在しないから、知識と呼んでもいいけど、カントの古い分析/合成の二項対立の区別はまだ残ってるよ。

LZ以外の圧縮器がどう動くかを知ると、これがあまり驚くべきことではなくなるよ。つまり、確率分布をモデル化して、その確率を使ってデータを送信するのに必要な最小限のビット数で情報をエンコードするんだ。あまり明白ではない結論は、LZ圧縮器もこれを暗黙的に行っているってこと。彼らが出力できる各シンボルの長さ(リテラルやマッチなど)は、LZ圧縮器が誘発する確率分布に変換できるから、シンボルをエンコードするためのビット数はその確率に情報量として関連しているんだ。

圧縮機でよく見られる設計は、最初にLZを使って、その後LZから得た定数データやオフセット・長さのペアをエントロピーコーダーで表現することだよね。Deflate(gzipで使われているやつ)はハフマンコーダーを使ってるし、LZMA(xzで使われている)は予測範囲コーダーを使ってる。ZstandardはハフマンかFSEのどちらかを使える。LZ4みたいな高速圧縮機は、圧縮率を犠牲にしてエントロピーコーディングのステージを完全にスキップしちゃうんだ。Bzip2はこのパターンの面白い例で、LZの代わりにバロウズ・ウィーラー変換を最初に使うんだけど、これが遅い大きな理由の一つなんだよね。

いや、もう少しニュアンスがあって、その区別は重要だよ。圧縮は、データ分布が未来のすべての問題を正確に表しているときに予測と機能的に同等なんだ。一般化を望むなら話は大きく変わるよ。テスト分布が全く異なる可能性があるからね、同じサポートを持っていても!例えば、トレーニングデータで珍しいエッジケースを観察したとき、(ロスのある)圧縮はそれを無視することができる。でも、その特定の空間の部分で一般化を望むなら、敵がテストしてきたからとか、特定のコーナーに組み込む自由を選ぶために、単なるデータ圧縮だけじゃなくて、そのコーナーでピークを持つテスト分布に対する良い予測性能が必要なんだ。トレーニングデータ分布があなたが気にするすべての分布だと仮定するのは、圧縮=予測という主張の多くを暗黙的に支えていると思うし、これが無思考にマニフェストのように繰り返されるのがイライラする。トレーニングデータ分布に自然なものは何もないよ、特にデータ生成プロセスが探索的で、下流の使用が搾取的な場合はね。

100%同意。

それは面白いね。未来が現在と似ているという前提が成り立つのはその場合だけだって考えが浮かんだよ。

それが「圧縮は予測だ」という主張をどう無効にするの?もし未来のデータが異なっていて、一般化に失敗したら、予測の失敗は圧縮が悪化したことを意味して、新しい情報を保存するのにもっとビットを使わなきゃいけなくなる。逆に、未来のデータが以前に見たものと同じなら、すごくよく予測できて、その結果として圧縮も良くなるよね。

Hacker Newsで議論の続きを見る