找回密码
 立即注册
首页 业界区 安全 LLM 算法岗 | 八股问答(2)· 大模型训练流程与微 ...

LLM 算法岗 | 八股问答(2)· 大模型训练流程与微调技术

乱蚣 2026-3-12 02:50:01
完整题库链接:LLM 算法岗 | 面试常问的 LLM 八股题目汇总

目录

  • 1. 从 txt 文本预处理到 SFT 训练的全流程
  • 2. Pretrain、SFT、RLHF 的区别
  • 3. Pretrain 和 SFT 优化目标的区别
  • 4. SFT 核心流程及数据集构建策略
  • 5. SFT 的 Loss 及多 Token 计算
  • 6. SFT 与预训练样本 Loss 计算区别及屏蔽方法
  • 7. SFT Loss 计算代码(含 shift right)
  • 8. SFT 之后的常见 Post-Training 及目的区别
  • 9. 为什么 SFT 后还要做 RL?为何偏好对齐不能用偏好数据直接做 SFT?
  • (夹带私货)为什么 DPO 现在不火了?
  • 面试背诵要点速查

1. 从 txt 文本预处理到 SFT 训练的全流程

步骤详解

  • 文本预处理

    • 清洗原始文本,去除无关字符、HTML 标签、乱码、去重等;质量过滤:基于规则(长度、乱码率)+ 基于模型(困惑度打分)筛选;
    • 统一编码和格式;可能进行句子分割或段落划分;
    • 对于多轮对话数据,需结构化处理,构建 JSON / Parquet 格式,比如统一为 {"instruction": "...", "input": "...", "output": "..."} 或对话格式。

  • Tokenization

    • 使用分词器(如 BPE、SentencePiece)将文本转换为 token IDs,添加特殊 token(如 [BOS]、[EOS]、[PAD])。
    • 对话模板(Chat Template):不同模型格式不同(Llama-3、Qwen、ChatGLM 等)。

  • 构建输入

    • max_length 截断,将 token IDs 序列进行 padding 至统一长度,padding="max_length" 或 padding="longest"(batch 内动态),生成 input_ids;
    • 创建 attention_mask 标识有效 token,区分 pad token(mask=0)和真实 token(mask=1);
    • 构造labels,其中 prompt 部分设为忽略索引(如 -100),response 部分为对应的 token IDs。

  • Forward

    • 将 input_ids 和 attention_mask 输入模型,得到logits,形状为 [batch_size, seq_len, vocab_size]。

  • Loss 计算

    • 采用交叉熵损失,通常需要 shift right:用当前 token 预测下一个 token,即取 logits[:, :-1, :] 和 labels[:, 1:],然后计算损失,忽略 labels 中为 -100 的位置。

  • 参数更新

    • 反向传播计算梯度,使用优化器(如 AdamW)更新模型参数,常配合学习率调度、梯度裁剪等技巧。

2. Pretrain、SFT、RLHF 的区别

维度Pretrain(预训练)SFT(监督微调)RLHF(人类反馈强化学习)目标学习通用语言表示和世界知识学习指令遵循 + 任务格式对齐人类偏好(有用、无害、诚实)数据海量无标注文本(网页、书籍、代码)高质量指令-输出对(数十万到数百万)偏好对/排序数据(A > B)任务定位自监督学习,next token prediction;基础模型构建有监督学习,条件生成;任务适配 / 对话能力培养强化学习,优化奖励函数;价值观对齐解决问题"模型会说话",从海量无标注文本中获取语言能力"模型听指令",让模型理解人类意图,输出符合期望的内容"模型说得好",纠正模型生成中不符合人类偏好的行为Loss纯交叉熵(所有 token)交叉熵(通常只算 answer 部分)PPO / DPO 等(基于奖励模型)3. Pretrain 和 SFT 优化目标的区别

Pretrain:优化目标是自回归语言建模损失,即最大化整个序列中每个 token 的条件概率(通常忽略部分 token 如 mask)。学习文本的统计分布。
<ul>目标:$ \max_\theta \sum_{t=1}^{T} \log P_\theta(x_t | x_{

相关推荐

您需要登录后才可以回帖 登录 | 立即注册