腾讯pcg技术线-应用效能技术方向-后端开发一面
记录第一次面试腾讯被拷打全过程。
1. Agent项目
上来问agent项目,画一下整个项目的架构
主进程是做什么的?
·是收发消息,决定工具调用
有没有用户意图识别?
·没有,主要判断是文档图片/文字消息,是写死的。
是不是和现在的openclaw的x什么model差不多?(没听懂)
·(糊弄)
多模态体现在哪里?
文件怎么存储,怎么让大模型查找/检索?
·存在history,没有做查找/检索
那你的rag在哪里?
·主要在聊天记录这里,通过prompt形式和大模型结合。
也就是说你并没有一个像openclaw那样的流程,单纯只是一个模仿语气的rag。那你更像是做一个数字分身?
·对,主要是prompt+rag查询检索聊天记录数据库。
那你上下文太长的时候,模型怎么记住前面的细节消息?
·通过手动更新聊天记录数据库。
没有别的方式?
·没有(汗流浃背了)
没有做检索、召回,大模型应该怎么阅读文件?
·单纯只是ocr过后送入大模型
也就是说,没法检索历史文件,或者说只能用文件名做检索?
·对
2. 模型微调实习经历
讲一下整个流程,从数据处理到模型微调到后面的效果和部署。
·背景需求:我们有电商视频违规素材数据集,但是不知道为什么违规,基本上只有违规这一个标签。我们要训练一个模型,帮助客户降低视频违规率,达到更高的流量。
打断:标签就只有违规吗?
·对的,所以需要找出为什么违规,因此决定使用gemini做数据蒸馏
为什么你觉得gemini蒸馏有用?
·因为我们测试过,把视频给Gemini3pro
打断:是告诉他是违规的还是让他指出是否违规?
·是后者。让gemini3pro确认哪里违规,再给人工检查。且参数量上来讲也比8B大很多。
你们怎么确认数据质量?
·我们让业务那边做了审核,基本确定可以。
·然后我们就继续把蒸馏好的数据送到gpt做校验,效果证明gemini和gpt的结果基本符合。后面就组织成数据集送入msswift做微调。
数据的规模怎么样?
·大概2k条视频,每条1~3min,用google的api测试过,一条视频平均3wtoken,文字可以忽略不计。(本来准备写一下估算公式的,结果被问题拉回去了)
有没有对比过模型前后的效果?
·有,一开始识别率其实只有百分之十几左右,调完到了94%,效果还是不错的。
Mfu有没有测?
·没有
微调的精度是多少?
·BF16
为什么不用FP32?
·(汗流浃背)因为显存会爆炸
我们这边一般也不用FP32,除了音频类型的模型对精度要求比较高,要用FP32才会使其容易收敛。如果有一个场景一定要用FP32,你会怎么做显存上的优化?
·(答不上来)
追问:你知道用FP32会自动开启TF32吧?你知道TF32吗?这种优化按说不会爆显存。
·(GG)不知道。。
你们有没有对deepspeed做精调?
·没有,主要在msswift的训练脚本上做调整,deepspeed用的是参数和优化器状态分片(扯淡八股)…主要是默认设置。
我觉得8B也算是一个小的模型了,为什么会显存不够用?按说8卡H20,760多GB的显存,应该够用的。为什么开启deepspeedzero3?为什么又爆显存?
·(汗流浃背)应该是因为我们输入太长
(打断)也就3wtoken
你们之后有没有在推理部署上做调优?比如考虑qps、并发数之类的做流量控制?
·没有,因为我们主要是替换基模,不直接面向大众开放…(糊弄)
也就是说,你在推理和微调这一块其实都不是很深入。(还说了一些redis层什么层的,完全没听懂。。。。)
3. 手撕
流量控制:有请求到达的时间序列以及时间窗口,限定每个时间窗口内只能有n个请求到达,要求滑动窗口实现。和api/网关的相关性强。
·腾讯会议内置ide,有基础的python函数补全。
·标准解法是双端队列,但是我写了个固定窗口。。。说是在实际实现中会有“毛刺”,所以一定要滑动窗口。
4. 反问
我的表现是不是太生涩了?
·(笑)没有,还算好的
我有哪些方面可以提升?
·我们是做偏工程方面的,特别是agent开发。最重视编码、工程能力。你以后可以多提升一下工程细节方面。以后可能设计重要,因为很多编码工作都给ai了。
以后的编程语言有什么建议?
·其实精通一门就好了,python转go是很容易的。
大概走流程多久发邮件?
·这个不太知道
5. 总结
Agent penguin其实和agent的相关度不高,且虽然写了rag但是经不住追问。要完善一下rag的设计与流程,特别是用户意图识别和rag的文档检索、长上下文压缩。可以去学习一下openclaw相关知识,最好搞个部署玩玩。他还说我这个项目更偏向是做一个数字分身,从设计的角度来讲,功能都应该符合数字分身的理念才对。可以在这方面精进。
钛动的工作需要更深入:
为什么显存会爆?
为什么说这个数量级、数据集可以不爆显存而使用FP32?TF32的优化要了解。
Deepspeed的使用要更深入了解。
训练过程中的mfu怎么监控?怎么提升?
推理部署的相关部分可以更深入,特别是流量控制、并发计算等等。
Vllm等推理部署方案需要更了解。。
并发场景下的“毛刺”是什么?应该怎么解决?
问的问题都基本上假设了你的实际背景,也就是不问虚的八股。。必须是你有的经历才可以说。。不好编
没有问学术方面的(比如transformer的架构和attention计算之类的),问的全部都是实际工程实现及其原理/优化。就连给的题目也是工程背景,这个pcg的面试官真的很务实,必须点赞。。面了快1h基本没有废话,很牛逼。