🐜ai infra一面1、面试官人真好啊,自我介绍完我就说我的项目偏业务,看jd上的模型训练、模型推理我都没搞过。他说没事,数据库啊啥的都会涉及到。后面果然一句infra的都没问,哈哈白看了一个周末的infra理论了。2、然后拷问第二个项目。2.1 你这个LangGraph路由是如何设计的,为什么要用它?本质是个状态机,定义了xx状态,实现思路(全局状态、node定义、workflow串起来节点)2.2 源数据是什么?如何做的预处理?论文pdf,向量那一路用的固定长度token+overlap,语义切分那一路按段落切的(回车)2.3 评估是怎么做的?怎么判断切的好不好?其实我没做Recall@k这些,于是扯我做了证据溯源2.4 你用GraphRAG了吗,怎么样,有什么优缺点?用了,优点就是对特定专业领域,比如需要检索一些关键词的隐含关系的场景(科研)上效果好,(面试官补充:源数据准确),缺点就是离线阶段有点耗时,比如二三十篇论文的话差不多二十来分钟,单卡跑的话。(面试官说那已经很快了)3、拷问第一个项目。3.1 为什么做这样一个项目,出发点是什么?我看你部署到vercel了,怎么样?vercel没跑通(尴尬,面试官怎么知道我传到vercel了)3.2 web端还是移动端?以一个用户的角度,进去后可以干嘛?3.3 你这个姿态分析是怎么做的?视频是放在minio里,然后是怎么处理的?我一开始说我调了MediaPipe pose的库做姿态识别,识别到人体关机的三十多个点,然后点点相连成为向量,用cos做相似度分析,最后打分,调llm做个总评。面试官一直在追问这里,说视频具体是如何分析的,有没有什么难点。我有点没听懂,他说他的出发点是觉得调库+向量相似 会有些简陋。唉能不简陋吗,我就开始扯我遇到了两个视频如何对齐的问题,目前的解决方式是设置了个滑杆用户手动调节这个偏差,后期的话可以考虑用音乐来实现。3.4 redis缓存了什么数据?是什么类型的?key和val分别是什么?列表内部的数据究竟是什么?有没有涉及到序列化啥的?唉这块是真尴尬,我只从功能上说了我缓存了用户自己的视频列表和姿态分析的结果。等下快去补补好嘛好的。3.5 如果一个用户上传了个非常大的视频会怎么样,比如几G?我说我做了限流,只可以上传小于500MB的,然后也限制了一个用户一分钟只能执行两次ai分析。他就追问说,如果我现在这个视频就是很大又必须要上传呢?我就说那可以设置个会员功能,付费才能上传大视频。哈哈哈哈面试官笑了一下3.6 MQ为什么用RabbitMQ?我就说RabbitMQ简单,可以满足可靠性。追问可靠性是如何实现的?发送端生产者开启确认机制,存储端设置队列持久化、消息持久化,消费端任务完成之后再ack,还设置了死信队列用来兜底。追问消息进入死信队列会被如何处理?答不上这个。只回答了什么时候会触发死信队列。4、ai 相关。你这个aicoding笔试,我看你问了个“云原生架构是什么”,“会被aicoding取代吗”,真想找个角钻了,原来面试官还能看到我当时的prompt啊,然后他就问我会不会被取代。你是如何看待ai coding的发展的?如何提升aicoding的能力?唉当时顺不好口条,面试官又让我总结了一下我想说啥。5、开放题假如有一个业务需要你用agent实现,如何设计? 需要考虑什么?我问什么场景,他说假设现在有个很厉害的agent来做姿态分析,而不是传统后端这一套了,如何达到生产级别?我说我实在是不懂多模态,如果是文本信息的话,生产级别肯定需要考虑多个用户同时访问的并发压力,比如看有没有一些请求能够合并,或者看这些请求有没有通用/复用的地方,设置个缓存来提高响应速度。面试官问还有啥嘛?then,我大脑空白了几秒钟。憋出来个,或许还可以预训练个模型,搞个舞蹈学习的垂直模型?还有啥需要考虑的,想不出来了。6、反问反问了业务,面试官说了一大串,完全没听懂。反问了agent在业务中如何体现。反问了那您觉得aicoding会取代程序员嘛哈哈哈哈总共50来min,无手撕,好煎熬好漫长的50min。