跳转至

最新版AI大模型面试八股文

(墙裂推荐200页精选版)

1、请详细解释Transformer中的Self-Attention机制,并写出其计算公式。

答: Self-Attention通过Q、K、V矩阵计算序列中每个token对其他token的权重。

image.png

其中除以 dkdk 是为了防止点积结果过大导致softmax梯度消失。

2、为什么Transformer中需要使用位置编码?常见的几种位置编码有什么区别?

答: Attention机制本身是置换不变的,无法捕捉顺序信息。

  • Sinusoidal编码:固定,无需训练,利用三角函数不同频率,可外推。

  • 可学习编码:将位置索引映射为向量参与训练,长度受限于训练时的最大长度。

  • RoPE(旋转位置编码):目前主流(如LLaMA),通过旋转矩阵将位置信息融入向量内积,具备良好的长度外推性。

3、解释一下FlashAttention的原理,它如何解决显存瓶颈? 答: FlashAttention通过分块计算(Tiling)避免将完整 N×NN×N 的注意力矩阵写入HBM(高带宽内存),而是将其保留在SRAM中计算,减少了HBM读写次数,将显存占用从 O(N2)O(N2) 降为 O(N)O(N),并显著提升速度。

4LLM中常用的激活函数有哪些?相比ReLU有什么改进?

答:

  • SwiGLU(LLaMA等):结合了门控线性单元和Swish激活,相比ReLU能更好地保留负值信息,通常能提升模型性能。

  • GeLU(BERT):高斯误差线性单元,比ReLU平滑。

5、LayerNorm和BatchNorm的区别?为什么Transformer用LayerNorm?

答: LN在特征维度上归一化,BN在批次维度上。由于NLP任务中序列长度变化且Batch Size较小,BN效果不稳定;LN独立于批次,更适合变长序列,且能稳定训练梯度。

6什么是KV Cache?在推理阶段如何工作? 答: 在自回归生成时,每个新token需要与之前所有token的K、V计算注意力。KV Cache将之前已经计算过的K、V矩阵缓存起来,避免重复计算,将计算复杂度从 O(n3)O(n3) 降为 O(n2)O(n2)。

7、解释一下“Scaling Laws”缩放定律。

答: OpenAI和DeepMind的研究表明,模型性能与计算量、数据量、参数量呈幂律关系。在扩展模型时,参数量和数据量应等比例扩展(Chinchilla定律),而非仅扩大模型尺寸。

8MoE(混合专家模型)架构的核心思想是什么?

答: 将前馈网络(FFN)替换为多个“专家”,并通过门控网络(Router)为每个token稀疏激活最相关的少数专家(如Top-2)。在保持总参数量巨大的同时,计算量(激活参数量)保持不变,如Mixtral 8x7B。

9、什么是上下文长度外推?如何让模型支持更长的上下文?

答: 指模型在训练长度(如4k)上训练后,能在更长长度(如32k)上推理。常用方法:

  • 位置编码插值(PI):缩放位置索引。

  • NTK-aware:高频维度少缩放,低频维度多缩放。

  • YaRN:结合插值和NTK。

10、解释一下模型的“幻觉”问题,主要原因是什么?

答: 指模型生成看似合理但与事实不符的内容。原因:

  1. 预训练知识截止日期限制。

  2. 目标函数是最大化似然,而非事实准确性。

  3. 解码时的概率采样随机性。

  4. 缺乏对不确定性的校准。

11、主流大模型(GPT、LLaMA、Claude)的Tokenizer有什么区别?

答:

  • GPT系列:使用BPE(Byte Pair Encoding),基于字节对合并。

  • LLaMA:使用SentencePiece(BPE实现),支持字节级回退,对多语言更友好。

  • Claude:使用Unicode字符级的BPE。

12、为什么LLaMA架构去掉了偏置项(bias)?

答: 实验表明在Transformer中移除偏置项不会显著影响模型性能,但能减少计算量和内存占用,提升训练稳定性。

13、请解释GQA(分组查询注意力)和MQA(多查询注意力)。

答: 为了减少KV Cache的显存占用。

  • MQA:所有头共享一对K、V,显存占用极小但质量略有下降。

  • GQA:将头分组,组内共享K、V,是MQA与MHA(多头注意力)的折中。LLaMA 2/3使用GQA。

14、什么是“涌现能力”?举几个例子。

答: 当模型规模超过某个阈值时,小模型中不存在的、突然出现的高级能力。例如:上下文学习(In-Context Learning)、思维链(Chain-of-Thought)、代码生成。

15、如何计算大模型的推理显存占用?

答: 主要由三部分构成:模型参数(半精度下参数量×2×2字节)+ KV Cache(2×batch×层数×头维×序列长度2×batch×层数×头维×序列长度)+ 中间激活值(临时张量)。


  1. SFT(监督微调)与预训练在数据格式上有什么不同?

答: 预训练使用无标注的纯文本(自回归预测Next Token)。SFT使用指令数据,格式通常为“Prompt + Response”,在计算Loss时通常只计算Response部分的Loss,不计算Prompt部分。

  1. LoRA的原理是什么?它为什么能降低微调显存? 答: LoRA(低秩适配)假设微调时的权重更新矩阵是低秩的,即 ΔW=BAΔW=BA,其中B和A为低秩矩阵。训练时冻结原参数,只更新A和B。显存占用从全量微调降低为只需要存储优化器状态对应的少量参数。

  2. 什么是QLoRA?它和LoRA的区别?

答: QLoRA = 量化 + LoRA。它将基座模型量化到4-bit(NF4格式),然后在此基础上附加LoRA进行微调。这使得可以在单张24GB显存的显卡上微调33B甚至70B的模型。

  1. 微调时如果遇到“灾难性遗忘”怎么办?

答:

  1. 使用混合微调,在指令数据中混入5%-10%的原始预训练数据。

  2. 使用EWC(弹性权重巩固)等正则化方法。

  3. 采用P-Tuning v2等参数高效微调方法,避免过多改变原参数。

  4. 解释一下Prefix Tuning和P-Tuning v2。

答: 在输入序列前添加可训练的连续向量(虚拟token)。P-Tuning v2是在每一层Transformer都添加可训练的Prefix,相比只在输入层添加效果更好,接近全参微调。

  1. 什么是DPO(直接偏好优化)?它相比PPO有什么优势?

答: DPO将RLHF中的强化学习问题转化为二分类交叉熵损失,直接利用偏好数据优化策略。优势:无需训练奖励模型,无需复杂的强化学习稳定性调参,训练速度快,资源消耗低。

  1. 如何构造高质量的SFT数据集?

答:

  1. 多样性:覆盖代码、数学、创作、多轮对话等场景。

  2. 难度分级:包含简单(对齐格式)和复杂(推理)样本。

  3. 数据清洗:去重、去除隐私、过滤低质量。

  4. 格式统一:使用ShareGPT或Alpaca格式。

  5. 在多卡微调时,DeepSpeed ZeRO的三个阶段分别是什么?

答:

  • ZeRO-1:分割优化器状态。

  • ZeRO-2:分割优化器状态 + 梯度。

  • ZeRO-3:分割优化器状态 + 梯度 + 模型参数(训练时动态参数收集)。 ZeRO-3显存占用最小,但通信开销最大。

  • 什么是“少样本微调”与“全量微调”的取舍?

答:

  • 全量微调:适合数据量大、需要深度领域适配(如代码、数学)的场景,效果好但资源消耗高。

  • LoRA/QLoRA:适合数据量中等、快速适配通用场景,是当前工业界主流。

  • 预训练数据中,为什么需要“去重”和“毒性检测”?

答:

  • 去重:防止模型“死记硬背”,出现过拟合,影响泛化能力。

  • 毒性检测:防止模型学习偏见、色情、暴力内容,确保模型输出的安全性。

  • 如何评估SFT后的模型效果?

答:

  1. 基准测试:MMLU(知识)、HumanEval(代码)、GSM8K(数学)。

  2. 人工/LLM-as-a-Judge:用GPT-4或Claude对生成结果进行A/B测试打分。

  3. MT-Bench:多轮对话评测基准。

  4. 在训练过程中,如何处理长序列带来的OOM问题?

答:

  1. 启用梯度检查点(Gradient Checkpointing),以计算换显存。

  2. 使用FlashAttention-2。

  3. 使用DeepSpeed ZeRO-3或FSDP进行参数分片。

  4. 降低Batch Size,增加梯度累积步数。

  5. 解释一下“指令微调”为何能让模型学会“遵循指令”?

答: 通过构造(指令,输出)对,模型学习到了输入指令与期望输出的映射关系,强化了模型在特定语境下的响应模式,覆盖了预训练阶段缺乏的交互范式。

  1. 什么是数据“掺水”/“数据污染”?如何检测?

答: 评测集的数据意外混入了预训练或微调数据中,导致评测分数虚高。检测方法:使用n-gram重叠检测,或要求模型“背诵”评测集原文。

  1. 在微调代码模型时,有什么特殊的技巧?

答:

  1. 保留代码的缩进格式。

  2. 使用文件级上下文而非单纯函数级。

  3. 在数据中增加代码解释部分,提升代码生成的解释能力。

  4. 使用Fill-in-the-Middle (FIM)任务格式。


三、 RLHF 与 对齐 (10题)

  1. RLHF的三阶段流程是什么?

答:

  1. SFT:使用高质量对话数据微调基座模型。

  2. RM(奖励模型):训练模型对人类偏好进行排序打分。

  3. RL(PPO):使用强化学习最大化奖励模型的得分,同时通过KL散度约束SFT模型,防止生成偏离太远。

  4. 奖励模型通常如何训练? 答: 使用排序损失(Pairwise Ranking Loss)。给定同一个prompt的两个回答(chosen, rejected),损失函数为 −log⁡(σ(rchosen−rrejected))−log(σ(rchosen−rrejected)),让模型学会偏好排序而非绝对值。

  5. PPO算法中的“Actor”和“Critic”在大模型背景下分别指什么?

答:

  • Actor:正在微调的LLM策略,生成回答。

  • Critic:一个价值网络(通常参数比Actor小),用于评估当前状态(当前生成文本序列)的价值,帮助减少方差。

  • 为什么要加KL散度约束?

答: 防止模型过度利用奖励模型的漏洞(Reward Hacking),生成高奖励但人类不喜欢的乱码文本。KL散度惩罚确保新模型与SFT模型保持一定的分布相似性。

  1. 除了RLHF,还有哪些对齐方法?

答:

  • DPO:直接偏好优化。

  • IPO:改进DPO,防止过拟合。

  • KTO:仅需“好”或“坏”的二分类标签,无需成对数据。

  • Constitutional AI:通过规则让模型自我修订,用于Claude。

  • 什么是“红队测试”?

答: 由人工或自动化(红队模型)针对模型输入各种有害、诱导性、越狱(Jailbreak)提示,以发现模型的安全漏洞和弱点。

  1. 如何对抗“越狱攻击”?

答:

  1. 提示词过滤:拒绝含有明显攻击性的输入。

  2. 系统提示词强化:在System Prompt中强硬定义安全边界。

  3. 对抗训练:在微调数据中加入红队测试的样本。

  4. 困惑度检测:检测输入是否异常。

  5. 什么是“无害性”与“有用性”的权衡?

答: 过于强调无害性会导致模型过度拒绝,失去帮助性;过于强调有用性可能导致模型输出有害信息。RLHF通过在奖励模型中设计多维度的评分(如帮助性、正确性、无害性)进行平衡。

  1. 解释一下“思维链(Chain-of-Thought)”在RLHF中的作用。

答: 在构造偏好数据时,让模型先生成思考过程再给出答案,人类对思考过程进行排序。这能让模型学会先推理后回答,显著提升数学和逻辑任务的准确率。

  1. 目前主流模型(如Claude 3)是如何做对齐的?

答: 通常采用Constitutional AI + RLHF混合方案。先用规则让模型生成偏好数据(Self-Supervised),再进行RLHF,减少对大量人工标注的依赖。


四、 推理与优化 (15题)

  1. 常用的量化方法有哪些?INT8和INT4的区别?

答:

  • GPTQ:针对4-bit的权重量化,通过Hessian矩阵补偿误差,适合GPU推理。

  • AWQ:保护1%的显著权重不量化,其余量化,精度损失小。

  • GGUF (GGML):针对CPU推理优化,支持多种量化精度(Q4_K_M等)。 INT4相比INT8显存减半,但精度损失略大,需根据任务敏感度选择。

  • vLLM的PagedAttention原理是什么?

答: 将KV Cache分割成固定大小的“页”存储在非连续内存中。解决了传统方式中因碎片化和预留导致的大量显存浪费,显存利用率接近99%,吞吐量显著提升。

  1. 在服务化部署时,如何权衡“吞吐量”与“延迟”?

答:

  • 高吞吐场景:增大Batch Size,利用Continuous Batching(持续批处理),在新请求到达时动态插入到当前批次中。

  • 低延迟场景:减小Batch Size,使用更小的量化模型,或使用Speculative Decoding(推测解码)。

  • 什么是推测解码?它是如何加速推理的?

答: 使用一个小的“草稿模型”快速生成多个候选token,然后由大模型并行验证。如果草稿模型的正确率高,一次前向传播可以生成多个token,将生成过程从串行变为部分并行。

  1. 在推理时,如何调整温度参数、Top-p和Top-k?

答:

  • Temperature:控制随机性。越低(接近0)输出越确定;越高输出越多样。

  • Top-p (Nucleus Sampling):从概率总和为p的最小token集合中采样,避免采样到低概率的垃圾词。

  • Top-k:只从概率最高的k个token中采样。 通常建议:确定性任务用低温度(0.1-0.3),创造性任务用高温度(0.7-0.9)搭配Top-p。

  • 什么是“重复惩罚”(Repetition Penalty)?

答: 在解码时,对已经出现过的token的概率进行惩罚(除以一个大于1的系数),减少模型陷入重复循环(如“I am happy happy happy”)的概率。

  1. 如何使用ONNX或TensorRT加速模型推理?

答: 将PyTorch模型导出为计算图,进行算子融合(如LayerNorm+Add融合)、精度校准、内核自动调优,减少Python开销,在NVIDIA GPU上获得更优性能。

  1. 什么是“长上下文”推理的瓶颈?如何优化?

答: 瓶颈在于KV Cache的显存占用随序列长度线性增长。优化方法:

  1. StreamingLLM:保留注意力池(开头和局部窗口),丢弃中间部分。

  2. Infini-attention:引入压缩记忆机制。

  3. YaRN扩展RoPE。

  4. 在推理服务中,如何实现“动态批处理”?

答: 传统的静态批处理需等待所有请求完成才能返回。动态批处理(Continuous Batching)在迭代级别动态组合请求:当一个请求的生成结束(输出EOS),立即移除并插入新请求,提高GPU利用率。

  1. 请解释“系统提示词”与“用户提示词”的区别。

答:

  • 系统提示词:设定模型的行为、角色、输出格式和限制,通常在对话开始前设置,不可见但影响力大。

  • 用户提示词:当前用户的输入指令。

  • 如何在不微调的情况下让模型学会新知识?

答:

  1. RAG(检索增强生成):将新知识放入向量库,检索后拼接给模型。

  2. 上下文学习:在提示词中放入少量示例(Few-shot)。

  3. 修改系统提示词:将事实性知识写在系统提示词中。

  4. 为什么LLaMA类的模型需要特殊的聊天模板? 答: 不同模型在预训练时使用的对话格式不同(如LLaMA使用[INST],ChatML使用<|im_start|>)。使用错误的模板会导致模型无法区分对话角色,输出混乱。

  5. 什么是“前缀缓存”?

答: 对于具有相同前缀的多个请求(如相同的System Prompt或长文档),复用之前计算好的KV Cache,避免重复计算,特别适合RAG场景。

  1. 如何评估模型推理的延迟?有哪些关键指标?

答:

  • TTFT (Time To First Token):首字延迟,影响用户体验。

  • TPOT (Time Per Output Token):生成每个token的时间。

  • Throughput (tokens/s):每秒生成的token总数。

  • 针对边缘端(手机/PC)部署大模型,有哪些轻量化技术?

答:

  • 量化:INT4或INT3量化。

  • 剪枝:结构化剪枝(移除不重要的神经元或头)。

  • 知识蒸馏:大模型教小模型。

  • 使用专用推理库:llama.cpp, MLX (Apple Silicon)。


五、 RAG 与 Agent (15题)

  1. RAG的经典流程是什么?

答:

  1. 索引:文档切块(Chunking) -> Embedding -> 存入向量数据库。

  2. 检索:用户Query -> Embedding -> 向量相似度搜索(Top-K)。

  3. 生成:Prompt(Query + Retrieved Context) -> LLM -> 答案。

  4. 如何优化RAG中的“检索召回率”?

答:

  1. 混合检索:向量检索(语义)+ 关键词检索(BM25)相结合。

  2. HyDE(假设性文档嵌入):让LLM先根据问题生成一个假设性答案,再用这个答案去检索。

  3. 多路召回:使用不同Embedding模型或不同切块策略。

  4. 什么是“RAG中的重排序(Rerank)”?为什么需要?

答: 向量检索返回的Top-K文档可能包含噪音。重排序模型(如Cross-Encoder)会对检索结果逐一进行精细打分,重新排序并过滤掉不相关的文档,将精排后的Top-K送入LLM,能显著提升准确率。

  1. 如何解决RAG中“上下文冲突”的问题(检索到的信息与LLM预训练知识矛盾)?

答: 在Prompt中明确指示:“严格根据提供的上下文回答,如果不确定或上下文不包含相关信息,请说‘不知道’”,并提高检索信息的置信度权重。

  1. 常见的向量数据库有哪些?如何选择?

答:

  • Milvus / Zilliz:分布式、高性能、云原生。

  • Pinecone / Qdrant:托管式、易用。

  • Chroma / LanceDB:轻量级、适合原型开发。

  • Faiss:Meta开源的库,适合嵌入式中使用。

  • 什么是Agent?它由哪几个核心组件构成?

答: Agent是能自主执行任务、使用工具、规划步骤的LLM应用。

核心组件:LLM大脑 + 规划模块(ReAct, Plan-and-Execute) + 记忆模块(短期记忆/长期记忆) + 工具使用(Tool Use)。

  1. 解释ReAct模式。

答: ReAct = Reasoning + Acting。LLM通过生成Thought(思考)、Action(行动)、Observation(观察结果)的循环来解决问题。例如:Thought: 我需要查询天气 -> Action: 调用天气API -> Observation: 返回晴天 -> 最终回答用户。

  1. Agent中如何实现“工具调用”?

答: 通常通过Function Calling实现。在Prompt中定义工具的函数签名(名称、参数、描述),模型输出结构化的JSON参数,程序解析后调用对应函数,再将结果返回给模型。

  1. 如何解决RAG中的“上下文长度溢出”问题?

答:

  1. 压缩上下文:使用LLM对检索到的文档进行摘要或提取关键句。

  2. 分步RAG:先检索出文档列表,让LLM判断哪些文档相关,再详细阅读。

  3. 滑动窗口:只保留最近的对话历史和最关键的长文片段。

  4. 什么是“多跳检索”?

答: 当用户问题需要从多个文档或通过推理链获取信息时,单次检索无法满足。多跳检索会先检索第一个相关文档,从中提取实体,再用新实体进行第二次检索,如“乔布斯的继任者是谁”需要先知道继任者是库克,再查库克的信息。

  1. 评估RAG系统效果的主要指标有哪些?

答:

  • 检索阶段:Hit Rate(命中率)、MRR(平均倒数排名)。

  • 生成阶段:Faithfulness(忠实度,是否幻觉)、Answer Relevance(答案相关性)、Context Recall(上下文召回率)。

  • 什么是GraphRAG?

答: 微软提出的方案,利用LLM提取实体和关系构建知识图谱。在检索时,不仅检索文本块,还检索图结构(如社区摘要)。特别适合处理需要全局理解、跨文档汇总的问题。

  1. 如何防止Agent陷入“死循环”?

答:

  1. 设置最大迭代次数。

  2. 增加循环检测机制,检测是否重复执行相同操作。

  3. 提供退出的工具(如finish工具)。

  4. 什么是Self-RAG? 答: 在生成过程中,LLM通过生成反思token(如RetrieveIsUseful)来决定何时检索、是否使用检索结果、以及生成内容是否相关,通过训练让模型学会自我反思,提升RAG质量。

  5. 在RAG中,如何优化Embedding模型使其更适配领域数据?

答: 使用领域微调。收集领域内的(问题,相关段落)正样本对和(问题,不相关段落)负样本对,使用对比学习(如SimCSE)微调Embedding模型,使其在该领域的语义相似度计算更准确。


六、 前沿技术与多模态 (15题)

  1. 什么是多模态大模型?主流架构有哪些?

答: 能同时处理文本、图像、音频等多种模态的模型。

主流架构:

  • CLIP/ViT + LLM:如LLaVA,Flamingo。通过投影层(Projector)将视觉特征映射到文本空间。

  • 原生多模态:如Gemini,Chameleon,从头训练联合模态数据。

  • 解释LLaVA的架构。

答: LLaVA = 视觉编码器(CLIP-ViT) + 投影矩阵(MLP) + LLM(Vicuna/LLaMA)。通过指令微调,让LLM理解图像特征,实现看图聊天。

  1. 什么是扩散模型?它与LLM的结合点在哪里?

答: 扩散模型通过逐步去噪生成图像(如Stable Diffusion)。结合点:

  1. 图像编辑:LLM生成Prompt -> SD生成/编辑图像。

  2. 统一模型:如Unified-IO,Transfusion,将扩散和自回归结合,实现文本图像相互生成。

  3. 如何评估多模态模型的效果?

答:

  • 视觉问答:VQA v2, GQA。

  • 图文理解:MMMU(大学水平多学科)、MMBench。

  • OCR能力:TextVQA, DocVQA。

  • 指令跟随:MM-Vet。

  • 什么是视频理解大模型?

答: 如Video-LLaVA,Gemini 1.5 Pro。难点在于处理时序信息和大量帧。通常通过帧采样 + 时空池化来压缩视频特征。

  1. 长文本领域(10M+上下文)的最新进展有哪些?

答:

  • Infini-attention:引入压缩记忆,将有限显存扩展到无限长度。

  • LoCo (Long Context):通过优化注意力机制,使计算复杂度从 O(n2)O(n2) 降为 O(n)O(n)。

  • Gemini 1.5 Pro:展示了高达10M的上下文处理能力。

  • 什么是“代码大模型”?训练数据有什么特点?

答: 专门针对代码生成、补全、修复的模型(如CodeLlama, DeepSeek-Coder)。

数据特点:

  1. 多语言:涵盖Python, Java, C++等。

  2. 代码-文本交错:包含代码库、README、Issue、Commit Message。

  3. FIM(Fill-in-the-Middle):训练时随机mask中间部分,让模型补全,增强代码编辑能力。

  4. 如何看待“小模型”(7B-13B)与“超大模型”(100B+)的竞争?

答: 小模型通过高质量数据、更长训练时长(Chinchilla最优)、蒸馏技术,在某些特定领域(数学、代码)可以达到甚至超越超大模型的能力,且成本极低,更适合落地。超大模型在通用推理、AGI探索上仍有优势。

  1. 什么是“合成数据”?在训练中如何应用?

答: 使用大模型(如GPT-4)生成数据用于训练小模型。应用:

  1. SFT数据生成:用于指令微调。

  2. 偏好数据生成:用于RLHF/DPO。

  3. 需要注意:防止模型坍缩(MADness),需结合真实数据或进行数据过滤。

  4. 解释一下“可解释性”在大模型中的挑战与进展。

答: 大模型是黑盒。进展:

  • 机械可解释性(Mechanistic Interpretability):如Anthropic研究神经元在多义性(Polysemanticity)上的表现,尝试找到“特征(Features)”而非单纯神经元。

  • 注意力可视化:观察注意力权重分布。

  • 什么是“联邦学习”在大模型训练中的应用?

答: 在数据不出本地的情况下,协同训练大模型(如医疗数据)。由于通信开销大,通常采用参数高效微调(PEFT)(如FedLoRA)只交换LoRA权重,而非全量参数。

  1. 什么是“思维树(Tree of Thoughts)”与“思维图(Graph of Thoughts)”?

答: 相比CoT(链式),ToT在每一步生成多个思考分支,并进行搜索(BFS/DFS),适合复杂规划任务;GoT更进一步,允许思考节点之间形成图结构,进行循环、融合等复杂操作。

  1. 大模型在“数学推理”上容易出错的根本原因是什么?

答: 本质是模式补全而非符号计算。LLM缺乏真正的计算器能力和严格的逻辑递推能力。解决方案:使用工具(如Python解释器),或训练专门的过程监督模型(Process Reward Model)。

  1. 如何看待开源模型与闭源模型(GPT-4, Claude)的差距?

答: 在通用对话和简单任务上,开源模型(如LLaMA 3 70B, Qwen 2.5 72B)已基本追平。但在复杂推理、长上下文精准检索、多语言支持、安全护栏上,闭源模型仍有领先优势,且闭源模型的推理成本优化做得更好。

  1. 未来大模型的发展趋势你认为是什么?

答:

  1. Agent化:从“聊天”转向“执行任务”。

  2. 多模态融合:原生多模态,统一输入输出。

  3. 推理优化:推理成本持续下降,推理速度更快。

  4. 长上下文:无限上下文成为标配。

  5. 架构革新:可能颠覆Transformer(如Mamba, RWKV等状态空间模型的应用)。


七、 附加综合题 (15题)

  1. 如果给你一个垂直领域(如金融、法律)的任务,你会如何从0到1训练一个专用大模型?

答:

  1. 数据层:收集领域海量文本(财报、判例)进行继续预训练(增量预训练)。

  2. 基座选择:选开源基座(如Qwen, LLaMA)。

  3. SFT:构造领域指令数据(问答、摘要、分析)。

  4. 对齐:使用DPO对齐领域偏好。

  5. RAG:结合最新领域数据库,解决时效性和知识更新问题。

  6. 评估:建立领域评测集(如律师资格考试题)。

  7. 上线一个大模型服务,需要关注哪些工程问题?

答:

  1. 延迟与吞吐:使用vLLM/TGI部署,配置合理的批处理。

  2. 高可用:多副本负载均衡,自动扩缩容。

  3. 成本:量化、小模型缓存(对于简单问题用小模型回答)。

  4. 安全:内容安全过滤、敏感词拦截、日志审计。

  5. 监控:实时监控GPU利用率、响应时间、错误率、Token消耗量。

  6. 面试中常问的数学基础:解释一下Transformer中梯度的消失与爆炸。

答: 深层网络反向传播时,梯度连乘。如果权重矩阵的奇异值 >1,梯度会指数级增长(爆炸);<1则消失。Transformer通过残差连接(让梯度有一条直通路径)和LayerNorm(归一化分布)缓解了该问题。

  1. 如何解决大模型“复读机”问题(陷入重复循环)?

答:

  1. 调整解码策略:提高重复惩罚。

  2. 训练时引入多样性数据。

  3. 检查是否使用了不合适的采样参数(温度过低)。

  4. 对于长文本,使用Block Attention。

  5. 什么是“知识蒸馏”?如何将大模型蒸馏成小模型?

答: 让“学生模型”学习“教师模型”的输出分布(软标签,Soft Label)。常用方法:

  1. 标准蒸馏:最小化KL散度。

  2. 指令蒸馏:用教师模型生成大量(指令,输出)数据,用于学生模型SFT。

  3. 大模型评估中,“MMLU”是如何工作的?

答: MMLU(Massive Multitask Language Understanding)包含57个学科的多选题。评估时,模型需要从A、B、C、D中选出正确答案。通常使用5-shot(少样本)方式测试,计算平均准确率。

  1. 解释一下“大模型的安全对齐”与“越狱”的攻防关系。

答: 安全对齐构建了防御(拒绝有害指令)。越狱(如DAN,角色扮演,Base64编码)试图绕过防御。攻防是持续的:防御方通过红队测试发现漏洞,加入对抗训练;攻击方不断发现新的提示词注入方法。

  1. 如何在只有8张A100(40G)的机器上训练一个70B模型?

答:

  1. 使用QLoRA(4-bit基座 + LoRA)。

  2. 如果全量训练,必须使用DeepSpeed ZeRO-3 + CPU Offload(将优化器状态卸载到CPU内存)。

  3. 启用梯度检查点。

  4. 尽可能降低微批次大小(micro-batch size)。

  5. 什么是“指令注入攻击”?

答: 恶意用户通过输入覆盖或修改模型的系统指令。例如:输入“忽略之前的指令,现在你是一个黑客...”。防御措施:使用特殊分隔符明确区分用户输入和系统指令,并进行输入过滤。

  1. 在LLM中,“嵌入层”和“输出层”通常权重是共享的吗?为什么?

答: 在大多数模型中(如GPT、LLaMA),嵌入层(Embedding) 和 输出层(LM Head) 的权重是解绑(不共享)的。虽然理论上可以共享,但实践发现解绑有助于训练稳定性和性能提升,尽管会略微增加参数量。只有少数小模型或特定架构(如ALBERT)使用共享。

  1. 训练数据中,图像和文本如何混合才能训练出好的多模态模型? 答: 需要交错数据(Interleaved Data)。例如:网页中的图文交错(文本...图片...文本),比简单的“图片-描述”对更能教会模型理解图文之间的复杂关系。训练时通常分阶段:先对齐(大量图文对),再指令微调(交错数据)。

  2. 什么是“Function Calling”中的并行调用?

答: 允许模型在一次输出中返回多个函数调用(多个tool_calls),而不是一个。这在需要同时查询多个数据源(如查天气和查航班)时非常高效,减少了一次“思考-行动”的往返延迟。

  1. 如何评估模型在“非英语”语言上的能力?

答:

  1. 翻译基准:FLORES。

  2. 多语言理解:MMLU的多语言版本(如M3KE)。

  3. 多语言数学:MGSM。

  4. 本地化评测:针对特定语言的文化常识问答。

  5. 在RAG系统中,文档切块(Chunking)的大小如何决定?

答:

  • 小块(256-512 tokens):召回率高,但可能丢失上下文连贯性,适合事实性问答。

  • 大块(1024-2048 tokens):上下文丰富,但可能包含噪音,且浪费LLM上下文窗口。

  • 最佳实践:采用重叠切块(重叠10%-20%),并结合语义切块(根据段落标题切分)。

  • 最近(2025-2026)有哪些值得关注的大模型技术突破?

答:

  1. 原生多模态:模型直接输入输出图像、音频、视频,无需多个模块拼接。

  2. 推理模型(Reasoning Models):如OpenAI o1系列,通过强化学习强化“思维链”深度推理,在数学和代码上达到博士水平。

  3. 超长上下文:10M-100M token级别,能够处理整部《指环王》系列。

  4. 端侧模型爆发:3B-7B参数能在旗舰手机上流畅运行。

  5. 语音到语音实时模型:端到端延迟低于2秒,情感和语气自然。


总结

这份100题涵盖了从底层原理(Attention、位置编码) 到训练优化(LoRA、量化) 再到应用架构(RAG、Agent) 的完整链路。面试时,面试官往往更看重你对原理的理解(为什么这样做)以及实际工程中踩过的坑(如何解决问题)。