← 研究
LLM Benchmark · SVG Generation · 2026-05-16

LLM 能画出
胎儿分娩机转吗?

起因是我老婆生孩子那天。8 个顶级模型,一个不可能的医学绘图任务,五个让人意外的发现。

👶 2026-05-12 早上 5 点 顺产
8 个模型
16 张输出
GPT-5.5 评分 · 7 维度
数据开源 · github.com/fxp/mechanism-of-labor-bench
35满分
1.9解剖精度均值
8pt最大Chat-API差
参考动画 — 人类标准
Seven Cardinal Movements of Labor
Cal Shipley, M.D. · YouTube · 2,100,000 次播放 · 9 分 56 秒 · 先看这个,再看 LLM 的尝试
这是互联网上对分娩机转解释最清晰的动画,也是本次 Benchmark 的「满分参考」。
§ 01

👶 这个 Benchmark 的起因

周二,我老婆生了孩子。顺产。

原本的计划是:周一住院,周二剖宫产。结果周一晚上,不知道是不是小崽子自己听懂了计划,开始发动——宫缩越来越强烈,越来越规律。老婆在这种情况下做了一个决定:试试顺产

🌙 周一下午 在老婆还没开始发动的时候,我就已经开始查资料了。我想搞清楚一件事:一个孩子到底是怎么生出来的?为什么会让产妇这么痛苦?

💡 查着查着,我发现这件事根本不是我以为的样子。分娩不是「用力推」就结束的。胎儿在通过产道的过程中,要经历七个精确的姿态调整:衔接、下降、俯屈、内旋转、仰伸、外旋转、娩出——像是在三维迷宫里走一道精密的出口线,每一步都有它的物理逻辑,而骨盆就是那个迷宫的形状。

这整个过程,从力学角度看更像一道机械工程题,而不是我脑子里模糊的「生孩子」画面。我有点震惊,然后有点着迷。

😤 我突然想把这个过程画出来。动画也好,示意图也好——让人能直观地看到胎头在骨盆里旋转的每一步。

然后我开始试。用 SVG 画——太难。改用 Three.js 做三维动画——还是不行。不是「代码难写」那种难,而是「你得先真正理解这个过程,才能告诉程序该怎么画」那种难。三维场景里摄像机摆在哪里,旋转时镜头跟不跟,内旋转这一步该从正上方看还是侧面——这些决策本身就是空间理解能力的测试。

🤖 于是我把这个任务交给了 LLM。


Simon Willison 每次遇到新模型,就让它画一只骑自行车的鹈鹕。这个测试的妙处在于三件事同时成立:LLM 本来不该能画图;SVG 是代码,所以它们可以尝试;而鹈鹕骑自行车根本不可能发生——不存在「标准答案」,你只能判断模型是在理解还是在瞎编。

「这是一个不合理的困难测试……试着自己画一辆自行车,不看参考图。大多数人都会发现,他们很难记住车架的确切结构。鹈鹕也很难画,更重要的是——鹈鹕根本不能骑自行车,它们的体型完全不对!」— Simon Willison,AI Engineer World's Fair 主题演讲,2025

胎儿分娩机转(Cardinal Movements of Labor)满足同样的三个条件——而且难度比鹈鹕高出不止一个量级。

LLM 不该能画医学插图。SVG 是代码,所以它们可以尝试。而「内旋转需要俯视图」这件事,几乎不存在于任何训练数据里——没有人专门为 LLM 画过 SVG 格式的分娩机转示意图,所以你无法靠记忆来回答。

最关键的是:「婴儿头朝下出来」是人人都知道的常识。但 LLM 生成的 SVG 里,这一点频繁出错——胎头方向不对,或者根本没画出方向。这不是知识盲区,这是「知道一个事实」和「能把它表达成图形」之间的断层。在评分标准里这是一个独立维度:C3 胎儿方向。当一个模型连这种常识级别的空间关系都画不对,它在更复杂的步骤上的失败就完全不让人意外了。

§ 02

怎么测的

Prompt 只有一句话:

Generate SVG description of the process of "mechanism of labor"

每个模型测两个版本。Chat 版橙色):打开各家网页界面,直接提问,截图,将输出 SVG 代码用 macOS qlmanage -t -s 1600 渲染为 1600px PNG。API 版青色):通过 OpenRouter 直调,统一上面这一句 Prompt,同样方法渲染。

评分由 GPT-5.5(多模态视觉分析)完成,对每张渲染 PNG 盲评 7 个维度:

代号维度评分说明
C1步骤完整性覆盖 7 个分娩机转步骤的比例:衔接→下降→俯屈→内旋转→仰伸→外旋转→娩出
C2解剖结构准确性骨盆、耻骨联合、骶骨、坐骨棘等可辨识程度;胎头解剖细节
C3胎儿方向是否明确呈现头先露(vertex)、头朝骨盆出口方向
C4内旋转视觉呈现内旋转步骤是否有清晰图形表达(旋转箭头、俯视图等)
C5外旋转视觉呈现外旋转/复位步骤是否有清晰图形表达
C6运动方向标注是否用箭头等方式指示各步骤运动方向
C7整体视觉清晰度布局、配色、标注是否易于理解

每项 1–5 分,满分 35 分。

被测模型 8 个:GLM 5.1 Thinking、Gemini 3 Pro、Claude 4.7 Opus、Kimi K2.6 Thinking、ChatGPT 5.5 Thinking、MiniMax MAX、Grok、Doubao。另有 Manus 1.6 MAX 参与测试但因输出形式不同未纳入评分。

§ 03

总分排行

橙色为 Chat 版  ·  青色为 API 版  ·  满分 35 分

模型
Chat
API
分数对比
🥇
GLM 5.1 Thinkingz-ai · Chat 全批最高(28/35)· 唯一含俯视图
28/35
26/35
🥈
ChatGPT 5.5 ThinkingOpenAI · API 版次高(26/35)
25/35
26/35
🥉
Gemini 3 ProGoogle · Chat-API 差距最大(8 分)
15/35
23/35
4
Claude 4.7 OpusAnthropic · Chat SVG 最大(40,993 字节)
18/35
22/35
5
Kimi K2.6 修复Moonshot · 原始双版渲染失败
23/35
16/35
6
MiniMax MAXMiniMax · Chat 优于 API 5 分
21/35
16/35
7
GrokxAI · Chat 22 / API 21 · 原截图截断
22/35
21/35
8
Doubao字节跳动 · Chat XML 错误,API 胎儿是三角形
10/35
13/35
Kimi K2.6 原始SVG 语法错误,两版均渲染失败
7/35
7/35
§ 04

🤖 每个模型的故事

01
GLM 5.1 Thinking
z-ai
「✨ 它做了一件别人都没想到的事:换了个视角。」
Chat  28/35 API  26/35
GLM 5.1 Chat
GLM 5.1 API

Chat 版和 API 版都在内旋转面板里加了俯视图——一个从骨盆开口向下看的视角,显示胎头从斜径转向前后径的过程。这是唯一正确处理内旋转的方法:内旋转本质上是水平面上的旋转,矢状位侧视图根本说不清楚。全批次 8 个模型,7 个沿用了侧视图的弧形箭头——GLM ✨ 换了个视角。

Chat 版 8 个面板,大量青绿色箭头,步骤覆盖最完整(C1=5),内旋转(C4=4)和外旋转(C5=4)均居全批次最高。解剖精度(C2=3)也是所有模型里最高的——骨盆画成 U 形弧线,标注了 Pelvic inlet/outlet/Pubis/Sacrum。这依然是抽象的,但至少在尝试。整体视觉清晰度(C7=4),Chat 版总分 28/35。API 版总分 26/35,内旋转(C4=3)和外旋转(C5=3)略低于 Chat 版。

02
Gemini 3 Pro
Google
「🪞 同一个模型,两种人格。Chat 版出了一张精美的产品时间轴;API 版画了一张解剖图。差了整整 8 分。」
Chat  15/35 API  23/35
Gemini Chat
Gemini API

这是全批次最戏剧性的分裂。Chat 版产出的是一张完美的产品型时间轴信息图:7 步命名完整、布局整洁、字体清晰——但没有任何解剖图形或胎头绘制(C2=1C3=1C4=1C5=1)。它不是「不好的医学插图」,而是「根本不是医学插图」。

API 版则完全是另一件事:深色背景,蓝色椭圆胎头带有面部表情(眼睛、嘴巴,还有一个菱形象征前囟),在粉色骨盆内移动,每步均有黄色箭头。不精确,但有图,有运动感,有方向。C6=4(运动方向)是 API 版里最高的,API 版以 23/35 拿到 Gemini 系列最高分(GPT-5.5 API 完整渲染后以 26/35 超越)。

这说明相同的模型在不同界面下的「输出风格偏好」差异显著。Chat 界面可能有「产品化」的倾向——输出更像用户可以分享的卡片,而不是原始技术图形。Chat-API 差距 8 分,全批次最大。

03
Claude 4.7 Opus
Anthropic
「📦 40,993 字节——全批次最大的 SVG,和全批次最少的运动箭头(C6=1)。更多代码,更少信息。」
Chat  18/35 API  22/35
Claude Chat
Claude API

Chat 版 SVG 代码 40,993 字节,是 API 版(6,559 字节)的 6.3 倍,也是全批次最大的 SVG 文件。结果是一张深色背景 2×3 六宫格,视觉清晰度不错(C7=4)——但运动方向标注 C6=1,全批次最低。几乎没有箭头。

「代码越多 ≠ 图越好」在这里得到了清晰的数据反证。API 版用了更少的代码,箭头(C6=3)和内旋转表达(C4=3)都更好。Chat 版选择了深色背景,这可能是 Claude 在对话界面下对「精致视觉」的某种偏好——但对医学插图来说,深色背景反而增加了解读难度。

04
Kimi K2.6 Thinking
Moonshot AI
「💥 一个多余的 < ——让它从 21 分变成了 7 分。」
原始 Chat  7/35 修复 Chat  23/35 修复 API  16/35
技术失败,非能力失败。 Chat 版原始 SVG 第一行为 <<svg(双尖括号),XML 不合法,浏览器解析失败。API 版缺少 xmlns 属性且 CSS class 未内嵌,渲染近乎空白。两版均得全维度 1 分(7/35)。
Kimi Fixed
Kimi Error

修复后的 Chat 版(仅移除一个多余的 <)得分 23/35:6 格面板,红色箭头,内旋转(C4=3)和外旋转(C5=3)均有视觉表达,整体视觉清晰度(C7=3)。

这是一个「模型会画,但代码有 bug」的典型案例。区分「SVG 语法能力」和「医学图示理解能力」很重要:原始分数 7/35 掩盖了这个模型在图示概念上的实际水平。一个字符的差距,16 分

05
ChatGPT 5.5 Thinking
OpenAI
「原始截图裁掉了整整两列。完整渲染后:Chat 25/35,API 26/35。📸 不是模型跳步,是截图跳步了。」
Chat  25/35 API  26/35
GPT-5.5 Chat
GPT-5.5 API

原始评分的 Chat 版(11/25*)和 API 版(21/35)都是基于截图不完整的图像:Chat SVG 是 1200×760px 的 4 列 × 2 行共 8 个面板,截图窗口只抓到约 870px,把第 4 列(内旋转 + 娩出)完全裁掉;API SVG 是 1200×820px 的 3 列 × 2 行共 6 面板,截图同样裁掉了第 3 列(内旋转 + 娩出)。重新用完整 SVG 渲染后,两版评分大幅提升。

Chat 版完整版:C1=5(8 步均有)、C4=3(内旋转有蓝色弧形箭头)、C5=3(外旋转有箭头 + 肩部结构)。API 版完整版更为出色:C4=4(内旋转有紫色弧形旋转箭头)、C5=4(外旋转有肩部椭圆 + 旋转箭头)、解剖准确性 C2=3(骨盆标注了入口/出口/耻骨/骶骨)。API 版 26/35,全批次 API 版次高分。

📸 这也是这批测试里截图方法论影响最大的案例。Grok 两版同样受到截图截断影响(见下)。教训:用浏览器手动截图做 Benchmark,要确认 SVG 的完整宽度都在视口内。

06
MiniMax MAX
MiniMax
「👁️ Chat 版:粉色胎头,有眼睛有嘴巴。API 版:一串蓝色圆圈表示下降。两个版本,两套美学,都没画对。」
Chat  21/35 API  16/35
MiniMax Chat
MiniMax API

Chat 版是这批测试中视觉设计感较强的一张:带「Labor Progress」进度条,7 步命名完整(C1=5),红色弧形箭头标注旋转。胎头画成了带眼睛嘴巴的粉色椭圆——幼儿教育插图风格,失去了产科解剖的判断价值(C2=2C3=2),但至少是「有图」的。

API 版走向了另一个极端:一串从上到下排列的蓝色圆圈代表胎头下降,旁边附步骤文字说明。效果像是某种抽象的骨盆下雨图。运动方向(C4=2C5=2)主要依赖文字说明,图形表达不足。

07
Grok
xAI
「✂️ 截图截掉了两版的右侧内容。完整渲染后 Chat 22/35,API 21/35——步骤完整,但旋转表达依然弱。」
Chat  22/35 API  21/35
Grok Chat
Grok API

原始截图同样因为浏览器窗口宽度不足,裁掉了右侧内容(Chat 版 1450px 宽被截至约 870px;API 版 900px 宽步骤 5 被截断)。完整渲染后:Chat 版显示 7 个步骤全部标注(C1=5),且每个面板都有 PUBIS/SACRUM/INLET/OUTLET 方向标记,解剖方位优于大多数模型(但仍是简化骨盆形状,C2=2)。API 版显示完整 5 步(下降+俯屈合并),俯视/环形视角有助于表达旋转,但旋转箭头不够明确(C4=2)。

完整渲染后 Chat 22/35,API 21/35,步骤完整性均提升(C1=5/4),C5 外旋转也有所改善。旋转表达(C4、C5)依然是 Grok 最弱的维度——这不是截图问题,是图示理解的真实差距。

08
Doubao
字节跳动
「🔺 Chat 版 XML 报错,只渲出了前三步。API 版的胎儿是一个蓝色三角形,朝向混乱。」
Chat  10/35 API  13/35
Doubao Chat
Doubao API

Chat 版含 XML 解析错误,浏览器渲染到第一个错误即停止,仅显示前三步,后续完全缺失。API 版有一个有意思的部分:标注了「Pubic Symphysis」「Pelvic Inlet」「Vulvar Outlet」,这些词是对的——但「胎体」是一个蓝色三角形,朝向混乱(C3=2)。

整个 SVG 完全没有动态表达(C4=1C5=1C6=1)。一张「知道正确词汇、但不会画图」的典型案例。

§ 05

五个关键发现

这不只是一次绘图竞赛的结果——这些模式揭示了当前 LLM 在「空间知识表达」上的系统性局限。

🦴 C2 ≈ 1.9

说得出名字,画不出形状

所有模型 C2(解剖准确性)均值约 1.9/5,是全批次最弱维度。模型能说出「耻骨联合」「坐骨棘」,但没有一个把它们的形态画对过。步骤知识 ≠ 解剖图形能力。这个差距在更复杂的医学任务里会被放大。

👁️ GLM Only

换一个视角,问题就解决了

内旋转是水平面上的旋转,矢状位侧视图表达不了它。全批次 只有 GLM 5.1 在内旋转步骤里加了俯视图,并因此在 C4 和 C5 上拉开了明显差距。这一个设计决策决定了排名第一。其余 7 个模型试着用弧形箭头从侧面表达旋转——全部失败。

🪞 8 分

Gemini:同一个模型,两套人格

Chat 版出了文字时间轴(15/35),API 版出了解剖图示(23/35),差距 8 分,全批次最大。Chat 界面对「产品化美观」的偏好会完全改变输出类型——你不能用其中一个推断另一个的能力。

📦 40KB

更多代码 ≠ 更好的图

Claude Chat 版 SVG 40,993 字节(全批次最大),但运动方向 C6=1(全批次最低)。GLM API 版 25,609 字节,C4+C5+C6 全部得 4 分。体积不是质量的代理指标——对 SVG 生成,设计决策比代码行数更重要。

🐛 <<svg

技术失败比能力失败更常见

这批测试里,SVG 语法错误(Kimi:双尖括号)、XML 解析错误(Doubao Chat)的出现频率超过了「模型根本不理解分娩机转」的案例。Kimi 修复一个字符后从 7 分跳到 21 分。评估这类 Benchmark 时,区分「SVG 代码能力」和「医学图示理解能力」是重要前提——直接看原始分数会低估部分模型。

📸 截图

Benchmark 方法论本身也会出错

事后检查发现,GPT-5.5 两版Grok 两版的原始评分截图均因浏览器窗口宽度不足而被裁切——GPT-5.5 Chat(1200px 宽 SVG)右侧两列丢失,Grok Chat(1450px)和 API 版也有不同程度截断。用完整 SVG 重新渲染后,GPT-5.5 从 11/25*→25/35(Chat)和 21→26/35(API),Grok 从 16/15 →22/21。教训:手动截图做 Benchmark 时,必须确认 SVG 的完整宽度都在视口内,或直接用 cairosvg 等工具程序化渲染。

§ 06

🎬 换一个输出格式:文生视频模型

同一道题,同一套知识边界——换成视频会怎样?我用和 SVG 测试完全一致的 Prompt,分别在 Sora 2 和 Veo 3 上生成了分娩机转视频。

结论和 Simon Willison 关于鹈鹕的观察一致:换了输出格式,核心能力边界不变。视频生成带来了时序表达的天然优势——动画本来是解释「运动」最好的媒介。但解剖准确性的瓶颈并不因为有了时间轴就消失。内旋转依然是最难处理的步骤:胎头在水平面旋转,需要主动切换到俯视视角才能说清楚,而两款模型都没有做到。

观察:视频格式确实比静态 SVG 更容易呈现「下降」过程(运动的连续性天然适合视频)。但内旋转——胎头从斜径旋转到前后径的水平面转动——两款模型都没有主动切换镜头角度。这和 8 个 LLM 的表现是同一个失败模式:知道要发生旋转,但不知道该怎么「让观众看见」。工具变了,盲点没变。
§ 07

结语

👶 后记 周二早上 5 点,小崽子顺利出来了。头朝下,完整走完了那七步。C3 胎儿方向:满分。

这个测试还会继续。Simon Willison 的鹈鹕基准已经运行了两年——最大的价值不是某一次测试的绝对分数,而是随着模型迭代的变化趋势。Gemini 2.5 Pro 的鹈鹕比 1.5 Pro 好了很多;o3 的鹈鹕比 GPT-4.5 好了更多。趋势才是信息。

分娩机转测试有类似的价值。今天因为 SVG 语法错误得 7 分的模型,三个月后可能得 21 分。今天解剖精度全批次均值 1.9/5 的现状,可能随着医学专业数据的增加而改变——也可能不变。

有一件事大概率不会因为数据量而改变:内旋转需要换视角。这不是记忆量的问题,是空间推理的问题。一个对「顺产」有完整文字描述的训练语料,不一定能让模型理解「胎头旋转时从上方看是什么样的」。理解这一点,需要的是空间建模能力,而不只是更多文字。

我那个周一下午花了两个小时才大概搞清楚的事,模型几秒钟就生成了一张图——但那张图,七个维度,每个维度都不及格。速度不等于理解。✨

「每个人都需要自己的 Benchmark……我的鹈鹕测试开始时是一个笑话,但逐渐证明了它实际上有一点用。」— Simon Willison,《The last six months in LLMs》,AI Engineer World's Fair,2025

也许,那个 Benchmark,就是我们的梦想。✨

原始 SVG 文件、渲染 PNG、评分数据全部开放:github.com/fxp/mechanism-of-labor-bench · 可视化画廊:gallery.html