Mistral Large 技术解析
Mistral Large 是法国 Mistral AI 推出的大语言模型,以高效的架构设计著称。
滑动窗口注意力
Mistral 的标志性设计是滑动窗口注意力(SWA),限制每个 Token 只关注固定窗口内的前驱 Token:
python
class SlidingWindowAttention(nn.Module):
def __init__(self, window_size=4096):
self.window_size = window_size
def forward(self, Q, K, V):
seq_len = Q.shape[1]
# 创建滑动窗口掩码
mask = torch.ones(seq_len, seq_len, dtype=torch.bool)
for i in range(seq_len):
mask[i, max(0, i - self.window_size):i+1] = False
scores = torch.matmul(Q, K.transpose(-2, -1)) / math.sqrt(d_k)
scores.masked_fill_(mask, float('-inf'))
return torch.matmul(F.softmax(scores, dim=-1), V)SWA 与 KV Cache
SWA 限制了 KV Cache 的大小为窗口长度,而非序列长度。这使得 Mistral 在长序列推理时内存效率极高。