高频面试题汇总

简介: 本文系统梳理大模型核心技术,涵盖Transformer自注意力机制、多头注意力、位置编码原理,详解LLaMA与GPT架构差异,解析LoRA、ZeRO优化策略,介绍FlashAttention内存优化,并提供显存与训练时间估算方法,覆盖训练、推理、部署全流程关键技术点。

🎯 基础架构类
Transformer核心
1
Q: 解释Transformer中的自注意力机制
A: 自注意力机制通过计算序列中每个位置与其他位置的关联权重,使模型能够捕获长距离依赖关系。核心公式:
Attention(Q,K,V)=softmax(
d
k

QK
T


)V

2
Q: 为什么使用多头注意力而不是单头?
A: 多头注意力允许模型同时关注不同子空间的信息,每个头可以学习不同类型的关系,提高模型表达能力。
3
Q: 位置编码的作用是什么?有哪些类型?
A: 为模型提供序列位置信息,因为注意力机制本身不包含位置概念。包括绝对位置编码(可学习、Sinusoidal)和相对位置编码(RoPE、ALiBi)。
4
Q: Attention计算中为什么要除以
d
k

?
A: 为了避免当维度
d
k

的值较大时, Q 和 K 的点积结果变得过大,方差变得过大,使softmax函数的结果趋向于极端值(极大值为1 ,其余为0),进而导致梯度消失的问题,影响模型训练的效果。Q: 那为什么不选择其他数,要选
d
k

?
A: 因为希望 Q 和 K 的点积结果期望为0,方差为1。当 Q 和 K 的元素是均值为 0、方差为 1 的独立随机变量时, Q 和 K 的点积的均值为 0,方差为
d
k

,Q 和 K 的点积结果除以
d
k

可以使得点积的方差为1,点积的输出范围更集中,从而控制输入 softmax 的数值范围,避免其输出极端化,从而保留梯度的有效性

5
的方差是d需要除d的平方根,才能让点积方差为1。

模型架构类
4
Q: LLaMA和GPT架构的主要区别?
A: 主要区别在于:

LLaMA使用RMSNorm和SwiGLU激活函数

LLaMA使用RoPE位置编码

LLaMA开源,GPT闭源
5
Q: Encoder-Only、Decoder-Only、Encoder-Decoder架构分别适合什么任务?
A:

Encoder-Only:理解任务(分类、NER)

Decoder-Only:生成任务(文本生成、对话)

Encoder-Decoder:序列到序列任务(翻译、摘要)
⚙️ 训练优化类
6
Q: 解释LoRA微调的原理和优势
A: LoRA通过低秩分解模拟全量微调,将权重更新表示为低秩矩阵乘积:ΔW = BA。优势:

减少可训练参数(1-10%)

保持模型质量

易于部署和切换
7
Q: ZeRO-1、ZeRO-2、ZeRO-3的区别?
A:

ZeRO-1:优化器状态分片

ZeRO-2:优化器状态+梯度分片

ZeRO-3:优化器状态+梯度+参数分片
8
Q: FlashAttention如何优化内存使用?
A: FlashAttention通过IO感知的算法设计,减少HBM访问次数,将内存复杂度从O(N²)降低到O(N),同时保持精确注意力。
🚀 推理部署类
9
Q: 如何估算大模型的显存需求?
A: 显存需求包括:

模型参数:参数量 × 精度字节数

激活值:取决于batch size和序列长度

优化器状态:参数量的2-4倍

KV缓存:序列长度 × 层数 × 隐藏维度
10
Q: 模型量化的原理和常见方法?
A: 量化将浮点权重转换为低精度整数,常见方法:

权重量化:INT8、INT4

激活量化:动态量化

量化感知训练:QAT
📊 实战计算题
计算题1:训练显存估算
题目:一个7B参数的FP16模型,batch_size=4,seq_len=2048,估算推理显存需求?
解答:

模型参数:7B × 2字节 = 14GB

KV缓存:2048 × 32层 × 4096维度 × 2 × 4 = 2GB

激活值:约1-2GB

总计:约17-18GB
计算题2:训练时间估算
题目:使用1000张A100训练175B模型,数据量300B tokens,估算训练时间?
解答:

单卡算力:312 TFLOPS

有效算力:约30%利用率

计算量:6 × 175B × 300B = 3.15×10²³ FLOPs

训练时间:约3-4个月
计算题3:如何估算模型kv_cache显存占用量?
题目:假设模型中有 n_layers 个层块。每个层块中有一个多头注意力层。每个多头注意力层有 n_heads个注意力头,每个头的 k 和 v 的尺寸为 d_head。
最大上下文长度为 n_context。精度为 n_bytes,例如对于 FP32 是 4。推理时的批量大小为 batch_size。
解答:
kv_cache显存占用量 = 2 × n_bytes × n_layers × batch_size × n_context × n_heads × d_head

⚙️ 显存估算
训练显存估算
训练的时候 GPU 显存占用一共包括 4 个部分:模型参数,梯度,优化器状态,激活值。 假设模型参数量是 θ

模型参数:假设模型的参数量是 θ,参数精度是BF16/FP16,即每个参数占用两个字节,那么推理时候参数占用的显存是2θ 字节(前向传播),现在的大模型训练基本上会使用混合精度训练,混合精度训练时需要备份一份FP32的参数,用于模型参数更新,需要4θ 字节

梯度:梯度内存的大小与模型的参数数量有关,因为每个参数都需要计算对应的梯度。因此梯度量一般等于模型参数量,假设模型参数量是 θ,参数精度是BF16/FP16,那么梯度量是2θ 字节

优化器状态:现在的大模型训练基本上会使用混合精度训练和AdamW优化器,AdamW优化器需要存储动量(momentum)、二阶矩(variance)等状态,且由于混合精度训练, 优化器中的参数精度是FP32,因此优化器状态占用的显存是2 4 θ 字节

激活值:用于存储神经网络在前向传播过程中计算的中间值,这些激活值在反向传播过程中需要被重用,以计算关于模型参数的梯度。激活内存的大小与网络的深度和输入数据大小(batch size)有关。更深的网络和更大的 batch size 会导致更大的激活内存需求。

总显存占用量 = 模型参数量 + 梯度 + 优化器状态 + 激活值 + 其他显存占用量

参考:大模型消耗的显存
推理显存估算
大模型推理时的显存占用量主要取决于:

模型参数:假设模型的参数量是 θ,参数精度是BF16/FP16,即每个参数占用两个字节,那么推理时候参数占用的显存是2θ 字节

kv_cache显存占用量:假设模型中有 n_layers 个层块。每个层块中有一个多头注意力层。每个多头注意力层有 n_heads个注意力头,每个头的 k 和 v 的尺寸为 d_head。最大上下文长度为 n_context。精度为 n_bytes,例如对于 FP16 是 2。推理时的批量大小为 batch_size。那么推理时候参数占用的显存是:2 × n_bytes × n_layers × batch_size × n_context × n_heads × d_head

总显存占用量 = 模型参数量 + kv_cache显存占用量 + 其他显存占用量

🎯 开放性问题
11
Q: 如何解决大模型的幻觉问题?
A: 多种策略结合:

数据质量提升

RLHF对齐训练

知识增强(RAG)

事实核查机制
12
Q: 如何评估大模型的安全性?
A: 多维度评估:

有害内容检测

偏见测试

鲁棒性测试

隐私泄露测试
13
Q: 大模型在垂直领域如何落地?
A: 完整流程:

领域数据收集

继续预训练

指令微调

强化学习对齐

评估和优化
📚 面试技巧
回答框架
1
定义:清晰解释概念
2
原理:说明工作机制
3
优缺点:客观分析
4
应用:结合实际场景
5
扩展:相关技术发展
注意事项

用具体数字支撑观点

结合实际项目经验

展示系统性思考

承认知识边界
🔗 相关资源

基础架构详解

训练优化技巧

模型架构对比

相关文章
|
编解码 数据可视化 Java
3D模型拆分与合并展示,IVX真的可以简单实现
iVX 平台的优势和特点,包括逻辑完备性、操作流畅性、面向对象设计方法、可独立作为编程语言等方面的优势,下面来详细的介绍介绍。
339 0
CCF推荐A类会议和期刊总结:计算机体系结构/并行与分布计算/存储系统领域
中国计算机学会(CCF)2022年版推荐目录涵盖了计算机体系结构、并行与分布计算、存储系统领域的多个A类会议和期刊。本文汇总了这些顶级资源的全称、出版社、dblp网址及领域。包括《ACM计算机系统汇刊》、《ACM存储汇刊》等期刊,以及ACM PPoPP、USENIX FAST等会议,为研究人员提供了重要学术参考。
14090 64
CCF推荐A类会议和期刊总结:计算机体系结构/并行与分布计算/存储系统领域
|
2月前
|
人工智能 搜索推荐 机器人
2025年AI智能体来了,企业却还在试水池里扑腾!
88%企业都说用AI了,但大部分还在试点阶段扑腾?AI智能体听起来很酷,实际落地却像让ChatGPT去当总经理。揭秘为什么高效企业用AI搞创新,而不是只盯着省钱。从试点到规模化,这道坎比想象中难跨! #人工智能 #AI智能体 #企业数字化 #创新管理
196 3
|
存储 自然语言处理 Oracle
Oracle数据库字符集概述及修改方式
【8月更文挑战第15天】Oracle 数据库字符集定义了数据的编码方案,决定可存储的字符类型及其表示方式。主要作用包括数据存储、检索及跨系统传输时的正确表示。常见字符集如 AL32UTF8 支持多语言,而 WE8MSWIN1252 主用于西欧语言。修改字符集风险高,可能导致数据问题,需事先备份并评估兼容性。可通过 ALTER DATABASE 语句直接修改或采用导出-导入数据的方式进行。完成后应验证数据完整性。此操作复杂,须谨慎处理。
902 5
|
Web App开发 数据采集 存储
WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率
本文探讨了如何利用Chrome DevTools Protocol (CDP) 与 Selenium WebDriver 提升浏览器自动化效率,结合代理IP技术高效采集微博数据。通过CDP,开发者可直接操作浏览器底层功能,如网络拦截、性能分析等,增强控制精度。示例代码展示了如何设置代理IP、cookie及user-agent来模拟真实用户行为,提高数据抓取成功率与稳定性。适用于需要频繁抓取互联网数据的应用场景。
1515 3
WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率
|
9月前
|
传感器 自动驾驶 机器人
PTP 时钟:精准时钟同步的核心力量​
西安同步电子科技推出的SYN2407系列PTP时钟模块,包含多种型号,支持纳秒级时间同步精度,适用于工业自动化、汽车电子及电信等领域。该系列模块具备主从时钟切换功能,支持IEEE1588、IEEE802.1AS等协议,适应复杂网络环境。通过高精度时钟同步,助力生产线高效运行、汽车电子系统精准配合及电信网络稳定传输,推动各行业迈向更高效、精准的数字化未来。
|
安全 物联网 数据安全/隐私保护
如何办理和使用物联网卡
购买物联网卡时,需明确需求、选择正规渠道和合适套餐,并注意保护个人信息安全和关注售后服务‌。但需要注意一些细节以确保顺利进行。以下是详细的步骤和建议:
|
机器学习/深度学习 人工智能 供应链
量子计算有哪些应用场景
量子计算有哪些应用场景
2902 6
|
编译器 Go C语言
通过例子学习在golang中调试程序
【7月更文挑战第4天】Go语言支持使用cgo进行汇编调试,官方文档在golang.org/doc/asm。注意,调试Go运行时可能遇到变量不可用或行号错误,需谨慎使用step命令。
320 1
通过例子学习在golang中调试程序
|
数据可视化 C# 图形学
【推荐100个unity插件之18】Unity 新版输入系统Input System的基础使用
【推荐100个unity插件之18】Unity 新版输入系统Input System的基础使用
1397 0