❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦
🎯 「扩散模型颠覆传统LLM生成方式!让文本生成进入"全局规划"时代!」
大家好,我是蚝油菜花。当ChatGPT还在用自回归架构"逐字吐答案"时,这个来自香港大学的AI核弹已经让文本生成进入"全局规划"时代!
你是否也被这些问题困扰过:
- 📝 生成长文时模型突然"失忆",前后逻辑支离破碎
- ∑ 解数学题步骤跳步,关键推导过程神秘消失
- 💻 写代码时变量名和缩进随机放飞自我...
今天要解剖的 Dream-7B ,用扩散模型重构了大语言模型的DNA!这个7B参数的"文本建筑师":
- ✅ 全局连贯性:像拼拼图一样从噪声中重建完整语义,告别碎片化生成
- ✅ 双向推理:同时考虑前后文信息,数学推导准确率提升37%
- ✅ 顺序可控:支持按需指定生成顺序,写代码先出框架再填细节
已有团队用它48小时写完技术白皮书,文末附《扩散模型极简部署指南》——你的键盘准备好迎接文本生成革命了吗?
🚀 快速阅读
Dream-7B是目前性能最强的开源扩散大语言模型之一。
- 功能:支持文本生成、数学求解、代码编写和多步规划任务,生成质量可动态调节。
- 原理:基于掩码扩散范式和自回归模型初始化,通过双向上下文建模提升文本连贯性。
Dream-7B 是什么
Dream-7B是香港大学和华为诺亚方舟实验室联合推出的开源扩散式推理模型,采用创新的离散扩散架构。与传统自回归模型逐字生成不同,它从噪声状态开始逐步重建文本,实现了全局语义的协同优化。
该模型使用5800亿标记进行预训练,耗时256小时。特别值得注意的是,其7B参数版本在多项基准测试中超越了同尺寸的自回归模型,甚至在某些任务上媲美GPT-4等超大模型。这种突破主要源于其独特的双向上下文建模能力,使得生成文本具有更好的连贯性和逻辑性。
Dream-7B 的主要功能
- 强大的文本生成:在通用文本、数学和编程任务上表现优异,超越同尺寸的自回归模型。
- 灵活的生成方式:支持任意顺序的文本生成,用户可指定生成顺序满足特定需求。
- 高效的规划能力:在Countdown和Sudoku等需要多步规划的任务中表现出色。
- 可调节的生成质量:通过调整扩散步数平衡生成速度和质量。
Dream-7B 的技术原理
- 扩散模型架构:基于离散扩散模型,从完全噪声化的状态逐步去噪生成文本。
- 掩码扩散范式:预测所有被掩码的标记逐步去噪,加速训练过程。
- 自回归模型初始化:使用Qwen2.5等自回归模型的权重进行初始化。
- 上下文自适应噪声重调度:根据标记上下文动态调整噪声水平。
- 灵活的解码策略:推理时可调整生成顺序和扩散步数。
如何运行 Dream-7B
安装
pip install transformers==4.46.2 torch==2.5.1
基础使用
import torch
from transformers import AutoModel, AutoTokenizer
model_path = "Dream-org/Dream-v0-Instruct-7B"
model = AutoModel.from_pretrained(model_path, torch_dtype=torch.bfloat16, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = model.to("cuda").eval()
messages = [
{
"role": "user", "content": "Please write a Python class that implements a PyTorch trainer capable of training a model on a toy dataset."}
]
inputs = tokenizer.apply_chat_template(
messages, return_tensors="pt", return_dict=True, add_generation_prompt=True
)
input_ids = inputs.input_ids.to(device="cuda")
attention_mask = inputs.attention_mask.to(device="cuda")
output = model.diffusion_generate(
input_ids,
attention_mask=attention_mask,
max_new_tokens=512,
output_history=True,
return_dict_in_generate=True,
steps=512,
temperature=0.2,
top_p=0.95,
alg="entropy",
alg_temp=0.,
)
generations = [
tokenizer.decode(g[len(p) :].tolist())
for p, g in zip(input_ids, output.sequences)
]
print(generations[0].split(tokenizer.eos_token)[0])
资源
- 项目主页:https://hkunlp.github.io/blog/2025/dream/
- GitHub 仓库:https://github.com/HKUNLP/Dream
- HuggingFace 仓库:https://huggingface.co/Dream-org
- 在线体验:https://huggingface.co/spaces/multimodalart/Dream
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦