去面试 AI 大模型,会问到哪些问题?
最近好多朋友都在问:有面过 xx 大模型开发平台的吗?想取一下经。
于是乎,我就整理了这篇文章,替大家整理了一些 AI 大模型可能会被问到的面试题。
下面是我在网上找到的一些 AI 大模型相关的岗位要求:
某哈游

某里巴巴

可以看到一些很常见的名词:SFT (监督微调)、RLHF (基于人类反馈的强化学习)、Reward Model (奖励模型)、AI Agent、RAG 等等。
下面是我整理的一些面试题,大家可以学习一下。
encoder-only、decoder-only、encoder-decoder 不同架构在实际应用的使用场景
答案:在实际应用中,不同 Transformer 架构的选择取决于任务需求。
Encoder-only 架构(如 BERT、RoBERTa):主要用于理解型任务,因为它能高效编码输入序列的上下文信息。典型应用场景包括文本分类(如情感分析)、命名实体识别(NER)、问答系统(如提取式问答),因为这些任务需要深度理解输入文本的语义和关系。例如,在客户服务聊天机器人中,用于意图识别。
Decoder-only 架构(如 GPT 系列、Llama):专注于生成型任务,因为它通过自回归方式逐个生成输出 token。典型应用场景包括文本生成(如故事创作)、摘要生成、代码补全和聊天机器人响应,因为这些任务需要模型基于上下文预测后续内容。例如,在内容创作工具中生成营销文案。
Encoder-decoder 架构(如 T5、BART):适用于序列到序列(seq2seq)任务,因为它结合了编码输入的上下文和解码生成输出。典型应用场景包括机器翻译(如英译中)、文本摘要(输入长文本输出摘要)、语音识别转文本,因为这些任务需要同时理解输入和生成结构化输出。例如,在翻译服务中处理多语言文档。
总体而言,encoder-only 适合“输入分析”,decoder-only 适合“输出生成”,encoder-decoder 适合“输入-输出转换”;选择时需考虑计算效率(encoder-only 通常更轻量)和任务复杂度(encoder-decoder 更灵活但资源密集)。
llama2 网络架构?使用了哪些注意力机制
答案:Llama 2 基于 Transformer 的 decoder-only 架构,由 Meta AI 开发,旨在高效处理大规模语言任务。
网络架构:
核心组件包括多个 Transformer 块(层数可配置,如 7B 参数模型有 32 层),每层包含多头自注意力机制和前馈神经网络。
输入通过 token 嵌入层,后加位置编码;输出经 LayerNorm 和残差连接,最终通过线性层生成预测。
关键特点:使用 RMSNorm(Root Mean Square Layer Normalization)替代 LayerNorm 以提升稳定性,并采用 SwiGLU 激活函数增强非线性能力。模型支持上下文长度达 4096 tokens。
注意力机制:
主要使用多头自注意力(Multi-Head Self-Attention):每个头独立计算 query、key、value 的点积注意力,然后拼接结果,允许模型并行关注不同子空间。
具体实现:采用缩放点积注意力(Scaled Dot-Product Attention),其中注意力分数通过 softmax 归一化,并添加了因果掩码(causal mask)确保自回归属性(即当前 token 仅依赖左侧上下文)。
优化机制:Llama 2 引入了分组查询注意力(Grouped Query Attention, GQA) 的变体(尤其在较大模型如 70B 参数版本中),通过共享 key 和 value 投影减少计算开销,提升推理效率,而不牺牲性能。
llama2 的位置编码了解吗? 讲讲几种位置编码的异同
答案:Llama 2 使用旋转位置编码(Rotary Position Embedding, RoPE),它是一种高效的位置编码方法。以下详述 RoPE 及与其他编码的异同:
Llama 2 的位置编码:RoPE:
原理:通过旋转 query 和 key 向量来编码位置信息。具体来说,对每个位置索引,应用一个旋转矩阵到 query 和 key 的嵌入中,从而在注意力计算中注入相对位置关系。公式为:将 token 嵌入与旋转矩阵相乘,其中旋转角度基于位置差。
优点:能处理长序列(如 4096 tokens),因旋转操作保持向量范数不变,避免数值不稳定;且支持相对位置感知,无需额外参数,计算高效。
几种位置编码的异同:
绝对位置编码(如 Sinusoidal):
原理:使用预定义的正余弦函数生成固定位置向量,直接添加到 token 嵌入(如原始 Transformer)。
异同:与 RoPE 相比,它简单但缺乏灵活性——RoPE 动态编码相对位置,而 Sinusoidal 是静态的;两者都无学习参数,但 RoPE 在长序列任务中表现更好(如困惑度更低)。
相对位置编码(如 ALiBi):
原理:在注意力分数中添加基于位置差的偏置项(如线性衰减偏置),不修改嵌入本身。
异同:与 RoPE 都关注相对位置,但 RoPE 通过几何旋转实现,而 ALiBi 是启发式偏置;RoPE 通常泛化性更强(适合多种任务),而 ALiBi 更易扩展到超长序列(如 100k tokens),但 RoPE 在 Llama 2 中平衡了效率和性能。
学习式位置编码(如 BERT 的嵌入层):
原理:位置向量作为可学习参数,通过训练优化。
异同:与 RoPE 相比,它更灵活但增加模型大小和过拟合风险;RoPE 无额外参数,更适合资源受限场景。RoPE 和 ALiBi 在近年大模型中更流行,因它们避免位置嵌入的局限性。
总结:RoPE 在 Llama 2 中被选用,因其在自回归生成任务中高效、稳定,优于 Sinusoidal 和简单学习式编码;ALiBi 更适合极端长上下文,但 RoPE 是当前 decoder-only 模型的主流选择。
基础大模型训练流程及资源使用情况
答案:基础大模型(如 Llama 2 或 GPT)的训练流程涉及多阶段优化,资源消耗巨大,需分布式计算。
训练流程:
数据准备:收集大规模文本数据(如 Web 文本、书籍),进行清洗、去重、分词(使用 Byte Pair Encoding 或 SentencePiece)。数据量通常达 TB 级(例如 Llama 2 使用 2 trillion tokens)。
预训练:
核心阶段:采用自监督学习,如 causal language modeling(预测下一 token)或 masked language modeling。
过程:初始化模型权重(随机或迁移学习),在分布式集群上迭代训练;使用优化器(AdamW)和学习率调度(cosine decay)。
时长:数周至数月,例如 Llama 2 70B 模型训练需约 21 天。
微调(可选):针对特定任务(如聊天或安全对齐),使用监督数据(如指令数据集)进行 fine-tuning,可能包括 RLHF(Reinforcement Learning from Human Feedback)来对齐人类偏好。
评估与部署:在 held-out 数据集上评测指标(如困惑度、准确率),并通过量化或蒸馏优化后部署。
资源使用情况:
计算资源:依赖 GPU 集群(如 NVIDIA A100/H100),训练 Llama 2 7B 模型需约 1,720 GPU 天(使用 2,000 A100 GPUs),70B 模型需约 1.7 million GPU 小时。计算以 PFLOPS(petaflops)衡量,峰值达数百 PFLOPS。
显存需求:模型参数和优化器状态占用大量显存(例如 70B 模型需>1TB 显存),通过模型并行(如 tensor parallelism)和数据并行(如 ZeRO 优化)分摊。
存储与网络:训练数据需 PB 级存储;分布式训练中,GPU 间通信带宽(如 InfiniBand)是关键瓶颈。
成本:训练一个 70B 模型可耗资数百万美元,涵盖硬件、电力和冷却。优化方法包括混合精度训练(FP16/FP32)以减少显存。
了解 langchain 吗? 讲讲主要结构和主要组件,处理复杂任务链时有哪些优势
答案:LangChain 是一个开源框架,用于构建基于大语言模型(LLM)的应用程序,支持链式、代理式任务处理。
主要结构和组件:
模型(Models):接口连接 LLMs(如 GPT-4 或 Llama 2)或嵌入模型,用于文本生成或语义理解。
提示(Prompts):模板化管理输入提示(prompt templates),支持动态变量插入,提升可复用性。
链(Chains):核心组件,将多个步骤组合成序列(如“获取数据→分析→生成报告”);类型包括简单链(SequentialChain)和转换链(TransformChain)。
代理(Agents):高级结构,使用 LLM 作为“大脑”调用工具(tools),如搜索引擎或 API,实现动态决策(如 ReAct 框架)。
内存(Memory):存储对话历史或状态(如 ConversationBufferMemory),支持上下文感知应用(如多轮聊天)。
索引(Indexes):集成外部数据源(如向量数据库),通过检索增强生成(RAG)访问私有知识。
其他:回调系统(logging)、输出解析器(结构化响应)。
处理复杂任务链时的优势:
模块化与可组合性:组件如链和代理可嵌套,轻松构建多步任务(例如,先检索文档再总结),避免单一 LLM 的局限。
动态适应:代理能基于实时反馈调用工具(如计算器或网络搜索),处理开放式问题(如市场分析),提升鲁棒性。
状态管理:内存组件维护会话历史,支持长期依赖任务(如用户咨询流),优于无状态 LLM 调用。
效率与扩展性:通过索引集成外部数据,减少幻觉;链式处理可并行化步骤,加速复杂 pipeline(如数据分析报告生成)。
开发友好:抽象化底层复杂性,开发者专注业务逻辑,快速迭代应用(如用少量代码实现问答系统)。
显存不够时,一般怎么解决的,有哪些常见的优化方法
答案:显存不足是大模型训练或推理的常见问题,解决方法包括算法优化和系统级技术,旨在减少显存占用或分摊负载。
常见优化方法:
梯度检查点(Gradient Checkpointing):在反向传播时只存储部分激活值,而非全部,通过重计算节省显存(牺牲时间换空间)。例如,在训练中可减少 50%显存,但增加约 20%计算时间。
混合精度训练(Mixed Precision Training):使用 FP16 或 BF16 浮点数存储参数和梯度,结合 FP32 master copy 避免精度损失(通过 NVIDIA AMP 库)。可降低显存占用 50%并加速计算。
模型并行(Model Parallelism):将模型拆分到多个 GPU:
Tensor Parallelism:层内拆分(如注意力头分布)。
Pipeline Parallelism:层间拆分(不同 GPU 处理不同层)。
例如,Megatron-LM 或 DeepSpeed 实现,适合超大模型(如>10B 参数)。
数据并行(Data Parallelism):每个 GPU 持有完整模型副本,但处理不同数据分片;结合 ZeRO(Zero Redundancy Optimizer) 优化器(如 DeepSpeed),将优化器状态、梯度和参数分区存储,极大减少冗余(ZeRO-Offload 可进一步卸载到 CPU 内存)。
量化(Quantization):将模型权重从 FP32 转换为 INT8 或 INT4,减少存储大小;分训练后量化(PTQ)和量化感知训练(QAT)。例如,INT8 量化可压缩模型 75%,但可能损失少量精度。
卸载(Offloading):将不活跃数据移至 CPU RAM 或 NVMe 存储(如 Hugging Face Accelerate 或 DeepSpeed-Infinity),使用智能调度在需要时加载回 GPU。
修剪(Pruning):移除冗余权重(如小幅度参数),结构化修剪(如移除整个神经元)可压缩模型大小。
蒸馏(Distillation):训练小模型模仿大模型输出,减少推理显存。
实际应用:优先组合方法(如 ZeRO + 混合精度),使用框架(DeepSpeed、PyTorch FSDP);在推理时,量化+卸载是首选。例如,Llama 2 推理可通过 4-bit 量化在单消费级 GPU 运行。
7. 几种主流大模型的 loss 了解过吗? 有哪些异同?
答案:主流大模型如 GPT 系列、BERT、T5 和 LLaMA 等,都基于自监督学习设计损失函数,核心目标是优化模型的语言表示能力。以下是关键点:
常见 loss 类型:
GPT 系列(如 GPT-3、GPT-4):使用自回归语言建模损失(Autoregressive Language Modeling Loss),通常是交叉熵损失(Cross-Entropy Loss)。模型基于序列预测下一个 token,损失计算为预测概率与实际 token 的交叉熵。公式表示为:,其中 是当前 token, 是历史序列。
BERT:使用掩码语言建模损失(Masked Language Modeling Loss, MLM) 和 下一句预测损失(Next Sentence Prediction Loss, NSP)。MLM 损失随机掩码部分输入 token,模型预测被掩码的 token,使用交叉熵损失;NSP 损失判断两个句子是否连贯,使用二元交叉熵损失。
T5:统一为文本到文本框架,损失基于序列到序列的交叉熵损失。模型输入输出都是文本,损失函数类似于自回归损失,但支持多任务(如翻译、摘要)。
LLaMA(Meta):类似 GPT,使用纯自回归语言建模损失,但优化了训练效率和规模。
异同点:
相同点:所有模型都依赖交叉熵损失作为基础,因为它高效处理分类任务;都通过自监督学习预训练,减少对标注数据的依赖;目标都是最小化预测错误,提升语言理解能力。
不同点:
预测方向:GPT 和 LLaMA 是单向(自回归),只使用历史信息;BERT 是双向,利用全上下文信息;T5 是序列到序列,可处理双向任务。
任务设计:GPT 专注生成任务,损失简单;BERT 引入 NSP 增强句间关系;T5 统一损失支持多任务,更灵活。
效率:自回归损失(如 GPT)训练慢但生成质量高;MLM 损失(如 BERT)训练快但需额外掩码步骤。
实际影响:选择 loss 取决于模型架构——GPT 类适合生成式应用,BERT 类适合理解任务。异同源于模型设计哲学:GPT 追求生成连贯性,BERT 强调上下文捕捉。
8. 了解半精度训练吗? 展开讲讲原理和优点,在实际应用中有哪些挑战。
答案:这是一种优化深度学习训练的技术,使用 16 位浮点数(FP16)代替传统的 32 位浮点数(FP32)。下面详细展开:
原理:
核心机制:半精度训练利用 GPU 硬件支持(如 NVIDIA 的 Tensor Cores),将权重、激活值和梯度存储在 FP16 格式中,减少内存占用和计算带宽。计算过程保持 FP16,但关键操作(如梯度累积)可能混合 FP32(称为混合精度训练)以维持数值稳定性。流程包括:前向传播用 FP16 计算损失,反向传播用 FP16 计算梯度,然后通过 Loss Scaling 放大梯度(避免下溢出),最后更新权重时可能转换为 FP32 进行高精度优化。
数学基础:FP16 范围较小(约 到 ),精度较低(约 4 位小数),相比 FP32(范围 到 ,精度约 7 位小数)。这导致计算更快,但需处理数值误差。
优点:
内存节省:FP16 占用内存仅为 FP32 的一半(2 字节 vs 4 字节),允许训练更大模型或 batch size,提升吞吐量。
速度提升:GPU 对 FP16 计算优化,运算速度可提高 2-3 倍,减少训练时间。
能耗降低:数据传输和计算更高效,节省功耗,对大规模集群训练尤为重要。
实际应用中的挑战:
数值不稳定:FP16 易导致梯度下溢出(接近零时精度丢失)或上溢出(值过大),引发训练发散。解决方法包括 Loss Scaling(放大梯度后再计算)和混合精度(关键部分用 FP32)。
精度损失:模型输出可能略降质量,需精细调参(如学习率调整)补偿。
兼容性问题:旧硬件或框架支持不足,需依赖库如 PyTorch AMP 或 TensorFlow Mixed Precision。
调试难度:梯度异常难追踪,增加开发成本。实践中,需结合梯度裁剪和监控工具。总体而言,半精度训练在 LLM 训练中广泛应用(如 GPT-3),但需平衡效率与稳定性。
9. deepspeed 用过吗? 分布式训练中如何提升效率。
答案:DeepSpeed(由 Microsoft 开发),它是一个高效的大规模分布式训练库,常用于训练 LLM(如 Megatron-Turing)。在分布式训练中,DeepSpeed 提升效率主要通过以下方式:
核心优化技术:
ZeRO(Zero Redundancy Optimizer):这是 DeepSpeed 的核心,分三个阶段(ZeRO-1, ZeRO-2, ZeRO-3)减少内存冗余。例如,ZeRO-3 将优化器状态、梯度和权重分区到不同 GPU 上,避免全复制,可将内存占用降低数倍,支持更大模型。
梯度检查点(Gradient Checkpointing):牺牲计算时间换取内存节省,通过只存储关键激活值,在反向传播时重新计算中间值,减少 GPU 内存压力。
混合精度训练集成:DeepSpeed 内置支持 FP16/混合精度,结合 Loss Scaling,加速计算同时控制数值稳定性。
管道并行(Pipeline Parallelism):将模型层拆分到多个 GPU 上,流水线执行,减少通信开销。DeepSpeed 优化了气泡(bubble)问题,提升吞吐量。
高效通信:使用 NCCL 或自定义通信库优化 All-Reduce 操作,减少 GPU 间数据传输延迟。
效率提升效果:在实践(如训练 10B+参数模型)中,DeepSpeed 可将训练速度提升 2-5 倍,内存需求降低多达 10 倍。例如,ZeRO-Offload 允许将部分数据卸载到 CPU,进一步扩展模型规模。
使用经验:我部署 DeepSpeed 时,需配置 JSON 文件定义优化策略(如设置 ZeRO stage),并监控资源利用率。挑战包括调参复杂性和集群配置,但整体显著加速分布式训练。
10. 解释 SFT 的基本原理及其在大模型训练中的作用,并说明 SFT 数据集的标准格式要求?
答案:SFT(Supervised Fine-Tuning)是监督微调的缩写,核心原理是在预训练大模型基础上,使用有标注数据进行针对性优化,以适配特定任务。
基本原理:SFT 基于迁移学习。预训练模型(如 GPT)已学习通用语言表示,SFT 阶段输入任务特定数据,通过标准监督学习更新模型权重。损失函数通常为交叉熵损失,目标是最小化预测输出与真实标签的差异。例如,在对话任务中,模型学习生成符合人类响应的文本。
在大模型训练中的作用:
任务适应:将通用模型转化为领域专家(如客服、代码生成),提升准确性和相关性。
性能提升:相比预训练,SFT 能快速收敛(只需少量数据),改善输出质量和可控性。
安全基础:作为 RLHF 的前置步骤,为后续人类反馈训练奠定基础。
SFT 数据集的标准格式要求:
通用格式:数据集通常为文本对形式,常见于 JSON 或 CSV 文件。标准结构包括:
输入(prompt):用户查询或上下文,字段名如
"prompt"
或"input"
。输出(completion):期望的模型响应,字段名如
"completion"
或"response"
。可选字段:
"system"
(系统指令)、"label"
(类别标签)或"id"
(样本 ID)。示例格式(JSON):
质量要求:数据需高质量、多样性覆盖任务场景;避免偏见和噪声;规模通常数千到百万样本。常用数据集如 Alpaca 或自定义收集。
11. 详细描述 RLHF 的训练流程,并分析其如何解决 SFT 模型的有害性和幻觉问题?
答案:RLHF(Reinforcement Learning from Human Feedback)训练流程通过人类偏好优化模型,解决 SFT 模型的局限性如有害性(生成有害内容)和幻觉(输出不实信息)。流程分四步:
详细训练流程:
预训练(Pretraining):训练基础大模型(如 GPT)使用大规模无监督数据,建立语言能力。
SFT 微调(Supervised Fine-Tuning):在预训练模型上,使用有监督数据微调,获得初始策略模型(如用于对话生成)。
奖励模型训练(Reward Model Training):收集人类偏好数据(例如,标注员对模型输出的好坏排序),训练一个奖励模型(RM)。RM 是神经网络,输入为 prompt 和 completion 对,输出标量奖励值;训练目标为偏好排序(如使用 Bradley-Terry 模型和交叉熵损失)。
强化学习优化(Reinforcement Learning Optimization):使用 SFT 模型作为初始策略,通过 RL 算法(如 PPO-Proximal Policy Optimization)优化。环境由 RM 模拟:策略模型生成输出,RM 给出奖励,RL 更新策略以最大化累积奖励。关键点包括 KL 散度约束(防止偏离 SFT 太远)和多次迭代。
解决有害性和幻觉问题:
针对有害性:在 RM 训练中,人类标注员显式标记有害输出(如暴力、偏见)为低奖励,引导 RL 策略避免生成此类内容。RL 的探索-利用机制学习安全边界,而 KL 约束确保不激进偏离 SFT 基础。
针对幻觉:RM 通过偏好数据奖励事实性输出(如基于真实知识),惩罚虚构信息。RL 流程强化可信来源的生成,减少不确定性。实验证明(如 InstructGPT),RLHF 能显著降低幻觉率(高达 30-50%)。
机制分析:RLHF 引入人类价值观作为优化目标,直接纠偏 SFT 的过拟合或数据偏差。相比纯 SFT,RLHF 提供动态反馈,使模型更对齐人类意图。挑战包括标注成本和 RM 偏差,但整体提升安全性和真实性。
12. 奖励模型的训练目标是什么?
答案:奖励模型(Reward Model, RM)的训练目标是学习一个函数,能准确预测人类对模型输出的偏好程度,从而为强化学习阶段提供优化信号。具体目标如下:
核心目标:RM 被训练为二分类或排序模型,输入包括 prompt(用户输入)和 completion(模型输出),输出为一个标量奖励值。该值表示人类偏好的相对质量(例如,高分表示更好输出)。
训练目标数学表述:基于偏好数据(如标注员提供的输出对 ,其中 是偏好输出, 是次优输出),目标是最小化偏好排序的损失。常用 Bradley-Terry 模型:
损失函数为交叉熵损失:,其中 是 RM 输出的奖励值, 是 sigmoid 函数。这鼓励 RM 为更好输出分配更高奖励。
实现细节:RM 训练使用监督学习,数据集来自人类标注(如成对比较)。目标确保 RM 泛化到未见数据,为 RL 提供稳定、高效的奖励信号。最终,RM 的目标是充当“人类代理”,指导策略模型生成安全、有用、真实的输出。
欢迎关注 ❤
我们搞了一个免费的面试真题共享群,互通有无,一起刷题进步。
没准能让你能刷到自己意向公司的最新面试题呢。
感兴趣的朋友们可以加我微信:wangzhongyang1993,备注:面试群。
版权声明: 本文为 InfoQ 作者【王中阳Go】的原创文章。
原文链接:【http://xie.infoq.cn/article/a800d61269d39a376700129e2】。文章转载请联系作者。
评论