面灵AI→

米哈游游戏AI研发(Agent)秋招面经

时间
2026-09
来源
牛客网

《面试题目》

  1. 自我介绍。
  2. 介绍一个你负责过的复杂项目,重点讲清楚技术难点。
  3. 幻觉防护不能只靠提示词,你会怎么设计一套完整方案?
  4. 如果让模型具备长期记忆,你会如何设计记忆的存储、召回和遗忘机制?
  5. 如果需要让模型理解并操作视频内容,你会如何设计视频切片和多模态索引?
  6. 如何判断一个视频片段是否是用户真正关注的高光片段?
  7. RAG 的数据从哪里来?如何保证数据质量和版本一致性?
  8. 长文档应该如何切分?固定长度切分有什么问题?
  9. RAG 的召回率和准确率怎么测?测试集如何构造?

《参考解析》

幻觉防护要覆盖数据、检索、生成、执行、评测五层

只在提示词里写「不要编造」是最弱的一层。数据层要给知识打上版本、生效时间、适用范围和可信等级,清掉互相冲突和来源不明的文档;检索层不能只按相似度排序,要叠加时间、业务标签和权限过滤,宁缺毋滥;生成层要求模型区分「证据里明确写了」和「基于常识推断」,证据不足时输出无法确认;执行层对高风险动作加确认与引用校验,生成后做一次事实一致性核查,判断每个结论是否有证据支撑,不通过就降级成「转人工」;评测层统计无依据回答率、拒答准确率、引用覆盖率、人工转接率,而不是只看模型自评或人工打分。这里的关键认识是:幻觉没法靠单点消除,只能靠「让错误更早被发现、更少被传播」把风险压到可接受。

长期记忆:先决定写什么,再决定怎么取

不要把所有历史对话直接塞进上下文。按用途分三类:短期记忆是当前任务的中间变量、工具结果和最近几轮对话,任务结束就该失效;用户事实记忆是用户主动提供并且相对稳定的信息,比如偏好、技术栈、岗位目标;经验记忆是过去任务沉淀下来的处理方式和失败教训。写入要有准入判断:信息是否稳定、是否敏感、未来是否可能复用——用户临时说一句「这次不要推荐付费内容」是会话级约束,不该写成长期偏好;涉及账号、隐私和安全的内容单独权限控制并加密存储。召回一般先按用户标识和权限过滤,再用「语义相似度 + 重要性 + 时间衰减 + 使用频次」加权打分,权重随业务调;遗忘要真的会删:长期未访问、低价值或被用户撤回的记忆降权甚至物理删除,并定期压缩去重,否则记忆库会越来越脏、召回越来越差。

视频切片与多模态索引

固定时间间隔切片的问题是会把一个完整动作切断,也会产生大量重复帧。更合理的链路是先用镜头边界检测拿到候选片段,再结合字幕、音频转写、画面变化和事件检测做二次切分,让每段尽量是一个语义完整的单元。每个片段建立多路索引:起止时间、关键帧、OCR 文本、ASR 文本、视觉描述、角色与场景与事件标签、视频版本与来源。检索时多路召回——文本路(字幕、OCR、ASR)、视觉路(关键帧向量)、事件路(动作与场景标签)、时间约束路(片段之间的上下文关系)——再按统一分数融合,并把相邻命中片段合并、按问题需要向前后扩展时间窗,避免模型只看到孤立的几秒。判断高光片段也不能只看画面变化幅度:爆炸特效可能是高光,也可能只是转场,所以要综合视觉变化(镜头切换、运动强度)、音频信号(音量峰值、音乐节奏、语气)、语义事件(击杀、胜利、失败、关键对白)、用户反馈(完播率、重播率、收藏分享)和叙事结构训练排序模型,离线评估除了准确率还要看 Top-K 召回、片段边界偏差和高光之间的重复度。

长文档切分:分层,而不是定长

定长切分有三个硬伤:语义边界被截断、同一个实体的信息被拆散、块太大引入噪声而块太小又缺上下文。可用的做法是分层切分:先按文档、章节、段落做结构切分,过长段落再按句子或语义边界切;表格、代码、配置文件交给专门的解析器而不是当普通文本处理;每块附上标题路径和父级摘要,检索命中小块时把父块或邻接块一起喂给模型;跨段落引用保留少量重叠或关联 ID。切分效果不能靠肉眼判断,要用问答样本验证:如果一个问题必须拼好几个块才能回答,就该上父子块检索或邻接扩展。

RAG 的评测:把「检索对」和「答对」分开测

检索侧用 Recall@K(正确证据有没有进前 K)、MRR(第一个正确结果排多前)、nDCG(整体排序质量)、Context Precision(召回内容里有效证据的比例);生成侧看事实一致性、答案完整性、引用准确率、拒答正确率和格式遵循率。测试集不能只靠模型自动生成,应该混合真实用户问题、人工构造问题、边界问题和对抗问题,每条标注相关文档、问题类型(单跳还是多跳)、是否应当拒答,并且必须专门覆盖过期规则、相似活动、否定表达、错别字、多轮指代和无答案问题——这些恰恰是线上最容易翻车的场景。评测集要像代码一样管起来:版本化、可回归、改动必跑,否则指标提升只是这一批样本的运气。