【免费下载链接】d1-omni-600M
d1-omni-600M 是 Liquid AI 开源的 600M 参数多模态决策模型(edge decision model):给它一段文本、一张图片或一段语音,再加上几个命名问题,它就能直接给出"是/否"、分类选择或评分答案——全程零输出 token,不生成任何文字,答案直接从模型分布中读出。对于需要意图识别、工单路由、内容审核、语音指令分类等"快速判断"场景的工程师来说,这是目前体积最小的选择之一。
一、它是什么:多模态决策模型一句话入门
🧠传统大模型 vs d1-omni-600M
| 对比项 | 普通大模型 | d1-omni-600M |
|---|---|---|
| 输出方式 | 逐 token 生成文字,需解析 | 零输出 token,直接读分布 |
| 输入模态 | 多为纯文本 | 文本 + 图像 + 语音 |
| 参数量 | 通常 7B 起步 | 587M,端侧可部署 |
| 典型用途 | 对话、写作 | 判断、路由、打分 |
它的三大核心特性:
- 视觉语言:文本 + 图像(大图自动分块,一次可传多张图)单次前向出结果
- 音频语言:文本 + 最长 30 秒语音单次前向
- 共享主干:视觉编码器(94M,SigLIP2)、音频编码器(112M,17 层 FastConformer)共用同一个 381M 的 LFM2.5 主干与决策头,三种模态跑同一套权重
⚠️ 注意:d1-omni-600M 不是聊天模型,它不写文字,只回答你定义好的"选择题"。
二、安装步骤:一条命令搞定 d1-omni-600M 环境
依赖非常轻量,要求transformers>=5.15:
pip install "transformers>=5.15" torch torchvision pillow soundfile如果希望从源码研究,仓库地址为:git clone https://gitcode.com/hf_mirrors/LiquidAI/d1-omni-600M
仓库自带的核心文件:
- modeling_d1.py:模型主体与
system_one/system_one_batchAPI - encoder.py:共享主干 Trunk 与决策头 DecisionHead
- vision.py:SigLIP2 视觉编码器与图像分块(tiling)逻辑
- audio.py:16 kHz 音频前端与 FastConformer 编码器
- prompt.py:问题渲染、选项编码与答案解析
- config.json:模型配置(上下文长度 16384、各类型温度系数等)
- tokenizer.json 与 tokenizer_config.json:分词器
- LICENSE:采用 lfm1.0 许可证
三、快速加载模型:trust_remote_code 一行搞定
模型自带推理代码,加载时需要trust_remote_code=True。最快的加载方式:
import torch from transformers import AutoModel device = "cuda" if torch.cuda.is_available() else "cpu" dtype = torch.float32 if device == "cpu" else torch.float16 model = AutoModel.from_pretrained( "LiquidAI/d1-omni-600M", trust_remote_code=True, dtype=dtype ).to(device)💡 官方实测:GPU 上用 float16 比 float32 更快,且答案完全一致;避免使用 bfloat16(约 0.8%~1.7% 的样本答案会变化)。
四、首次多模态决策:文本、图片、语音三种姿势
所有请求都通过同一个入口system_one(state, questions, images=None, audio=None)发起。问题遵循 Decision Index 规范,只有 3 种类型:
| type | 含义 | criteria 写法 | 返回字段 |
|---|---|---|---|
noul | 是 / 否 | 可选,自定义 true/false 含义 | noul(P(yes)) |
choice | 命名选项中选一 | {选项名: 描述},至少 2 项 | choice、confidence、probabilities |
score | 2~10 级有序打分 | 级别描述列表,从低到高 | score(期望级别)、legend |
4.1 文本决策:一次调用问多个问题
🎫 客服工单场景——一条输入同时回答"是否退款、归哪个团队、多紧急":
questions = { "refund": {"type": "noul", "instructions": "Is the customer asking for a refund?"}, "team": {"type": "choice", "instructions": "Which team should handle this?", "criteria": {"billing": "Charges, refunds", "technical": "App faults", "fraud": "Suspected unauthorised use"}}, "urgency": {"type": "score", "instructions": "How urgent is this?", "criteria": ["Can wait", "Today", "Blocking the customer now"]}, } print(model.system_one("I was charged twice this month, please refund one of them.", questions))返回结构统一为{"answers": {问题名: 答案}, "usage": {"input_tokens": n, "output_tokens": 0}}——注意output_tokens恒为 0,这就是"零 token 输出"的含义。
4.2 图像决策:照片本身就是状态
🐱 数一数图片里有几只猫(图片可直接作为整个 state,state传None):
from transformers.image_utils import load_image image = load_image("cats_on_sofa.jpg") cats = {"type": "choice", "instructions": "How many cats are there?", "criteria": {"one": "One", "two": "Two", "more": "Three or more"}} print(model.system_one(None, {"cats": cats}, images=[image]))大图会被自动切成最多 10 块 512px 分块加缩略图(详见 vision.py),多张图按顺序拼接即可。
4.3 语音决策:30 秒语音直接分类
🎙️ 传入 16 kHz 单声道音频(int16 或 float 采样),判断说话主题:
import soundfile as sf audio, rate = sf.read("voicenote.flac", dtype="int16") topic = {"type": "choice", "instructions": "What is the speaker talking about?", "criteria": {"food": "Food and meals", "travel": "Travel and transport", "weather": "The weather"}} print(model.system_one("Voice note from a user.", {"topic": topic}, audio=audio))⚠️ 音频能力基于"英文用户与助手对话"场景训练,音频最长 30 秒、不足 0.5 秒会自动补齐。
4.4 批量处理:一次处理一批请求
tickets = ["Where is my parcel? It was due Monday.", "The app crashes when I open settings."] print(model.system_one_batch([(t, {"team": questions["team"]}) for t in tickets]))五、模型内部是怎么工作的
想了解"零 token 决策"的魔法,可以按这条链路阅读源码:
- 媒体编码:图像/语音先被编码成一段"前缀嵌入"(prefix embeddings),接在文本前面——图像编码器见 vision.py,语音编码器见 audio.py
- 问题渲染:prompt.py 把每个问题渲染成
<bos> 状态 问题 选项0 <mask> 选项1 <mask> ... <decide>形式的 token 序列 - 主干前向:encoder.py 中的 LFM2.5 双向主干(10 个短卷积层 + 6 个注意力层)单次前向
- 决策头打分:在每个
<mask>位置做 softmax,直接得到各选项概率——这就是答案,没有任何生成环节
配置细节(如 16384 上下文、图像场景下文本截断到 896 token、各问题类型的校准温度)都写在 config.json 里。
六、性能表现与适用场景
📊 在 Decision Index 0.2.1 官方评分中,d1-omni-600M(587M)总分 15.95,在小型模型中表现领先(对比 Decider 2B 的 28.97 规模大数倍);在"当作决策任务"的基准测试中,7 项公共基准平均78.4 分,其中 Civil Comments 达 95.8、PAWS-X 达 79.5,均超过同级的 d1-3B 和 Decider 4B。
✅推荐使用场景:路由与分诊、内容审核、意图/主题分类、语音指令路由、抽取校验、重排序、Agent 护栏、视觉巡检
❌不适用:对话、长文写作(它不输出任何文字)
七、常见坑速查
| 问题 | 原因与解决 |
|---|---|
| 同时传 images 和 audio 报错 | 一个请求只能带图像或语音,二者取其一(ValueError) |
| 图片太多报 "send fewer images" | 图像前缀占满了 16384 上下文,减少图片数量或分辨率 |
| 用了 bfloat16 答案异常 | 改用 float16(GPU)或 float32(CPU) |
| 语音只识别了 30 秒 | 音频超过 30 秒会被截断,属设计行为 |
结语
d1-omni-600M 把"决策"从生成式大模型里解放出来:587M 的端侧体积、文本/图像/语音三模态统一入口、零 token 输出直读概率分布。5 分钟装好环境,几行代码就能跑通你的第一个多模态决策。如果你的业务需要大量高频的"判断型"调用,它值得立刻尝试。
【免费下载链接】d1-omni-600M
相关推荐
免费备份QQ空间历史说说:手机QQ扫码登录,不用输密码把动态存到本地
免费备份QQ空间历史说说:手机QQ扫码登录,不用输密码把动态存到本地 晚上翻QQ空间,想给五年前的老动态做个备份,才发现配图早就打不开了,逐条截图复制根本来不及
5分钟上手WeMM-Embedding-2B:多模态嵌入模型安装部署与首次跨模态检索快速入门教程
5分钟上手WeMM Embedding 2B:多模态嵌入模型安装部署与首次跨模态检索快速入门教程 WeMM Embedding 2B 是腾讯开源的一款通用 多模
人工智能Embedding多模态如何 5 分钟上手 Echo Agent:从安装到首次对话的完整新手教程
如何 5 分钟上手 Echo Agent:从安装到首次对话的完整新手教程 Echo Agent 是一款面向长期运行与桌面协作的开源 AI Agent,自带常驻
人工智能AI Agent大模型Agent 记忆工具调用RAGMCP 服务MCP ClientsAI 评测多智能体任务调度即时通讯
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考