見出し画像

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

ロジットベクトルはソフトマックス関数を適用する前の値なので、モデルの出力として得られる確率値よりも生の情報を含んでいる。

手法

  1. APIに複数のプロンプトを与えることで、モデルのロジットベクトルを入手する。

  2. これらのロジットベクトルを特異値分解にかけることで、ロジットベクトルが張るh次元部分空間の基底を求める。

結果

OpenAIのada, babbage, gpt-3.5-turboモデルに対し、20ドル未満のコストでこの攻撃を適用。adaは1024次元、babbageは2048次元の隠れ層を持つことを確認。



この記事が気に入ったらサポートをしてみませんか?