ZIPとAIは、同じ仕事をしている
ファイル圧縮と大規模言語モデルは、どちらも「次に何が来るかを当てる」技術だという解説が話題に。GPT-2でディケンズの一節を圧縮すると、元の10%まで縮んだ。
ことね:ひかり、ちょっと付き合って。……「Q」。英語で、この次に来る一文字を当ててみて。
ひかり:えっ、いきなりクイズっ? えーっと、Q……クイーン、クイズ、クエスチョン……あっ、ぜんぶUだっ! Uでしょっ、ぜったいUっ!
ことね:正解。英語の文章でUが出てくる確率は、全体だと約0.028。……ところがQの直後だけは、約0.999まで跳ね上がるの。ほぼ確実ね。つまりQのあとのUは、書き残さなくてもあとから復元できるのよ。……この「当てられるぶんは書かなくていい」が、ファイル圧縮のいちばん奥にある考え方なの。ngrokのアニー・セクストンさんが書いた解説が、いま話題になっていて。
みずき:…で? Uを1文字省いて、何メガ減るの。
ことね:もっと露骨な例から行きましょうか。Aが9個、Bが4個、Cが2個、Dが1個、Aが3個、Dが9個。ぜんぶで28文字ね。そのまま書くと224ビット。でも「A9B4C2D1A3D9」と書けば12文字、96ビットで済むわ。57%減。……ここで大事なのは、なぜ縮んだかなの。Aばかりに偏ったデータは、1文字あたりの情報量が約0.82ビットしかないの。バラけていると約1.38ビット。偏っている=予測しやすい=縮む余地がある、ということなのよ。
ひなた:ふぁ〜……お弁当みたいなのです。……毎日ぜったいから揚げのおうちは、朝に「今日なに?」って聞かなくていいのです。……日替わりのお店は、毎日メニューを書くのです。
ひかり:えっ、ひなた今の完璧じゃんっ! ……で、そこにAIってどこから入ってくるのー?
ことね:そこが本題なの。大規模言語モデル——ChatGPTの中身みたいな、次の言葉を確率で出す機械ね——は、まさに「予測する装置」でしょう。予測が上手なら、そのまま圧縮器として使えるのよ。実験がわかりやすくてね。ディケンズの一節、"It was the best of times, it was the worst of times..."を圧縮したの。直前の1文字だけを見る素朴なモデルだと434ビット、元の24%まで縮んだわ。……同じ文章を、GPT-2と算術符号化という方式で圧縮すると176ビット。元の10%よ。
みずき:…で、それ誰得? 24%が10%になるなら、世の中のZIPはとっくに全部そっちに乗り換えてるでしょ。
ことね:そこが落ちなのよ。この方式で通信するには、送る側と受け取る側が、まったく同じモデルを持っていないといけないの。ブラウザにもサーバーにも、数ギガバイトのLLMを1個ずつ。……1キロバイト減らすために、2ギガバイトを先に配ることになるわ。
まとめ:24%が10%になる。そのために、送る側と受け取る側が同じ数ギガを持ち合う。……お弁当は、から揚げのままでいい。