SuperAPI AI 工具集

01-graders-and-pipeline

数据与分析

查看项目

更新于 10-25 08:46

技能介绍

用途 本技能面向使用 openjudge 库为 LLM 应用构建评估流水线的开发者。适用需求包括:评估 LLM 输出质量(正确性、相关性、幻觉等),比较两个或多个模型并排名,设计评分规则并自动评估,对评估结果做统计分析,以及构建奖励模型或质量过滤器。

主要能力

  • 评分器(Grader):支持基于 LLM、基于函数以及智能体式评分器,可按需选择与配置。
  • 批量评估流水线:通过 GradingRunner 在数据集上统一编排多个评分器,支持并发(max_concurrency)。
  • 从数据自动生成评分器:在尚无评分规则时,可基于带标注的示例生成评分器。
  • 结果分析与比较:使用 Analyzer 计算统计信息、胜率与验证指标。
  • 可选的聚合器(Aggregator):将多个评分器的分数合并为一个。

架构概览 数据集(List[dict])输入到 GradingRunner,由其编排一个或多个评分器;每个评分器经过 EvaluationStrategy 与 _aevaluate() 产出 GraderScore 或 GraderRank,可经 Aggregator 合并,最终得到 RunnerResult(形如 {grader_name: [GraderScore, ...]}),再交由 Analyzer 做统计、胜率与验证指标分析。

安装 pip install py-openjudge

使用方式 文档给出 5 分钟快速上手流程:先配置评审模型(OpenAIChatModel,支持 OpenAI 兼容端点,如 DashScope),再实例化评分器(示例为 CorrectnessGrader),准备包含 query、response、reference_response 字段的数据集,然后创建 GradingRunner 并调用 await runner.arun(dataset) 获取结果,最后遍历结果打印 score 与 reason。

模型配置支持两种方式:直接传入 BaseChatModel 实例,或传入字典配置(自动创建 OpenAIChatModel)。兼容 DashScope 及本地等 OpenAI 兼容端点,通过 base_url 指定。

核心数据类型

  • GraderScore:逐点评估结果,含 .score(float)、.reason(str)、.metadata(dict)。
  • GraderRank:列表式评估结果,含 .rank(List[int])、.reason、.metadata。
  • GraderError:评估过程中的错误,含 .error、.reason。
  • RunnerResult:Dict[str, List[GraderResult]],以评分器名称为键。

结果处理时可依据 GraderScore、GraderRank、GraderError 类型分别处理分数、排名与错误。

适用场景 适合对 LLM 输出做正确性等维度的自动评分、多模型对比排名、评估结果统计分析,以及构建奖励模型或质量过滤。

限制 文档提供的是技能说明与示例,具体支持的评分器全集、性能上限、收费与价格信息暂未提供。使用 LLM 评分器需自行准备可访问的 OpenAI 兼容模型端点与 API Key。