Simon Willison · 博客

smevals - 用于评估模型、提示词和框架的小型评估套件

smevals - a small eval suite for evaluating models, prompts, and harnesses

二〇二六年八月一日 · 英文原文

smevals是一个小型评估套件,用于评估模型、提示词和测试框架,由作者与Jesse Vincent的Prime Radiant应用AI研究实验室合作构建。该工具支持通过`uvx smevals`命令运行评估、评分和结果浏览,评估由任务组成,配置指定模型及参数,评分器执行检查。作者称其为第三次迭代,计划未来扩展应用。

smevals —— 一个用于评估模型、提示词和测试框架的小型评估套件。我一直在与 Jesse Vincent 的 Prime Radiant 应用 AI 研究实验室合作,构建这个评估框架,以帮助回答关于不同模型能力的问题。最终成果就是 smevals,一个用于在不同模型配置上运行小型评估套件并对结果进行评分的新工具。这篇博客文章将详细介绍该工具。以下是十秒速览:告诉你的编码代理运行 uvx smevals docs 来了解该工具(这会输出 README),然后让它为你构建一个评估套件。一旦你创建了评估——其形式为包含一些 YAML 文件的目录——你就可以像这样针对模型运行它:

uvx smevals run path-to-eval/ -m gpt-5.5 -m claude-opus-4.6

运行与评分操作是分开处理的——你可以使用以下命令根据你定义的检查集对运行进行评分:

uvx smevals grade path-to-eval/

然后,你可以启动一个 localhost Web 服务器来浏览结果:

uvx smevals serve path-to-eval/

或者运行 smevals build 命令将该报告构建为静态 HTML,然后你可以将其托管在任何地方。以下是一个示例,展示了我构建的一个评估套件,用于评估模型编写俳句的能力。这个项目最耗时的部分是弄清楚它的术语!以下是我最终确定的术语,引自公告:

一个评估(eval)是一组挑战的集合,旨在回答关于模型的问题,例如,该模型在生成 SVG 方面的表现如何?每个评估由多个任务(tasks)组成。一个任务是一个具体的挑战,例如“生成一个骑自行车的鹈鹕的 SVG”。当你运行评估时,你会针对一个或多个配置(configs)进行。每个配置指定要评估的模型,但也可能包括其他要测试的参数,如不同的系统提示词、模型参数或代理测试框架。一次运行(run)记录了使用特定配置执行特定任务时发生的情况。运行器(runner)是执行运行的脚本。一旦你收集了一次或多次运行,你需要评估结果以查看模型(或配置)的表现如何。这由评分器(grader)完成,它产生一个评分(grade)。每个评分器运行一系列检查(checks)。这些可以是简单操作,如检查输出中是否包含特定字符串,或确认输出是否为有效的 XML。它们也可以是更复杂的自定义操作(实现为称为检查器(checkers)的脚本),包括使用其他模型来回答关于运行的问题。

几年来,我一直在尝试找到一种我喜欢的评估方法。smevals 是我对这个想法的第三次迭代,对我来说感觉是对的。我期待在未来进一步扩展它,并将其应用于我自己的一些项目。

标签:项目、AI、生成式 AI、LLM、LLM、评估、Jesse Vincent

译自 Simon Willison · 博客 · 录于 二〇二六年八月一日