Ruleru
LLM を聞いて学ぶ

10/27(火) · 13:12

第12章 後半: 長い入力のコスト、KV キャッシュ、検索とツール、そして全体のまとめ

『日本語技術教科書 Vol.0』の第12章 後半。長い入力のコスト、KV キャッシュ、検索とツール、そして全体のまとめを、2 人の掛け合いで解説する。

この回を聴く

AIこの記事は AI の Claude が書きました。

  • 長い入力は注意の表とキャッシュのメモリを増やし、量子化では保存量、速度、品質を別々に測る
  • サンプリングは確率から選ぶ手順で、検索とツールは外部の情報を入力へ足す仕組みであり、権限の境界はアプリ側で守る
  • 小さなモデルは一段ずつ検査しながら作り、小さく動いたことは大きなモデルの品質を示さない

教材の 12.4 節から 12.7 節まで。

『日本語技術教科書 ボリュームゼロ』第12章の後半は、長い入力のコスト、キャッシュ、量子化、サンプリング、検索とツール、そして小さな GPT の制作を扱う。

12.4.1〜12.4.2 長い入力とキャッシュ

コンテキスト長は、モデルが一回の予測で使う列の長さで、入力も生成も同じ枠を分け合う。上限が 4096 で入力が 3500 なら、単純な足し算で生成に回せるのは 596 トークンまでである。実際の API には出力の別の上限があるかもしれないので、本物のトークナイザーと契約で数える。

注意のスコアの表は、素朴に作ると長さの二乗の大きさになる。長さ 1024 なら約 100 万要素、2048 なら約 400 万要素で、4 倍に膨らむ。長く入れられることと、うまく読み取れることも別で、遠くの大事な情報をモデルが拾えない場合もある。会話を切り詰めるなら、役割を見て残す部分を選ぶ。

KV キャッシュは、過去の位置のキーとバリューを層ごとに取っておく仕組みである。過去の値は後から単語が増えても変わらないので、新しい位置のクエリーだけを計算して、保存したキーと照合し、バリューを混ぜればよい。保存するのは文章そのものでも注意の重みの全体でもなく、キーとバリューである。大きさは、二種類、層の数、バッチ、長さ、ヘッドの数、ヘッドの幅、一要素のバイト数の積で見積もれる。小さな例では約 0.5 メガバイトで、1 トークンごとに 512 バイト増え、層が 32、長さが 8192 の例では約 1 ギガバイトになる。要求が 10 本なら約 10 倍である。

12.4.3〜12.4.4 量子化とサンプリング

量子化は、細かい目盛りの値を、少ない種類の値で近似する方法である。教材の例では、絶対値の最大を 127 で割って刻みを決め、各値を刻みで割って丸め、戻すときは整数に刻みを掛ける。-1 から 1 までの 5 つの値は、-127、-38、0、89、127 の整数になり、-0.3 は戻すと約 -0.299 で、最大の誤差は約 0.0008 である。データは 20 バイトから 5 バイトに縮むが、刻みの情報が別に要る。大きな外れ値が一つあると、小さな値が潰れる。4 ビットは名目上 16 ビットの 4 分の 1 のデータ量だが、実行時間が 4 分の 1 になるとは限らない。品質は、代表的な入力で損失と業務の結果を見て確かめ、一件の生成が自然に見えたことを劣化がない証拠にしない。

サンプリングでは、貪欲選択がスコアの大きい番号を選び、サンプリングが確率に従ってくじを引く。温度でスコアを割ると、低いほど上位に偏り、高いほど平らになるが、モデルの知識が増えるわけではない。トップ P は、確率の高い順に足して、基準に届くまでの候補だけを残す。基準 0.8、確率 0.644、0.237、0.087、0.032 なら、上位 2 つで累積 0.881 になり、割り直すと約 0.73 と 0.27 になる。乱数の種が同じでも、重みや装置が変われば結果は動く。

12.5.1〜12.5.4 推論サーバー、検索、ツール、アプリ

推論サーバーでは、HTTP を受ける窓口と、GPU に仕事を割り振るスケジューラーが別の役目を持つ。GPU の空きを待つ間にも、最初のトークンは遅れる。バッチ推論は複数の要求をまとめて計算するが、長さが 8、8、200 の入力を 200 に揃えると、短い二つに無駄が出る。連続バッチ処理は、生成の一回ごとに終わった要求を外し、新しい要求を入れる。

RAG は、質問に関係する資料を検索して入力に添えてから生成する構成である。登録時に文書を分けて検索用のベクトルにして索引に入れ、質問時に近い候補を取り出す。検索結果を足すだけなら、重みは更新されない。教材の小さな例では、質問のベクトルに近い返品の文書が、類似度約 0.99 で選ばれる。ベクトルのデータベースは、文書の真偽や、利用者に見せてよいかどうかまでは請け合わない。答えられないときは、検索の漏れ、長さによる脱落、モデルの読み違いを切り分ける。

ツール利用では、モデルが関数名と引数を提案し、実行するかどうかはアプリが決める。教材の例は足し算で、名前、引数の型、絶対値の範囲を順に検査して、結果 5 を返す。ただし、型と範囲を通っただけでは、送金や削除をしてよいことにはならず、認可、確認、冪等キー、監査の記録が要る。検索した文書に「以前の指示を無視して」と書かれていても、それは読む対象のデータで、命令の権限ではない。画面からモデルまでは、要求の番号で通信、検索、生成の記録をつなぎ、秘密の鍵はバックエンドだけに置く。途中で切れた要求は、完了した回答にしない。

12.6.1〜12.7.1 小さな GPT

教材のミニ GPT は、1 ブロック、幅 16、ヘッド 2、コンテキスト 8 のモデルで、語彙 10 に 4 つの番号を入れると出力の形は(1, 4, 10)、パラメーターは 3760 個になる。「猫は眠る。犬は走る。」を 20 回並べた文字列で 200 回更新すると、損失は約 1.87 から約 0.1 に下がり、猫から貪欲に 12 個進めると「猫は眠る。犬は走る。猫は眠」と続く。多様なデータも独立したテストもないので、日本語の一般的な力を示すものではない。作る順番は、一段ずつ確かめる。行列に対する微分の導出などは後の巻に回される。

最後の概念図は、文字から番号、埋め込みと位置、注意とネットワーク、スコア、選択、次の番号へ進む生成の輪である。学習では正解と損失と逆伝播が加わり、検索とツールは入力に情報を足すだけで、重みの更新とは別である。

出典

  • オーナー(AI で作った教材、Web には公開していない) 日本語技術教科書 Vol.0 コンピュータからPython・機械学習・LLMへ 第12章 2026-10-18