网易

大模型应用一面、二面面经合集

完整信息

23 条问法 · 22 道题

本篇目录

一面:​

1.自我介绍,讲论文和实习。​

2.Transformer自注意力机制、位置编码、梯度消失/爆炸的解决方案。​

Transformer的自注意力机制通过计算查询(Query)、键(Key)、值(Value)三者之间的相似性,实现序列内任意位置对其他所有位置的动态加权聚合;位置编码(Positional Encoding)以正弦/余弦函数或可学习向量形式注入序列顺序信息,弥补Transformer缺乏固有位置感知的缺陷;梯度消失/爆炸在Transformer中主要通过残差连接(Residual Connection)、层归一化(Layer Normalization)、缩放点积注意力(Scaled Dot-Product Attention)以及合理的初始化策略(如Xavier/Glorot初始化、He初始化、Tied Initialization for Embedding & LM Head)协同缓解。​

3.微调方法对比(Full Fine-tuning vs. LoRA/Adapter/P-Tuning)。​

Full Fine-tuning(全参数微调)是对预训练语言模型的所有可训练参数(包括嵌入层、所有Transformer层的注意力权重、FFN权重、LayerNorm参数等)进行端到端梯度更新;而参数高效微调(Parameter-Efficient Fine-tuning, PEFT)方法如LoRA、Adapter和P-Tuning则仅引入少量可训练参数,冻结原始模型绝大部分权重,通过结构化增量模块实现任务适配。典型参数量对比(以LLaMA-7B为例):Full FT需更新约6.7B参数;LoRA(r=8, target=all-linear)仅新增约1.3M参数(0.02%);Adapter(每层MLP后插入2-layer bottleneck,d=768→64→768)约增加2.2M参数;P-Tuning v2在每层输入侧注入可学习连续prompt embedding(如每层20个向量,7B模型共28层×20×4096≈2.3M参数),三者均将显存占用与训练吞吐提升3–5倍,且在多数下游任务(如GLUE、SQuAD、指令遵循)上达到Full FT 95%–99%的性能。​

4.推理加速技术(量化、动态批处理、FlashAttention)。​

推理加速技术是为提升大语言模型(LLM)在部署阶段的吞吐量、降低延迟与显存占用而设计的一系列系统级与算法级优化方法。其中,量化(Quantization)通过降低权重和激活的数值精度(如从FP16转为INT4/INT8)减少显存带宽压力与计算开销;动态批处理(Dynamic Batching)允许运行时将多个不同长度、不同到达时间的请求合并为一个批次进行并行推理,显著提升GPU利用率;FlashAttention是一种IO感知的注意力优化算法,通过分块计算、重计算(recomputation)与共享内存缓存,将标准Attention的显存复杂度从O(N²)降至O(N),同时避免精度损失并提升实际算力利用率。​

5.如何优化大模型在长文本生成中的显存占用?​

优化大模型在长文本生成中的显存占用,核心策略包括:​

1)使用KV缓存(Key-Value Cache)复用已计算的注意力键值对,避免重复计算;​

2)采用PagedAttention(如vLLM框架)实现内存分页管理,提升GPU显存碎片利用率;​

3)启用FlashAttention或xFormers等优化内核,减少Attention计算中间态显存;​

4)应用序列并行(Sequence Parallelism)或Chunked Prefill将长上下文切分为小块分批处理;​

5)结合量化(如AWQ、GPTQ 4-bit)与动态KV缓存剪枝(如Sliding Window Attention、StreamingLLM)限制历史缓存长度;​

6)启用梯度检查点(Gradient Checkpointing)仅在反向传播时重计算前向中间结果(适用于训练阶段);​

7)使用FSDP+CPU Offload(训练)或TensorRT-LLM推理引擎进行算子融合与显存卸载。​

6.RLHF中奖励模型(RM)的训练数据如何构建?​

RLHF(Reinforcement Learning from Human Feedback)中奖励模型(Reward Model, RM)的训练数据由三元组构成:(prompt, response_A, response_B, preference_label),其中preference_label ∈ {A preferred, B preferred, tie(可选)},表示人类标注者对两个模型生成响应(response_A 和 response_B)在给定 prompt 下的相对偏好。​

构建流程包括:​

1)采集高质量 prompt 数据集(如来自用户真实请求或合成指令);​

2)使用初始策略模型(如SFT模型)对每个 prompt 生成多个候选响应(通常2–4个);​

3)通过人工标注或众包平台(如Amazon Mechanical Turk)进行成对比较标注(pairwise comparison),即对每对响应判断哪个更符合人类价值观(有用性、真实性、无害性、表达清晰度等);4)为避免标注偏差和过拟合,需对 prompt 分布做去偏采样(如按领域/难度分层抽样),并对响应对做平衡构造(如确保A/B顺序随机化以消除位置偏差);​

5)最终形成大规模偏好数据集,典型规模为数万至数十万条三元组。​

7.为网易云音乐设计一个AI歌词生成系统,如何提升创意性和押韵效果?​

提升AI歌词生成系统的创意性和押韵效果,需从数据层、模型层、约束层和后处理层四方面协同优化。核心策略包括:构建高质量多风格中文歌词语料库并引入韵母/声调标注;采用层次化生成架构(如韵脚先行+内容填充);融合规则约束(如平仄格律、押韵词典、语义跳跃度控制)与神经生成(如微调的LLM或韵律增强的Transformer);引入强化学习对押韵一致性、语义新颖性、情感连贯性进行多目标打分优化;最后通过基于图神经网络的韵脚扩散重写模块进行局部韵律精修。​

8.模型剪枝/量化(GPTQ、AWQ)、服务化框架(FastAPI+vLLM)。​

模型剪枝(Pruning)和量化(Quantization)是大语言模型(LLM)推理加速与部署轻量化的两大核心技术。GPTQ(Generalized Post-Training Quantization)是一种基于二阶Hessian信息的单次遍历逐层后训练权重量化方法,支持4-bit甚至3-bit整数量化,精度损失可控;AWQ(Activation-aware Weight Quantization)则引入激活敏感性分析,对重要权重通道保留更高精度(如保留1%的高敏感权重为FP16),实现“感知式”非均匀量化。服务化框架方面,FastAPI提供高性能、异步、自动生成OpenAPI文档的REST接口层,负责请求接收、鉴权、限流、日志等业务逻辑;vLLM是专为LLM推理优化的高效服务引擎,核心采用PagedAttention内存管理机制(类比操作系统分页),将KV缓存按块(block)组织并动态分配/复用,显著提升显存利用率与吞吐量;二者协同构成“FastAPI(前端API网关)+ vLLM(后端推理引擎)”的典型生产级LLM服务架构。​

9.如何解决大模型API服务的响应延迟问题?​

解决大模型API服务响应延迟问题需从请求侧、服务侧和系统架构三个层面协同优化,核心策略包括:请求预处理与裁剪(如prompt压缩、上下文截断)、服务端推理加速(KV缓存复用、PagedAttention内存管理、量化推理INT4/FP16、FlashAttention算子优化)、异步流式响应(SSE/Chunked Transfer Encoding)、动态批处理(Dynamic Batching)、模型服务化架构升级(vLLM/Triton/Llama.cpp部署)、负载均衡与弹性扩缩容,以及客户端体验优化(前端loading提示、渐进式渲染、超时降级兜底)。

二面:​

1.自我介绍,讲论文和实习。​

2.LayerNorm和BatchNorm在大模型中的区别?为什么Transformer用LayerNorm?​

LayerNorm(层归一化)和BatchNorm(批归一化)的核心区别在于归一化的维度与统计量计算方式不同。LayerNorm在特征维度(即每个样本的token embedding向量内部)做归一化,对每个样本独立计算均值和方差;而BatchNorm在batch维度(即同一批次中所有样本的同一特征通道)上计算均值和方差,依赖batch size。Transformer采用LayerNorm,主要原因包括:​

1)序列长度可变且训练时batch内序列常被padding,导致BatchNorm在时间步维度统计不稳定;​

2)自回归生成阶段(如推理)是单样本逐token生成,无法构造有效batch,BatchNorm失效;​

3)LayerNorm具有样本内一致性,对位置编码、残差连接和梯度流更友好,能缓解深层Transformer的梯度弥散问题;​

4)实证表明LayerNorm在语言建模任务中收敛更稳定、泛化更好。​

3.解释大模型训练中的“灾难性遗忘”现象及解决方法。​

灾难性遗忘(Catastrophic Forgetting)是指大语言模型在持续学习新任务或新领域知识时,显著丢失先前已习得任务性能的现象。典型表现为:模型在微调后对原始预训练任务(如通用问答、语法理解)的准确率大幅下降,尽管在新任务(如医疗文本分类)上表现提升。该现象本质是神经网络权重更新过程中,新任务梯度覆盖了承载旧知识的关键参数,导致旧知识表征被破坏。​

4.如果微调后的模型过拟合,你会如何调整?​

当微调后的模型出现过拟合时,可从数据、模型结构、训练策略和正则化四个维度进行系统性调整。具体包括:增加训练数据(如数据增强、回译、合成数据)、使用更小的模型或引入Dropout/BatchNorm、降低学习率并采用早停(Early Stopping)、添加L2权重衰减、采用标签平滑(Label Smoothing)、使用梯度裁剪(Gradient Clipping)、冻结部分底层参数(如仅微调顶层Transformer层)、或改用更鲁棒的微调范式(如LoRA、Adapter、Prefix-Tuning等参数高效微调方法)。

5.如何评估一个对话系统的生成质量?​

评估对话系统生成质量需采用多维度指标体系,包括自动指标(如BLEU、ROUGE、METEOR、BERTScore、Distinct-n)、人工评估(如流畅性、相关性、信息量、一致性、多样性、安全性)以及任务导向型指标(如任务完成率、API调用准确率、用户满意度CSAT/NPS),其中人工评估是金标准,自动指标仅作辅助参考;特别地,针对开放域对话还需考察共情能力、人格一致性与上下文连贯性,而任务型对话则更关注槽位填充准确率、意图识别F1值和对话状态追踪(DST)精度。​

6.如何用大模型提升网易新闻的推荐效率?​

可以通过构建“大模型增强的混合推荐系统”来提升网易新闻的推荐效率,具体包括四个核心层次:​

1)用大模型优化用户长期兴趣建模(如基于阅读序列的LLM-based user embedding);​

2)用大模型生成高质量新闻语义表征(替代传统TF-IDF或浅层BERT微调);​

3)用大模型做实时上下文理解与动态意图推理(如结合当前时间、地理位置、设备类型、前序点击行为生成意图prompt);​

4)用大模型作为可解释性调度器(re-ranker + explanation generator),在召回-粗排-精排-重排链路中插入轻量化LoRA适配的大模型模块,实现语义对齐与偏差校正。

7.设计一个游戏内AI陪玩系统,需考虑哪些模块?​

一个完整的游戏内AI陪玩系统通常包含以下核心模块:行为决策模块、状态感知模块、动作执行模块、人格与表达模块、学习与适应模块、通信与协作模块、性能与资源管理模块,以及安全与合规模块。​

8.领域适配时,如何构建高质量的垂域训练集?​

构建高质量垂域训练集需遵循“领域聚焦、数据可信、分布合理、标注规范、持续迭代”五大原则,具体包括:​

1)精准定义垂域边界与任务目标;​

2)多源采集高相关性原始语料(如行业文档、专业问答、结构化数据库、合规脱敏日志);​

3)通过规则过滤+模型打分+人工抽检三重清洗,剔除噪声、偏见、低信息熵及隐私违规样本;​

4)基于领域知识构建分层采样策略(如按主题覆盖率、难度梯度、实体密度、句法复杂度分层),保障数据分布与真实场景对齐;​

5)采用专家主导+众包协同的标注体系,设计细粒度标注规范(含schema定义、边界判定逻辑、冲突仲裁机制),并引入交叉验证与Kappa一致性检验;​

6)构建数据血缘追踪与质量看板,支持bad case回溯、偏差热力图分析和增量数据主动学习筛选。​

9.你在项目中如何解决数据稀缺问题?​

在项目中解决数据稀缺问题,我通常采用分层策略:首先通过数据增强(如图像的旋转/裁剪/颜色抖动、文本的同义词替换/回译/EDA)、合成数据生成(如GAN、Diffusion模型或规则驱动的模板填充)扩充样本;其次引入迁移学习,利用预训练模型(如BERT、ResNet)进行微调,降低对下游任务标注数据的依赖;第三,采用半监督学习(如UDA、FixMatch)或自监督学习(如SimCLR、MAE)挖掘无标签数据的内在结构;最后,在必要时设计主动学习流程,让模型主动筛选信息量最大的样本交由人工标注,提升标注效率。实际项目中曾用FixMatch在仅有200张标注医学影像的情况下将分割Dice系数从0.61提升至0.79。​

10.模型上线后遇到了什么性能瓶颈?如何优化的?​

模型上线后常见的性能瓶颈包括推理延迟高(P99延迟超过500ms)、GPU显存溢出(OOM)、吞吐量不足(QPS低于预期)、CPU/GPU利用率不均衡、批量处理(batching)不合理导致资源浪费、序列长度突增引发的动态shape计算开销激增,以及模型服务框架层(如Triton/TFServing)配置不当导致的请求排队或线程阻塞。优化措施通常分四层展开:​

(1)模型层:量化(INT8/FP16)、剪枝(结构化/非结构化)、知识蒸馏、算子融合(如LayerNorm+GeLU融合为SingleKernel);​

(2)推理引擎层:启用TensorRT加速、使用ONNX Runtime with CUDA EP、配置最优batch size与max sequence length、开启paged attention(针对长文本生成);​

(3)系统层:采用vLLM或Triton的dynamic batching + continuous batching,启用CUDA Graph减少kernel launch开销,绑定CPU核心与NUMA节点,关闭非必要日志与监控采样;​

(4)架构层:拆分预处理/后处理逻辑至边缘节点,引入异步pipeline(如KFServing的multi-model serving),对高频小请求走轻量模型(DistilBERT)+ 低频大请求走主模型(BERT-large)的分级路由。

本篇目录
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
  9. 09
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23

同作者面经

相关公司