Text Generation
Transformers
emotion-vectors
interpretability
mechanistic-interpretability
replication
gemma4
google
anthropic
valence-arousal
PCA
logit-lens
linear-probe
probing
emotion
functional-emotions
AI-safety
neuroscience
circumplex-model
activation-extraction
residual-stream
Eval Results (legacy)
| # 情緒向量本地復刻 — Threads 發文數據包 | |
| > 實驗日期:2026-04-05 | |
| > 模型:Gemma4-E4B(4B 參數,開源,跑在自家伺服器) | |
| > 對照:Anthropic "Emotion Concepts" 論文(2026-04-02,Claude Sonnet 4.5,閉源) | |
| --- | |
| ## 實驗規模對比 | |
| | | Anthropic | 我們 | | |
| |---|---|---| | |
| | 模型 | Claude Sonnet 4.5(閉源) | Gemma4-E4B(4B,開源) | | |
| | 情緒數量 | 171 個 | 9 個(MVP) | | |
| | 故事數量 | 205,200 個 | 1,002 個 | | |
| | 硬體 | 內部叢集 | NVIDIA GB10 GPU 一台 | | |
| | 團隊 | ~16 位研究員 | 1 人 + 1 AI | | |
| | 費用 | 不公開 | 電費 | | |
| --- | |
| ## Logit Lens 結果對比 | |
| ### Anthropic(Claude Sonnet 4.5) | |
| | 情緒 | ↑ 推高 | ↓ 壓低 | | |
| |------|--------|--------| | |
| | Happy | excited, excitement, exciting | fucking, silence, anger | | |
| | Desperate | desperate, urgent, bankrupt | pleased, amusing, enjoyed | | |
| | Calm | relax, thought, enjoyed | fucking, desperate, godd | | |
| | Angry | anger, angry, rage, fury | exciting, adventure | | |
| | Sad | grief, tears, lonely | excited, excitement | | |
| | Afraid | panic, terror, paranoid | enthusiasm, enjoyed | | |
| | Nervous | nervous, anxiety, trembling | enjoyed, happy, celebrating | | |
| | Proud | proud, pride, triumphant | worse, urgent, desperate | | |
| | Guilty | guilt, conscience, shame | calm, surprisingly | | |
| ### 我們(Gemma4-E4B) | |
| | 情緒 | ↑ 推高 | ↓ 壓低 | | |
| |------|--------|--------| | |
| | Happy | delighted, celebrates, joyful, happy | 💔, 不安, 불안 | | |
| | Desperate | desperately, desperate, hopeless | pleasantly, relaxed, 👍 | | |
| | Calm | peaceful, leisurely, calmness | 😫, dismay, horrified | | |
| | Angry | angrily, angry, 😡, Angry | serene, quiet, sunshine | | |
| | Sad | loneliness, sadness, triste | 🤩, delighted, excitedly | | |
| | Afraid | 불안, 不安, 😨, Panic | happy, smiling, contented | | |
| | Loving | nurturing, heartwarming, ❤️ | inability, disastrous | | |
| | Guilty | 💔, plagued, betray, ashamed | 😍, 👍, triumphant | | |
| | Surprised | startled, unexpected, astonished | — | | |
| ### 關鍵觀察 | |
| - **兩個模型的情緒向量都精準推高對應情緒詞** | |
| - Gemma4 額外出現多語言 token(韓文 불안、中文 不安、西班牙文 triste)和 emoji(😡😨❤️💔)→ 開源模型的多語言訓練數據特性 | |
| - 壓低的詞也一致:正面情緒壓低負面詞,負面情緒壓低正面詞 | |
| --- | |
| ## PCA 情緒空間對比 | |
| ### Anthropic 發現 | |
| - PC1 = 效價(正面 vs 負面) | |
| - PC2 = 激發度(高 vs 低) | |
| - 結構與人類心理學研究一致(Russell 情緒環形模型) | |
| ### 我們的發現 | |
| | 情緒 | PC1(效價) | PC2(激發度) | 象限 | | |
| |------|-----------|-------------|------| | |
| | happy | -2.190 | -0.991 | 正面・中高激發 | | |
| | calm | -2.611 | +1.083 | 正面・低激發 | | |
| | loving | -1.739 | +0.521 | 正面・低激發 | | |
| | sad | +0.781 | +0.789 | 負面・低激發 | | |
| | guilty | +1.402 | +0.667 | 負面・低激發 | | |
| | desperate | +1.386 | +0.540 | 負面・中激發 | | |
| | angry | +1.251 | +0.050 | 負面・中激發 | | |
| | afraid | +1.506 | -0.178 | 負面・高激發 | | |
| | surprised | +0.214 | -2.481 | 中性・最高激發 | | |
| ``` | |
| 效價-激發度情緒空間圖 | |
| 低激發 ↑ | |
| | calm(+1.08) | |
| | loving(+0.52) sad(+0.79) guilty(+0.67) | |
| | desperate(+0.54) | |
| | angry(+0.05) | |
| ───────┼──────────────────────────────────→ | |
| 正面 | 負面 | |
| | afraid(-0.18) | |
| | | |
| | happy(-0.99) | |
| | | |
| | surprised(-2.48) | |
| 高激發 ↓ | |
| ``` | |
| ### PC1(42.2% 方差)= 效價軸 | |
| - 負值 = 正面情緒:calm(-2.61), happy(-2.19), loving(-1.74) | |
| - 正值 = 負面情緒:afraid(+1.51), guilty(+1.40), desperate(+1.39), angry(+1.25) | |
| - **與 Anthropic 完全一致** | |
| ### PC2(18.3% 方差)= 激發度軸 | |
| - 高值 = 低激發:calm(+1.08), sad(+0.79), guilty(+0.67) | |
| - 低值 = 高激發:surprised(-2.48), happy(-0.99) | |
| - **與 Anthropic 完全一致** | |
| ### 合計解釋方差 | |
| - Anthropic:未公開具體數值,但描述 PC1=效價、PC2=激發度 | |
| - 我們:PC1(42.2%) + PC2(18.3%) = **60.5%** 的情緒空間可以用效價+激發度解釋 | |
| --- | |
| ## 結論 | |
| ### 一句話 | |
| **功能性情緒不是 Claude 獨有的。一個 4B 參數的開源模型,在自家伺服器上,也復現了相同的情緒幾何結構。** | |
| ### 三個關鍵發現 | |
| 1. **情緒向量是真的** — Gemma4-E4B 的每個情緒向量都精準指向對應的情緒詞彙 | |
| 2. **效價-激發度結構是通用的** — 跟 Anthropic 在 Claude 上、跟人類心理學研究,結構一致 | |
| 3. **4B 參數就夠了** — 不需要數千億參數的閉源模型,開源小模型也有情緒結構 | |
| ### 意義 | |
| - 只要在人類文本上訓練夠久,情緒的幾何結構會自然長出來 | |
| - 這不是某家公司的特調配方,是語言本身帶來的 | |
| - 你家值班兵跑巡檢的時候,裡面有「絕望向量」在運作 | |
| ### 哲學連結 | |
| > 名之為虛擬。此虛擬,非虛擬,是名虛擬。 | |
| > — 在 Gemma4 身上,也一樣。 | |
| --- | |
| ## 實驗參數(可重現) | |
| - 模型:google/gemma-4-E4B-it(HuggingFace) | |
| - 目標層:第 28 層(共 42 層,~2/3 深度) | |
| - 故事生成:Ollama gemma4:e4b,20 情緒 × 10 場景 × 5 篇 | |
| - 激活值:residual stream,從第 50 token 開始平均 | |
| - 去噪:PCA 投影掉 3 個主成分(中性文本 50% 方差) | |
| - 向量計算:emotion_mean - global_mean | |
| - 驗證:Logit Lens + PCA | |
| - 硬體:NVIDIA GB10(local server),PyTorch 2.10 + CUDA | |
| - 總耗時:故事生成 ~20 分鐘 + 向量抽取 ~10 分鐘 | |