大模型算法岗位面试攻略
1. RAG 技术体系的总体思路
数据预处理 -> 分块(这一步骤很关键,有时候也决定了模型的效果)-> 文本向量化 -> query 向量化 -> 向量检索 -> 重排 -> query+ 检索内容输入 LLM -> 输出
2. 使用外挂知识库主要为了解决什么问题
- 克服遗忘问题
- 提升回答的准确性、权威性、时效性
- 解决通用模型针对一些小众领域没有涉猎的问题
- 提高可控性和可解释性,提高模型的可信度和安全性
3. 如何评价 RAG 项目效果的好坏
针对检索环节的评估:
- MMR (Maximal Marginal Relevance):平均倒排率,查询(或推荐请求)的排名倒数
- Hits Rate 命中率:前 k 项中,包含正确信息的项的数目占比
- NDCG (Normalized Discounted Cumulative Gain)
针对生成环节的评估:
- 非量化:完整性、正确性、相关性
- 量化:Rouge-L
4. 大模型的幻觉问题、复读机问题是什么
- 幻觉问题:即生成的内容是无意义的或不忠实于提供的源内容。
- 复读机问题:重复生成某些话,导致输出循环。
5. 针对问题 4,有没有什么解决办法
针对幻觉问题: 引入外挂知识库,加入一些纠偏规则,限制输出长度等。
针对复读机问题:
- 丰富数据集的多样性,预处理时尽量过滤重复无意义的文本
- 同义词替换等做数据增强
- 温度参数调整
- 后处理与过滤
6. 出现问题 4 的原因有哪些
针对幻觉问题: 幻觉问题主要分为两大类,一类是生成结果与数据源不一致,自相矛盾。另一类是用户问题超出了大模型的认知。针对前者可能是训练数据和源数据不一致、数据没对齐或者编码器理解能力的缺陷和解码器策略错误可能导致幻觉。后者则是用户的问题不在语言模型认知范围内。
针对复读机问题: 数据质量不高,存在大量单一、重复文本,文本过长。当你的前面的条件文本过长时,大模型的输出的几个短文本会被原始的很长的条件文本淹没,继续预测下一个 token 的话,在模型看起来可能条件仍然是差不多的,此时如果使用 greedy search,只选择概率最大的一个 token,模型极大可能会将前面已经生成的短文本重新预测成概率最大的文本,以此类推,会一直重复下去。
7. 当前主流的开源大模型是哪个,其架构具体是怎样的?
当前开源影响范围最广,生态建设最好的开源大模型是 Meta 的 LLaMA。其依旧采用 Transformers 架构,并做了如下改动:
- 为了提高训练稳定性,对每个子层做输入前置归一化,归一化函数为 RMSNorm(受 GPT-3 启发)
- 为了提升性能,SwiGLU 激活函数替换 ReLU 激活函数(受 PaLM 启发)
- 从绝对位置嵌入,改为旋转嵌入(受 GPT-neo 启发)
- 使用 causal multi-head attention 的一个高效实现来减少内存占用和运行时间
8. 有哪几种 SFT 方法
- 全微调
- Adapter Tuning
- Prefix Tuning
- Prompt Tuning
- P-Tuning v1
- LoRA
- RLHF
(SFT 时,学习率设置为预训练阶段的 10%,一般会取得不错的效果)
9. 什么是 LoRA 微调
在原始 PLM (Pre-trained Language Model) 旁边增加一个旁路,做一个降维再升维的操作,来模拟所谓的 intrinsic rank。训练的时候固定 PLM 的参数,只训练降维矩阵 A 与升维矩阵 B。而模型的输入输出维度不变,输出时将 BA 与 PLM 的参数叠加。用随机高斯分布初始化 A,用 0 矩阵初始化 B,保证训练的开始此旁路矩阵依然是 0 矩阵。


