File size: 5,700 Bytes
86dd93c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43e30a3
 
86dd93c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43e30a3
86dd93c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# 情緒向量本地復刻 — 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 分鐘