最新版AI大模型面试八股文¶
(墙裂推荐200页精选版)¶
1、请详细解释Transformer中的Self-Attention机制,并写出其计算公式。
答: Self-Attention通过Q、K、V矩阵计算序列中每个token对其他token的权重。

其中除以 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),并显著提升速度。
4、LLM中常用的激活函数有哪些?相比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定律),而非仅扩大模型尺寸。
8、MoE(混合专家模型)架构的核心思想是什么?
答: 将前馈网络(FFN)替换为多个“专家”,并通过门控网络(Router)为每个token稀疏激活最相关的少数专家(如Top-2)。在保持总参数量巨大的同时,计算量(激活参数量)保持不变,如Mixtral 8x7B。
9、什么是上下文长度外推?如何让模型支持更长的上下文?
答: 指模型在训练长度(如4k)上训练后,能在更长长度(如32k)上推理。常用方法:
-
位置编码插值(PI):缩放位置索引。
-
NTK-aware:高频维度少缩放,低频维度多缩放。
-
YaRN:结合插值和NTK。
10、解释一下模型的“幻觉”问题,主要原因是什么?
答: 指模型生成看似合理但与事实不符的内容。原因:
-
预训练知识截止日期限制。
-
目标函数是最大化似然,而非事实准确性。
-
解码时的概率采样随机性。
-
缺乏对不确定性的校准。
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×层数×头维×序列长度)+ 中间激活值(临时张量)。
- SFT(监督微调)与预训练在数据格式上有什么不同?
答: 预训练使用无标注的纯文本(自回归预测Next Token)。SFT使用指令数据,格式通常为“Prompt + Response”,在计算Loss时通常只计算Response部分的Loss,不计算Prompt部分。
-
LoRA的原理是什么?它为什么能降低微调显存? 答: LoRA(低秩适配)假设微调时的权重更新矩阵是低秩的,即 ΔW=BAΔW=BA,其中B和A为低秩矩阵。训练时冻结原参数,只更新A和B。显存占用从全量微调降低为只需要存储优化器状态对应的少量参数。
-
什么是QLoRA?它和LoRA的区别?
答: QLoRA = 量化 + LoRA。它将基座模型量化到4-bit(NF4格式),然后在此基础上附加LoRA进行微调。这使得可以在单张24GB显存的显卡上微调33B甚至70B的模型。
- 微调时如果遇到“灾难性遗忘”怎么办?
答:
-
使用混合微调,在指令数据中混入5%-10%的原始预训练数据。
-
使用EWC(弹性权重巩固)等正则化方法。
-
采用P-Tuning v2等参数高效微调方法,避免过多改变原参数。
-
解释一下Prefix Tuning和P-Tuning v2。
答: 在输入序列前添加可训练的连续向量(虚拟token)。P-Tuning v2是在每一层Transformer都添加可训练的Prefix,相比只在输入层添加效果更好,接近全参微调。
- 什么是DPO(直接偏好优化)?它相比PPO有什么优势?
答: DPO将RLHF中的强化学习问题转化为二分类交叉熵损失,直接利用偏好数据优化策略。优势:无需训练奖励模型,无需复杂的强化学习稳定性调参,训练速度快,资源消耗低。
- 如何构造高质量的SFT数据集?
答:
-
多样性:覆盖代码、数学、创作、多轮对话等场景。
-
难度分级:包含简单(对齐格式)和复杂(推理)样本。
-
数据清洗:去重、去除隐私、过滤低质量。
-
格式统一:使用ShareGPT或Alpaca格式。
-
在多卡微调时,DeepSpeed ZeRO的三个阶段分别是什么?
答:
-
ZeRO-1:分割优化器状态。
-
ZeRO-2:分割优化器状态 + 梯度。
-
ZeRO-3:分割优化器状态 + 梯度 + 模型参数(训练时动态参数收集)。 ZeRO-3显存占用最小,但通信开销最大。
-
什么是“少样本微调”与“全量微调”的取舍?
答:
-
全量微调:适合数据量大、需要深度领域适配(如代码、数学)的场景,效果好但资源消耗高。
-
LoRA/QLoRA:适合数据量中等、快速适配通用场景,是当前工业界主流。
-
预训练数据中,为什么需要“去重”和“毒性检测”?
答:
-
去重:防止模型“死记硬背”,出现过拟合,影响泛化能力。
-
毒性检测:防止模型学习偏见、色情、暴力内容,确保模型输出的安全性。
-
如何评估SFT后的模型效果?
答:
-
基准测试:MMLU(知识)、HumanEval(代码)、GSM8K(数学)。
-
人工/LLM-as-a-Judge:用GPT-4或Claude对生成结果进行A/B测试打分。
-
MT-Bench:多轮对话评测基准。
-
在训练过程中,如何处理长序列带来的OOM问题?
答:
-
启用梯度检查点(Gradient Checkpointing),以计算换显存。
-
使用FlashAttention-2。
-
使用DeepSpeed ZeRO-3或FSDP进行参数分片。
-
降低Batch Size,增加梯度累积步数。
-
解释一下“指令微调”为何能让模型学会“遵循指令”?
答: 通过构造(指令,输出)对,模型学习到了输入指令与期望输出的映射关系,强化了模型在特定语境下的响应模式,覆盖了预训练阶段缺乏的交互范式。
- 什么是数据“掺水”/“数据污染”?如何检测?
答: 评测集的数据意外混入了预训练或微调数据中,导致评测分数虚高。检测方法:使用n-gram重叠检测,或要求模型“背诵”评测集原文。
- 在微调代码模型时,有什么特殊的技巧?
答:
-
保留代码的缩进格式。
-
使用文件级上下文而非单纯函数级。
-
在数据中增加代码解释部分,提升代码生成的解释能力。
-
使用Fill-in-the-Middle (FIM)任务格式。
三、 RLHF 与 对齐 (10题)¶
- RLHF的三阶段流程是什么?
答:
-
SFT:使用高质量对话数据微调基座模型。
-
RM(奖励模型):训练模型对人类偏好进行排序打分。
-
RL(PPO):使用强化学习最大化奖励模型的得分,同时通过KL散度约束SFT模型,防止生成偏离太远。
-
奖励模型通常如何训练? 答: 使用排序损失(Pairwise Ranking Loss)。给定同一个prompt的两个回答(chosen, rejected),损失函数为 −log(σ(rchosen−rrejected))−log(σ(rchosen−rrejected)),让模型学会偏好排序而非绝对值。
-
PPO算法中的“Actor”和“Critic”在大模型背景下分别指什么?
答:
-
Actor:正在微调的LLM策略,生成回答。
-
Critic:一个价值网络(通常参数比Actor小),用于评估当前状态(当前生成文本序列)的价值,帮助减少方差。
-
为什么要加KL散度约束?
答: 防止模型过度利用奖励模型的漏洞(Reward Hacking),生成高奖励但人类不喜欢的乱码文本。KL散度惩罚确保新模型与SFT模型保持一定的分布相似性。
- 除了RLHF,还有哪些对齐方法?
答:
-
DPO:直接偏好优化。
-
IPO:改进DPO,防止过拟合。
-
KTO:仅需“好”或“坏”的二分类标签,无需成对数据。
-
Constitutional AI:通过规则让模型自我修订,用于Claude。
-
什么是“红队测试”?
答: 由人工或自动化(红队模型)针对模型输入各种有害、诱导性、越狱(Jailbreak)提示,以发现模型的安全漏洞和弱点。
- 如何对抗“越狱攻击”?
答:
-
提示词过滤:拒绝含有明显攻击性的输入。
-
系统提示词强化:在System Prompt中强硬定义安全边界。
-
对抗训练:在微调数据中加入红队测试的样本。
-
困惑度检测:检测输入是否异常。
-
什么是“无害性”与“有用性”的权衡?
答: 过于强调无害性会导致模型过度拒绝,失去帮助性;过于强调有用性可能导致模型输出有害信息。RLHF通过在奖励模型中设计多维度的评分(如帮助性、正确性、无害性)进行平衡。
- 解释一下“思维链(Chain-of-Thought)”在RLHF中的作用。
答: 在构造偏好数据时,让模型先生成思考过程再给出答案,人类对思考过程进行排序。这能让模型学会先推理后回答,显著提升数学和逻辑任务的准确率。
- 目前主流模型(如Claude 3)是如何做对齐的?
答: 通常采用Constitutional AI + RLHF混合方案。先用规则让模型生成偏好数据(Self-Supervised),再进行RLHF,减少对大量人工标注的依赖。
四、 推理与优化 (15题)¶
- 常用的量化方法有哪些?INT8和INT4的区别?
答:
-
GPTQ:针对4-bit的权重量化,通过Hessian矩阵补偿误差,适合GPU推理。
-
AWQ:保护1%的显著权重不量化,其余量化,精度损失小。
-
GGUF (GGML):针对CPU推理优化,支持多种量化精度(Q4_K_M等)。 INT4相比INT8显存减半,但精度损失略大,需根据任务敏感度选择。
-
vLLM的PagedAttention原理是什么?
答: 将KV Cache分割成固定大小的“页”存储在非连续内存中。解决了传统方式中因碎片化和预留导致的大量显存浪费,显存利用率接近99%,吞吐量显著提升。
- 在服务化部署时,如何权衡“吞吐量”与“延迟”?
答:
-
高吞吐场景:增大Batch Size,利用Continuous Batching(持续批处理),在新请求到达时动态插入到当前批次中。
-
低延迟场景:减小Batch Size,使用更小的量化模型,或使用Speculative Decoding(推测解码)。
-
什么是推测解码?它是如何加速推理的?
答: 使用一个小的“草稿模型”快速生成多个候选token,然后由大模型并行验证。如果草稿模型的正确率高,一次前向传播可以生成多个token,将生成过程从串行变为部分并行。
- 在推理时,如何调整温度参数、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”)的概率。
- 如何使用ONNX或TensorRT加速模型推理?
答: 将PyTorch模型导出为计算图,进行算子融合(如LayerNorm+Add融合)、精度校准、内核自动调优,减少Python开销,在NVIDIA GPU上获得更优性能。
- 什么是“长上下文”推理的瓶颈?如何优化?
答: 瓶颈在于KV Cache的显存占用随序列长度线性增长。优化方法:
-
StreamingLLM:保留注意力池(开头和局部窗口),丢弃中间部分。
-
Infini-attention:引入压缩记忆机制。
-
YaRN扩展RoPE。
-
在推理服务中,如何实现“动态批处理”?
答: 传统的静态批处理需等待所有请求完成才能返回。动态批处理(Continuous Batching)在迭代级别动态组合请求:当一个请求的生成结束(输出EOS),立即移除并插入新请求,提高GPU利用率。
- 请解释“系统提示词”与“用户提示词”的区别。
答:
-
系统提示词:设定模型的行为、角色、输出格式和限制,通常在对话开始前设置,不可见但影响力大。
-
用户提示词:当前用户的输入指令。
-
如何在不微调的情况下让模型学会新知识?
答:
-
RAG(检索增强生成):将新知识放入向量库,检索后拼接给模型。
-
上下文学习:在提示词中放入少量示例(Few-shot)。
-
修改系统提示词:将事实性知识写在系统提示词中。
-
为什么LLaMA类的模型需要特殊的聊天模板? 答: 不同模型在预训练时使用的对话格式不同(如LLaMA使用
[INST],ChatML使用<|im_start|>)。使用错误的模板会导致模型无法区分对话角色,输出混乱。 -
什么是“前缀缓存”?
答: 对于具有相同前缀的多个请求(如相同的System Prompt或长文档),复用之前计算好的KV Cache,避免重复计算,特别适合RAG场景。
- 如何评估模型推理的延迟?有哪些关键指标?
答:
-
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题)¶
- RAG的经典流程是什么?
答:
-
索引:文档切块(Chunking) -> Embedding -> 存入向量数据库。
-
检索:用户Query -> Embedding -> 向量相似度搜索(Top-K)。
-
生成:Prompt(Query + Retrieved Context) -> LLM -> 答案。
-
如何优化RAG中的“检索召回率”?
答:
-
混合检索:向量检索(语义)+ 关键词检索(BM25)相结合。
-
HyDE(假设性文档嵌入):让LLM先根据问题生成一个假设性答案,再用这个答案去检索。
-
多路召回:使用不同Embedding模型或不同切块策略。
-
什么是“RAG中的重排序(Rerank)”?为什么需要?
答: 向量检索返回的Top-K文档可能包含噪音。重排序模型(如Cross-Encoder)会对检索结果逐一进行精细打分,重新排序并过滤掉不相关的文档,将精排后的Top-K送入LLM,能显著提升准确率。
- 如何解决RAG中“上下文冲突”的问题(检索到的信息与LLM预训练知识矛盾)?
答: 在Prompt中明确指示:“严格根据提供的上下文回答,如果不确定或上下文不包含相关信息,请说‘不知道’”,并提高检索信息的置信度权重。
- 常见的向量数据库有哪些?如何选择?
答:
-
Milvus / Zilliz:分布式、高性能、云原生。
-
Pinecone / Qdrant:托管式、易用。
-
Chroma / LanceDB:轻量级、适合原型开发。
-
Faiss:Meta开源的库,适合嵌入式中使用。
-
什么是Agent?它由哪几个核心组件构成?
答: Agent是能自主执行任务、使用工具、规划步骤的LLM应用。
核心组件:LLM大脑 + 规划模块(ReAct, Plan-and-Execute) + 记忆模块(短期记忆/长期记忆) + 工具使用(Tool Use)。
- 解释ReAct模式。
答: ReAct = Reasoning + Acting。LLM通过生成Thought(思考)、Action(行动)、Observation(观察结果)的循环来解决问题。例如:Thought: 我需要查询天气 -> Action: 调用天气API -> Observation: 返回晴天 -> 最终回答用户。
- Agent中如何实现“工具调用”?
答: 通常通过Function Calling实现。在Prompt中定义工具的函数签名(名称、参数、描述),模型输出结构化的JSON参数,程序解析后调用对应函数,再将结果返回给模型。
- 如何解决RAG中的“上下文长度溢出”问题?
答:
-
压缩上下文:使用LLM对检索到的文档进行摘要或提取关键句。
-
分步RAG:先检索出文档列表,让LLM判断哪些文档相关,再详细阅读。
-
滑动窗口:只保留最近的对话历史和最关键的长文片段。
-
什么是“多跳检索”?
答: 当用户问题需要从多个文档或通过推理链获取信息时,单次检索无法满足。多跳检索会先检索第一个相关文档,从中提取实体,再用新实体进行第二次检索,如“乔布斯的继任者是谁”需要先知道继任者是库克,再查库克的信息。
- 评估RAG系统效果的主要指标有哪些?
答:
-
检索阶段:Hit Rate(命中率)、MRR(平均倒数排名)。
-
生成阶段:Faithfulness(忠实度,是否幻觉)、Answer Relevance(答案相关性)、Context Recall(上下文召回率)。
-
什么是GraphRAG?
答: 微软提出的方案,利用LLM提取实体和关系构建知识图谱。在检索时,不仅检索文本块,还检索图结构(如社区摘要)。特别适合处理需要全局理解、跨文档汇总的问题。
- 如何防止Agent陷入“死循环”?
答:
-
设置最大迭代次数。
-
增加循环检测机制,检测是否重复执行相同操作。
-
提供退出的工具(如
finish工具)。 -
什么是Self-RAG? 答: 在生成过程中,LLM通过生成反思token(如
Retrieve,IsUseful)来决定何时检索、是否使用检索结果、以及生成内容是否相关,通过训练让模型学会自我反思,提升RAG质量。 -
在RAG中,如何优化Embedding模型使其更适配领域数据?
答: 使用领域微调。收集领域内的(问题,相关段落)正样本对和(问题,不相关段落)负样本对,使用对比学习(如SimCSE)微调Embedding模型,使其在该领域的语义相似度计算更准确。
六、 前沿技术与多模态 (15题)¶
- 什么是多模态大模型?主流架构有哪些?
答: 能同时处理文本、图像、音频等多种模态的模型。
主流架构:
-
CLIP/ViT + LLM:如LLaVA,Flamingo。通过投影层(Projector)将视觉特征映射到文本空间。
-
原生多模态:如Gemini,Chameleon,从头训练联合模态数据。
-
解释LLaVA的架构。
答: LLaVA = 视觉编码器(CLIP-ViT) + 投影矩阵(MLP) + LLM(Vicuna/LLaMA)。通过指令微调,让LLM理解图像特征,实现看图聊天。
- 什么是扩散模型?它与LLM的结合点在哪里?
答: 扩散模型通过逐步去噪生成图像(如Stable Diffusion)。结合点:
-
图像编辑:LLM生成Prompt -> SD生成/编辑图像。
-
统一模型:如Unified-IO,Transfusion,将扩散和自回归结合,实现文本图像相互生成。
-
如何评估多模态模型的效果?
答:
-
视觉问答:VQA v2, GQA。
-
图文理解:MMMU(大学水平多学科)、MMBench。
-
OCR能力:TextVQA, DocVQA。
-
指令跟随:MM-Vet。
-
什么是视频理解大模型?
答: 如Video-LLaVA,Gemini 1.5 Pro。难点在于处理时序信息和大量帧。通常通过帧采样 + 时空池化来压缩视频特征。
- 长文本领域(10M+上下文)的最新进展有哪些?
答:
-
Infini-attention:引入压缩记忆,将有限显存扩展到无限长度。
-
LoCo (Long Context):通过优化注意力机制,使计算复杂度从 O(n2)O(n2) 降为 O(n)O(n)。
-
Gemini 1.5 Pro:展示了高达10M的上下文处理能力。
-
什么是“代码大模型”?训练数据有什么特点?
答: 专门针对代码生成、补全、修复的模型(如CodeLlama, DeepSeek-Coder)。
数据特点:
-
多语言:涵盖Python, Java, C++等。
-
代码-文本交错:包含代码库、README、Issue、Commit Message。
-
FIM(Fill-in-the-Middle):训练时随机mask中间部分,让模型补全,增强代码编辑能力。
-
如何看待“小模型”(7B-13B)与“超大模型”(100B+)的竞争?
答: 小模型通过高质量数据、更长训练时长(Chinchilla最优)、蒸馏技术,在某些特定领域(数学、代码)可以达到甚至超越超大模型的能力,且成本极低,更适合落地。超大模型在通用推理、AGI探索上仍有优势。
- 什么是“合成数据”?在训练中如何应用?
答: 使用大模型(如GPT-4)生成数据用于训练小模型。应用:
-
SFT数据生成:用于指令微调。
-
偏好数据生成:用于RLHF/DPO。
-
需要注意:防止模型坍缩(MADness),需结合真实数据或进行数据过滤。
-
解释一下“可解释性”在大模型中的挑战与进展。
答: 大模型是黑盒。进展:
-
机械可解释性(Mechanistic Interpretability):如Anthropic研究神经元在多义性(Polysemanticity)上的表现,尝试找到“特征(Features)”而非单纯神经元。
-
注意力可视化:观察注意力权重分布。
-
什么是“联邦学习”在大模型训练中的应用?
答: 在数据不出本地的情况下,协同训练大模型(如医疗数据)。由于通信开销大,通常采用参数高效微调(PEFT)(如FedLoRA)只交换LoRA权重,而非全量参数。
- 什么是“思维树(Tree of Thoughts)”与“思维图(Graph of Thoughts)”?
答: 相比CoT(链式),ToT在每一步生成多个思考分支,并进行搜索(BFS/DFS),适合复杂规划任务;GoT更进一步,允许思考节点之间形成图结构,进行循环、融合等复杂操作。
- 大模型在“数学推理”上容易出错的根本原因是什么?
答: 本质是模式补全而非符号计算。LLM缺乏真正的计算器能力和严格的逻辑递推能力。解决方案:使用工具(如Python解释器),或训练专门的过程监督模型(Process Reward Model)。
- 如何看待开源模型与闭源模型(GPT-4, Claude)的差距?
答: 在通用对话和简单任务上,开源模型(如LLaMA 3 70B, Qwen 2.5 72B)已基本追平。但在复杂推理、长上下文精准检索、多语言支持、安全护栏上,闭源模型仍有领先优势,且闭源模型的推理成本优化做得更好。
- 未来大模型的发展趋势你认为是什么?
答:
-
Agent化:从“聊天”转向“执行任务”。
-
多模态融合:原生多模态,统一输入输出。
-
推理优化:推理成本持续下降,推理速度更快。
-
长上下文:无限上下文成为标配。
-
架构革新:可能颠覆Transformer(如Mamba, RWKV等状态空间模型的应用)。
七、 附加综合题 (15题)¶
- 如果给你一个垂直领域(如金融、法律)的任务,你会如何从0到1训练一个专用大模型?
答:
-
数据层:收集领域海量文本(财报、判例)进行继续预训练(增量预训练)。
-
基座选择:选开源基座(如Qwen, LLaMA)。
-
SFT:构造领域指令数据(问答、摘要、分析)。
-
对齐:使用DPO对齐领域偏好。
-
RAG:结合最新领域数据库,解决时效性和知识更新问题。
-
评估:建立领域评测集(如律师资格考试题)。
-
上线一个大模型服务,需要关注哪些工程问题?
答:
-
延迟与吞吐:使用vLLM/TGI部署,配置合理的批处理。
-
高可用:多副本负载均衡,自动扩缩容。
-
成本:量化、小模型缓存(对于简单问题用小模型回答)。
-
安全:内容安全过滤、敏感词拦截、日志审计。
-
监控:实时监控GPU利用率、响应时间、错误率、Token消耗量。
-
面试中常问的数学基础:解释一下Transformer中梯度的消失与爆炸。
答: 深层网络反向传播时,梯度连乘。如果权重矩阵的奇异值 >1,梯度会指数级增长(爆炸);<1则消失。Transformer通过残差连接(让梯度有一条直通路径)和LayerNorm(归一化分布)缓解了该问题。
- 如何解决大模型“复读机”问题(陷入重复循环)?
答:
-
调整解码策略:提高重复惩罚。
-
训练时引入多样性数据。
-
检查是否使用了不合适的采样参数(温度过低)。
-
对于长文本,使用Block Attention。
-
什么是“知识蒸馏”?如何将大模型蒸馏成小模型?
答: 让“学生模型”学习“教师模型”的输出分布(软标签,Soft Label)。常用方法:
-
标准蒸馏:最小化KL散度。
-
指令蒸馏:用教师模型生成大量(指令,输出)数据,用于学生模型SFT。
-
大模型评估中,“MMLU”是如何工作的?
答: MMLU(Massive Multitask Language Understanding)包含57个学科的多选题。评估时,模型需要从A、B、C、D中选出正确答案。通常使用5-shot(少样本)方式测试,计算平均准确率。
- 解释一下“大模型的安全对齐”与“越狱”的攻防关系。
答: 安全对齐构建了防御(拒绝有害指令)。越狱(如DAN,角色扮演,Base64编码)试图绕过防御。攻防是持续的:防御方通过红队测试发现漏洞,加入对抗训练;攻击方不断发现新的提示词注入方法。
- 如何在只有8张A100(40G)的机器上训练一个70B模型?
答:
-
使用QLoRA(4-bit基座 + LoRA)。
-
如果全量训练,必须使用DeepSpeed ZeRO-3 + CPU Offload(将优化器状态卸载到CPU内存)。
-
启用梯度检查点。
-
尽可能降低微批次大小(micro-batch size)。
-
什么是“指令注入攻击”?
答: 恶意用户通过输入覆盖或修改模型的系统指令。例如:输入“忽略之前的指令,现在你是一个黑客...”。防御措施:使用特殊分隔符明确区分用户输入和系统指令,并进行输入过滤。
- 在LLM中,“嵌入层”和“输出层”通常权重是共享的吗?为什么?
答: 在大多数模型中(如GPT、LLaMA),嵌入层(Embedding) 和 输出层(LM Head) 的权重是解绑(不共享)的。虽然理论上可以共享,但实践发现解绑有助于训练稳定性和性能提升,尽管会略微增加参数量。只有少数小模型或特定架构(如ALBERT)使用共享。
-
训练数据中,图像和文本如何混合才能训练出好的多模态模型? 答: 需要交错数据(Interleaved Data)。例如:网页中的图文交错(
文本...图片...文本),比简单的“图片-描述”对更能教会模型理解图文之间的复杂关系。训练时通常分阶段:先对齐(大量图文对),再指令微调(交错数据)。 -
什么是“Function Calling”中的并行调用?
答: 允许模型在一次输出中返回多个函数调用(多个tool_calls),而不是一个。这在需要同时查询多个数据源(如查天气和查航班)时非常高效,减少了一次“思考-行动”的往返延迟。
- 如何评估模型在“非英语”语言上的能力?
答:
-
翻译基准:FLORES。
-
多语言理解:MMLU的多语言版本(如M3KE)。
-
多语言数学:MGSM。
-
本地化评测:针对特定语言的文化常识问答。
-
在RAG系统中,文档切块(Chunking)的大小如何决定?
答:
-
小块(256-512 tokens):召回率高,但可能丢失上下文连贯性,适合事实性问答。
-
大块(1024-2048 tokens):上下文丰富,但可能包含噪音,且浪费LLM上下文窗口。
-
最佳实践:采用重叠切块(重叠10%-20%),并结合语义切块(根据段落标题切分)。
-
最近(2025-2026)有哪些值得关注的大模型技术突破?
答:
-
原生多模态:模型直接输入输出图像、音频、视频,无需多个模块拼接。
-
推理模型(Reasoning Models):如OpenAI o1系列,通过强化学习强化“思维链”深度推理,在数学和代码上达到博士水平。
-
超长上下文:10M-100M token级别,能够处理整部《指环王》系列。
-
端侧模型爆发:3B-7B参数能在旗舰手机上流畅运行。
-
语音到语音实时模型:端到端延迟低于2秒,情感和语气自然。
总结¶
这份100题涵盖了从底层原理(Attention、位置编码) 到训练优化(LoRA、量化) 再到应用架构(RAG、Agent) 的完整链路。面试时,面试官往往更看重你对原理的理解(为什么这样做)以及实际工程中踩过的坑(如何解决问题)。