RAG 系统测试题
#RAG #测试 #自测
答案见 [[RAG_测试题_答案]]
第一部分:概念理解(判断/选择)
Q1. RAG 的全称是什么?它解决了 LLM 的哪三个核心问题?
Q2. 以下关于向量嵌入(Embedding)的说法,哪些正确?(多选)
- A. 语义相近的两段文字,其向量之间的 L2 距离越小
- B. text-embedding-v4 模型输出 512 维向量
- C. 向量数据库可以按语义相似度进行搜索
- D. 同一句话转换两次,每次得到的向量一定完全不同
Q3. 本项目的 Milvus 使用的索引类型是 IVF_FLAT,其中:
nlist=128代表什么?nprobe=10代表什么?- 如果想提高搜索精度但可以接受更慢的速度,应该如何调整这两个参数?
Q4. 本项目的混合搜索中,向量搜索权重是多少?关键词搜索权重是多少?融合分数如何计算?
Q5. 意图识别功能的作用是什么?本项目支持哪四个意图分类?
第二部分:系统架构
Q6. 请画出(或用文字描述)本项目的三层服务架构,包括每层对应的文件名和端口号。
Q7. 完整版 RAG 服务(rag_service.py)和简化版(rag_service_simple.py)各运行在哪个端口?请列出完整版比简化版多出的三个功能。
Q8. 数据库 Collection ai_knowledge_base 有哪些字段?每个字段的作用是什么?
Q9. 本项目用什么工具进行中文分词?这个工具提取的结果存储在哪个字段里?用于什么类型的搜索?
Q10. 项目使用的 LLM 是哪家公司的哪个模型?Embedding 模型是什么?需要什么 API Key?
第三部分:数据流程
Q11. 请按顺序描述"数据入库流程"的完整步骤(从 Markdown 文件到 Milvus 存储完成)。
Q12. 当用户提问"人工智能在金融行业有哪些应用?“时,完整版 RAG 服务会依次执行哪些步骤才能返回答案?
Q13. 查询扩展(Query Expansion)的核心思路是什么?以"什么是机器学习?“为例,写出可能的3个扩展查询。
Q14. 向量搜索中,L2 距离(欧氏距离)和相似度是什么关系?本项目中如何将 L2 距离转换为相似度分数?
第四部分:代码理解
Q15. 阅读以下伪代码,回答问题:
| |
- a. 为什么搜索时用
top_k * 2而不是直接用top_k? - b. 公式
1 / (1 + r.distance)的作用是什么?当 distance=0 时结果是多少? - c. 如果一个文档同时出现在向量搜索和关键词搜索结果中,它的最终分数如何计算?
Q16. 在 RAG 生成回答的 Prompt 中,系统会要求 LLM 做什么?“温度参数 temperature” 在意图识别时设为 0.1,在查询扩展时设为 0.7,为什么这两个场景需要不同的温度?
第五部分:优化与扩展
Q17. 当前项目的 Markdown 切块策略是什么?这种方式有什么潜在问题?请提出两种改进方案。
Q18. 什么是重排序(Reranking)?它在 RAG 流程中的哪个位置起作用?比普通向量相似度排序有什么优势?
Q19. 本项目当前缺少评估体系。请解释以下四个 RAG 评估指标的含义:
faithfulness(忠实度)answer_relevancy(回答相关性)context_precision(上下文精确率)context_recall(上下文召回率)
Q20. 如果你要把这个 RAG 系统用于一个法律文书查询场景,你会做哪些针对性的改进?(至少提出3点)
完成后对照 [[RAG_测试题_答案]] 检查你的答案