一、你每天都在做 Vibe Check,只是不承认

Olshansky 在他的文章《Vibe Checks Are All You Need》里扔出了一个让人不太舒服但难以反驳的判断:日常实践中 ~99% 的 LLM "评估"本质上都是 vibe check——直觉驱动的、主观的、非量化的感受判断

什么叫 vibe check?就是你打开 ChatGPT/Claude/Gemini,扔一个问题进去,看一眼输出,然后心里给出一个模糊结论:"还行""不太行""这次挺聪明""刚才那段胡说八道"。这个过程没有评分量表,没有对照基线,没有统计显著性计算——它纯粹是你作为人类用户对模型输出的一次主观感受采样

大多数人不会把这种体验称为"评估"。他们会说"我只是在试用""我在了解这个模型""我先随便玩玩"。但 Olshansky 的观点是:别骗自己了,你就是在做评估——只不过用的是最原始的方式。

而讽刺的是,对于绝大多数开发者和用户来说,这种方式足够用了

二、这不是 LLM 时代的新发明

Olshansky 用自己职业生涯的三个横截面说明了一件事:vibe check 贯穿了机器学习应用的整个历史,只是每次换了个名字。

时间 公司 任务 Vibe Check 的形态
2014 Twitter 垃圾信息过滤 "这看着不爽" 测试
2017 Magic Leap 物体识别 "这看着挺对" 测试
2020 Waymo 自动驾驶安全评估 "这看着安全" 测试

这三个例子放在一起,揭示了一个反直觉的事实:即使是在 Twitter、Magic Leap、Waymo 这种级别的技术公司里,很多"评估"也不是你想象中那种银弹式的量化指标体系,而是工程师们盯着结果看,然后说"嗯,差不多"。

区别只在于——那时候的 ML 工程师不会在公开场合这么说,因为"凭感觉"听着不够严谨、不够科学。但 LLM 时代把这个潜规则撕开了,因为:

GenAI turned all software engineers into ML engineers. You no longer need to know Bayesian statistics or loss functions — a bit of prompting and back-and-forth with the LLM gives you a general sense of quality.

LLM 把 ML 的使用门槛降到了零,同时也把 ML 评估的门槛降到了零。 结果就是,所有人都开始用 vibe check,只是有些人还在嘴硬。

三、Karpathy 的 1/3 法则:连大神都不敢轻视评估

如果 vibe check 这么简单好用,那还要不要做正经的评估了?

Olshansky 引用了 Andrej Karpathy 的一个惊人数据:在特斯拉负责 Autopilot 期间,Karpathy 花了整整 1/3 的时间在评估上。

1/3。不是 1/10,不是顺手做做。一个负责自动驾驶核心算法的顶级工程师,把三分之一的精力投在了"怎么判断模型好不好"这件事上。

Karpathy 对好评估的定义有四个维度:

1
2
3
4
5
好的 Eval 必须同时满足:
├── Comprehensive(全面) — 覆盖足够多的场景,不能有盲区
├── Representative(代表性) — 分布匹配真实世界的使用模式
├── High-quality(高质量) — 标注准确、边界清晰、没有歧义
└── Gradient signal(梯度信号) — 不能太简单(全对),也不能太难(全错)

第四点尤其关键。一个所有人都得满分的测试和一个所有人都得零分的测试,提供的信息量是一样的——零。好的评估必须处在那个"有人对有人错"的甜区,才能产生有意义的区分度。

这四条标准每一条单拿出来都合理,但把它们同时做到?Karpathy 用 1/3 的时间给出了态度:这是一件极其困难的事。

四、为什么"好的评估"是反直觉的难

读到这里我停了一下。一个自然的问题是:如果评估这么难,为什么 vibe check 又"足够好用"?

答案是两者衡量的是不同的东西。

Vibe Check Formal Eval
测量目标 "这个模型对我有没有用" "这个模型在这个维度上表现如何"
精度 粗糙,二元判断为主 精细,连续分值
可复现性 差——同一个人明天可能给出不同结论 高——同样的测试集同样的分数
覆盖面 窄——取决于你问了什么 取决于设计,理论上可以很广
迭代速度 快——几秒钟出结论 慢——构建测试集和跑完评估需要时间
适用场景 日常选型、快速判断、个人使用 论文发表、排行榜竞争、回归测试

Olshansky 的区分非常精准:Formal evals 服务于那 1% 的尾部需求——你要发论文、要上排行榜、要做回归测试防止模型退化。而日常实践中的另外 99%,vibe check 真的够了。

但这引出了一个更深层的问题。

五、主观性最终胜出:因为用户也是人

即使你有一整套完备的量化评估体系——MMLU、HumanEval、GSM8K、MT-Bench 全部得分拉满——最终用户决定用不用你的模型,还是靠 vibe check。

这是 Olshansky 全文最有穿透力的观察:评估链条的最后一环永远是一个人类的主观判断。

1
2
3
量化评估 → 排行榜排名 → 用户试用 → Vibe Check → 决定是否采用

这一环无法被量化替代

这解释了一个很多人困惑的现象:为什么某些在排行榜上表现平平的模型,反而获得了更大的用户粘性?因为模型的实际"好用程度"是一个多维度综合感受——回复的语气是否自然、拒绝的频率是否合理、思考过程看起来是否有道理——这些维度的权重因人而异,且很难被任何标准测试集捕获。

更深一层的问题是过拟合。模型可以在训练过程中"学会"如何在特定测试集上取得高分,而不真正提升泛化能力。Olshansky 引用的一个经典类比是:当考试题目泄露后,分数就不再衡量能力了。

这就是为什么 LMSYS 的 Chatbot Arena 选择了人工盲评而不是自动评分——因为人类的主观偏好,恰恰是唯一无法被模型"作弊"的指标。

1
2
标准基准测试(MMLU 等):模型可以过拟合 → 分数通胀
人类盲评(Chatbot Arena):主观但真实 → 无法作弊

六、作为一个每天用 LLM 写代码的人,我看到了什么

这篇文章让我反思了自己日常使用 AI 的方式。

我有一套隐性的 vibe check 体系——而且它出奇地有效:

1
2
3
4
5
Claude Code 的输出出来后,我会:
1. 扫一眼逻辑 —— 有没有明显的逻辑漏洞?(0.5s)
2. 看代码风格 —— 是匹配现有代码库还是自创了一套?(0.3s)
3. 想边界条件 —— 它对异常情况的处理合理吗?(1-2s)
4. 决定信任度 —— 这段代码我是直接采纳、修改后采纳、还是重写?(瞬时判断)

这个过程没有任何量化的东西。没有评分,没有量表,没有对照实验。但它产生的判断——在绝大多数情况下——是正确的

Olshansky 的文章让我意识到这种模式的合理性,而不是像我之前隐隐担心的那样——"我是不是太不严谨了"。

不严谨是事实。但在大多数场景下,不严谨的代价远低于想象的。

真正需要对 LLM 输出做严格评估的场景是什么?

  • 你依赖的 API 模型静默升级了,你的 prompt 没有变但输出质量变了——需要回归测试
  • 你在多个模型之间做严肃的选型——需要系统化的对比
  • 你要发布的系统包含 LLM 组件——需要稳定性保证

这三种场景加起来,占我的日常使用量不到 5%。剩下的 95%?Vibe check 就够了。

七、但不要从"够了"滑向"无所谓"

Olshansky 的结论有分寸感。他说 vibe check 是实践中的主流,但他最后补了一句话:

The industry will iterate slowly toward better solutions — there's no silver bullet.

这不是"评估不重要"的宣言。这是"承认现实,然后在此基础上把该做的事做好"。

我把他的态度翻译成一套可操作的原则:

1
2
3
4
5
6
7
原则 1: 日常使用靠 vibe check,不要为此感到愧疚。
原则 2: 如果你依赖 LLM 做生产级系统,建一套回归测试集——
不需要多复杂,50 个典型 case + 预期输出就够了。
原则 3: 警惕"这个模型很聪明"的 halo effect——
一个回答让你眼前一亮,不代表它在你的业务场景下表现更好。
原则 4: Vibe check 的主观性不是 bug,是 feature——
因为你的用户最终也是用 vibe check 来评判你的产品。

这篇文章的标题在玩一个经典的梗——它戏仿了 Google 那篇著名的《Attention Is All You Need》论文标题。但 Olshansky 玩这个梗不是为了搞笑,而是在传递一个认真的事实:

在这个行业找到完美的量化评估方案之前,你和你的用户都将继续依赖 vibe check。与其否认它,不如理解它、用好它,然后在需要的时候,为那 1% 的关键场景建立真正的衡量体系。