快手 AI Agent开发 二面
1 . RAG 怎么评测,有哪些维度,那些指标
RAG 的评测一般分成检索、生成、端到端三层。检索层主要看正确证据有没有被找回来,常用 Recall@K、HitRate@K、MRR、NDCG;生成层主要看答案对不对、是不是基于证据回答,常看 Answer Correctness、Faithfulness、Relevance、Completeness、Citation Accuracy;端到端层更偏业务效果,比如用户满意度、追问率、拒答率、时延和成本。真正做项目时不会只看最终答案,因为答案错可能是召回错、重排错、上下文拼接错,也可能是模型生成错。
2. 数据集包括什么
RAG 的数据集一般不只是知识库文档。通常会包括原始知识源数据,比如 FAQ、帮助文档、规则文档、历史问答、社区内容;还会有检索评测集,也就是 query 和 gold chunk 的映射,用来评测召回和重排;还会有生成评测集,也就是问题、标准答案和支撑证据;如果做得更完整,还会准备一些对抗样本,比如歧义问题、错别字、省略问题、多轮追问、无答案问题、越权问题。除此之外,实际项目里也经常单独维护 query 改写数据、rerank 标注数据和拒答数据。
3. 如果让你对相关度、回答效果做优化,你有什么思路
相关度优化一般从数据、召回、重排、上下文构造几层去做。数据层先解决知识库质量问题,比如清洗、去重、切分、版本控制和元数据补充;召回层会做 query 改写、混合召回、父子 chunk、多路召回、embedding 微调;重排层通常会加 rerank,把语义接近但不真正相关的结果压下去;上下文层会做去重、压缩、排序和冲突信息消解;生成层再通过 prompt 约束和拒答机制让模型尽量基于证据回答。更体系化一点,本质就是把它拆成数据层、检索层、上下文层、生成层和评测闭环层,持续用 badcase 反推前面的优化。
4. 如果设计一个数据处理场景,比如有一千条数据,需要求和,你怎么做处理
这种题本质上不是考加法,而是看有没有任务拆解意识。简单场景就是直接遍历求和;如果从 Agent 执行角度看,一般会先识别任务,然后做数据获取、分批处理、聚合和校验。如果数据规模更大或者工具调用有限制,就可以把数据拆块处理,最后再合并结果。
def chunk_sum(nums, chunk_size=100):
total = 0
for i in range(0, len(nums), chunk_size):
total += sum(nums[i:i + chunk_size])
return total
data = list(range(1, 1001))
print(chunk_sum(data, 100))
5. RAG 性能如何提升
RAG 性能提升可以分成效果提升和系统性能提升。效果上主要是优化 chunk 切分、做 query 改写、混合召回、引入父子块、增加 rerank、优化 topk、压缩上下文、减少噪声文档、对 embedding 和 rerank 做领域微调。系统上主要是 embedding 预计算、索引优化、热点 query 缓存、减少 rerank 候选数、控制上下文长度、前置轻量模型分类改写、批量推理和流式输出。线上一般要同时看准确率、时延和成本,不会只看一个指标。
6. 你的上下文怎么处理的,有什么优化思路
上下文一般由 system prompt、当前问题
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.