d1 - 单次前向传播输出校准决策的 3B 多模态决策模型
d1 是 LiquidAI 发布的 3B 参数多模态决策模型,基于 LFM2.5-VL-3B 后训练而来。据项目自述,它接收文本、JSON、图像或混合形式的状态描述与一组问题,在一次前向传播中返回带类型和置信度的答案,不产生任何输出 token。模型面向路由分流、内容审核、意图分类、重排序、LLM-as-a-judge 打分、智能体护栏与视觉检查等需要明确判断的流水线环节,而非对话场景。
d1 是 LiquidAI 发布的一个 3B 参数多模态决策模型,建立在 LFM2.5-VL-3B 之上。按项目自述,它的使用方式与常见生成式模型不同:你给它一个「状态」(可以是文本、JSON、图像,或几者的混合)以及一组问题,它在一次前向传播中返回带类型、带校准置信度的答案,且输出 token 数为零。也就是说,它不写文字、不做对话,只做判断。
据项目说明,d1-3B 适合任何需要「是/否」「从给定选项中挑一个」或「打分」的流水线环节,例如路由与分流、内容审核、意图与主题分类、抽取结果校验、重排序、LLM-as-a-judge 评分、智能体护栏以及视觉检查。项目明确表示它不是聊天模型,也不会写文本——如果你的场景需要生成自然语言回复,这个模型并不对口。
维护者与状态
该项目由 LiquidAI 维护,托管在 Hugging Face 上,任务类型标注为 image-text-to-text,框架为 transformers。仓库创建于 2026-10-05,最后更新于 2026-10-07。截至 2026-10-09,近 30 天下载量为 5370,点赞数为 192。事实表中未列出正式 release 信息,因此这里不对版本发布情况作额外说明。
主要能力
以下能力描述均来自项目自述(模型卡),并非本站实测结论。
- 单次前向、零输出 token 的决策:据项目说明,模型对同一个状态下的多个命名问题只读取一次状态及其图像,一次调用即可返回全部答案,返回结构中包含
answers与usage(其中output_tokens为 0)。 - 多模态输入:图像与文本可以出现在同一个状态里。项目自述其在 11 个公开图像基准上的平均得分为 74.1,并称把图像去掉后同样的问题只能得到 45.1 分,以此说明答案来自图像本身。
- 结构化的问答类型:问题遵循 Decision Index 的 schema,包含
type、instructions与criteria。项目列出了三种类型:noul(是/否,返回 P(yes))、choice(从命名选项中选一个,返回选项、置信度与概率分布)、score(2 到 10 个有序等级,返回期望等级、置信度、概率分布与图例)。 - 批量打包:项目提供了
system_one_batch调用,据其说明可以把多个请求打包在一起处理,且不需要 padding。 - 面向边缘与 GPU 的推理速度:项目自述在 NVIDIA RTX 4090 上单次决策约 8 ms、在 AMD MI325X 上约 9 ms、在 Apple M5 Pro 上约 30 ms,并给出了 Jetson 系列边缘设备的延迟与吞吐数据。这些数字来自项目自述,本站未做验证。
- 模型规格:据模型卡,总参数量 3.12B,视觉编码器为 SigLIP2 NaFlex shape-optimized 400M,上下文长度 32,768 tokens,词表大小 128,000。
使用入口
模型仓库地址:LiquidAI/d1-3B。
据项目说明,使用前需要安装依赖,要求 transformers>=5.14:
pip install "transformers>=5.14" torch torchvision pillow
项目自述该模型自带代码,因此加载时需要设置 trust_remote_code=True。模型卡给出的最小加载示例如下:
import torch
from transformers import AutoModel
from transformers.image_utils import load_image
device = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_available() else "cpu"
dtype = torch.float32 if device == "cpu" else torch.bfloat16
model = AutoModel.from_pretrained("LiquidAI/d1-3B", trust_remote_code=True, dtype=dtype).to(device)
调用接口方面,项目列出了两个方法:system_one(state, questions, images=None) 用于对单个状态提出多个命名问题,一次完成;system_one_batch([(state, questions[, images]), ...]) 用于批量请求。据项目说明,状态可以是字符串、任意 JSON 值,当图像本身就是全部状态时也可以传 None。
许可与限制
许可证在事实表中标注为 other,即自定义许可,具体条款以仓库中的 LICENSE 文件为准,本文不对其可否商用等作出判断。
使用边界方面,据项目自述需要注意几点:其一,d1-3B 不是聊天模型,不生成文本,只输出结构化的判断结果,把它当作对话模型使用并不合适;其二,模型自带代码,加载需要开启 trust_remote_code,这意味着运行时会执行仓库提供的代码,部署前应自行评估;其三,项目提到首次遇到新形状的输入时需要付出 kernel 选择或编译的代价,建议对实际服务的形状先做预热;其四,在 NVIDIA GPU 上使用 model.compile(mode="reduce-overhead") 可以把单个问题跑成 CUDA graph,项目称 RTX 4090 上单问题的 8 ms 数据即来自该配置,不启用时约为 16 ms。此外,模型卡中列出的延迟与基准数据均为项目方自述,未经过本站独立验证。