WAFFLE: Finetuning Multi-Modal Models for Automated Front-End Development

本文提出了名为 Waffle 的新微调策略,通过结构感知注意力机制和对比学习分别解决 HTML 层级结构表示及 UI 图像与代码对齐的难题,从而显著提升了多模态模型在 UI 到前端代码生成任务中的性能。

Shanchao Liang, Nan Jiang, Shangshu Qian, Lin Tan

发布于 2026-03-04
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文介绍了一个名为 WAFFLE 的新方法,它的目标是让人工智能(AI)变得更擅长“看图写代码”。

想象一下,你有一个非常聪明的 AI 助手,它的任务是把一张网页设计图(比如一张截图)直接变成可以运行的网页代码(HTML 和 CSS)。这就像让 AI 看着一张建筑效果图,然后自动写出盖房子的施工图纸。

虽然现在的 AI 很厉害,但在做这件事时,它经常犯两个“糊涂病”:

  1. 不懂“家族规矩”:HTML 代码是有层级结构的(像一棵树,有父节点、子节点、兄弟节点)。AI 经常搞不清楚谁管谁,导致改了一个小地方,整个页面都乱了。
  2. 眼力不够“火眼金睛”:AI 有时候分不清两张长得非常像的图片的区别。比如,左边图片的按钮是红色的,右边是蓝色的,AI 却可能写出完全一样的代码。

为了解决这两个问题,作者们给 AI 戴上了一副特制的“眼镜”和一套“训练课程”,这就是 WAFFLE

WAFFLE 是怎么工作的?(用生活比喻来解释)

1. 结构感知注意力机制:给 AI 一张“家谱图”

  • 问题:普通的 AI 读代码时,就像一个人读一本没有目录、没有段落缩进的书,容易搞混谁是谁的孩子,谁和谁是邻居。
  • WAFFLE 的解法:他们给 AI 设计了一种特殊的“注意力机制”。
    • 比喻:想象你在读一本家族族谱。普通的读者可能只盯着眼前的字看。但 WAFFLE 让 AI 在读到“儿子”时,必须回头看看“父亲”说了什么(因为父亲决定了儿子的很多规矩);读到“邻居”时,也要看看隔壁“兄弟”在做什么(因为邻居之间会互相影响布局)。
    • 效果:这让 AI 明白了 HTML 的“家规”:父元素管孩子,兄弟元素互相影响,但孩子不会去管隔壁邻居的孩子。这样生成的代码结构就稳多了。

2. 对比学习:给 AI 上“找茬”训练课

  • 问题:AI 以前经常“偷懒”,觉得两张图差不多,就写出同一套代码。
  • WAFFLE 的解法:他们创造了一种“找茬”训练法。
    • 比喻:想象你在教一个刚学画画的学生。你给他看两张几乎一样的画,一张是“原版”,另一张你故意把背景色改了一点点,或者把按钮高度调高了一像素。然后你问学生:“这两张画哪里不一样?请写出对应的代码。”
    • 操作:作者们用程序自动修改了成千上万张网页代码(比如改个颜色、改个间距),生成对应的“找茬”数据集。强迫 AI 去观察这些微小的差异,并学会:“哦!原来颜色变了,代码里的 color 属性也要变!”
    • 效果:AI 现在变得非常细心,能捕捉到那些肉眼难辨的微小差别,生成的代码和原图几乎一模一样。

结果怎么样?

作者们把这套方法(WAFFLE)用在两个现有的 AI 模型上,并让它们去考试(测试集)。结果非常惊人:

  • 更像了:生成的网页图片和原图的相似度大幅提升(就像你照着照片画画,现在画得几乎能假乱真了)。
  • 更准了:代码结构更正确,不再出现“父子关系混乱”的 bug。
  • 打败了巨头:在简单的测试中,用了 WAFFLE 的开源小模型,甚至打败了像 GPT-4o 这样的大厂顶级商业模型。

总结

简单来说,WAFFLE 就是给 AI 装上了懂结构的“大脑”(知道代码的层级关系)和练过“找茬”的“眼睛”(能看清微小的视觉差异)。

这就好比以前 AI 是个只会死记硬背的“书呆子”,现在通过 WAFFLE 的训练,它变成了一个既懂建筑力学(结构),又有敏锐观察力(细节)的资深建筑师,能更完美地把设计图变成现实中的房子(网页)。

这对未来的前端开发来说是个大好消息,意味着以后设计师画个图,AI 就能帮你把代码写得漂漂亮亮,大大减少人工修改的工作量。