x: (B, S, D) kv: (B, S, H, D)
(self,
x: Tensor,
kv: Optional[Tensor] = None,)
| 222 | return q, k, v |
| 223 | |
| 224 | def forward(self, |
| 225 | x: Tensor, |
| 226 | kv: Optional[Tensor] = None,): |
| 227 | """ |
| 228 | x: (B, S, D) |
| 229 | kv: (B, S, H, D) |
| 230 | """ |
| 231 | q, k, v = self._project(x) |
| 232 | return self._attend(q, k, v, kv_cache=kv) |
| 233 | |
| 234 | |
| 235 | class PreNormAttn(nn.Module): |