nano-lm-head
nano-vllm/nanovllm/models/qwen3.py · bb823b3 · L186–216 · 固定 commit 上游
这是固定版本源码的只读摘录;可在线阅读,也可通过上游链接查看原文件。
186class Qwen3ForCausalLM(nn.Module):
187 packed_modules_mapping = {
188 "q_proj": ("qkv_proj", "q"),
189 "k_proj": ("qkv_proj", "k"),
190 "v_proj": ("qkv_proj", "v"),
191 "gate_proj": ("gate_up_proj", 0),
192 "up_proj": ("gate_up_proj", 1),
193 }
194
195 def __init__(
196 self,
197 config: Qwen3Config
198 ) -> None:
199 super().__init__()
200 self.model = Qwen3Model(config)
201 self.lm_head = ParallelLMHead(config.vocab_size, config.hidden_size)
202 if config.tie_word_embeddings:
203 self.lm_head.weight.data = self.model.embed_tokens.weight.data
204
205 def forward(
206 self,
207 input_ids: torch.Tensor,
208 positions: torch.Tensor,
209 ) -> torch.Tensor:
210 return self.model(input_ids, positions)
211
212 def compute_logits(
213 self,
214 hidden_states: torch.Tensor,
215 ) -> torch.Tensor:
216 return self.lm_head(hidden_states)