大模型面试题总结
下面把笔记里 7 个核心主题 逐一拆开,围绕「概念 → 原理 → 操作流程 → 实战细节 / 踩坑点」讲透,便于你真正落地。
1. 生成式大模型是什么 ──“会写东西”的超大 Transformer
关键词 | 说明 |
---|---|
大型 Transformer | Encoder-Decoder(T5)、Decoder Only(GPT、LLaMA)架构;十亿~千亿参数。 |
条件式生成 | 输入 prompt / image / speech,输出对应模态的新内容。 |
多模态趋势 | 文生图(DALL·E)、文+图→文(GPT-4o)、音频生成(AudioGen)。 |
实操落点
-
统一接口思想:一切任务(摘要、翻译、图片描述)都包装成「给 prompt → 取文本」;工程里只维护 Prompt-to-Output 管道。
-
Prompt 工程三段式:
-
System 提示:角色与风格约束;
-
Instruction / Few-shot:示例或解题步骤;
-
用户输入。
-
-
采样参数(见主题 2)决定“官方文风”还是“搞笑即兴”。
2. 为何输出不千篇一律 ── 训练多样 + 采样随机
2.1 训练侧:多样化技巧
方法 | 目的 | 实施要点 |
---|---|---|
P-Tuning / Prefix-Tuning | 用可学习的 prompt 前缀把通用模型“拉向”新风格 | 只训练 <0.1 % 参数,按任务单独存 ckpt |
LoRA 微调 | 低秩更新,插两块 Adapter 調权重 | 可并存多 LoRA,用权重合并快速切换 |
混合语料 | 新闻+论坛+诗歌 | 采样比例要防“烂俗数据”盖过技术文档 |
2.2 推理侧:采样策略
参数/策略 | 效果 | 实战建议 |
---|---|---|
temperature | 控制软max尖锐度:0=几乎贪心;>1 更随机 | 0.7 ~ 1.0 口语写作;0.1 报告/代码 |
Top-k | 只在概率最高的 k 个词中采样 | k=40 常见;越大越多样 |
Top-p (Nucleus) | 动态选使累计概率≥ p 的词 | p=0.9 可取代 Top-k |
Contrastive Search | 在相似度与概率间折中,抑制复读 | 需实现历史向量缓存,推理比采样慢 1.5× |
实操口诀:
“先定温度,再调 Top-p;想更稳就加frequency_penalty
。”
3. “复读机”问题 ── 产生原因与 12 招缓解
3.1 原因分析
-
高频 n-gram 占比大 → 模型倾向输出训练集常见片段
-
自回归目标:概率最大往往是“再来一个一样的 token”
-
注意力归纳 (Induction Head):观察复制型模式,训练中会被奖励
-
采样过保守:低温度 + Top-k = 1 导致贪心输出
3.2 缓解方法分层图
┌─ 推理层 ──────────┐
│ 1. Temperature ↑ │
│ 2. Top-k / Top-p │
│ 3. no-repeat-ngram│←最快
│ 4. RepetitionPenalty│
│ 5. ContrastiveSearch│
└────────▲────────┘│
┌─ 训练层 ──────────┐
│ 6. Unlikelihood │★核心
│ 7. 多样性奖励 RL │
│ 8. 边训练边去重噪│
└────────▲────────┘│
┌─ 后处理 / 监控 ──┐
│ 9. seq-rep-N 指标 │
│10. uniq-seq 阈值 │
│11. 人工二次检查 │
│12. 再生成兜底 │
└────────┘
Unlikelihood Training(重点)
-
做法:挑出“重复集合 C”,loss 加 −log(1−pC)-\log (1 - p_C)。
-
流程
-
获取基线模型输出,把连续重复 n-gram 入 C;
-
再跑一轮训练,更新参数;
-
复读率可降 60 % 以上,但需 精调超参:C 不宜过大&温度↓。
-
典型组合
-
生产环境最快:Top-p + no-repeat-ngram + RepetitionPenalty(=1.1);
-
仍复读 → 离线跑 Unlikelihood + Contrastive;
-
电商标题/歌词多韵脚,自研基于规则过滤
重复韵尾+重写
。
4. LLaMA 长上下文 ── “位置压缩 + 微调”完整流程
4.1 改位置编码
def remap_pos(ids, dst_len=2048):src_len = len(ids)scale = dst_len / src_lenreturn (torch.arange(src_len) * scale).long()
-
RoPE:直接给新的
position_ids
即可。 -
绝对 SinCos:需重算嵌入表或插值。
4.2 微调 1-2 epoch
-
数据:> 新窗口长度的长对话 / 文章;
-
参数:只训 LoRA (R=8) 或高层 4 层;学习率 1e-5;
-
卡数:单张 A100 70 GB ≈ 6 h 跑完 16 k 扩窗;
4.3 验证
-
窗口 PPL + 长问答一致性;
-
用长文摘要 & 引用回答测定位准确率;
-
查看“Attention heatmap”是否仍能跨段引用前文。
成本 < 重新训练 5 %;效果能恢复到原模型 90 % 水平。
5. 选 BERT 还是 LLaMA / ChatGLM?
任务 | 推荐 | 理由 | 实例 |
---|---|---|---|
分类、序列标注、实体抽取 | BERT / RoBERTa 110 M | 通道够用、延迟低 | 客诉分类、日志告警 |
复杂问答、长文摘要 | LLaMA-7B + 微调 | 需要生成长文本 | 报告生成、法律摘要 |
代码生成 / 多轮对话 | ChatGLM-6B | 中英混合、可指令微调 | 内部 ChatOps Bot |
实践:
-
CPU 推理 选 DistilBERT;
-
GPU 单卡 32 GB 可跑 6-7 B;
-
千万级 QPS 场景 → 用 Tiny-LLaMA 知识蒸馏到 1.5 B。
6. 行业到底要不要自训模型?
场景 | 建议 |
---|---|
医学、法律、金融(高门槛专有知识) | 通用 LLM + 私域语料 LoRA:80 % 效果,10 % 成本 |
互联网客服 / 娱乐对话 | 通用模型微调即可 |
极保密场景(军工) | 私有化全链路训练;或使用开源基座 + 闭环增量训练 |
流程
-
用 GPT-4 / Claude 先自动标一轮专用数据;
-
筛选高质量 + 人工审校;
-
LoRA 或 Adapter 微调 → 部署;
-
在线收集错例,加入 Replay Buffer 不断增量。
7. 复读监控与 A/B 上线流程
-
指标
-
seq_rep_n
(n-gram 复用率); -
distinct-n
(去重率); -
长文本用
self-BLEU
。
-
-
灰度
-
10 % 流量先启用新采样策略;
-
大盘 distinct-4 ↑,投诉率 ↓ 则扩大。
-
-
Fallback
-
若出现连环复读 → 触发再生成;
-
二次仍复读 → 走模板化兜底 / 人工介入。
-
结尾 Tips
-
Prompt 写作:多写“思路拆解→代码→解释”,可自然减少复读。
-
采样调优:Top-p=0.8 & T=0.75 是对话场景的黄金组合。
-
数据去重:训练前先
dedup + cc-net filter
能降低后期复读成本。
掌握这套「原理 + 工程拨片」,就可以在实际项目中:
-
既让大模型“写得好”,又不被复读坑;
-
把上下文长度、行业定制、线上监控等问题系统化解决。祝落地顺利!