Verifiers — 架构与原理
30 秒导读: Verifiers 是 Prime Intellect 出的一个 Python 库,用来给大模型(LLM)造「环境 」(environment)——一个环境把三样东西打包在一起:一批题目、一套让模型作答的交互流程、一个给答案打分的奖励函数。造好之后,同一个环境既能拿来评测模型,也能直接喂给 RL 训练器训练模型,还能用来刷合成数据。
1. 这是什么(零基础也能懂)
一句话定义
Verifiers 是一个造「LLM 强化学习环境」的库。它把「给模型出题 → 让模型(可能多轮、可能用工具)作答 → 给作答打分」这条链路,抽象成一个叫 Environment 的对象。
解决什么问题 / 给谁用
先说痛点。你想用强化学习(RL,reinforcement learning)训练一个大模型,或者想严肃地评测它,你都得回答同样三个问题:
- 题目从哪来?(数据集)
- 模型怎么作答?一次问答就完?还是要它反复调工具、跑代码、查网页?(交互流程 / harness)
- 答得对不对,给几分?(奖励函数 / rubric)
传统做法是每个项目各写一套,评测脚本和训练脚本还各写各的 ,互不通用。Verifiers 的主张是:把这三样封装成一个自包含的 Python 模块,评测和训练共用同一个环境定义。
给谁用:
- 研究者 / 工程师:想训练或评测 LLM 在某个任务上的能力(做数学题、写代码、玩文字游戏、用搜索工具答题……)。
- Prime Intellect 生态:环境可以推到官方的 Environments Hub 共享,配合它家的训练框架
prime-rl和托管训练平台。
它能做什么
| 用途 | 说明 |
|---|---|
| 评测(eval) | 拿一个 OpenAI 兼容的模型端点,跑一批题,算平均奖励、pass@k、token 用量、成本 |
| RL 训练 | 环境产出「轨迹 + 奖励」,喂给 GRPO 之类的 RL 训练器更新模型权重 |
| 合成数据 | 让模型跑 rollout,把高分轨迹留下来当训练数据 |
| Agent harness 实验 | 换不同的工具集 / 多轮协议,看模型行为怎么变 |
用起来什么样
最小的一个环境长这样(来自 README,SingleTurnEnv = 单轮问答环境):
# my_env.py —— 一个环境模块必须暴露 load_environment()
import verifiers as vf
def load_environment(dataset_name: str = "gsm8k") -> vf.Environment:
dataset = vf.load_example_dataset(dataset_name) # 每行有 question / answer
async def correct_answer(completion, answer) -> float: # 一个奖励函数
completion_ans = completion[-1]["content"]
return 1.0 if completion_ans == answer else 0.0
rubric = vf.Rubric(funcs=[correct_answer]) # 把奖励函数装进 rubric
return vf.SingleTurnEnv(dataset=dataset, rubric=rubric)
然后命令行评测(eval 是 v1 的 CLI 入口,见 pyproject.toml 的 [project.scripts]):
prime eval run my-env -m openai/gpt-5-nano
三步走:数据集(每行 question/answer)→ rubric(一个把 completion 和 answer 变成 float 分数的函数)→ SingleTurnEnv(把两者粘起来的环境)。就这么点代码,评测和训练都能跑。