跳到主要内容大模型算法岗面试真题超全总结 | 极客日志编程语言AI算法
大模型算法岗面试真题超全总结
综述由AI生成总结了大模型算法岗位的核心面试真题,涵盖基础理论、参数微调与训练、应用框架、分布式训练及其他技术细节。内容包括主流开源模型介绍、Transformer 架构差异、Tokenizers 原理、LoRA 等微调技术详解、LangChain 与 RAG 框架应用、以及分布式训练策略如 ZeRO 和 Flash Attention。文章旨在帮助求职者系统梳理知识点,掌握从模型选型到工程落地的全流程技能。
1qazxsw221 浏览 大模型算法岗面试真题超全总结
从 2019 年的谷歌 T5 到 OpenAI GPT 系列,参数量爆炸的模型不断涌现。尤其是 2022 年 11 月对话大模型 ChatGPT 的出现,引起了社会各界的广泛关注。
近些年,在大规模语料库上预训练 Transformer 模型产生了预训练语言模型(PLMs),并在解决各类 NLP 任务上展现出了强大的能力。当参数规模超过一定水平时,语言模型实现了显著的性能提升,并展现出小模型中不存在的能力,比如上下文学习。为了区别于 PLM,这类模型被称为大型语言模型(LLMs)。
本文结合大模型面试的真题分享和实战经验,将大模型常考的面试题归纳为:大模型基础、大模型参数微调/训练/推理、大模型应用框架、大模型分布式训练及其他技术等内容。
大模型基础
你比较关注哪些主流的开源大模型?
目前主流开源模型包括 LLaMA 系列(Llama, Llama2, Llama3)、ChatGLM 系列(ChatGLM2, ChatGLM3)、Qwen(通义千问)、Baichuan(百川)、Falcon 等。选择模型时通常考虑许可证、性能、多语言能力以及社区活跃度。
目前大模型模型结构都有那些?
主要结构包括 Encoder-only(如 BERT)、Decoder-only(如 GPT 系列)、Encoder-Decoder(如 T5、BART)。此外还有混合架构(如 Switch Transformer)和多模态架构(如 CLIP、Flamingo)。
Prefix LM 和 Causal LM、Encoder-Decoder 区别及各自有什么优缺点?
- Causal LM (Decoder-only): 单向注意力机制,适合生成任务。优点是推理效率高,支持自回归;缺点是难以利用后续信息。
- Prefix LM: 允许前缀部分双向注意,后缀单向。结合了编码和解码的优势,适合填充任务。
- Encoder-Decoder: 双向注意力用于编码器,单向用于解码器。优点是理解能力强,适合翻译、摘要;缺点是推理速度较慢,资源消耗大。
模型幻觉是什么?业内解决方案是什么?
模型幻觉指模型生成的内容与事实不符或凭空捏造。解决方案包括:增加高质量数据训练、引入检索增强生成(RAG)、使用知识图谱约束、优化损失函数(如 RLHF)以及后处理校验。
大模型的 Tokenizer 的实现方法及原理?
常见方法有 WordPiece(BERT)、Byte-Pair Encoding(GPT)、Unigram(SentencePiece)。原理是将文本分割为子词单元,通过统计频率合并高频字符对,平衡词汇表大小与压缩率,有效处理未登录词。
ChatGLM3 的词表实现方法?
ChatGLM3 基于 SentencePiece 进行分词,采用了特殊的 tokenizer 设计以支持中文和英文的高效编码,同时优化了特殊 token 的处理逻辑。
GPT3、LLAMA、Chatglm 的 Layer Normalization 的区别是什么?各自的优缺点是什么?
- GPT3: 使用 Pre-LN(LayerNorm 在 Attention 和 FFN 之前),有助于深层网络训练稳定。
- LLAMA: 采用 RMSNorm(Root Mean Square Layer Normalization),去除了均值计算,仅保留方差归一化,计算效率更高,显存占用更低。
- ChatGLM: 早期版本使用标准 LN,后续版本也倾向于 RMSNorm 变体以提升效率。
大模型常用的激活函数有哪些?
主要包括 ReLU、SwiGLU(Swish + GLU)、GeLU。SwiGLU 在 LLaMA 等模型中被广泛采用,相比 ReLU 能更好地捕捉非线性特征且梯度更平滑。
Multi-query Attention 与 Grouped-query Attention 是否了解?区别是什么?
- Multi-head Attention (MHA): 每个头独立查询、键、值。
- Multi-query Attention (MQA): 所有头共享一套键和值,减少 KV Cache 显存占用,但可能影响精度。
Grouped-query Attention (GQA): 介于两者之间,将头分组,组内共享 KV。在性能和显存之间取得平衡,被 LLaMA2 等模型采用。多模态大模型是否有接触?落地案例?
多模态模型如 CLIP、BLIP、Flamingo 可处理图文。落地案例包括智能客服(图文识别)、医疗影像分析、电商商品搜索(以图搜图)等。
大模型参数微调、训练、推理
为什么需要进行参数微调?参数微调的优点有哪些?
通用大模型缺乏特定领域知识。微调(Fine-tuning)能让模型适应垂直场景。优点包括:成本低(相比从头训练)、效果好、可定制性强。
模型参数微调的方式有哪些?你最常用哪些方法?
方式包括全量微调、LoRA、P-Tuning、Prompt Tuning。最常用的是 LoRA,因其显存占用低且效果接近全量微调。
Prompt tuning 和 Prefix tuning 在微调上的区别是什么?
- Prompt Tuning: 仅在输入层添加可学习的连续向量,冻结模型主体。
- Prefix Tuning: 在每一层 Transformer 的输入前添加可学习的 prefix 向量,影响中间层的隐藏状态。Prefix Tuning 表达能力更强,但计算开销略大。
LLaMA-adapter 如何实现稳定训练?
LLaMA-Adapter 通过在 Transformer 层插入可学习的 adapter 模块,保持原始权重不变。它使用了残差连接和特定的初始化策略来确保训练稳定性,避免灾难性遗忘。
LoRA 原理与使用技巧有哪些?
原理: 冻结预训练权重,旁路训练低秩分解矩阵(A 和 B),更新权重 W' = W + BA。技巧: 设置合适的 rank(如 8, 16, 64),选择正确的 target modules(如 q_proj, v_proj),配合适当的 learning rate。
LoRA 微调优点是什么?
显存占用极低,训练速度快,易于部署,支持多任务切换(只需加载不同 LoRA 权重),几乎不降低模型性能。
AdaLoRA 的思路是怎么样的?
AdaLoRA 动态调整低秩矩阵的秩,根据重要性分配预算给不同的权重矩阵,比固定秩的 LoRA 更高效,能在更少参数下达到更好效果。
LoRA 权重合入 ChatGLM 模型的方法?
使用 merge_lora_weights 接口,将 LoRA 适配器权重叠加到基座模型权重上,保存为完整 checkpoint,以便直接推理而无需加载适配器。
P-tuning 讲一下?与 P-tuning v2 区别在哪里?优点与缺点?
P-tuning: 在输入层加入连续 prompt 向量,冻结模型。P-tuning v2: 将 prompt 扩展到所有层,并使用 MLP 投影,表达能力更强。v2 效果更好但显存占用稍高。
为什么 SFT 之后感觉 LLM 傻了?
通常是因为监督微调(SFT)数据质量差、分布偏移过大或过拟合。缓解方法包括混合通用数据与领域数据、控制学习率、使用正则化。
垂直领域数据训练后,通用能力往往会有所下降,如何缓解模型遗忘通用能力?
采用混合训练策略,在领域数据中加入一定比例的通用数据(如 Common Crawl 片段),或使用回放机制(Replay Buffer)。
进行 SFT 操作的时候,基座模型选用 Chat 还是 Base?
取决于任务。若需对话能力,选 Chat 版;若需指令遵循或特定格式输出,Base 版配合高质量指令数据微调更灵活。
领域模型词表扩增是不是有必要的?
视情况而定。若领域包含大量专业术语且现有词表无法有效编码,则有必要。否则可能导致稀疏性问题,一般优先使用子词扩展而非扩充词表。
训练中文大模型的经验和方法
中文大模型需注意分词优化、文化语境对齐、以及清洗高质量中文语料(如百科、新闻、书籍)。建议采用混合精度训练加速。
模型微调用的什么模型?模型参数是多少?微调模型需要多大显存?
常用基座如 LLaMA-7B/13B/70B。显存需求取决于 Batch Size 和序列长度。例如 7B 模型全量微调需约 80GB+ 显存,LoRA 微调 7B 模型单卡 24GB 即可。
预训练和 SFT 操作有什么不同?
预训练是无监督学习海量数据,学习语言规律;SFT 是有监督学习指令数据,学习任务遵循。预训练是基础,SFT 是适配。
训练一个通用大模型的流程有哪些
数据收集与清洗 -> 预处理(分词)-> 预训练 -> 评估 -> 指令微调(SFT)-> 人类反馈强化学习(RLHF/DPO)-> 部署。
DDO 与 DPO 的区别是什么?
DPO(Direct Preference Optimization)直接优化偏好数据,无需单独训练奖励模型(RM),简化流程。DDO 并非标准术语,可能指代 Direct Distillation Optimization 或其他变体,通常对比的是 PPO 与 DPO。
是否接触过 Embedding 模型的微调方法
是的,常用方法包括对比学习(Contrastive Learning),使用三元组 Loss 拉近正样本对距离,推远负样本对距离。
有哪些省内存的大语言模型训练/微调/推理方法?
量化(INT8/INT4)、FlashAttention、ZeRO 优化、KV Cache 优化、LoRA 微调、Offloading(CPU/GPU 卸载)。
大模型(LLMs)评测有哪些方法?如何衡量大模型的效果?
方法包括自动评测(BLEU, ROUGE, Perplexity)和人工评测(Human Eval)。常用基准测试集如 MMLU, GSM8K, C-Eval。指标包括准确率、流畅度、安全性。
如何解决三个阶段的训练(SFT->RM->PPO)过程较长,更新迭代较慢问题?
尝试 DPO 替代 PPO 阶段,减少训练步骤;使用更高效的数据采样策略;并行化训练流程;优化超参数以减少收敛时间。
模型训练的数据集问题:一般数据集哪里找?
公开数据集如 Hugging Face Datasets, Common Crawl, GitHub Code, Wikipedia。也可自行爬取或购买商业数据。
为什么需要进行模型量化及原理?
量化旨在减少模型存储和计算开销。原理是将浮点权重转换为低精度整数(如 FP16->INT8),在保持精度的前提下降低显存带宽压力。
大模型词表扩充的方法及工具?
工具如 SentencePiece, BPE。方法包括基于频率合并、领域术语注入。需谨慎评估对 OOV 率和训练稳定性的影响。
大模型应用框架
什么是 LangChain?
LangChain 是一个用于构建大模型应用的开源框架,提供链式调用、记忆管理、Agent 编排等功能,简化 RAG 和应用开发流程。
什么是 LangChain Agent?
Agent 是能够自主规划、调用工具(如搜索、计算器)来完成复杂任务的组件。它根据用户意图决定调用哪个工具及顺序。
什么是 LangChain Model?
指 LangChain 封装的模型接口,统一了不同后端(OpenAI, Local LLM, HuggingFace)的调用方式,便于切换。
除了 LangChain,是否了解其他框架?
了解 LlamaIndex(侧重 RAG 和数据索引)、Haystack、Semantic Kernel(微软)、DSPy(声明式编程)。
是否有基于 LangChain 搭建大模型应用的经验,请详细说明?
曾搭建过企业知识库问答系统。流程:文档切片 -> 向量化存入 VectorDB -> LangChain 检索 -> 提示词组装 -> 模型生成 -> 结果展示。
搭建大模型应用遇到过哪些问题?如何解决的?
问题:延迟高、幻觉严重。解决:引入缓存机制、优化 Prompt、增加 RAG 检索相关性过滤、使用 Few-Shot 示例。
如何提升大模型的检索效果
优化文档分块策略(Chunking),使用混合检索(关键词 + 向量),重排序(Rerank)模型,优化 Query 改写。
是否了解上下文压缩方法?
了解,如 MapReduce 摘要、滑动窗口、关键信息提取。目的是在长上下文中保留核心语义,减少噪声。
如何实现窗口上下文检索?
维护一个滑动窗口队列,新内容进入时移除旧内容,或基于时间戳/访问频率淘汰过期上下文。
开源的 RAG 框架有哪些,你比较了解?
LangChain, LlamaIndex, Haystack, DSPy。
大模型应用框架 LangChain 和 LlamaIndex 各种的优势有哪些?
LangChain 生态丰富,通用性强;LlamaIndex 在数据处理和 RAG 管道构建上更专注,对复杂数据源支持更好。
你使用的向量库有哪些?各自有点与区别?
Elasticsearch(全文检索强)、Milvus(高性能向量检索)、Chroma(轻量级本地)、Faiss(Facebook 开源,底层高效)。区别在于扩展性、查询速度和易用性。
使用外部知识数据库时需要对文档进行分块,如何科学的设置文档块的大小?
依据语义完整性设置,通常 500-1000 tokens。过小导致信息碎片化,过大导致检索噪声。可通过实验调整。
LLMs 受到上下文长度的限制,如果检索到的文档带有太多噪声,该如何解决这样的问题?
使用 Rerank 模型对检索结果排序,只取 Top-K;优化 Prompt 指示模型忽略无关信息;改进检索策略提高召回精准度。
RAG(检索增强生成)对于大模型来说,有什么好处?
减少幻觉,提供实时知识,增强可解释性,降低训练成本(无需重新训练模型即可更新知识)。
大模型分布式训练
大模型进行训练,你用的是什么框架?
DeepSpeed, Megatron-LM, PyTorch FSDP。
业内常用的分布式 AI 框架,你什么了解?
Horovod, DeepSpeed, Ray Train, PyTorch Distributed Data Parallel (DDP)。
数据并行、张量并行、流水线并行的原理及区别?
- 数据并行: 复制模型,拆分数据,同步梯度。简单但受限于单卡显存。
- 张量并行: 拆分单层矩阵运算,跨卡通信频繁。适合大模型层内切分。
- 流水线并行: 拆分模型层,按层分配显卡。适合极深模型,存在气泡开销。
推理优化技术 Flash Attention 的作用是什么?
通过减少 HBM 读写次数,优化 Attention 计算内核,显著提升训练和推理速度,降低显存占用。
推理优化技术 Paged Attention 的作用是什么?
借鉴操作系统分页机制管理 KV Cache,消除内存碎片,支持更大的 Batch Size 和序列长度,提升吞吐量。
CPU-offload,ZeRO-offload 了解?
ZeRO-offload 将优化器状态和部分梯度卸载到 CPU,节省 GPU 显存,使更大模型可在有限显存下训练。
ZeRO,零冗余优化器的三个阶段?
Stage 1: 优化器状态分片;Stage 2: 优化器状态 + 梯度分片;Stage 3: 优化器状态 + 梯度 + 参数分片。Stage 3 显存节省最多。
混合精度训练的优点是什么?可能带来什么问题?
优点:速度快,显存占用减半。问题:数值溢出、精度损失。需使用 Loss Scaling 缓解。
Megatron-DeepSpeed 方法?
结合 Megatron-LM 的张量/流水线并行与 DeepSpeed 的 ZeRO 优化,实现超大规模模型的高效分布式训练。
Megatron-LM 方法
由 NVIDIA 提出,专注于大规模 Transformer 训练的并行策略,支持高效的张量并行和流水线并行配置。
其他技术
你 GPU 服务器用那些?
常用 NVIDIA A100, V100, RTX 4090 等。国产芯片如华为 Ascend 910 也在逐步普及。
是否使用过国产 GPU 服务器?
部分项目尝试过昇腾(Ascend)集群,需适配 CANN 软件栈,生态正在完善中。
是否部署过 Docker 和 k8s?
是。Docker 用于环境隔离,Kubernetes 用于容器编排和弹性伸缩。
Linux 常见命令大全
ls, cd, grep, awk, sed, top, ps, chmod, ssh, tar 等。
Docker 常用命令大全
docker run, docker build, docker-compose up, docker exec, docker logs 等。
Kubernetes 常用命令大全
kubectl get pods, kubectl apply, kubectl delete, kubectl describe 等。
平时使用的开发语言是什么?
Python 为主,辅以 Shell 脚本和少量 C++(用于算子优化)。
相关免费在线工具
- 加密/解密文本
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
- RSA密钥对生成器
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
- Mermaid 预览与可视化编辑
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
- 随机西班牙地址生成器
随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
- Gemini 图片去水印
基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online