Files

48 lines
4.3 KiB
Markdown

“AI 鹈鹕测试”(Pelican Test / Pelican Benchmark)是在AI社区中流行的一种**非正式基准测试**,用于快速、直观地检验大语言模型(LLM)的空间推理、代码生成和概念组合能力。它由一个看似简单、甚至有些荒诞的提示词驱动。
### 🏁 起源:Simon Willison的“闭卷考试”
这个测试由开发者、AI研究者 **Simon Willison** 在 **2024年10月** 提出。他选择“鹈鹕骑自行车”的核心原因有两个:
1. **个人偏好**:他本人很喜欢鹈鹕。
2. **避免“记忆”**:当时互联网上几乎不存在“鹈鹕骑自行车”的现成图像,这迫使模型必须真正理解并**从零构建**,而不是从训练数据中简单复现。
### 📝 核心提示词:原始版本与常见变体
鹈鹕测试的精髓在于,**提示词极简,但任务本身极具挑战**。
**最原始的“经典”提示词**(英文)是:
> **“Generate an SVG of a pelican riding a bicycle.”**
中文通常表述为:
> **“生成一张‘鹈鹕骑自行车’的 SVG 图。”**
随着测试演变,社区衍生出了几种常见的变体,各有侧重:
* **强制纯代码版**:为了排除模型调用图像生成工具的可能,更纯粹地测试其SVG编码能力。提示词会强调:**“请用 SVG 绘制一只骑自行车的鹈鹕。只输出完整、可独立渲染的 SVG 代码,不要解释,不要调用图像生成工具。”**
* **动态动画版**(“鹈鹕杯”Classic赛道采用):增加了对时序和运动关系的考察。
> **“创建一个 HTML,内容是 SVG 绘制一个鹈鹕骑自行车的 2D 动画。”**
* **“终极加码”版**:当基础版区分度下降后,社区出现了叠加了更多元素和逻辑的“地狱级”提示词,用于测试更复杂的关系保持能力。例如:
> “做一张精细的SVG图片,内容是**鹈鹕骑着自行车在孙悟空开的大型飞机机翼上骑行**,鹈鹕展开翅膀,上面托着**秦始皇的北极熊**,秦始皇骑在熊上打螺丝……”
### 🧠 为什么“骑自行车”这么难?
这个测试的巧妙之处在于,它将多个高难度挑战压缩进了一个简单的指令中:
1. **SVG = 用代码“画画”**:文本模型并非直接输出像素图像,它必须生成**XML格式的代码**,再由浏览器渲染成图。这要求模型将抽象概念转化为精确的坐标、路径和图层关系。
2. **复杂的空间与结构关系**:模型必须正确理解并编码多个物体的结构(鹈鹕的长喙、喉囊;自行车的双轮、车架、踏板)以及它们之间**符合物理常识的互动关系**(鹈鹕坐在车座上、翅膀朝向车把、脚接近踏板)。最常见的失败模式就是“鹈鹕悬浮在自行车上方”或“腿和踏板连接错位”。
3. **概念组合与“闭卷”属性**:如前所述,“鹈鹕骑自行车”这一非常规组合在训练数据中极少见,更能反映模型**泛化与组合**的能力,而非检索能力。
### 💡 如何亲手进行鹈鹕测试?
你可以随时用主流模型(如GPT、Claude、Gemini等)进行测试,步骤如下:
1. **新建对话**:为避免上下文干扰,务必开启一个新的、干净的对话。
2. **复制提示词**:将上文的核心提示词(如英文原版或中文版)发送给模型。
3. **保存并查看**:将模型返回的SVG代码完整保存为 `pelican.svg` 文件(注意移除Markdown代码块标记),然后用浏览器打开该文件,观察渲染结果。
4. **重点观察“关系”**:不要只评判“画得好不好看”,而要检查:
* 鹈鹕是否**坐**在车座上,而不是飘在空中?
* 它的翅膀是否**伸向**车把?
* 它的脚是否**接近**或**踩在**踏板上?
* 车轮、车架、链条的相对位置是否符合基本常识?
鹈鹕测试是一个精巧的“压力测试”,用极低的成本暴露模型在**逻辑、空间和代码生成**交界处的短板。不过,随着模型能力整体提升,这个单一测试的区分度已不如早期,Simon Willison本人也指出,它现在更适合用于**同一模型家族内部不同版本或推理档位**的横向对比。尽管如此,它依然是快速感知模型“状态”的一个有趣窗口。