Spaces:
Running on Zero
Running on Zero
Download jeeves_src/model/head.py from hugging-apps/jeeves-9b: direct link, hf CLI and curl.
- Browser
- Download file 714 Bytes
-
https://huggingface.co/spaces/hugging-apps/jeeves-9b/resolve/main/jeeves_src/model/head.py
- Command line
-
hf download hf://spaces/hugging-apps/jeeves-9b/jeeves_src/model/head.py
-
curl -L -o head.py https://huggingface.co/spaces/hugging-apps/jeeves-9b/resolve/main/jeeves_src/model/head.py
714 Bytes
| from torch import Tensor, nn | |
| class PointerHead(nn.Module): | |
| def __init__(self, d_embed: int, d_latent: int = 256): | |
| super().__init__() | |
| self.q = nn.Linear(d_embed, d_latent) | |
| self.k = nn.Linear(d_embed, d_latent) | |
| self.scale = d_latent**-0.5 | |
| self.temperature = 1.0 | |
| def forward( | |
| self, | |
| questions: Tensor, # (B, K, D) | |
| decide: Tensor # (B, D) | |
| ) -> Tensor: | |
| options = self.k(questions.to(self.k.weight.dtype)) | |
| query = self.q(decide.to(self.q.weight.dtype)) | |
| logits = (options @ query.unsqueeze(-1)).squeeze(-1) * self.scale | |
| return logits if self.training or self.temperature == 1.0 else logits / self.temperature | |