此功能为实验性功能。标志、输出结构和行为可能会在不同版本之间发生变化。请在受控工作流中使用,并在 CI 中固定版本。随着评估工作流逐渐成熟,报告架构和评分行为可能会发生变化。
eval 命令在具有代表性的评估集上对翻译质量进行基准测试,并在 CI 中强制执行质量阈值。
用法
评估运行
在你的评估集上运行一个或多个实验变体。求值流程
这个命令的作用
- 从
--eval-set加载评估数据集。 - 从数据集
experiments中,或从你选择的配置文件、提供商、模型和提示覆盖中扩展实验变体。 - 针对每个实验变体执行每个用例。
- 使用内置启发式通道对每个翻译进行评分。
- 当你同时传入
--eval-provider和--eval-model时,可选地添加一个 LLM 裁判通道。 - 将启发式质量和成功的裁判得分协调为每次运行一个
finalScore。 - 当你传入
--output时,会写入一份 JSON 报告。 - 打印简洁的每个实验摘要表。
标记
--eval-set:评估数据集的路径(.yaml、.yml)(必需)--profile:配置文件名称覆盖(可重复)--provider:提供程序覆盖(可重复)--model:模型覆盖(可重复)--prompt-file:提示文件覆盖--prompt:内联提示覆盖(与--prompt-file互斥)--eval-provider:用于 LLM 评估的提供程序。当请求 judge 评估时,默认为openai。--eval-model:用于 LLM 评估的模型。当请求 judge 评估时,默认为gpt-5.2。--eval-prompt-file:评估提示文件覆盖--eval-prompt:内联评估提示覆盖(与--eval-prompt-file互斥)--assertion:要运行的 judge 断言(可重复)。支持的值:llm-rubric、factuality、g-eval、model-graded-closedqa、answer-relevance、context-faithfulness、context-recall--baseline:使用--interactive时用于比较的基线评估报告 JSON 路径--output: JSON 输出报告路径
--eval-provider、--eval-model、--eval-prompt 或 --assertion,还是通过 eval-set 评审断言隐式开启。
如果请求了评审评估,而你省略了 provider/model,Hyperlocalise 将默认使用 openai 和 gpt-5.2。
你的翻译标志保持其当前含义。--eval-* 标志只控制评审通道。
在 LLM 评估模式下,参考译文是可选的。当存在时,评估器会将它们用作风格和语气指导。
在 YAML eval-set 格式中,reference 是正常的目标侧字段。assert 是可选的。
数据集级别的 experiments 和 judge 是可选的。如果你在 YAML 中定义了它们,并且没有传递 CLI 覆盖项,eval run 会直接使用这些设置。
如果你传入 --profile、--provider、--model 或 --prompt 中的任意一个,CLI 实验矩阵将覆盖数据集 experiments。
如果你传入 --eval-provider、--eval-model、--eval-prompt 或 --assertion 中的任意一个,这些 CLI 值将覆盖数据集 judge 字段。
如果你不传入任何--assertion,默认的 judge 断言是llm-rubric。
未知的断言名称会快速失败。
评分机制如何运作
quality.weightedAggregate是该次运行的内置启发式评分。judgeAggregateScore是该运行中成功的 judge 断言的平均值。finalScore是报告中用于诊断的调和后分数。decision是此次运行的粗略结果:pass、review或fail。
- 翻译错误会强制
finalScore=0和decision=fail - 启发式硬性失败强制
finalScore=0和decision=fail - 当判定车道不可用时,
finalScore会回退到启发式分数 - 当两条车道都可用时,
finalScore = 0.65 * heuristic + 0.35 * judge
汇总表字段
score:实验的平均加权质量分数pass_rate:实验的成功运行次数 / 总运行次数placeholder_violations:占位符完整性严重失败违规计数latency_ms:实验的平均延迟
示例
使用配置中的默认值运行并写入报告:报告示例
示例评估集:--output写入的 JSON 的精简示例:
experimentSummaries是按finalScore、weightedScore或通过/复审/失败混合方式比较模型变体的最快方法。aggregate.byLocale是定位回归问题最快的方式。llmEvaluation.averageScoreByName显示了是哪一组断言在拖累 judge lane。assertionResults显示显式 eval-set 期望是否已通过。judgeResults详情解释特定断言的失败,例如幻觉、缺乏支持的主张或缺失的上下文事实。
评估比较
将候选报告与基线报告进行比较。 在 CI 中使用此命令以防止质量回退。 工作流程保持不变:先运行eval run,然后运行eval compare。
标志
--candidate:候选报告 JSON 路径(必填)--baseline:基线报告 JSON 路径(必填)--min-score:最低候选分数--max-regression:从基线到候选的允许最大分数回退
CI 行为
eval compare 在两个报告都包含可用的 LLM 裁判汇总分数时,优先使用 LLM 汇总分数。否则,它会回退到启发式加权分数。
这意味着 eval compare 当前基于以下条件进行门控:
- 当在两份报告中都启用了 LLM 评估时的 LLM 裁判汇总
- 在没有可用的 LLM 评判聚合时使用启发式聚合
finalScore 的限制。
当以下情况时,命令会以错误退出:
- 候选分数低于
--min-score,或者 - 分数回归超过
--max-regression。
示例
仅比较报告并打印汇总值:0.82 或回退幅度超过 0.02,则使 CI 失败: