User-side Model Consistency Monitoring for Open Source Large Language Models Inference Services
- オープンソース大規模言語モデルの推論サービスについて、利用者側でモデルの一貫性を調べる方法を扱う。
- 返された生成文に対して、指定したモデルを手元で一度だけ順伝播し、トークンごとのロジットから confidence を計算する。
- OPT、Llama 3.1、Qwen 2.5 系列で、モデルサイズの縮小や量子化による精度低下をかなり分離でき、RTX 3080 Ti 上の試作でも実行可能性を示した。
論文の面白いところ
この論文は、推論サービスを提供する側ではなく、利用者の側に監視の主体を置く。通常、あるサービスが「Llama 3.1 70B」を使うと称していても、利用者は実際にそのモデルが動いているかを直接見られない。提供者が同系列の小さいモデルや低精度の量子化版を用いれば、計算費を下げられる一方で、利用者は品質低下を感覚的に疑う程度にとどまりやすい。既存の検証手法として、ゼロ知識証明やブロックチェーン上の再実行があるが、大規模言語モデルでは計算や費用が重い。著者らはこの重さを避け、サービスから返された文だけを材料にする。生成済みの系列なら、全トークンの次トークン分布を一度の順伝播で得られるため、生成そのものを再実行するより安い。さらに、モデルオフロードを使えば、GPU メモリに収まらないモデルでも、CPU やディスクを併用して監視用の計算を行える。派手な認証基盤を作るのではなく、言語モデルの生成過程の性質を利用している点がこの論文の要である。
問題設定
対象は、第三者が運営するオープンソース大規模言語モデルの推論サービスである。利用者は特定のモデル名と精度を指定してプロンプトを送り、提供者は生成文を返す。問題は、提供者が指定どおりのモデルを使ったかどうかを、利用者が確かめにくいことである。たとえば 70B モデルの代わりに 8B モデルを使う、あるいは FP16 の代わりに INT8 や NF4 の量子化版を使う、といった行動があり得る。これは単に利用者の品質低下にとどまらず、正直な提供者とそうでない提供者の価格競争にも影響する。論文では、この状況を model consistency monitoring、すなわち指定モデルと生成元モデルの一貫性を監視する課題として定式化する。難しい点は、異なる GPU やソフトウェア環境では、同じモデルでも浮動小数点計算の細かな差が生じることである。したがって、監視手法は、計算環境の差による小さな揺れと、モデルの縮小や低精度化による差を分けて扱わなければならない。
提案手法
提案手法は、サービスから返された生成文を、利用者が指定したモデルに入力し直すところから始まる。このとき生成をやり直すのではなく、完成した系列に対して一回の順伝播を行い、各位置のロジットを得る。貪欲デコーディングの場合、指定モデルがその位置で最も高く評価するトークンと、実際に返されたトークンのロジット差を見る。実際のトークンが指定モデルにとって自然であれば、この差は小さく、指数変換した token confidence は 1 に近くなる。系列が長くなると浮動小数点誤差が蓄積するため、位置に応じた補正係数を入れている。さらに、単一トークンでは小さいモデルでも偶然一致し得るので、連続する W 個のトークンの confidence を掛け合わせ、部分系列の confidence を作る。論文の実験では W=10、位置補正の係数 k=0.05 を用いる。最後に、一つの生成文について部分系列 confidence の最小値をとり、それを sequence confidence とする。複数の応答についてこの値の分布を集めれば、指定モデルに近い生成か、劣化モデルに近い生成かを比較できる。
結果
評価では、OPT、Llama 3.1、Qwen 2.5 の三系列を用い、指定モデルと生成側モデルの組み合わせを変えて調べている。まず、指定モデルと同じモデルを用いるが、A100 と H100 のように計算基盤が異なる場合を見た。OPT-66B ではほぼすべての系列が confidence 0.99 を上回り、Llama-3.1-70B と Qwen-2.5-72B でもほぼ全系列が 0.9 を上回った。これは、通常の環境差だけなら confidence が大きく崩れにくいことを示す。次に、同じ系列の小さいモデルで生成した場合、confidence は 0 から 1 に広く分布するか、低い値に寄る傾向を示した。指定モデル自身の生成では多くが 0.9 から 1 に集まるため、サイズ低下は比較的見分けやすい。低精度化では差がより小さく、量子化版でも 1 に近い系列が多く残るが、0.99 超の割合や下位分位には差が出た。システム面では、FlexGen を用いた試作を RTX 3080 Ti、12GB GPU、NVMe SSD 上で動かし、OPT-66B FP16 の監視を試した。GPU メモリを 4GB に制限しても 1 系列あたり 9.64 秒、8GB 以上では約 3.6 秒台で処理でき、監視用途として現実的な時間に収まることを示している。
具体例
利用者が、ある推論 API に「Qwen-2.5-72B を FP16 で使って、短い契約書の要約を作れ」と依頼したとする。サービスは、契約更新日、解約通知期限、違約金の有無を含む数段落の要約を返す。利用者はその応答文を保存し、手元の監視プログラムに渡す。監視プログラムは、Qwen-2.5-72B の重みをディスクや CPU メモリから順に読み込みながら、返された応答文に対する各トークンのロジットを計算する。もし応答が本当に指定モデルから来ていれば、多くの位置で実際の次トークンは指定モデルにとって最上位またはそれに近い候補になる。反対に、サービスが Qwen-2.5-14B を使っていた場合、ある文脈では似た語を選べても、十トークン程度の連続区間で見ると、指定モデルなら選びにくい語順や語を含みやすい。手法はそのような区間で sequence confidence を低く評価する。間違えやすい点は、文章の読みやすさだけでは判定しないことである。出力が自然な日本語であっても、指定モデルのロジット分布に照らして不自然な選択が連続すれば、監視結果は疑わしいものになる。