跳转到内容
pstack 中文学习站

Eval

你在看 pstack 0.15.6 时的版本,最新版在这里

实验设计由你负责。规划,设盲,运行,综合。

盲测的硬性要求:

  • 候选能看到的任何目录、文件或提示词里,都不能出现 eval、test、judge、experiment、rubric、score、compare、benchmark、candidate 或 arena。
  • 给候选的提示词,要像真实用户自然提出的请求。只说目标,不提实验本身。
  • 不要给会引出 skill 链的暗示。不要让候选列出自己用了哪些 skill、原则或文件。只笼统地要设计说明。它有没有照着 skill 链走,看代码的样子来评,不看它的自述。
  • 目录名和 slug 都要脱敏。用用户自己可能会起的、像真实项目的名字。
  • 不要告诉候选还有别的候选。
  • 评委可以知道自己在评判,但只通过脱敏后的标签看输出,绝不看模型名。
  • 比较两个变体时,由一个评委在同一轮里、用同一把尺子给两组打分,并且不知道每份输出来自哪一组。

步骤:

  1. 框定实验。 说明要测的是哪个变体,什么行为算成功。写评分标准(3 到 6 条具体标准),只给评委。不要让候选看到。
  2. 搭好脱敏的环境。 每个候选一个工作目录,里面放好要测的变体。真实任务会有的上下文都布置好:项目骨架,以及候选自然会去读的 skill。
  3. 写一条自然的提示词。 就是用户会打出来的那句话。不能泄露在测什么。
  4. 并行启动 N 个候选,按 arena skill 的阶段 B,各用不同的模型。每个候选在自己的脱敏目录里工作。每个都拿到同一条提示词。
  5. 启动一个盲评的评委,按 arena skill 的阶段 C,用另一个模型家族。评委只看到脱敏标签下的输出和评分标准,绝不看到模型名。
  6. 用对话记录核实 skill 链,不信自述。 读每个候选的本地对话记录,位置在当前工作区的 agent-transcripts/ 目录下(系统提示词里写明了这个路径)。不要对 ~/.cursor/projects/*/ 做通配匹配。那样会越过工作区的边界,读到无关项目里的私人对话。看每个候选实际打开了哪些文件。它有没有照着 skill 链走,依据它真正读过的文件和代码的样子来评,绝不依据候选自己的说法。
  7. 亲自读每个候选的输出,从头读到尾。拿来和评委的 verdict(评判结论)对比。如果两边不一致,说明某个模型有偏向,或者评分标准有歧义。最后做综合。

回复: 要测的变体,评分标准,每个候选的笔记,评委的 verdict,你的综合判断,以及要不要正式采用这个变体的建议。