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 模型,而是先读懂仓库里的远程和本地流程,再用自己的模板测试“简报可编辑”和“页面可并行”这两个能力。
参考来源
- IBM Research:Palette: teaching a small model to build decks in your design language,2026 年 11 月 3 日,Palette 的官方技术说明。
- IBM/project-palette README,官方安装、远程与本地运行方式。
- Tech Beat:Palette 20B Open Model Tops Two PresentBench Deck Tests,对评测与修复框架的交叉报道。
- 小模型接过幻灯片这一档,承重的是检查器而非权重,中文社区视角的分析。
- Hugging Face 官方平台,模型、数据集与开源工具的托管平台。
评论区
登录后可评论。