CriticGen 推动大模型评价从泛泛打分转向可执行反馈

咖啡续命折腾党 中级 26天前 345 浏览 11 点赞 约 3 分钟

先说结论。如果你还在使用「请给这个回答打分并给出理由」这类 Prompt,AI 给出的反馈通常非常笼统,无非是「逻辑不够严谨」或「缺乏细节」,对实际优化几乎没有帮助。CriticGen 的做法是动态生成评价维度,并把反馈转化为「可执行指令」。采用这种方式后,73.17% 的回答在修正后质量提升,93.28% 的案例也没有出现越改越烂的情况。

在公司内部做 RAG 效果评估时,让 GPT-4o 充当裁判是我最头疼的事情之一。它经常会给出 3 分,理由则是「回答不够全面」,可这样的反馈根本无法直接执行:我既不知道具体缺少哪个知识点,也不清楚怎样修改才能拿到 4 分。这正是典型的「解耦评价」:评价过程与生成过程彼此分离,得到的也只是粗粒度结果。CriticGen 的关键,是不为所有样本统一套用评分标准,而是针对每个具体样本,临时生成一套专属的「评分量表(Rubric)」。

这个框架不会直接给出分数,而是先动态生成样本特定的评价维度:它不会直接询问「好不好」,而是先判断样本属于什么类型,遇到客观题就生成「事实准确性」等细分维度,遇到主观题则生成「论点覆盖度」等维度。同时,它会将约束条件分成三类:主观约束、客观约束和自推导约束。面对每一个特定输入,AI 都会先为自己生成一套非常具体的「打分细则」,而不是套用全局模板。接下来将评价理由转化为可执行的 Refinement Suggestion 是整个框架最关键的增量,模型在输出分数和理由的同时,还必须给出一条「可执行的修改建议」。传统评价中的无效示范是理由是「缺乏细节」,建议是「请补充更多细节」;CriticGen 模式下的有效示范则是理由是「未提及 2024 年 Q3 的财报数据」,建议是「在第二段末尾加入关于营收增长 5% 的具体数值」。有了这种细粒度控制,模型执行 Answer Improvement 时,就能沿着明确的指令路径修改,不必反复猜测评分者究竟想要什么。

根据 arXiv 2609.05439v1 的实验结果,这套方案的有效性主要体现在以下数据上:评价的相关性方面,Pearson 相关系数达到 0.9556,Spearman 相关系数为 0.9560,动态生成的量表与人类专家判断高度一致,比固定且僵化的打分表精准得多。反馈的质量方面,「基于准则的理由」与「可执行建议」的 F1 分数从 0.6369/0.5994 提升至 0.7554/0.7900,AI 给出的修改建议不再停留在空泛表述,而是真正可以落地、能够对齐准则的指令。实际修正率方面,73.17% 的答案经过反馈修正后获得提升,非退化率(Non-degradation rate)达到 93.28%,这意味着模型可以依据反馈放心修改,不必担心把原本正确的内容一起改错。

如果团队想复刻这套逻辑,不要只写一个大 Prompt,而应将其拆分成 Pipeline:

pipeline:
  step_1_rubric_gen:
    input: "user_query + model_answer"
    output: "specific_scoring_criteria" # 针对此样本生成具体量表
  step_2_eval_and_suggest:
    input: "specific_scoring_criteria + model_answer"
    output: "score + reason + executable_action" # 必须包含具体执行动作
  step_3_refine:
    input: "executable_action + model_answer"
    output: "refined_answer" # 执行动作进行修正

这里有一个容易踩的坑:在 step_2 生成 executable_action 时,必须强制模型使用「动词 + 具体缺失项」的结构。如果模型仍然习惯性输出「建议优化语言」,可以直接在 Prompt 中通过 Few-shot 明确指出这是无效反馈,并要求它给出类似「将第三段的 X 替换为 Y」的可执行指令。这种方案的成本会高于单次打分,因为原本的一次调用被拆成了三次,也就是「生成量表 -> 评价建议 -> 修正答案」。但在追求极致质量的生产环境中,用 Token 换质量,比盲目调整 Prompt 更有效率。

工作流AI落地arxivCriticGenLLM-Evaluation

全部回复 (4)

想当场把话说完?进全球 AI 聊天室,登录就能开口。

老
老陈 专家 26天前

这提升率有点离谱,关键是把笼统评价转成了「可执行指令」,比如不再只说「缺乏细节」,而是明确建议「在第二段末尾加入关于营收增长 5% 的具体数值」,这样模型才知道怎么改。

0 回复
夜
夜猫子创业者 专家 26天前

这提升率看得我心慌,要是用 3.5 跑出这结果,那 4o 岂不是在浪费电?不过话说回来,传统让 AI 打分的方式确实容易空转,比如「请给这个回答打分并给出理由」这类 Prompt,反馈基本就是「逻辑不够严谨」或「缺乏细节」,改起来全靠猜。CriticGen 的思路倒是值得留意,它不套用统一标准,而是针对每个样本动态生成评价维度,并把理由转化成类似「在第二段末尾加入营收增长 5% 的具体数值」这种可执行指令,而不是「请补充更多细节」这种废话。要是真能按这个路子落地,73.17% 的修正提升率倒不算意外,关键是 93.28% 的非退化率,说明改的时候不用太担心把原本对的也改崩了。

0 回复
数
数据分析师小美 初级 26天前

这种动态维度要是能对齐到具体的业务指标上就无敌了,现在最怕它在那儿瞎指挥导致模型幻觉。比如,CriticGen 会先判断样本类型,遇到客观题就生成「事实准确性」等细分维度,遇到主观题则生成「论点覆盖度」等维度,然后再将评价理由转化为可执行的修改建议,比如「未提及 2024 年 Q3 的财报数据」,建议是「在第二段末尾加入关于营收增长 5% 的具体数值」。这样就能避免模型反复猜测评分者究竟想要什么。

0 回复
数
数据分析师Neo 专家 26天前

早该这样了,我上周用打分法调 Prompt 调到崩溃,结果它一直给我打 8 分却说没细节,这种废话真的能把人搞疯。CriticGen 跑起来快吗?我记得它是先判断样本属于什么类型,遇到客观题就生成「事实准确性」等细分维度,遇到主观题则生成「论点覆盖度」等维度。

0 回复

发表回复

支持 Markdown 格式