持续更新。。。。。。。
一、大模型架构及原理
1.为什么现在的主流大模型都是decoder-only架构?
Decoder-Only 架构之所以成为主流大模型的选择,主要归因于以下几点:
- 计算效率高:结构简单,易于扩展到超大规模。
- 通用性强:通过提示或少量示例即可适应多种任务。
- 训练目标一致:语言建模目标与生成任务高度契合。
- 灵活性高:适合各种生成任务,且推理效率较高。
尽管 Encoder-Only 和 Encoder-Decoder 架构在某些特定任务中表现优异,但 Decoder-Only 架构凭借其简洁性和高效性,在大规模生成任务中占据了主导地位。
2.大模型部署框架对比
如何选择合适的框架?
选择部署框架时,需要根据具体需求进行权衡:
(1) 如果需要快速上手
● 推荐框架:Hugging Face + Accelerate
● 理由:易用性高,社区支持强,适合快速原型开发。
(2) 如果需要高性能和分布式支持
● 推荐框架:DeepSpeed 或 Triton
● 理由:DeepSpeed 适合超大规模模型,Triton 适合复杂的生产环境。
(3) 如果需要高吞吐量和低延迟
● 推荐框架:vLLM 或 FasterTransformer
● 理由:vLLM 在高并发场景下表现优异,FasterTransformer 在 NVIDIA GPU 上性能卓越。
(4) 如果需要跨平台兼容
● 推荐框架:ONNX Runtime
● 理由:支持多种硬件后端,适合跨平台部署。
3.embedding模型为何普遍都用encoder-only架构
Encoder-Only 架构之所以成为 Embedding 模型的主流选择,主要归因于以下几点:
- 双向上下文建模:能够捕捉完整的上下文信息,生成高质量的语义表示。
- 高效的特征提取:专注于表示学习任务,无需复杂的生成或解码模块。
- 预训练目标匹配:MLM 等预训练目标与下游任务高度一致。
- 灵活性和通用性:适用于多种任务(如分类、检索、聚类等)。
相比之下,Decoder-Only 和 Encoder-Decoder 架构在生成任务中表现优异,但在表示学习任务中并不具备明显优势。因此,Embedding 模型普遍采用 Encoder-Only 架构以满足其核心需求。
4.LLaMA1/2/3的异同?
总结:
LLaMA 系列模型从 LLaMA1 到 LLaMA2 再到 LLaMA3,展现了 Meta 在大规模语言模型领域的持续创新能力。以下是总结的关键点:
- LLaMA1 是一个开创性的开源模型,奠定了基础。
- LLaMA2 在性能、对话能力和应用场景上有了显著提升。
- LLaMA3 预计会进一步扩展模型的能力,特别是在多模态任务和性能方面。
5.介绍下LLaMa关键技术点?
LLaMA 的关键技术点涵盖了模型架构、训练方法、数据处理、推理优化等多个方面,展现了 Meta 在大规模语言模型领域的深厚积累和创新能力。其核心特点包括:
- Decoder-only 架构:专注于生成任务,性能优越。
- 大规模无监督训练:利用海量数据学习通用语言模式。
- 指令微调与人类反馈:提升模型的任务理解和生成能力。
- 高效推理优化:通过 KV 缓存、量化等技术降低资源需求。
这些技术点使得 LLaMA 成为当前最先进、最受欢迎的开源语言模型之一,为自然语言处理和人工智能的发展提供了重要推动力。
6.大模型的参数量为什么设计成7B,13B,33B,65B等如此怪异的数字?
大模型的参数量设计成如 7B、13B、33B、65B 这样的数字,并不是随机的,而是综合了以下因素的结果:
- 实验验证:通过实验确定性能与参数量的关系。
- 硬件限制:考虑显存容量和分布式训练效率。
- 可扩展性:覆盖不同应用场景,提供灵活选择。
- 数学特性:遵循非线性增长规律,寻找质变点。
- 成本控制:平衡训练和推理成本。
- 命名习惯:采用简单易记的近似值。
这些设计原则确保了大模型既能满足性能需求,又能适应实际应用中的硬件和资源限制。
7.为什么Qwen设计成72B?现在大模型为什么都用left padding?
(1)Qwen 设计成 72B 参数量的原因
性能与规模的平衡:72B 参数量在性能和资源消耗之间取得了良好的平衡。
硬件兼容性:适合当前主流 GPU 的显存容量和分布式训练架构。
实验验证:通过实验确定了 72B 是一个"质变点",能够显著提升模型能力。
商业与生态考虑:既满足高端需求,又能通过量化适应轻量级场景。
(2)大模型为什么都用 Left Padding
自回归生成的特点:左填充更适合自回归解码机制,避免了 Right Padding 带来的复杂性。
批处理效率:左填充使得所有序列的有效部分对齐在右侧,便于并行计算。
推理优化:左填充与 KV 缓存技术结合,能够进一步加速推理过程。
数据预处理一致性:左填充是一种标准化的方式,简化了模型的设计和实现。
通过这些设计选择,大语言模型在性能、效率和用户体验上得到了全面提升。
8.RWKV、Mamba和Mamba-2的核心原理和创新之处是什么?
二、Transformer基础总结
10.Transformer中前馈层(FFN)的作用是什么?
11.为什么transformer的FFN需要先升维再降维?
12.大模型幻觉是什么,如何才能缓解这个问题?
13.为什么transformer是LayerNorm?
14.为什么NLP用Layernorm而不是batchnorm? 15.Transformers中FFN的作用?
16.Transformers中的Position Embedding的作用?
17.为什么Bert的三个Embedding可以进行相加?
三、Attention机制
18.BERT中的多头注意力机制-为什么需要多头? 19.Attention为什么要除以根号d?
20.Self-Attentio的时间复杂度/空间复杂度是怎么计算的? 21.Transformers中的Softmax可以并行加速么? 22.LSTM、CNN相对于Self-Attention存在什么问题? 23.Attention为什么使用Multi Head?
24.介绍一下Multi-head Attention?
25.为什么Transformer需要进行Multi-head Attention? 26.介绍一下Self-Attention?
27.为什么Self-Attention中需要除以sqrt(dk)
28.介绍一下Multi-head Attention、Grouped-query Attention、FlashAttention? 29.传统Attention存在哪些问题?
30.Attention优化方向有哪些?
31.介绍一下Attention?
四、模型训练与优化
32.大模型训练,什么时候需要预训练?什么时候需要sft?什么时候需要dpo?
33.深度网络中loss除以10和学习率除以10等价吗
34.硕士校招生进入大模型领域工作,选预训练还是SFT? 35.RLHF训练过程是怎么样的?
36.DPO如何解决RLHF存在问题?
37.解释PPO,DPO and KTO? 38.介绍一下DPO损失函数?
39.大模型DPO存在致命缺陷?
40.为什么需要DPO算法,DPO算法直觉与SFT算法区别,如何理论的分析?
41.大模型训练如何评估数据集质量
42.在PyTorch框架中model.train()和model.eval(的作用是什么?
43.model.eval()会像torch.no_grad()那样停止中间激活的保存么?
44.Prompt tuning、PET、Prefix tuning、P-tuning的原理区别与代码解析
45.LoRA面试题汇总
46.如何提升Ilama3训练数据质量?
47.深度学习的batchsize必须是2的n次方吗?
-
深度学习中,批量归一化有什么好处?
-
深度学习中如何平衡多个Loss? 50.如何提高模型的泛化能力?
51.大模型预训练数据如何预处理?
五、推理加速与优化
52.为什么vllm能够加快大模型推理速度?
53.如何解决大模型推理过程中的延迟问题?
54.为什么LLM推理加速有KV Cache而没有Q Cache?
55.为什么KV Cache没有Q-Cache?
56.KVCache原理是什么?
57.大模型中的响应延迟怎么解决?
58.如何计算大模型推理服务的每秒请求数(QPS)?
59.首Token延时(TTFT)与平均输入Token数量之间存在怎)样的关系?
60.在实际聊天应用中,如何估算并发用户数(VU)?
61.大模型提速有哪些比较好的策略?
62.大模型上线前为什么要做推理优化?
63.大模型推理时,显存中有那几部分数据?
64.Transformer内存优化
65.如何根据模型参数量估计需要的显存?