(2025校招)人工智能工程师招聘笔试试题及答案_第1页
(2025校招)人工智能工程师招聘笔试试题及答案_第2页
(2025校招)人工智能工程师招聘笔试试题及答案_第3页
(2025校招)人工智能工程师招聘笔试试题及答案_第4页
(2025校招)人工智能工程师招聘笔试试题及答案_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(2025校招)人工智能工程师招聘笔试试题及答案一、单选题(每题2分,共20分)1.在PyTorch2.1中,若模型已编译为`pile(...,mode="maxautotune")`,下列哪种操作最可能导致已缓存的CUDAGraph被强制重建?A.将模型某层权重`requires_grad`由True改为FalseB.把输入张量`dtype`从`float16`改为`bfloat16`C.在`forward`里新增一行`print(x.shape)`D.把`batch_size`从32改为32(未改变)答案:B解析:CUDAGraph要求输入内存布局、类型、大小完全静态。bfloat16与float16的内存格式不同,会触发重建;A仅影响梯度计算图,不影响CUDAGraph;C的打印语句在编译模式会被丢弃;D无变化。2.在VisionTransformer中,若将patchsize从16×16改为8×8,同时保持图像分辨率不变,则序列长度与计算复杂度分别如何变化?A.序列长度×2,计算复杂度×2B.序列长度×4,计算复杂度×8C.序列长度×4,计算复杂度×16D.序列长度×2,计算复杂度×4答案:C解析:序列长度与patch数成正比,16→8面积缩小4倍,序列长度×4;SelfAttention复杂度O(n²d),n×4则复杂度×16。3.使用混合精度训练时,LossScaling的主要目的是:A.避免激活溢出B.避免梯度下溢C.加速通信D.减少显存碎片答案:B解析:fp16下梯度容易下溢,LossScaling通过放大loss来放大梯度,反向后再缩放,保证有效位不丢失。4.在推荐系统Wide&Deep中,Wide侧通常采用哪种优化器?A.AdamB.FTRLC.LBFGSD.SGDwithMomentum答案:B解析:Wide侧为稀疏线性模型,FTRL对稀疏特征有良好表现且可产生稀疏解。5.以下哪项不是StableDiffusion中UNet的交叉注意力层输入?A.文本编码器输出的hiddenstatesB.时间步t的embeddingC.噪声图latentz_tD.VAE解码器输出的像素张量答案:D解析:交叉注意力只接收文本条件,像素张量尚未生成。6.在联邦学习FedAvg中,客户端本地epoch过多可能导致:A.客户端漂移(clientdrift)B.通信压缩率下降C.服务器学习率上升D.模型聚合权重减小答案:A解析:本地训练过拟合本地数据,导致权重远离全局最优,即客户端漂移。7.使用DeepSpeedZeRO3时,下列哪种参数状态被分区到所有GPU?A.Optimizerstates+Gradients+ParametersB.仅OptimizerstatesC.Parameters+ActivationsD.仅Gradients答案:A解析:ZeRO3对优化器状态、梯度、参数均做分片,实现最大显存节省。8.在CTR预估中,FM与FFM的主要区别是:A.是否使用隐向量B.隐向量是否依赖fieldC.是否做高阶组合D.是否使用attention答案:B解析:FFM为每个field特征对维护隐向量,FM仅按特征。9.在强化学习PPO中,clip参数ε通常取0.2,若将其改为0.5,最可能的结果是:A.策略更新更保守B.策略更新更激进C.价值函数方差减小D.熵正则失效答案:B解析:clip范围变大,允许更大比率的概率更新,策略更激进。10.在NVIDIAA100上使用TF32进行矩阵乘,其有效位数为:A.10bitB.19bitC.23bitD.7bit答案:B解析:TF32采用1810格式,尾数10位,加上隐含1位,log10(2^11)≈3.3位十进制,共约19位十进制动态范围。二、多选题(每题3分,共15分,多选少选均不得分)11.关于Transformer位置编码,下列说法正确的是:A.相对位置编码可直接外推到更长序列B.RoPE通过旋转矩阵注入位置信息C.绝对位置编码无法区分“左”与“右”D.ALiBi在attentionscore中直接加偏置答案:A、B、D解析:C错误,绝对编码可区分左右,只是无法泛化长度。12.以下哪些技术可有效降低LLM推理时延(batch=1)?A.KVCacheB.ContinuousBatchingC.speculativedecodingD.INT8WeightOnlyQuantization答案:A、C、D解析:ContinuousBatching主要提升吞吐,对单样本延迟无帮助。13.在DiffusionModel采样过程中,下列哪些操作可提升生成质量?A.DDIM采样增大ηB.ClassifierFreeGuidance增大guidancescaleC.使用DPMSolver多步调度D.提高采样步数答案:B、C、D解析:DDIMη增大会降低质量,η=0最确定。14.关于GradientCheckpointing,正确的是:A.前向时丢弃中间激活B.反向时重新计算前向C.显存占用从O(n)降为O(1)D.训练时间增加约20%答案:A、B、D解析:显存降为O(√n)而非O(1)。15.在推荐系统多任务学习中,MMoE与ESMM的共同点是:A.共享底层表示B.使用attention门控C.解决样本选择偏差D.支持多任务联合训练答案:A、D解析:ESMM无attention门控,解决的是CVR样本选择偏差,MMoE不解决。三、填空题(每空2分,共20分)16.在PyTorch中,若模型已启用`torch.cuda.amp.autocast`,要手动将某张量`x`转为float32,应写代码:________。答案:`withtorch.cuda.amp.autocast(enabled=False):x=x.float()`17.VisionTransformer中,若图像224×224,patch14×14,则序列长度=________,若隐藏维度768,则MultiHeadAttention(12头)中每头维度=________。答案:257(224/14)²+1=257;6418.在StableDiffusionv2中,文本编码器由________模型替换CLIP,以支持多语言。答案:OpenCLIP19.在联邦学习安全聚合中,采用________加密机制可防止服务器看到单个客户端梯度。答案:SecureAggregation(或Paillier同态)20.使用DeepSpeed训练时,若开启ZeRO2,optimizerstate分片数为________,参数分片数为________。答案:world_size;121.在CTR预估中,DIN使用________机制捕捉用户兴趣与候选商品的局部相关性。答案:Attention22.在LLM推理中,KVCache显存占用与序列长度成________关系,与batchsize成________关系。答案:线性;线性23.在PPO中,优势函数A_t采用________估计可减少方差。答案:GAE(GeneralizedAdvantageEstimation)24.在DiffusionModel中,若噪声调度为linearβ_t,则前向过程q(x_t|x_0)的方差σ_t²=________。答案:1ᾱ_t,其中ᾱ_t=∏_{i=1}^t(1β_i)25.在推荐系统冷启动中,使用________向量可将新商品快速纳入召回池。答案:内容/语义embedding(或zeroshotembedding)四、计算与推导题(共30分)26.(8分)给定一个注意力机制,查询Q∈R^{n×d},键K∈R^{n×d},值V∈R^{n×d},掩码M∈R^{n×n}为下三角矩阵(含对角0)。写出带掩码的softmaxattention输出O的表达式,并推导当d=64、n=1024时,单精度浮点计算量(FLOPs)。答案:O=softmax(QK^T/√d+M)VFLOPs:QK^T:n×d×n×2=2n²d=2×1024²×64=134,217,728Softmax:3n²(减max、exp、除)≈3×1024²=3,145,728×V:n×n×d×2=2n²d=134,217,728总计≈272MFLOPs27.(10分)在StableDiffusion训练阶段,VAE编码器将512×512×3图像映射至64×64×4的latent。若采用KL正则化,其损失为L_{kl}=β·D_{KL}(q(z|x)||N(0,I))。(1)推导单张图像的KL项解析式;(2)若β=1e6,batch=4,实测L_{kl}=0.32,求平均每个latent维度的KL值;(3)说明β过大对生成效果的影响。答案:(1)设q(z|x)=N(μ,σ²),则D_{KL}=½∑(μ²+σ²−logσ²−1)(2)latent维度=64×64×4=16384,单样本KL=0.32/4=0.08,每维0.08/16384≈4.9e6(3)β过大迫使latent逼近先验,导致信息压缩过度,生成图像模糊、细节丢失。28.(12分)在推荐系统多任务学习场景,任务A(CTR)与任务B(CVR)共享底层embedding。设任务A正样本率5%,任务B正样本率1%。采用ESMM框架,其损失为:L=−∑w_i[y_i^CTRlogp_i^CTR+(1−y_i^CTR)log(1−p_i^CTR)]−∑w_i[y_i^CTCVRlogp_i^CTCVR+(1−y_i^CTCVR)log(1−p_i^CTCVR)]其中p^{CTCVR}=p^{CTR}·p^{CVR}。(1)解释ESMM如何缓解CVR任务的样本选择偏差;(2)若batch=1024,其中点击样本50,转化样本10,求CTR、CVR、CTCVR的正样本数;(3)推导p^{CVR}的梯度∂L/∂p^{CVR}。答案:(1)ESMM用全曝光样本训练CTR,用点击样本训练CTCVR,CVR仅作为中间变量,不直接使用点击样本训练,从而避免训练集与测试集分布不一致。(2)CTR正样本50,CVR正样本10,CTCVR正样本10(因CTCVR=CTR∩CVR)。(3)令y=y^{CTCVR},p=p^{CTCVR}=p^{CTR}p^{CVR},则∂L/∂p^{CVR}=∂L/∂p·∂p/∂p^{CVR}=−(y/p−(1−y)/(1−p))·p^{CTR}五、编程题(共35分)29.(15分)用PyTorch实现一个带RoPE的多头自注意力,要求:支持任意偶数d_model,头数h;RoPE采用复数旋转形式,支持最大长度2048;输入张量x:[batch,seq,d_model],输出同形;禁止调用现成库(如`transformers`)。请写出完整代码并附测试用例。答案:```pythonimporttorchimporttorch.nnasnnimportmathclassRoPEMultiHeadAttention(nn.Module):def__init__(self,d_model,h,max_len=2048):super().__init__()assertd_model%h==0self.d_model=d_modelself.h=hself.d_k=d_model//hself.scale=math.sqrt(self.d_k)self.w_q=nn.Linear(d_model,d_model)self.w_k=nn.Linear(d_model,d_model)self.w_v=nn.Linear(d_model,d_model)self.w_o=nn.Linear(d_model,d_model)预计算旋转角频率inv_freq=1.0/(10000(torch.arange(0,self.d_k,2).float()/self.d_k))t=torch.arange(max_len,dtype=torch.float32)freqs=torch.outer(t,inv_freq)[max_len,d_k//2]self.register_buffer("cos",freqs.cos())self.register_buffer("sin",freqs.sin())defrotate(self,x):x:[batch,h,seq,d_k]seq_len=x.size(2)cos=self.cos[:seq_len,:][seq,d_k//2]sin=self.sin[:seq_len,:]x1,x2=x[...,::2],x[...,1::2]x_rot=torch.empty_like(x)x_rot[...,::2]=x1cosx2sinx_rot[...,1::2]=x1sin+x2cosreturnx_rotdefforward(self,x,mask=None):batch,seq,_=x.size()Q=self.w_q(x).view(batch,seq,self.h,self.d_k).transpose(1,2)K=self.w_k(x).view(batch,seq,self.h,self.d_k).transpose(1,2)V=self.w_v(x).view(batch,seq,self.h,self.d_k).transpose(1,2)Q=self.rotate(Q)K=self.rotate(K)scores=torch.einsum("bhqd,bhkd>bhqk",Q,K)/self.scaleifmaskisnotNone:scores=scores.masked_fill(mask==0,1e9)attn=torch.softmax(scores,dim=1)out=torch.einsum("bhqk,bhkd>bhqd",attn,V)out=out.transpose(1,2).contiguous().view(batch,seq,self.d_model)returnself.w_o(out)测试torch.manual_seed(0)m=RoPEMultiHeadAttention(d_model=512,h=8)x=torch.randn(2,100,512)y=m(x)asserty.shape==x.shapeprint("RoPEattentionoutputshape:",y.shape)```30.(20分)实现一个简化版DeepSpeedZeRO1优化器状态分片,支持Adam。要求:仅分片optimizerstate(momentum+variance);支持任意world_size;提供`step()`接口,完成梯度聚合、更新、分片回传;用纯PyTorch,不依赖DeepSpeed库。答案:```pythonimporttorchimporttorch.distributedasdistclassShardedAdam(torch.optim.Optimizer):def__init__(self,params,lr=1e3,betas=(0.9,0.999),eps=1e8,rank=0,world_size=1):defaults=dict(lr=lr,betas=betas,eps=eps)super().__init__(params,defaults)self.rank=rankself.world_size=world_size为每个参数分配状态分片forgroupinself.param_groups:forpingroup['params']:state=self.state[p]state['step']=0sz=p.numel()chunk=(sz+world_size1)//world_sizestart=min(rankchunk,sz)end=min(start+chunk,sz)state['m']=torch.zeros(endstart,dtype=p.dtype,device=p.device)state['v']=torch.zeros_like(state['m'])@torch.no_grad()defstep(self,closure=None):forgroupinself.param_groups:beta1,beta2=group['betas']lr=group['lr']eps=group['eps']forpingroup['params']:ifp.gradisNone:continuegrad=p.grad.flatten()state=self.state[p]sz=p.numel()chunk=(sz+self.world_size1)//self.world_sizestart=min(self.rankchunk,sz)end=min(start+chunk,sz)local_grad=grad[start:end]聚合梯度到当前rankdist.all_reduce(local_grad,op=dist.ReduceOp.SUM)local_grad/=self.world_size更新m,vm,v=state['m'],state['v']m.lerp_(local_grad,1beta1)v.lerp_(local_grad.square(),1beta2)state['step']+=1bias_correction1=1beta1state['step']bias_correction2=1beta2state['step']denom=(v.sqrt()/math.sqrt(bias_correction2)).add_(eps)step_size=lr/bias_correction1更新参数分片p_flat=p.flatten()p_flat[start:end]=step_sizem/denomdist.barrier()使用示例(需torchrun启动)defdemo():dist.init_process_group("nccl")rank=dist.get_rank()world_size=dist.get_world_size()torch.cuda.set_device(rank)model=torch.nn.Linear(1024,1024,bias=False).cuda()opt=ShardedAdam(model.parameters(),lr=1e3,rank=rank,world_size=world_size)x=torch.randn(32,1024,device='cuda')y=model(x).sum()y.backward()opt.step()print(f"rank{rank}updated")if__name__=="__main__":demo()```六、系统设计题(共30分)31.(30分)设计一个支持千亿参数、多模态(文本+图像)、低延迟(<200ms)的在线推理系统。要求:描述整体架构,包括负载均衡、缓存、量化、连续批处理、动态插值、多机并行;给出显存与带宽估算,假设单卡A10080GB,模型参数量100B,采用INT8权重+FP16激活;说明如何支持图文混排输入,如“描述这张图像并生成营销文案”;给出异常处理与自动扩缩容策略;绘制关键模块时序图(文字描述即可)。答案:架构:1.接入层:APIGateway按模型路由,支持HTTP/gRPC,限流熔断。2.推理层:连续批处理调度器(vLLM+PagedAttention)动态合并请求;多机Pipeline并行:层间切分,8机×8卡,共64A100;量化:权重INT8+Perchannel,激活FP16,KVCacheFP16;缓存:Redis存热点prompt前

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论