Qwen2.5简要全流程以及Q&A

1 输入prompt 得到input id

input id: [B,L] # batch size , lenth

2 embeding之后得到 input_embeds: [B,L,D] # demensions

3 进入Transformer层

先通过linear层得到shape不变的 QKV

多头注意力 分割Dimension , kv变成 [B,H,L,head_dim] h是head,head_dim * head = Dimension

(如果有kvcache的话):

new key [B, H, 1 head_dim]

past key [B,H,L_prev,dim]

concat:[B,H,L_prev+1,dim]

Attn输出 [B,L,D]

outputs = self.transformer(input_ids, ...)

final_hidden_states = outputs[0] # shape: [B, L, D]

logits = self.lm_head(final_hidden_states) # shape: [B, L, vocab_size]

self.transformer 是由多层 Qwen2Block(带 attention + feedforward)堆叠组成,每层更新一次 hidden state。最终最后一层输出的 hidden state 就是 final_hidden_states。

logits = lm_head(final_hidden_states)

→ [B, L, vocab_size]

(值是每个位置对每个词的预测得分)

遇到到是哪个token_id之后 用tokenizer.decode()得到最终的词

lm_head是什么

语言建模头(Language Modeling Head)

一个线性层,将输出的hidden_states映射到词表维度

vocab_size = 151936, hidden_size = 4096

self.lm_head = nn.Linear(4096, 151936, bias=False)

得到logits之后还有一个sampling的过程

greedy sampling 直接取最大值

next_token = ops.argmax(next_token_logits, axis=-1) # [B]

Top-k / Top-p Sampling:

用 softmax 得到概率

probs = ops.softmax(next_token_logits, axis=-1) # [B, vocab_size]

根据策略采样

next_token = sample_from(probs, top_k=50, top_p=0.95, temperature=1.0)

top_k 取前k个概率大的

top_p 累积概率小于0.95

相关推荐
钓了猫的鱼儿15 分钟前
基于深度学习+AI的水下目标目标检测与预警系统(Python源码+数据集+UI可视化
人工智能·深度学习·智能手机
山屿落星辰3 小时前
ops-nn - 神经网络算子性能秘籍
人工智能·深度学习·神经网络
LaughingZhu3 小时前
Product Hunt 每日热榜 | 2026-05-22
人工智能·经验分享·深度学习·神经网络·产品运营
钓了猫的鱼儿4 小时前
基于深度学习+AI的玩手机行为目标检测与预警系统(Python源码+数据集+UI可视化界面+YOLOv11训练结果)
人工智能·深度学习·智能手机
解局易否结局4 小时前
从零上手 ops-transformer:一个有清晰路径感的学习计划
深度学习·学习·transformer
z小猫不吃鱼4 小时前
15 BEiT 论文精读:BERT Pre-Training of Image Transformers
人工智能·深度学习·bert
茗创科技4 小时前
脑室周围扩散率(PVeD)专题:一种评估类淋巴系统功能的DTI新方法(附高分文献下载)
深度学习·机器学习·matlab·脑网络
Uranus^5 小时前
大模型/深度学习/机器学习绘图模板(PPT格式)
人工智能·深度学习·机器学习·ai
动物园猫5 小时前
人脸表情七种表情数据集分享(适用于YOLO系列深度学习分类检测任务)
深度学习·yolo·分类
多年小白5 小时前
英伟达VR200机柜PCB价值量同比+233%:AI硬件主线如何被引爆?
大数据·人工智能·科技·深度学习·ai