CuteDSL、潜空间传送以及更快生成的捷径
一个实用的心智模型,用于在生成管道中移动工作,而无需支付重建每个中间表示的完整成本。
生成工作负载通常被描述为模型是整个系统。实际上,慢的部分可能是围绕模型的移动:加载权重、转换格式、复制张量、等待工作进程,以及丢弃另一个阶段本可重用的中间结果。
CuteDSL是思考这个边界的有用方式。一个小的、声明式的工作描述可以在系统中传播,而昂贵的表示则保持在加速器附近。目标不是巧妙的语法;而是保持编排廉价和推理忙碌。
“潜空间传送”所指的
把这个短语当作思维模型:在兼容的阶段之间移动一个紧凑的潜在表示或已有用的中间表示,而不是每次都从像素或文本重建整个问题。如果调整大小、风格处理、时间处理或放大可以直接消费该表示,流水线就避免了不必要的解码-编码循环。
问:“下一阶段能接受的最小表示是什么,而不丢失所需信息?”这个答案通常是比从JSON请求中节省几毫秒更好的优化目标。
节省出现的三个地方
1. 保持热路径驻留
预热工作节点并重用加载的权重。队列应决定接下来运行什么,而不是反复重建执行环境。
2. 批处理兼容的工作
具有相同形状、模型和精度的图像可以共享设置。当调度器足够早地看到足够的工作以形成批次时,批处理最有用。
3. 缓存正确的边界
缓存确定性的预处理和可重用的条件。当紧凑的中间表示可以服务多个下游消费者时,不要缓存巨大的最终产物。
一个紧凑的流水线草图
request -> normalize prompt + references
-> choose model / shape / precision
-> warm worker or form a compatible batch
-> generate in latent space
-> decode only at the delivery boundary
-> durable result + usage record重要的边界是最后一个。当人类或外部API需要像素或帧时解码,而不是每次内部阶段想要做决定时都解码。
测量整个路径
分别跟踪队列等待、工作节点启动、模型加载、推理、解码、上传和首次预览时间。更快的内核很好,但一个消除十秒启动的预热工作节点通常是更大的胜利。优化最慢的可见段,然后用真实的提示和真实的输出形状再次测量。
Try these prompts on your own shot.
Every example on this page was generated with ManifoldGen. Open the Studio and run the same structure on your idea.