LLM最終層の次元数を攻撃によって明らかにする論文紹介
論文名
Stealing Part of a Production Language Model
arXivリンク
Stealing Part of a Production Language Model (arxiv.org)
ひとこと要約
(APIを通じて)モデルのロジットベクトルを得ることができれば、最終層の次元数を正確に知ることができる。
前提: 最終層での処理
LLM内部の最終層では、隠れ層のベクトル(次元数h)をロジットベクトル(次元数l)に写像する。
hはlより十分小さく設定されるため、ロジットベクトルは、実際にはh次元の部分空間に含まれることになる。
LLaMA モデルでは、h ∈ {4096, 5120, 6656, 8192} に対して l = 32,000
GPT-4 では l ≈ 100,000
ロジットベクトルはソフトマックス関数を適用する前の値なので、モデルの出力として得られる確率値よりも生の情報を含んでいる。
手法
APIに複数のプロンプトを与えることで、モデルのロジットベクトルを入手する。
これらのロジットベクトルを特異値分解にかけることで、ロジットベクトルが張るh次元部分空間の基底を求める。
結果
OpenAIのada, babbage, gpt-3.5-turboモデルに対し、20ドル未満のコストでこの攻撃を適用。adaは1024次元、babbageは2048次元の隠れ層を持つことを確認。
この記事が気に入ったらサポートをしてみませんか?