如何准备评估数据与指标

如何准备评估数据与指标 如何准备评估数据与指标评估 RAG 微服务时数据集和指标都要服务于明确的发布问题检索结果是否相关链路在目标负载下是否稳定失败能否被定位和恢复。只堆随机文本能够测试部分存储吞吐却无法代表真实文档结构和用户问题也不能用来判断召回质量。数据集分成质量集与负载集质量评估集保留问题、期望文档、文档版本和人工判断依据。样本应覆盖短问句、术语、错别字、多语言、权限过滤和无答案请求。用户日志只有在获得授权、完成脱敏并符合保留政策时才能使用更稳妥的起点是从已公开或人工编写的业务样例构造再由领域人员复核。负载集用于还原解析和检索成本。它需要覆盖当前知识库实际存在的格式与长度分布例如 Markdown 表格、代码块、附件提取文本、重复段落和异常编码。各类占比从数据盘点得出不预设固定百分比。生成数据可以补边界条件但报告要标明它与真实分布的差异。训练、提示示例和调参样本不能混入独立评测集。文档更新后保留版本避免查询的期望答案已经变化评测脚本却仍用旧标签。没有期望文档的开放问题可以单独做人工评审不应强行算进自动召回率。链路指标按阶段记录Spring Cloud 中的一次 RAG 请求可能经过网关、鉴权、编排、Embedding、向量检索、重排和模型网关。总耗时用于描述用户等待阶段耗时用于定位。Micrometer 指标应使用低基数标签例如阶段、结果类别和版本不要把 Prompt、文档 ID 或用户标识放进标签。至少区分队列等待、连接获取、向量检索、上下文拼装、首个流式片段和完整传输。每项指标的起止点、超时和取消如何计数都写进文档。告警阈值来自服务目标与当前基线不能用一组通用毫秒数评价所有数据量和硬件环境。性能与质量需要同时报告。减少 Top-K 或缩短上下文可能让延迟下降却也可能漏掉必要资料。比较方案时固定问题集和输出要求确认它们完成的是同一项工作。HTTP 客户端配置不要写死连接数、等待时间、空闲回收和响应超时取决于实例资源、外部服务限制与请求时长。下面的示例把这些值放进一个已校验的设置对象避免把文章中的数字复制为生产默认值。实际项目还要为该对象添加 Spring 配置绑定与范围校验。public record AIHttpClientSettings( int maxConnections, Duration pendingAcquireTimeout, Duration maxIdleTime, Duration responseTimeout) {} Configuration public class AIClientConfig { Bean public ClientHttpConnector customHttpClientConnector(AIHttpClientSettings settings) { ConnectionProvider provider ConnectionProvider.builder(ai-pool) .maxConnections(settings.maxConnections()) .pendingAcquireTimeout(settings.pendingAcquireTimeout()) .maxIdleTime(settings.maxIdleTime()) .build(); HttpClient httpClient HttpClient.create(provider) .responseTimeout(settings.responseTimeout()); return new ReactorClientHttpConnector(httpClient); } }压测按逐步增加的负载运行每一步等待系统进入稳定状态并记录连接池在用、空闲和等待数量JVM 分配与 GC 暂停向量库延迟及错误。连接池等待上升不一定只靠调大连接数解决外部服务容量、实例文件描述符和内存同样可能成为限制。数据库连接池指标也不能拿来代表 HTTP 连接池。从现象到根因要有中间证据P99 上升但 CPU 未满可能是连接等待、外部限流、锁竞争或网络问题。Full GC 与慢请求同时出现也不能直接证明字符串拼装就是原因。下一步应查看连接池指标、JFR 或分配 profile、下游 trace再一次只调整一个变量。没有 profile 支持时不直接建议换成ByteBuf或对象复用这类优化会增加生命周期复杂度。一份可复查的报告应包含数据集版本、负载模型、应用与依赖版本、机器资源、原始结果和失败样本。发布结论写清适用范围在什么输入和负载下通过哪些权限、异常格式或依赖故障没有覆盖。这样后续扩容或索引变化时可以重新运行同一评估而不是沿用一组来源不明的漂亮数字。