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

相关推荐
HyperAI超神经1 小时前
SenseNova-U1.5-8B-MoT 统一生成与理解,解锁原生多模态创作;DeepSeek-V4-Flash-Vision-Exp 拓展视觉理解新能力
人工智能·深度学习·图像生成·多模态大模型·视觉推理
东方佑2 小时前
元可塑性循环单元(Meta-RU)与 GRU 的对比研究与混合设计
人工智能·深度学习·gru
LlmCraft|大模型工程实践2 小时前
08 预训练语言模型:BERT 与 GPT
人工智能·深度学习·nlp
EQUINOX12 小时前
【论文精读】| MiniGPT-4精读
论文阅读·人工智能·深度学习
X54先生(人文科技)3 小时前
《元创力》卷宗 3.5《退场不是退出——碳硅协同驾驶原则的深层推导》
人工智能·深度学习·开源·ai写作·零知识证明
lucky_syq3 小时前
小模型推理能力天花板:是Transformer架构锁死,还是参数规模不够?换架构能否实现推理飞跃?
深度学习·架构·transformer
jay神3 小时前
深度学习的损失函数怎么选?
人工智能·深度学习·计算机视觉·毕业设计·损失函数
zhaoali07094 小时前
深度学习系列实验-计算机视觉基础
人工智能·深度学习·计算机视觉
xwz小王子5 小时前
拒绝视频生成,深度跃迁提出具身基座模型全新路线
人工智能·深度学习·机器学习
β添砖java6 小时前
深度学习30双向循环神经网路、机器翻译数据集、序列到序列学习、束搜索
人工智能·深度学习