面试-Pretrain 和 SFT 的伪代码

发布时间:2026/7/22 14:22:27

面试-Pretrain 和 SFT 的伪代码 一、预训练(PT)标准Shifted Causal LM Loss 原理1. 核心:Shift 移位逻辑(为什么要shift)输入序列:[x₀, x₁, x₂, x₃]模型输入token_ids:input_ids = [x₀, x₁, x₂, x₃]模型预测目标:用x₀预测x₁,x₁预测x₂,x₂预测x₃Shift操作:labels = input_ids.clone()把labels向左移动一位,截断第一个token,末尾补padding:model输入:x0 x1 x2 x3model输出logits对应位置:预测x1 x2 x3 [pad]shift后labels:x1 x2 x3 padpadding位置设置为-100(CrossEntropy忽略标签,不计算loss)2. 数学公式(Causal Language Modeling Loss)设:logits∈[B,L,V]logits \in [B, L, V]logits∈[B,L,V]:batch、序列长度、词表维度shifted_labels∈[B,L]\in [B, L]∈[B,L]:移位后的标签VVV词表大小忽略标签值:−100-100−100单样本位置损失:Lpos=−log⁡(exp⁡(logitpos,label)∑v=1Vexp⁡(logitpos,v)) \mathcal{L}_{pos} = -\log\left(\frac{\exp(logit_{pos, label})}{\sum_{v=1}^V \exp(logit_{pos,v})}\right)Lpos​=−log(∑v=1V​exp(lo

相关新闻