You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MLA의 핵심은 KV 캐시를 줄이기 위한 키와 값의 저랭크 공동 압축입니다. 이 혁신적인 접근법은 키와 값을 별도로 처리하는 대신 공동으로 압축하여 더 효율적인 표현을 만듭니다.
154
158
155
159
$$\mathbf{c}_t^{KV} = W^{DKV} \mathbf{h}_t$$
160
+
156
161
$$\mathbf{k}_t^C = W^{UK} \mathbf{c}_t^{KV}$$
162
+
157
163
$$\mathbf{v}_t^C = W^{UV} \mathbf{c}_t^{KV}$$
158
164
159
-
여기서 $\mathbf{c}_t^{KV} \in \mathbb{R}^{d_c}$는 키와 값을 위한 압축된 잠재 벡터이고, $d_c (\ll d_h n_h)$는 KV 압축 차원을 나타냅니다. $W^{DKV} \in \mathbb{R}^{d_c \times d}$는 다운 투영 행렬이고, $W^{UK}, W^{UV} \in \mathbb{R}^{d_h n_h \times d_c}$는 각각 키와 값을 위한 업 투영 행렬입니다.
165
+
여기서 $\mathbf{c}_t^{KV} \in \mathbb{R}^{d_c}$는 키와 값을 위한 압축된 잠재 벡터이고, $d_c (\ll d_h n_h)$는 KV 압축 차원을 나타냅니다. $W^{DKV} \in \mathbb{R}^{d_c \times d}$는 압축 행렬이고, $W^{UK}, W^{UV} \in \mathbb{R}^{d_h n_h \times d_c}$는 각각 키와 값을 위한 복원 행렬입니다.
160
166
161
167
이 압축 과정을 직관적으로 이해하면, 원래의 고차원 키-값 정보를 훨씬 작은 차원의 잠재 공간으로 압축한 다음, 필요할 때 이를 다시 복원하는 것입니다. 이는 정보의 핵심적인 부분만을 보존하면서 메모리 사용량을 크게 줄이는 효과적인 방법입니다.
훈련 중 활성화 메모리를 줄이기 위해 KV 캐시를 줄일 수는 없지만 쿼리에 대해서도 저랭크 압축을 수행합니다.
166
172
167
173
$$\mathbf{c}_t^Q = W^{DQ} \mathbf{h}_t$$
174
+
168
175
$$\mathbf{q}_t^C = W^{UQ} \mathbf{c}_t^Q$$
169
176
170
177
여기서 $\mathbf{c}_t^Q \in \mathbb{R}^{d_c'}$는 쿼리를 위한 압축된 잠재 벡터이고, $d_c' (\ll d_h n_h)$는 쿼리 압축 차원을 나타냅니다.
171
178
172
179
#### 분리된 회전 위치 임베딩
173
180
174
-
DeepSeek 67B를 따라 DeepSeek-V2에서도 Rotary Position Embedding(RoPE)을 사용하려고 했습니다. 그러나 RoPE는 저랭크 KV 압축과 호환되지 않습니다. 구체적으로, RoPE는 키와 쿼리 모두에 대해 위치에 민감합니다. 키 $\mathbf{k}_t^C$에 RoPE를 적용하면, 식 (10)의 $W^{UK}$가 위치에 민감한 RoPE 행렬과 결합됩니다.
181
+
DeepSeek 67B를 따라 DeepSeek-V2에서도 Rotary Position Embedding(RoPE)을 사용하려고 했습니다. 그러나 RoPE는 저랭크 KV 압축과 호환되지 않습니다. 구체적으로, RoPE는 키와 쿼리 모두에 대해 위치에 민감합니다. 키 $\mathbf{k}_t^C$에 RoPE를 적용하면, $W^{UK}$가 위치에 민감한 RoPE 행렬과 결합됩니다.
175
182
176
183
이 문제를 해결하기 위해 분리된 RoPE 전략을 제안합니다. 이 전략은 RoPE를 수행하기 위해 추가적인 멀티헤드 쿼리 $\mathbf{q}_{t,i}^R \in \mathbb{R}^{d_h^R}$와 공유 키 $\mathbf{k}_t^R \in \mathbb{R}^{d_h^R}$를 사용합니다. 여기서 $d_h^R$는 분리된 쿼리와 키의 헤드당 차원을 나타냅니다.
0 commit comments