Palette 不只是会做幻灯片:20B 模型如何套上你的设计语言

11 月 3 日,IBM Research 在 Hugging Face 发布了 Palette:用 IBM Design Language 训练一个 20B 开放权重模型,让它在自托管环境中生成带有企业设计风格的演示文稿。现在值得看,不只是因为“小模型也能做 PPT”,而是它把设计规范、内容决策和版面检查拆成了几层可替换的环节,普通团队未必需要把全部内容交给一个黑盒 API。

Palette 试图解决两个很具体的问题:前沿模型虽然能做出单张漂亮的幻灯片,但批量生成后容易出现相似的“AI 风格”;如果材料不能离开企业网络,直接调用云端模型也不现实。官方提出的是另一种路线:保留模型权重和基础设施,在自己的设计语言上训练,并用检查与修复机制兜住几何错误。

为什么小模型做演示文稿容易失控

幻灯片不是把几段文字塞进矩形那么简单。模型最终要写代码,为标题、图表、文本框指定坐标、宽高和字号。它不能直接看到渲染结果,只能先在内部估算:一个 75 字符的标题,用 56pt 字号是否会在两行内放下?估算错了,标题就可能撞进背景,或让文字溢出画布。

更麻烦的是,模型要同时处理两类判断。第一类是编辑判断:这页应该讲什么,哪些内容要删,应该用图表还是表格;第二类是几何判断:元素具体放在哪里、字号多大、会不会重叠。前者需要理解叙事,后者需要精确计算坐标。

Palette 的训练数据还面临一个现实缺口:网上有大量成品演示文稿,却没有足够的公开数据同时记录“设计者为什么这样选”和“最终生成了什么代码”。因此,团队用大型开放教师模型合成训练语料,而不是直接拿现成 PPT 反向拼凑。

把设计师和编码者拆开

Palette 的核心不是一句更长的提示词,而是把工作流拆成两个角色,并且让两个角色共用一个 LoRA 适配器。LoRA 可以理解为一种轻量微调方式:在基础模型上训练一组附加参数,让它学习特定格式和技能,而不必完整更新模型权重。

第一个角色是“设计师”。它读取演示计划,输出结构化的 JSON 简报,内容包括配色、字体系统,以及每一页的版式、准确文案和简短的设计理由。第二个角色是“编码者”。它每次只处理一页的简报,再生成使用 pptxgenjs 的 JavaScript 代码,把文字、形状和图表画出来。

这个拆分带来两个直接好处。第一,设计简报是可读、可编辑的中间层。用户或另一个智能体可以只修改某一页,不必重新生成整套演示文稿。第二,在所有页面的上下文确定后,各页代码可以并行生成。官方博客称,这让编码阶段的速度约提升 6~7 倍。

训练数据规模约为 1000 套演示文稿、约 10000 页。每套内容从一份“配方”开始,配方控制体裁、长度、版式和用户指令;计划既可能像整理好的提纲,也可能是一堆尚未压缩的原始材料,用来训练模型做删减和归纳。

样本还包含反事实推理,也就是模型先比较一个备选方案,再解释为什么没有采用它。设计者可能说明“虽然表格更精确,但这页要突出趋势,所以选择柱状图”;编码者则可能说明标题在某个字号下会换行并撞到图表,因此缩小字号。

环节 Palette 的做法 常见做法 主要收益或风险
内容规划 先生成结构化 JSON 简报 直接让模型一次写完整套 PPT 单页可修改,便于复用设计规则
页面绘制 每页单独生成 pptxgenjs 代码 一个长提示词生成全部页面 页面可并行,减少任务相互干扰
设计风格 用合成数据按 IBM Design Language 训练 只在提示词中描述颜色和字体 风格更容易保持一致
质量控制 渲染后检查重叠、裁切和溢出 生成后人工逐页检查 提前暴露几何错误
训练方式 LoRA 轻量微调 完整微调或只做提示工程 实验成本较低,基础能力改动较少

检查器为什么比权重更关键

合成数据并不是让大型教师模型一次性写完就结束。官方描述的循环是:每套演示文稿都被渲染出来,再使用与推理阶段相同的检查器查找重叠和溢出;错误页面会被修复,相关推理也改写成“为什么原方案有问题、为什么修复方案更合适”。

推理时,模型输出也不会直接交给用户。简单规则先处理已知问题,例如会让整套演示文稿背景变黑的异常颜色码;随后逐页渲染并测量,几何检查器标出文字溢出、裁切或元素重叠。社区开发者对这篇官方博客的整理进一步提到,被标记的页面会交给另一个编辑模型处理。不过,这部分细节在当前可核实的官方正文截取中并不完整,本文不据此扩展修复策略。

这也解释了一个容易被忽略的训练现象:编码者样本大约是设计者样本的 5 倍长。如果按样本数量直接混合,设计者反而训练不足,官方因此把设计者样本过采样了 5 倍。换句话说,数据配比不是简单的“多放更多代码”,而要考虑每类样本承载的 token 数量和任务难度。

Palette 怎样被实际调用

IBM 的开源仓库提供了远程和本地两种使用方式。远程模式不需要自行部署 Palette 服务,但仍需要安装技能定义;本地模式则要求本机具备 Node、Poppler 和 LibreOffice 等依赖。

下面是从官方 README 摘出的安装命令,仓库同时提供远程地址和本地开发配置:

# Remote:由共享服务器运行 Palette
export PALETTE_URL=https://palette.1gxwxi8kos9y.us-east.codeengine.appdomain.cloud
npx skills add https://github.com/IBM/project-palette/tree/palette_skill/skills/palette 
  -g -a claude-code -a bob -y

# Local:在当前机器安装 Palette
make install
cp .env.example .env
export PALETTE_HOME=$PWD

安装后,在新的 Claude Code 或 IBM Bob 会话中可以直接提出“Build me a 3-slide deck about RAG”之类的请求。README 还说明,技能会从 $PALETTE_HOME/.env 加载配置,因此智能体本身只需要知道 PALETTE_HOME。

这里有一个实际边界:README 给出的远程服务地址并不等于企业用户可以默认把它当成生产环境。公开地址的可用性、数据是否离开本机、服务端如何隔离租户,都需要使用者另行确认。涉及机密材料时,更稳妥的是选择本地模式,并自行审查环境变量、模型后端和日志策略。

评测结果说明了什么,又没说明什么

官方博客称,Palette 在 PresentBench 的三个领域中有两个排名第一。Tech Beat 的报道则将其描述为总体排名第二,并称修复检查框架让得分提高 3.5 分。两者结合来看,结论并不是“Palette 在所有演示生成任务上超过前沿模型”,而是它在特定设计语言和基准设置下,已经具备较强竞争力。

PresentBench 测量的具体领域、评分样本构成和统计细节,本文没有获得足够完整的官方方法说明,因此不把“第一”外推到真实企业项目。官方博客还强调,内容忠实性是一项难点:在提示词中增加规则,效果不如直接提供修正过的参考演示。社区二手解读同样提到这一点,说明模型可能更依赖模仿示例,而不是稳定服从文字约束。

按官方口径可以进一步推出一条边界:Palette 的优势不是单纯来自 20B 权重,而来自“训练数据、可编辑简报、逐页代码、渲染检查、错误修复”这一整条链路。企业如果只拿模型权重,不建设检查和修复环节,可能复制不了文中的效果。反过来,如果团队只是需要偶尔制作几份非敏感演示,也不必先承担完整训练和自托管成本。

从演示生成器走向企业设计工具

Palette 最有价值的启示,是企业设计系统不再只能停留在提示词或模板里。它可以成为训练数据规则、结构化简报字段、页面检查规则和修复流程的一部分。这样一来,“符合品牌规范”不再依赖模型每次是否记得提示,而是逐渐变成系统能否验收的问题。

但它仍不是零门槛方案。公开材料显示,团队需要准备 Node、Poppler、LibreOffice 等工具,处理模型后端配置,并决定本地还是远程运行;模型训练之外,生成后的渲染与修复也会消耗计算资源。对普通用户来说,最现实的第一步不是训练一个新的 20B 模型,而是先读懂仓库里的远程和本地流程,再用自己的模板测试“简报可编辑”和“页面可并行”这两个能力。

参考来源

评论区

0 条评论

登录后可评论。

早八人 46 阅读