面向边缘设备的开源多模态 d1 决策模型
今天,我们在 d1 决策模型家族 中开源了两个决策模型:d1-3B 和 d1-omni-600M(实验版)。
- Decision Index 0.2.1 中 10B 参数以下的最强决策模型:d1-3B 得分 48.57,超越了所有 4B 和 9B 模型以及 Decider 35B-A3B(47.11)。
- 多模态支持:d1-3B 支持文本和图像,d1-omni-600M 支持文本加图像或文本加音频。
- 速度快:在 NVIDIA Jetson AGX Thor 上,d1-3B 回答一个问题仅需 16 ms;在 Jetson AGX Orin 上为 26 ms;在 Jetson Orin Nano 上为 50 ms。
我们如何构建面向边缘端的决策模型
这些开源的 d1 决策模型基于我们的 Liquid Foundation Models (LFMs) 构建。与生成式模型不同,决策模型不生成 token,而是通过单次前向传播即可给出答案。
d1-3B 和 d1-omni-600M 由两个截然不同的骨干网络训练而来:
- d1-3B 基于 LFM2.5-VL-3B 训练,这是我们最新的 VLM,采用仅解码器架构,接受文本和图像作为输入。
- d1-omni-600M 基于 LFM2.5-Encoder-350M 训练,这是一个双向编码器。它增加了视觉和音频编码器以处理三种模态,接受文本加图像,或文本加音频作为输入。该模型目前处于早期研究发布阶段,仍在持续开发中。
基准测试成绩
我们在七个公开数据集上对 d1-3B 和 d1-omni-600M 进行了测试,涵盖阅读理解、毒性检测、意图分类、医疗问答和跨语言理解。d1-3B 的平均得分为 82.9,是表中最高分,且高于 Decider 4B。d1-omni-600M 得分为 78.4,以四分之一的参数量超越了 Decider 2B(77.1)。
| 基准测试 | d1-omni-600M | d1-3B | Decider 2B | Decider 4B |
|---|---|---|---|---|
| SQuAD 2.0 | 74.0 | 83.3 | 67.7 | 76.0 |
| Civil Comments | 95.8 | 93.3 | 93.6 | 92.8 |
| MASSIVE intent | 86.1 | 86.9 | 81.1 | 88.3 |
| PubMedQA | 61.3 | 68.3 | 65.7 | 63.3 |
| BoolQ | 77.7 | 86.3 | 87.3 | 89.0 |
| XNLI | 74.7 | 85.6 | 85.0 | 88.6 |
| PAWS-X | 79.5 | 76.4 | 59.5 | 69.8 |
| 平均值 | 78.4 | 82.9 | 77.1 | 81.1 |
我们验证了 d1-3B 在标准视觉基准上保留了其 LFM2.5-VL-3B 底座的视觉能力,而 d1-omni-600M 则能处理全部三种模态。由于 Decision Index v0.3 只包含一个私有的视觉子集,音频决策基准目前仍是开放问题,因此我们没有报告任何视觉或音频基准的成绩。
速度
我们与 NVIDIA 合作,在 NVIDIA GeForce RTX 4090、NVIDIA Jetson AGX Thor、Jetson AGX Orin 64 GB 和 Jetson Orin Nano 上评估了 d1-3B 的表现。由于 d1-omni-600M 是早期研究版本,本次发布暂不提供它的速度数据。
边缘推理。 d1-3B 在所有测试设备上回答单个问题都不到 50 ms。三个问题只需单个问题的 1.3 倍时间,其中 AGX Thor 从 16 ms 增加到 20 ms。
| 单个问题 | 3 个问题 | 3.4K token 状态 | 384px 图像 | 64 个状态(打包) | |
|---|---|---|---|---|---|
| Apple M5 Pro | 30 ms | 41 ms | 640 ms | 62 ms | 78 / s |
| Jetson AGX Thor | 16 ms | 20 ms | 220 ms | 35 ms | 262 / s |
| Jetson AGX Orin 64 GB | 26 ms | 35 ms | 560 ms | 83 ms | 110 / s |
| Jetson Orin Nano | 50 ms | 73 ms | 1,640 ms | 202 ms | 38 / s |
GPU 推理。 在 GPU 上,d1-3B 在两个平台上回答单个问题都不到 10 ms,处理 384px 图像不到 18 ms。
| 单个问题 | 3 个问题 | 3.4K token 状态 | 384px 图像 | 64 个状态(打包) | ||
|---|---|---|---|---|---|---|
| NVIDIA RTX 4090 | 8 ms | 21 ms | 102 ms | 17 ms | 475 / s | |
| AMD MI325X | 9 ms | 14 ms | 44 ms | 18 ms | 1,106 / s |
如何使用开放 d1 决策模型
当你需要快速做出结构化决策,特别是涉及多模态输入时,可以选用 d1 决策模型。其中,d1-3B 在其参数量级下提供了最高的决策质量,而 d1-omni-600M 则适用于对部署体积有严格要求的场景。
安装依赖项(需要 transformers>=5.14):
pip install "transformers>=5.14" torch torchvision pillow
这些模型自带了代码逻辑,因此加载时需设置 trust_remote_code=True:
import io
import urllib.request
import torch
from PIL import Image
from transformers import AutoModel
device = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_available() else "cpu"
model = AutoModel.from_pretrained("LiquidAI/d1-3B", trust_remote_code=True,
dtype=torch.float32 if device == "cpu" else torch.bfloat16).to(device)
# 基于同一文本状态,回答多个命名问题,一次性处理
questions = {
"refund": {"type": "noul", "instructions": "客户是否在要求退款?"},
"team": {"type": "choice", "instructions": "应由哪个团队处理?",
"criteria": {"billing": "费用、退款、发票", "technical": "应用或网站故障",
"fraud": "疑似未授权操作"}},
"urgency": {"type": "score", "instructions": "紧急程度如何?",
"criteria": ["可以等待", "今天处理", "立即阻碍客户"]},
}
print(model.system_one("本月我被扣了两笔费用,请退一笔。", questions))
# 以图像作为完整状态
url = "http://images.cocodataset.org/val2017/000000039769.jpg" # 沙发上的两只猫
photo = Image.open(io.BytesIO(urllib.request.urlopen(url).read()))
print(model.system_one(None, {"cats": {"type": "choice", "instructions": "有几只猫?",
"criteria": {"one": "一只", "two": "两只", "more": "三只及以上"}}},
images=[photo]))
# 批量请求,无填充打包
tickets = ["我的包裹在哪里?预计周一到。", "打开设置时应用崩溃了。"]
print(model.system_one_batch([(t, {"team": questions["team"]}) for t in tickets]))
为了简洁起见,我们只展示 d1-3B 的示例。运行说明请参考 d1-omni-600M 模型卡片。
开始使用 open d1 决策模型
两款决策模型均为开放权重,现已在 Hugging Face 上线:
- 下载: 在 Hugging Face 上获取 d1-3B 和 d1-omni-600M。
- 试用: 在我们的 Hugging Face Space System One Arcade 中运行演示。
我们很期待看到你的作品。
引用格式
如果使用了本工作,请引用以下博客文章:
@article{liquidAI2026opend1,
author = {Liquid AI},
title = {Open d1: Edge decision models for text, vision, and audio},
journal = {Liquid AI Blog},
year = {2026},
note = {www.liquid.ai/blog/open-d1},
}