【翻译】DiffusionGemma模型可视化指南

A Visual Guide to DiffusionGemma:Going beyond autoregression.

原文:

《DiffusionGemma 可视化指南》 - by Maarten Grootendorst --- A Visual Guide to DiffusionGemma - by Maarten Grootendorst

HuggingFace:google/diffusiongemma-26B-A4B-it · Hugging Face


### 文章目录

  • [@toc](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [1. 自回归模型的问题 The Problem with Autoregressive Models](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [2. 什么是扩散?What is Diffusion?](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [2.1 图像的扩散 Diffusion for Images](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [2.1.1 前/正向扩散 Forward Diffusion](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [2.1.2 反/逆向扩散 Reverse Diffusion](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [2.2 文本扩散 Diffusion for Text](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [2.2.1 掩码扩散 Masked Diffusion](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [2.2.2 均匀/统一状态扩散 Uniform State Diffusion](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [3. DiffusionGemma的架构 Architecture of DiffusionGemma](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [4. DiffusionGemma的推理 Inference of DiffusionGemma](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [4.1 自调节 Self-Conditioning](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion)](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [4.3 调度器 The Scheduler](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [4.4 熵约束采样器 The Entropy Bounded Sampler](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [4.4.1 画布初始化 Canvas Initialization](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [4.4.2 词元接受 Token Acceptance](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [4.4.3 词元加噪 Token Re-noising](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)
  • [5. 总结 Conclusion](#文章目录 @[toc] 1. 自回归模型的问题 The Problem with Autoregressive Models 2. 什么是扩散?What is Diffusion? 2.1 图像的扩散 Diffusion for Images 2.1.1 前/正向扩散 Forward Diffusion 2.1.2 反/逆向扩散 Reverse Diffusion 2.2 文本扩散 Diffusion for Text 2.2.1 掩码扩散 Masked Diffusion 2.2.2 均匀/统一状态扩散 Uniform State Diffusion 3. DiffusionGemma的架构 Architecture of DiffusionGemma 3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder 3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder 4. DiffusionGemma的推理 Inference of DiffusionGemma 4.1 自调节 Self-Conditioning 4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion) 4.3 调度器 The Scheduler 4.4 熵约束采样器 The Entropy Bounded Sampler 4.4.1 画布初始化 Canvas Initialization 4.4.2 词元接受 Token Acceptance 4.4.3 词元加噪 Token Re-noising 5. 总结 Conclusion)

在 Gemma 4 12B 发布之后,Google有开源了一个创新模型------DiffusionGemma!

这是我最兴奋的一个,因为它是一种不同的文本生成方式,但仍然使用了我们现有"常规"LLM 的许多优点。我们将探讨旧的技术、新的技术以及它们如何共存。

在这篇指南中,我要介绍很多东西,因为 DiffusionGemma 有很多独特之处!你将了解到关于扩散的更多信息,它如何用于离散文本,DiffusionGemma 的架构,以及所有有趣的技术。


1. 自回归模型的问题 The Problem with Autoregressive Models

自回归大型语言模型逐个生成一个标记,非常适合同时服务多个用户。为什么?因为为单个用户生成单个标记在计算方面非常便宜。在每个步骤中,生成一个标记所需的大部分时间都花在从内存中加载权重上,而不是实际计算上。

在解码过程中,这些常规的 Transformer 模型受内存限制(memory bound),而不是计算限制(compute bound)。这意味着,例如,为单个用户生成一个标记所需的时间与为 256 个用户生成一个标记所需的时间几乎相同(在同一个batch里放256个请求)。

这是因为权重只需要每步从内存中加载一次,无论服务多少用户。这意味着无论我们将这些权重与 1 个用户的向量相乘,还是与 256 个用户的向量相乘,将权重移入内存的成本都保持不变。通过将所有用户批量处理,我们以几乎相同的成本完成了相同的工作量。

但这并非毫无代价,当并发规模达到某个临界点(该临界点由芯片自身性能决定)后,大语言模型会因服务用户数量过多转而出现算力不足的问题。我们可以借助屋顶线图直观展现这种性能取舍关系。它能够体现芯片运算性能(生成单个词元所需耗时)与芯片内存性能(从内存调取数据的速度)二者相互制约带来的影响。

当仅服务单个用户(batch size = 1)时,大语言模型会受内存带宽限制,需加载大量模型权重,实际计算量却很小。不断调大批大小(内存负载不变,但计算量同步提升),系统会逐步趋近一个"拐点(ride point)",在这个点上硬件资源能够得到充分利用。

因此,尽管批处理能高效同时服务大量用户,但对单个用户而言毫无增益!用户获取生成token的速度保持不变,延迟不存在任何差别。

DiffusionGemma 则颠覆了这一规则

如果我们用计算设备的空闲时间来为一个用户服务会怎样?不为 256 位用户各生成 1 个令牌,而是一次性为 1 位用户生成 256 个令牌,这样可行吗?

这就是 DiffusionGemma 背后的核心思想!该模型从一个由 256 个随机初始化的 token(称为画布 canvas)组成的序列开始,并试图同时为整个画布选择更好的 token。通过同时预测 256 个 token,这256 个 token 的计算预算现在集中于单个用户,而不是分散到许多用户。

当然,一次性预测这么多标记非常困难,而且模型在不知道前面已经生成了哪些token的情况下,会很难预测第 254 个token。注意,前两个token质量很好,但它后续开始慢慢输出无意义的内容。DiffusionGemma 在这个画布上的第一次尝试倾向于在画布的开头产生相当准确的token,但在结尾处产生的token则较差。

那如果我们不只用单次遍历,而是直接执行多次遍历,会出现什么情况?

迭代优化的作用正在于此。模型会依托此前生成的预测结果,再次对画布进行遍历。准确的token(即仍保有高概率的token)能够辅助模型对画布靠后的内容做出更精准的推测。每完成一轮遍历,模型都会优化此前概率偏低、或是被错误token环绕的token。经过多轮迭代后,画布输出文本的质量会收敛至与标准Transformer模型持平的水平,且对单个用户而言,生成速度会快上很多。主要原因是,模型执行的正向遍历次数远少于其生成token的数量。

看看我们是如何从在常规 Transformer 模型上进行下一个 token 的预测,一下子跳到 256 个 token!

尽管二者均通过多轮步骤生成输出,但标准Transformer每生成一个token仅执行一步,而DiffusionGemma会借助每一步迭代优化生成画布。实现这一机制的核心是名为 扩散 Diffusion 的技术,该技术在图像生成领域广为应用,且与迭代优化的概念高度关联。

该模型并非内存受限 memory-bound (如自回归LLM),扩散大语言模型反而属于计算受限compute-bound ,并且在增加算力时性能拓展速度更快。

自回归大语言模型与扩散式大语言模型的核心差异就体现在此处,也就是二者处理相同token的方式。自回归大语言模型每次前向传播仅生成一个token,在服务单用户时会受内存性能制约;而扩散式大语言模型单次前向传播就能生成一整段token序列,性能瓶颈在于计算资源。

那么我们来深入探究扩散机制,以及 DiffusionGemma 是如何将这套图像生成原理运用到文本生成中的。


2. 什么是扩散?What is Diffusion?

扩散是图像生成过程中一个以"噪声"为中心的过程。

2.1 图像的扩散 Diffusion for Images

扩散是图像生成领域的一类流程,核心是去除图像中的"噪声"。该流程以一张随机初始化的图像(100%纯"噪声")为起点,在后续每一步操作中逐步降低图像的噪声含量。在图像生成任务里,整个过程由提示词进行引导。经过足够多轮迭代后,模型最终会生成或是"还原"出完整图像。

减少图像中噪声的过程被称为 去噪 。如图所示,该过程具有迭代性与顺序性。每完成一步,图像都会清晰少许,直至最后完整图像呈现出来。这一原理不仅是图像扩散技术的核心,后续你还会发现,它同样是DiffusionGemma的核心原理。

此去噪过程由两个主要原则指导:前/正向扩散 forward diffusion反/逆向扩散 reverse diffusion

2.1.1 前/正向扩散 Forward Diffusion

为了让模型学习如何去噪图像,你需要从一些训练数据开始。这些数据包含图像/文本对。对于每一对数据,你都会向图像中添加一定量的随机(高斯)噪声。

这个过程被称为 正向扩散 。它基于现有数据生成新数据,并为训练过程添加信号。

2.1.2 反/逆向扩散 Reverse Diffusion

逆向扩散 与之相对,该方法旨在训练模型,使其能够预测我们添加至原始数据中的噪声。此时这份训练数据便拥有了明确的预测目标:噪声。简单来说,你相当于在告知模型:这是一张含噪图像,我需要你仅从中预测出噪声。

那么,我们为什么要向图像中引入噪声,然后又试图预测它呢?

我们可以从含噪图像中减去预测噪声,让图像更贴近模型训练时使用的图像。反复执行该操作,就能从纯噪声图像起步,逐步完成去噪,直至图像中不存在任何噪声。

正向扩散(生成含噪训练数据)和反向扩散(对含噪输入数据去噪)共同创造了这种破坏和修复图像的过程。

请注意,在图像扩散过程中,这个过程是由一个提示引导的,该提示作为额外的信号来决定什么是和什么不是噪声。如果没有东西来引导它,模型根本不知道它应该首先创建什么。

引导该流程的组件被称为编码器(encoder),它负责处理输入提示词并解析其背后的语义信息。编码器输出的结果会输送至扩散模型,以此引导模型生成符合提示词描述的图像。如果没有编码器,扩散模型将不知道如何从第一步接收到的 100%噪声中生成内容。

二者共同构成完整流程,该流程包含两大核心架构:

  • Denoiser 去噪器:用于迭代地从含噪声输入中去除噪声的模型(例如扩散模型)。
  • Encoder 编码器:用于处理输入查询的模型(例如,编码器语言模型)。

如前所述,扩散模型也被称为去噪器,因为它主要专注于从含噪声输入中去除噪声。我们将通篇使用该术语来阐释模型的作用。


2.2 文本扩散 Diffusion for Text

现在我们已经看到了图像的扩散,那么如何将其应用于文本呢?

给单个像素添加噪声更容易,因为像素值是连续的。你可以让一个红色像素稍微不那么红,稍微更蓝一些。然而,如何让"the"这个词稍微不那么"the"?对于一个单个词来说,什么是"噪声"?

2.2.1 掩码扩散 Masked Diffusion

与其将它们视为单独的token,不如让我们从整体角度考虑。在掩码语言建模任务中,就像在训练 BERT 等编码器模型时那样,输入中的随机token会被替换为[MASK] token,我们可以将这个[MASK] token视作 "噪声"(也称作损坏标记 corrupted tokens)。

该流程随后便与图像扩散模型中的处理方式相近:先对指定文本进行采样,设定噪声量级,再依据该噪声量级随机对文本标记做掩码处理。

当我们对这个操作进行多次时,我们可以创建一个训练数据集。你对相同的文本(或不同的文本)添加不同数量的噪声。这使得模型能够学习如何去除不同数量的噪声,就像图像的扩散一样。

进行正向扩散过程后再执行反向扩散,该过程会让模型预测[MASK]掩码位置对应的正确token。在每一步操作中,模型仅对自身确信能找到合适替换内容的token执行去噪处理。

在单次去噪步骤中,模型会预测画布每个位置上概率最高的token。随后,仅选取数值超过特定阈值的token;未达到阈值的token则依旧保留为掩码标记。

此过程持续进行,直到所有掩码token被替换或达到一定步数。通常,使用的步骤越多,生成的序列就越准确。它不是一次性处理所有token,而是可以使用多个步骤来决定哪些token应该放在哪里。

类似于图像的扩散,我们可以在一个图中可视化正向和反向掩码扩散过程:

与图像扩散类似,文本扩散通常由两个模型(或两种技术)协同使用组成:

  • 去噪器 -- 用于迭代地从含噪输入中去除噪声的模型。
  • 编码器 -- 用于处理输入查询的模型(例如,编码器语言模型)。

不过掩码扩散存在一个问题,即自我纠正机制!每当模型确定替换一个[MASK] token后,该token就会被固定。一旦选定,便无法再次替换。这限制了模型对过早选定的部分token进行修正的能力。该特性其实与自回归模型的表现相近,这类模型同样会选定token,且选定后就无法更改。

那我们何不探索一种不同类型的"噪音"呢?

2.2.2 均匀/统一状态扩散 Uniform State Diffusion

使用[MASK token 是一种相当"严苛"的噪声定义方式。标记要么存在,要么不存在,不存在中间状态。与图像扩散模型相比,这是一种看待文本的纯布尔式思路。此外,一旦选定某个token去替换指定的 [MASK] token,该位置便无法再次替换。

与其通过用相同的东西(一个 [mask] token)替换它们来破坏一个 token 序列,我们可以用不同的东西(一个随机 token)替换每个 token。在正向扩散过程中,随机 token 被用作噪声,以与掩码扩散相同的方式创建数据集。

这个过程会创建一个包含噪声的数据集,但不会明确指出噪声的位置(除了有真实标签之外)。它和掩码机制的核心区别在于,模型需要自行判断噪声来源并做出对应修正。无论替换词汇占比是 10% 还是 90%,都要求模型对输入内容具备充分透彻的理解。

在去噪过程(反向扩散)中,模型必须检测哪些token是噪声,哪些需要更新。在每一步去噪过程中,模型会为画布上的每个位置预测一个token。如果一个token不需要改变,它会保持高概率。但是,如果它决定替换该token,则会生成另一个高概率的token。因此,模型会继续为每个位置预测最佳token。这也意味着,随着文本画布不断更新,某个在前 1 至 10 步中概率一直很高的token,到第 11 步时概率可能会骤然降低。

因此,在画布的每个位置上,模型会以一定的概率建议一个token。如果它达到某个阈值,它将被放置在那个位置;然而,如果它不满足阈值,之前在该位置的标记将被重新加噪处理(re-noised)并替换为随机token。

那为何要对低概率token重新加噪?

如果你保留了旧的 token,那么那将不会是一个均匀随机的 token。在训练过程中,模型已经学会画布将由部分经过均匀分布抽样的带噪声 token 组成。如果保留旧的 token,模型在下一步可能会围绕错误的 token 进行规划。为了接近训练数据,并且出于实际考虑,你需要重新对低概率 token 进行加噪。

正向扩散(生成带噪声的文本序列)和反向扩散(对随机 token去噪)共同创造了这种破坏和修复 token 序列的过程。

因此,模型在用另一个token替换随机token时不会停止运行,它仍可修改画布内的任意token。相较于掩码扩散,该机制能让模型在迭代步骤中持续更新、改动画布内容。

均匀状态扩散,以及广义上所有基于文本的扩散模型,与自回归模型存在显著区别。自回归模型会按顺序逐次预测单个token,而扩散模型则迭代更新完整文本画布。将二者放在一起对比时,自回归模型与扩散模型的这种差异会体现得尤为突出。

这些差异很重要,因为它们能帮助你理解何时选择文本扩散模型而非自回归模型,反之亦然。尽管文本扩散模型在为单个用户生成大量token方面表现出色,但它们的多用户吞吐量低于自回归模型。

由此可见,文本扩散模型不存在两全其美的优势。下面为你梳理二者之间几项核心的本质区别:

需要注意文本扩散存在一项缺陷,统一状态扩散模型尤为突出,即这类模型训练难度大 。究其原因,模型的训练目标不仅要对不同噪声程度下的文本画布执行去噪操作,还得先区分出哪些tokens属于真实噪声。否则,模型会将画布内全部标记判定为噪声,这种效果并不理想。

那么我们该如何兼顾统一状态扩散的优势,同时规避其训练层面的缺陷?接下来我们一同探究 DiffusionGemma 编码器 - 去噪器补丁(Encoder-Denoiser patch)中给出的解决方案!


3. DiffusionGemma的架构 Architecture of DiffusionGemma

DiffusionGemma 采用了前文介绍的统一状态扩散机制。但完全从零训练该模型仍存在诸多弊端。解决方案很简单,就是不要从头开始训练,而是使用一个现有的检查点作为起点,即 Gemma 4 26B A4B 模型。

Gemma 4 26B A4B,是一种专家混合(MoE)模型,已经经过大量训练并具有出色的性能。不过存在一个问题......

Gemma 4 26B A4B 是一种仅解码器模型,旨在逐个生成文本,而扩散通常需要一个编码器和一个去噪器。这时,一个优雅的解决方案出现了------编码器-去噪器补丁( Encoder-Denoiser patch)!

这个补丁是一种将单个仅解码器模型转换为:

  • Encoder 编码器 -- 用于"理解"查询。
  • Denoiser 去噪器 -- 用于对画布进行去噪。
    它通过一个单一模型(Gemma 4 26B A4B)在去噪器模式和解码器模式之间动态切换来实现这一点。

3.1 去噪器模式-模拟编码器 Denoiser Mode - Acts like an Encoder

若要将decoder-only模型(Gemma 4 26B A4B)改造为去噪器,我们可以借助该模型生成token过程中并未直接用到的信息,也就是所有token 的 logits!

具体来说,一个自回归的大型语言模型首先将文本转换为词嵌入(一组一维数值)。当这些词嵌入流经大型语言模型时,它们会不断被处理和更新。这通常被称为模型的隐藏状态(hidden states)。最终的隐藏状态被投影到 logits 上,这些 logits 代表词汇中每个词的置信度分数。这意味着对于输入中的每个token,都会生成一组置信度分数。但只有最后一个隐藏状态的 logits 用于选择预测的token,其余所有 logits 基本都会被舍弃。

这种"丢弃 logits"的做法并不一定是坏事,因为最终 token 的 logits 包含了关于之前所有 token 的全部信息。我们只使用最终 token 的原因是序列中的每个 token 只能关注("看到")它之前的 token。因此,最终 token 的隐藏状态是整个序列的聚合,你需要用它来预测下一个词。

这引发了一个有趣的想法。如果我们替换两件事物会怎样呢?

  • 将输入token序列替换为画布
  • 将因果注意力(causal attention)改为双向注意力(bidirectional attention)
    由于模型应该作为去噪器工作,我们期望输入tokens是一个带噪声的画布。然而,使用因果注意力仍然意味着每个位置的 logits 只关注其之前的信息。由于我们希望一次性生成一系列token,我们不希望某个token对它之后的token(无论是否噪声)一无所知。因此,我们必须用双向注意力取代因果注意力。这使得一个token能够关注序列中的所有其他token,而不管它们的相对位置如何。

借助双向注意力机制,由于所有token可相互感知,我们现在能够取用输入噪声画布内全部token的logits。针对噪声画布的每一个位置,算法会选出匹配度最优的token。若该token概率值较高,则予以保留;若概率值偏低,则对其重新加噪,并替换为另一个随机token。

当你更换注意力机制时,模型无法直接适配使用。Gemma 4 26B A4B 模型基于因果注意力完成训练,若突然切换为双向注意力,模型会出现逻辑混乱。这部分内容需要专门训练适配,相关细节后续再展开说明。

将带噪画布作为输入并搭配双向注意力机制后,我们可采用 Gemma 4 26B A4B 作为去噪器,对画布进行迭代更新。但如果缺少输入查询,模型就无从知晓该如何填充画布内容,编码器正是用于解决这一问题的模块。


3.2 编码器模式-模拟解码器 Encoder Mode - Acts like a Decoder

Gemma 4 26B A4B 的编码器模式与图像扩散模型中的编码器作用类似,用于处理输入查询,并为去噪器提供上下文信息与指引。通常,会使用一个编码器(具有双向注意力的LLM)处理输入内容。但 Gemma 4 26B A4B 基于因果注意力机制完成训练,若重新更换它,则成本极高。相反,我们可直接复用 Gemma 4 26B A4B 完成查询处理工作。该 Gemma 4 26B A4B 模型并非原生适配相关场景,而是经过微调优化,可同时承担去噪与编码两类不同任务。

在这个过程中,我们不使用 LM Head,因为我们不是在生成 token,而是在生成 token 表征。这些表征通常有两种:隐藏状态 或 KV Cache。

但使用隐藏状态需要额外的交叉注意力(cross-attention),这会带来另一处额外改动。由于编码器模式与解码器模式采用完全相同的模型,仅注意力机制存在差异,因此DiffusionGemma选择在两种模式间共享KV缓存。

另一个原因是,尽管编码器是搭载因果注意力机制的解码器类模型,但其依旧能够生成高质量的输入查询表征。因此,这些KV Cache表征会传递给去噪器(采用双向注意力机制的Gemma 4 26B A4B模型),使去噪器理解用户实际想要生成的内容。在去噪器的所有去噪迭代步骤中,KV cache均不会发生更新。


4. DiffusionGemma的推理 Inference of DiffusionGemma

扩散模型的一大核心在于其推理处理机制。具体而言,画布不是在单一步骤中生成,而是经过迭代逐步更新。这由此引出了若干我们目前尚未解决的问题:

  • 模型如何知道它在上一步中做出的预测?
  • 如何生成一个大于画布的序列?
  • 去噪器采用多少步去噪处理?

4.1 自调节 Self-Conditioning

我们首先回答的问题是"模型如何知道它在上一步中做出的预测?"。

幸运的是,答案非常直接。去噪器运行单步后,它可以使用它生成的概率,并将其传递给第二步。这为模型提供了关于它上一步打算做什么以及来源的信息。

在实际应用中,该操作会将经过softmax函数处理后的概率值与所有词元的嵌入向量(也称作嵌入矩阵或嵌入表)相乘。经过该乘法运算后,画布上的每个位置都会生成一个嵌入向量,用以表征对应的概率分布。基于此,概率更高的词元对应的嵌入向量会被赋予更大权重。随后这些向量会输入小型前馈神经网络(FFNN),并在下一阶段与词元嵌入向量相加。

这本质上让模型能够记住上一步的执行意图,以及它预测各个位置时的置信度。

综合所有环节来看,第二步和第一步流程完全一致,且会复用编码器的KV-cache。这种基于上一步输出的自约束机制可视为跳跃步骤,信息会传递至下一步,让模型依托更丰富的上下文持续完成运算流程。

我们现在有了 DiffusionGemma 的完整架构概述:


4.2 多画布采样(块扩散) Multi-Canvas Sampling(Block Diffusion)

我们需要回答的第二个问题是"如何生成一个大于画布的序列?"。

DiffusionGemma 中的画布大小为 256 个 token,这并不算大!幸运的是,我们可以将扩散与自回归结合起来,以扩展生成的 token 数量。

具体来说,我们首先使用 DiffusionGemma 生成 256 个 token,正如我们之前所探讨的那样。这 256 个 token 只需要通过编码器一次,就能生成 KV 缓存,之后去噪器会进行若干步操作来填充这个画布。当它完成后,使用这全新的 256 个标记更新提示词,并将其添加到编码器的输入序列中,以扩展 KV 缓存。去噪器接着继续生成另一组 256 个 token 的序列。这个过程会一直持续,直到去噪器生成一个终止 token。

因此,这些画布通过扩散模型生成,再按顺序拼接起来。这意味着我们将扩散生成与自回归生成交替进行!

回顾我们此前用于对比扩散模型与自回归模型的各类图,如今二者被整合为一套流程:每一段扩散模型的输出都会以自回归的形式依次拼接在一起。

能够实现这一点的一大关键在于,编码器的KV缓存采用因果注意力机制进行计算。由于每个token仅会关注其前文内容,因此只需针对每个"自回归步骤"中新添加的画布计算KV缓存。该操作的算力开销相对较低,因为我们可以持续 更新 KV缓存,而无需 重新计算 全部缓存。

实现这一点的关键原因在于,编码器的KV缓存仅需在每个"自回归步骤"的起始阶段完成计算。在"扩散步骤"期间,由于扩散流程结束前不会新增任何token,KV缓存可直接复用,无需重新计算。


4.3 调度器 The Scheduler

图像扩散中的调度器控制每次去噪步骤去除多少噪声以及进行多少步骤。在 DiffusionGemma 中,调度器是一套技术合集,这些技术共同决定基于分步执行的去噪流程如何运行。它负责 "规划调度" 整个去噪过程,并不会直接判定舍弃或保留哪些tokens。和图像扩散模型不同,DiffusionGemma 的调度器由三个独立组件协同工作。

首先是 步数 (the step count) 。它决定了最大去噪步数。更多的步数通常能产出质量更高的结果,但生成速度会更慢。

其次,是 logits 调度器 (the logits scheduler)。在模型生成其原始 logits 后,通过 softmax 转换为概率。以往会直接选取概率最高的token,而该调度器则基于多项式分布筛选标记。也就是说,概率越高的标记被选中的概率越大,概率越低的标记被选中的概率越小。

然而,生成的 logits 存在一个问题,即它们往往置信度更低。这是因为在每个去噪步骤中,画布中都存在噪声token,这可能会影响每个位置的预测性(因此也影响 logits)。

logits 调度器确保模型的预测(logits)更加果断。它通过将 logits 除以一个温度系数来实现这一点。这与你在自回归 LLM 中看到的温度系数一样。

请注意,步骤是递减的(count down),以此保证每一个去噪步骤对应的温度值更低:

在每个步骤中将 logits 除以温度有助于使 logits 分布更加明显或"峰值化(peaky)"。由于早期的画布大多是噪声,锐化预测无论如何都没有太大意义。只有在较后的步骤中,模型才有更干净的画布,我们才能锐化预测。

这意味着在生成前期步骤中,模型会进行更多探索,不会只聚焦概率最高的token;而到了后期步骤,模型的探索程度会降低,会更多侧重概率最高的token。该机制能让探索(前期步骤)与择优利用(后期步骤)两者维持平衡。

因此,我们可以看到与后续步骤相比,早期的步骤在token分布方面稍微"更嘈杂"。

第三,自适应停止(adaptive stopping)。尽管步数已经定义了去噪过程可以执行的最大步数,但模型可能会提前收敛。为此,设置了自适应停止机制。在每一步,它都会检查:

  • Stability 稳定性:过去 N 步中,最高概率的token预测是否相同?
  • Confidence 置信度:模型对画布中所有oken的整体置信度如何?
    在DiffusionGemma的配置中,置信度阈值设为0.005,稳定性阈值设为1。置信度通过衡量模型预测结果的离散程度判定,该衡量指标被称作熵。在画布的任一指定位置,若某个词元的概率值极高(例如95%的概率判定为"LLM"),代表模型置信度高,对应的熵值偏低。这意味着:如果模型在绝大多数词元位置均具备高置信度,且各位置预测出的词元与上一步保持一致,那么无论剩余生成步数还有多少,模型都会终止生成过程。

4.4 熵约束采样器 The Entropy Bounded Sampler

在图像扩散模型中,采样器负责调控模型预测结果与当前带噪图像的融合方式,以此生成噪声程度略低的下一帧图像。在DiffusionGemma模型里,采样器用于管控去噪流程中的噪声含量。每一种采样器都包含三大组成部分:

  • Canvas initialization 画布初始化:如何创建带噪声的画布。
  • Token acceptance 词元接受:要保留和拒绝哪些预测的 token。
  • Token re-noising 词元重新加噪:被拒绝的token如何重新加噪。
    默认情况下,使用的采样器是熵约束采样器(the Entropy Bounded Sampler)。

4.4.1 画布初始化 Canvas Initialization

画布由随机token(均匀采样得到)生成,这与图像扩散模型中从纯噪声起步的原理基本一致。

4.4.2 词元接受 Token Acceptance

熵约束采样器根据模型对每个token的置信度来决定保留哪些token。该采样器借助熵来衡量置信度,熵用于描述概率分布的离散程度。记住,对于画布中的每个位置,模型都会创建一组概率分布。如果该分布严重倾向于单个token,代表模型判断的置信度很高,熵就会很低。然而,如果分布是均等分布(模型无法确定该选取哪一个token),那么熵就会很高。

采样器计算画布中每个位置的熵值。然后,它将它们从最低熵(置信度最高)到最高熵(置信度最低)进行排序。因此,这个token列表以模型置信度最高的预测结果开始,采样器会逐个核验对应token是否可被采纳。

验收标准基于以下公式:

采样器从模型置信度最高的画布位置开始,检测当前累计熵值总和(减去最大熵)是否超出你预先设定的阈值。若超出阈值,则判定模型置信度不足,该组结果将被舍弃;若未超出阈值,则代表模型置信度达标,采样器会继续处理下一个置信度次高的画布位置。

因此,采样器仅会在一组token各自置信度达标且整体数值未超出限定阈值时,才接纳这组token。这允许模型更专注于接受它相当确定是正确的token,而不管其他token位置会是什么。

4.4.3 词元加噪 Token Re-noising

在熵约束采样器中对画布执行重新加噪操作十分简单,所有被舍弃的token都会被重新添加噪声!但这并不代表已通过校验的token会始终固定不变。在后续降噪步骤里,模型生成更新后的上下文信息后,可能会降低该token的生成概率。


5. 总结 Conclusion

多精彩的旅程......文本扩散!

说到这里,希望这份深度讲解能让你有所收获,也能帮你直观理解该模型的运行逻辑。关于这个模型以及扩散机制在DiffusionGemma中的运作原理,还有大量内容等待挖掘。和文本生成任务不同,你还能尝试各类全新的自定义操作,比如搭建专属采样器!

非常感谢提供此视觉指南反馈的人们:Nate Keating、Jean Tarbouriech、Bobak Shahriari、Brendan O'Donoghue、João Gabriel Oliveira、Omar Sanseviero,以及一如既往可能被我遗忘的任何其他人 😉