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 = outputs0 # 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

相关推荐
一条大祥脚4 小时前
TVM 的前世今生:从深度学习编译器到 AI 基础设施
人工智能·深度学习·tvm
AI源码7 小时前
基于深度学习的音乐风格分类系统
人工智能·深度学习
AI源码8 小时前
基于深度学习的热带水果检测系统设计与实现
人工智能·深度学习
播播资源10 小时前
同账户实测 11 个多模态模型:图像 0.03 元起、竖屏视频 8 元一条,最贵和最便宜差 267 倍
大数据·人工智能·深度学习
武子康13 小时前
动作和画面时间最近,就能配成训练样本吗?
人工智能·深度学习
武天旭14 小时前
AI安全--AI大模型的数据投毒攻击解析
人工智能·深度学习·安全
这张生成的图像能检测吗14 小时前
(论文速读)Ponder:通过神经渲染进行点云预训练
人工智能·深度学习·机器学习·点云·3d技术·神经渲染
在所不辞兄15 小时前
为什么生成对抗网络训练常不稳定,模式崩溃与判别器过强之间是什么关系?
人工智能·深度学习·神经网络·机器学习
Zachery Pole16 小时前
【PlaNet 2】-RSSM机制
人工智能·深度学习·机器学习
电科_银尘16 小时前
【深度学习项目实战·13】服装图像分类:在相同条件下比较MLP与CNN
深度学习·分类·cnn