RAG 生成的答案在 BLEU/ROUGE 指标上得分很高,但仍然可能是一个较差的回答,因为这些指标侧重于表面文本的重叠,而不是语义准确性、连贯性或实际效用。 BLEU 衡量生成文本和参考文本之间的 n-gram 重叠,而 ROUGE 强调召回率(覆盖了参考文本的多少)。 然而,它们并不评估答案是否在事实上正确、逻辑结构是否合理或在上下文中是否恰当。 例如,RAG 模型可能会生成一个包含来自参考答案的许多正确短语的响应,但以错误地表达核心思想的方式将它们组合在一起。 它也可能包含与参考答案在技术上匹配但不符合用户意图的无关细节。 这会在指标表现和实际用途之间造成不匹配。
一个关键问题是 BLEU/ROUGE 忽略了事实一致性。 假设用户问“HTTPS 如何确保安全性?” RAG 答案可能会提到“加密”、“SSL/TLS”和“数据完整性”(匹配参考关键字),但错误地声明 HTTPS 单独使用对称加密。 这些指标会奖励 n-gram 重叠,但答案具有误导性。 同样,响应可能会释义参考答案,但省略关键步骤——例如,在不提及证书验证的情况下解释 SSL 握手。 依赖于此类答案的开发人员可能会实施不安全的系统,尽管指标得分很高。 这些指标也无法惩罚幻觉——听起来合理但实际上是虚假的声明,但巧合地与参考答案共享术语。
另一个问题是连贯性和相关性。 BLEU/ROUGE 不评估答案是否逻辑流畅或解决查询的细微之处。 例如,像“如何优化 SQL 查询?”这样的技术问题可能会收到 RAG 生成的一般技巧列表(例如,“索引列”、“避免 SELECT *”),这些技巧与参考答案匹配。 然而,如果响应没有解释何时索引会适得其反,或者如何分析查询计划,那么对于寻求可行指导的开发人员来说,它是不完整的。 同样,响应可能会过度强调次要点(例如,语法细节),同时低估关键的最佳实践(例如,规范化)。 在实践中,用户需要优先考虑准确性、深度和适用性的答案——这些是 BLEU/ROUGE 无法衡量的品质,从而导致对不足的响应给出虚高的分数。