miutti's picture
Source: kernel, desktop app, tools (snapshot of the GitHub repo)
df41178 verified
|
Raw History Blame Contribute Delete
2.39 kB
# 研究ノート — 次の一手
## 現在の主力レシピ
```
W ≈ A·B (ランク32〜64, 4bit) + PVQ(残差, k=8, コード16, グループ128)
→ 0.78〜0.94 bit/重み、出力誤差 0.41〜0.47
```
## 次にやる候補(優先順)
### 1. 実活性化の取得 【全ての前提】
モデルを実際に走らせ、対象層の入力を採る。これが無いと
GPTQ・重要度ハイブリッド・ビット配分の判断が全部空振りする。
既存 `LocalAI/ollama-models` の ollama 経由か、GGUFを自前で回すか。
### 2. 低ランク部にも回転を効かせる
低ランク因子 A,B は RTN 4bit で量子化している。実験06より
**尖りの大きい行列にはスカラー4bitで回転が破格に効く(0.157→0.116)**。
A,B に回転を入れれば、いまの主力レシピがそのまま伸びる可能性が高い。安い。
### 3. 層ごとのビット配分最適化
層によって感度が違う。全層一律ではなく、感度の低い層を薄く削り
平均を1bit未満に保ったまま全体品質を上げる。感度は測れば分かる。
### 4. モデル全体を通した評価(perplexity)
1層の誤差0.4が、モデル全体でどれだけの劣化になるのか誰も知らない。
ここを測らないと「実用かどうか」を語れない。
### 5. 復元せずに計算する(真の高速化)
いまは「復元してから普通に掛け算」=軽いだけで速くない。
コード番号のままテーブル引きで内積を出せれば速度も取れる。難関。
## 応用先(重み以外への転用)
同じ理屈は重み以外にも効く。特に:
- **KVキャッシュ**: 会話が長いほど膨らみ、体感速度の主犯。その場で作られるので
辞書設計の自由度が重みより大きい可能性。**次の目玉候補**。
- 埋め込みベクトル(RAGのインデックス)
- モデル間の差分(LoRA配布の圧縮)
## 罠のメモ
- 条件つきエントロピーはサンプル不足で必ず過小評価される。必ずホールドアウトで検証。
- 低ランクのビット費用は `r*(out+in)*bits/(out*in)`。因子は2つ要る。
- 回転は外れ値対策であって万能ではない。ベクトル量子化には効かない。
- 較正データで評価しない。自己採点になる。