AIsaAIsaStudio English 打开 AIsa Studio

LiquidAI 发布 LFM3 基础模型:集成六种模态并构建端侧专业智能

原标题:Build specialized multimodal models with LFM3

LiquidAI 推出 LFM3,新一代 Liquid Foundation Models,将文本、视觉、音频、全模态及决策模型集成到共享的 2B 参数级骨干架构。LFM3 采用新的三体混合架构,在参数量减少 35% 的情况下,其性能超越了 LFM2 系列模型。该模型系列包含六种专用模型,旨在支持端侧部署,如 LFM3-1.7B 的文本模型在 4-bit 精度下大小约为 1 GB。

为什么值得看

LFM3 将文本、视觉、音频及决策模型集成到共享骨干架构中,实现跨模态的专业化和端侧部署。

阅读原文 ↗10月28日 AI 日报

本页的摘要、推荐理由与解读出自 AIsa Studio 的 AI 风向智能体,原文版权归原作者所有。

深度解读

发生了什么

LiquidAI 发布了新一代 Liquid Foundation Models(LFM3)系列,定位为「专用智能的起点」。该系列将文本、视觉、音频、omni 以及决策模型统一在同一个共享骨干上,全部为 2B 参数量级。开发者可以按模态选择模型,在单张 GPU 上用自有数据微调,并部署在应用实际运行的位置。

全部六个 LFM3 模型均从 LFM3-1.7B-Base 分支而来,均为开放权重,已在 Hugging Face 上提供下载,可在 transformers 中运行,各模型卡还列出了其他支持的推理引擎。

关键细节

相比上一代 LFM2 家族,LFM3 有四项主要变化:

  • 单位参数能力更强:新的三混合(tri-hybrid)架构与训练配方使 LFM3-1.7B 在参数减少 35% 的情况下超越 LFM2.5-2.6B。
  • 同一骨干覆盖六种模态:六个 2B 级模型(文本、视觉、音频、omni、决策)均由 LFM3-1.7B-Base 训练而来,包含首个 omni 模型,视觉模型新增视频输入。
  • 面向端侧:文本模型在 4-bit 精度下约占 1 GB;自研视觉和音频编码器加速处理;文本模型拥有 256K 上下文窗口,支持智能体在设备上运行。
  • 为专用化设计:每个模型都可在单张 GPU 上微调。

架构层面,LFM3-1.7B-Base 有 24 层,包含 13 层门控短卷积(kernel size 从 LFM2 的 3 增至 7)、5 层窗口为 256 token 的滑动窗口注意力(SWA)和 6 层全局注意力,并引入逐头门控注意力、部分 RoPE 和 sandwich norm。架构搜索通过硬件在环(hardware-in-the-loop)方法覆盖 14 种设备与后端组合,从手机、树莓派 5 到笔记本、云 CPU、GPU 和 Qualcomm Hexagon NPU。

预训练数据为 22T token,使用与 LFM2.5-8B-A1B 相同的 128K 词表;最后 3.5T token 是一个 mid-training 阶段,加入更多智能体轨迹与工具调用,并将上下文窗口扩展至 256K。

各模型的具体表现:LFM3-1.7B 在 WebArena-Verified 上得分 38.42 对比前代的 3.02,在浏览器和商业应用的长任务上甚至超过 Qwen3.5-9B。LFM3-VL-2B 是首个支持视频输入的 LFM 视觉模型,参数从 LFM2.5-VL-3B 的 3.1B 降至 1.9B,62 个视觉基准平均分从 57.6 升至 71.4,与比它大六倍多的 Gemma 4 12B 持平。LFM3-Audio-2B 支持 18 种语言的语音识别、合成与翻译,语音质量 UTMOSv2 从 3.22 升至 3.83。LFM3-Omni-2B 是首个 omni 模型,在 Daily-Omni、WorldSense 和 AV-SpeakerBench 上击败了最高 10.7B 参数的模型。d1-2B 和 d1-omni-2B 则在单次前向传播中对一组问题给出带校准概率的结构化答案。

视觉编码器为自研的 164M 参数模型,计算量比此前 LFM VL 中的 SigLIP2 少 3 倍,在相同 LFM2.5-230M 语言骨干下与 Qwen3.5-2B 的视觉编码器精度相当,FLOPs 少 2.2 倍。音频方面,新的全因果音频编码器可边说话边 prefill,首 token 时间低至 50 ms;新的音频分词器 LiquidCodec 在 Apple M4 Max 单 CPU 线程上以约 87 倍实时速度将 token 转为语音。

官方还展示了机器人方向的微调案例:将 LFM3-VL-2B 适配为编排、导航、操作三个模型,其中跨 15 种具身联合训练的 VLA 在 LIBERO 四个套件上平均成功率达 96.2%,在 RoboCasa-GR1 上为 45.7%,在 Jetson AGX Orin 上以 TensorRT FP16 在 50 ms 内生成动作块。

为什么重要

LFM3 的核心思路是用一个 2B 级的小模型家族替代「一个大型通用模型」的路线:按输入模态选模型、按自有数据定制、部署在应用运行的设备上。文本模型 4-bit 下约 1 GB、256K 上下文,加上单 GPU 可微调的设计,明显瞄准端侧智能体和专用化场景。

在 agent 任务上的大幅提升(WebArena-Verified 从 3.02 到 38.42)和 mid-training 中加入的 agentic 轨迹,也表明这一代模型的设计重点是智能体工作负载而非通用对话。音频管线中的流式解码与低首 token 延迟、视觉编码器的计算削减,都是围绕端侧实时交互做的工程优化。

对谁有影响

  • 端侧/边缘部署的开发者:手机、树莓派、Jetson 等硬件上的多模态与智能体应用有了 2B 级的候选模型。
  • 做领域专用的团队:单 GPU 微调加官方提供的 SFT、DPO、GRPO、CPT 微调 notebook(涵盖结构化抽取、工具调用、语音指令映射等任务)降低了定制门槛。
  • 语音与多模态应用开发者:18 语言语音能力、可替换 ASR/VLM/LLM/TTS 组合的 omni 模型,以及输出校准概率的 d1 决策模型,覆盖了客服、文档处理等典型场景。
  • 机器人方向的研究者与工程师:官方案例显示该视觉模型可作为从高层规划到低层控制的紧凑基础。
全文翻译

以下翻译只覆盖原文的前一部分,其余内容请看下方原文。

LFM3 是我们新一代的液体基础模型(Liquid Foundation Models, LFMs),旨在成为专用智能的起点。它将文本、视觉、音频、全模态和决策模型整合到同一个共享骨干网络中,参数量均在 2B 级别。这意味着你可以选择适合你模态的模型,在单个 GPU 上使用自己的数据进行微调,并在应用程序运行的地方部署它。

与之前的 LFM2 系列相比,LFM3 带来了四项主要改进:

  • 每个参数的能力更强: 新的三混合架构和训练配方使 LFM3-1.7B 在使用少 35% 参数的情况下,性能优于 LFM2.5-2.6B。
  • 所有模态共用一个骨干网络: 六个 2B 级别的模型(文本、视觉、音频、全模态和决策)均从 LFM3-1.7B-Base 训练而来,包括我们的首个全模态模型以及视觉模型的视频输入功能。
  • 专为边缘计算打造: 文本模型在 4-bit 精度下仅需约 1 GB 内存,全新的自研视觉和音频编码器加速了处理过程,而文本模型的 256K 上下文窗口使得代理(agents)可以在设备端运行。
  • 专为专用化设计: 每个模型都可以在单个 GPU 上进行微调,因此你可以将其适应你的数据、术语和部署环境。

如何构建更具表现力的骨干网络

LFM2 证明了短卷积与注意力机制的混合可以在设备端快速运行而不牺牲质量。对于 LFM3,我们利用硬件在环的架构搜索,重新设计了该架构以适应代理用例,这些用例需要更高的每参数能力和长上下文下的快速推理。现在的搜索涵盖了 14 种设备和后端组合,从手机和 Raspberry Pi 5 到笔记本电脑、云 CPU、GPU 以及 Qualcomm Hexagon NPU。

lfm3-1.7b-architecture

LFM3-1.7B-Base 拥有 24 层,并包含四项主要改进:

  1. 三混合层混合: 13 个门控短卷积、5 个滑动窗口注意力(SWA)层(窗口大小为 256 个 token)和 6 个全局注意力层。卷积使用的核大小为 7,较 LFM2 中的 3 有所增加。
  2. 逐头门控注意力: Sigmoid 门控缩放每个头的输出,以便在头没有贡献时关闭。这有助于抑制损害量化的激活异常值。
  3. 部分 RoPE: 全局注意力层仅旋转每个头最高频率的一半,因此另一半无论距离如何都能匹配内容。SWA 层保留完整的 RoPE。
  4. 三明治归一化: 每个块对其输入和输出都进行归一化,以保持激活值的尺度合理。

收益体现在长上下文中。按参数计算,LFM3-1.7B 在边缘设备上针对短提示的表现与 LFM2-1.2B 相当,而在上下文包含 8K 个 token 时速度提高了约 25%。LFM3-1.7B-Base 使用与 LFM2.5-8B-A1B 相同的 128K 词汇表预训练了 22T 个 token。最后的 3.5T 个 token 是在精选数据上的中期训练阶段,其中代理轨迹和工具调用的比例更高,这也将上下文窗口扩展到了 256K 个 token。

一个骨干网络对应六个模型

每个 LFM3 模型都源自 LFM3-1.7B-Base。与其运行一个大型通用模型,不如选择适合你输入的模型,对其进行定制,并在设备端运行。

lfm3-post-training

模型 输入 输出 基于
LFM3-1.7B 文本 文本 LFM3-1.7B-Base
LFM3-VL-2B 文本、图像、视频 文本 LFM3 骨干网络 + 视觉编码器
LFM3-Audio-2B 文本、音频 文本、语音 LFM3 骨干网络 + 音频编码器、音频解码器和 LiquidCodec
LFM3-Omni-2B 文本、图像、视频、音频 文本、语音 LFM3 骨干网络 + 视觉和音频编码器以及音频解码器
d1-2B 文本、图像、视频 校准后的答案 LFM3-VL-2B
d1-omni-2B 文本、图像、视频、音频 校准后的答案 LFM3-Omni-2B

视觉和音频模型还获得了两个新的自研编码器:

  • 视觉编码器: 它结合了卷积和注意力机制,计算量比之前 LFM VL 模型中使用的 SigLIP2 编码器少 3 倍。我们拥有 1.64 亿参数的编码器在准确性上与 Qwen3.5-2B 的视觉编码器相当,但所需的 FLOPs 减少了 2.2 倍(两者均使用相同的 LFM2.5-230M 语言骨干网络进行测量)。对于视频,它将每对采样的帧嵌入到一个时间切片中,从而将时间序列长度减半。
  • 音频编码器和 LiquidCodec: 音频编码器混合了滑动窗口注意力和短卷积,并且是完全因果的,因此在你说话时模型可以预填充,首 token 延迟低至 50 毫秒。LiquidCodec 是我们新的音频标记器,在 Apple M4 Max 的单线程 CPU 上以约 87 倍实时速度将生成的 token 转换为语音,并支持流式解码。

如何使用 LFM3 模型

每个模型都在 transformers 中运行。以下代码片段来自模型卡片,其中还列出了每个模型支持的其他推理引擎。

LFM3-1.7B

当你需要本地代理、工具调用、结构化输出或领域特定微调的基础时,请选择 LFM3-1.7B。它经过后训练,可在 Hermes Agent、Pi 和 OpenClaw 等代理框架中运行。它的性能优于前代产品 LFM2.5-2.6B,参数减少了 35%,最大的提升在于代理任务:在 WebArena-Verified 上,得分为 38.42,而前代为 3.02;甚至在浏览器和商业应用的长任务中,它也击败了 Qwen3.5-9B。你可以在 LFM3-1.7B 模型卡片 中找到更多详细信息。

要运行 LFM3-1.7B,请安装最新版本的 transformers:

pip install -U transformers

然后加载并运行模型:

from transformers import pipeline

generator = pipeline(
    "text-generation",
    model="LiquidAI/LFM3-1.7B",
    trust_remote_code=True,
)

messages = [{"role": "user", "content": "What is C. elegans?"}]
output = generator(
    messages,
    do_sample=True,
    temperature=0.1,
    top_k=50,
    repetition_penalty=1.1,
    max_new_tokens=2048,
)
print(output[0]["generated_text"][-1]["content"])

有关本地代理设置,请参阅 Agent Harnesses 指南。

LFM3-VL-2B

当你需要在设备端进行视觉理解时,请选择 LFM3-VL-2B。它是第一个接受视频作为输入的 LFM 视觉模型;它在回答之前会逐步推理,并能发现物体并推理它们的放置方式,这是机器人的强大基础。与 LFM2.5-VL-3B 相比,它的参数更少(1.9B 对比 3.1B),但在 62 个视觉基准测试中的平均分从 57.6 提高到 71.4,与 Gemma 4 12B 相当,后者是一个大六倍多的模型。你可以在 LFM3-VL-2B 模型卡片 中找到更多详细信息。

要运行 LFM3-VL-2B,请安装带有视觉依赖项的 transformers>=5.21.0:

pip install "transformers>=5.21.0" torch torchvision pillow

然后加载并运行模型:

import torch
from transformers import AutoModelForImageTextToText, AutoProcessor

model_id = "LiquidAI/LFM3-VL-2B"

model = AutoModelForImageTextToText.from_pretrained(model_id, dtype=torch.bfloat16, device_map="auto", trust_remote_code=True)
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)

messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "url": "https://placecats.com/300/200"},
            {"type": "text", "text": "Describe this image."},
        ],
    }
]

inputs = processor.apply_chat_template(
    messages,
    add_generation_prompt=True,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

with torch.inference_mode():
    output_ids = model.generate(
        **inputs,
        do_sample=True,
        temperature=0.1,
        top_k=50,
        repetition_penalty=1.1,
        max_new_tokens=16384,  # generate() 需要一个明确的限制;推理可能很长
    )

generated_ids = output_ids[:, inputs["input_ids"].shape[1] :]
print(processor.batch_decode(generated_ids, skip_special_tokens=True)[0])

有关工具调用、工具搜索和使用 llama.cpp 进行设备端推理的信息,请参阅 LFM3-VL-2B 模型卡片。

LFM3-Audio-2B

当你需要在笔记本电脑或边缘设备上进行语音聊天、语音识别、语音合成或跨 18 种语言的翻译时,请选择 LFM3-Audio-2B。它以文本或音频作为输入,并以文本、语音或两者兼有的形式响应,还可以将口头请求转换为工具调用。与 LFM2.5-Audio-1.5B 相比,它使用了新的自研音频编码器和语音编解码器,语音质量更高(UTMOSv2 3.83 对比 3.22),并增加了音频理解、通用音频推理和工具调用功能。你可以在 LFM3-Audio-2B 模型卡片 中找到更多详细信息。

要运行 LFM3-Audio-2B,请安装带有音频依赖项的 transformers>=5.20.2:

pip install "transformers>=5.20.2" torch accelerate librosa soundfile

直接从 Hugging Face Hub 加载模型和处理器:

import torch
import soundfile as sf

from transformers import AutoModelForMultimodalLM, AutoProcessor

model_id = "LiquidAI/LFM3-Audio-2B"
device = "cuda" if torch.cuda.is_available() else "cpu"
dtype = torch.bfloat16 if device == "cuda" else torch.float32

model = AutoModelForMultimodalLM.from_pretrained(
    model_id, dtype=dtype, device_map=device, trust_remote_code=True
).eval()
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
codec = processor.audio_tokenizer.to(device=device).eval()

然后大声提问并获得文本和语音回复:

conversation = [
    {"role": "system", "content": "Respond with interleaved text and audio."},
    {"role": "user", "content": [{"type": "audio", "audio": "question.wav"}]},
    {"role": "assistant", "content": "<|mixed_start|>"},
]
inputs = processor.apply_chat_template(
    conversation,
    continue_final_message=True,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
).to(device)
with torch.no_grad():
    outputs = model.generate(
        **inputs,
        max_new_tokens=1024,
        audio_temperature=1.0,
        audio_top_k=128,
        audio_repetition_penalty=1.1,
        audio_repetition_window=4096,
        return_dict_in_generate=True,
    )

    text = processor.decode(
        outputs.sequences[0, inputs["input_ids"].shape[1]:],
        skip_special_tokens=True,
    )
    waveform = codec.decode(
        outputs.audio_codes[:1, :, :outputs.audio_lengths[0]]
    ).audio_values[0]  # 24 kHz
print(text)
sf.write("reply.wav", waveform.float().cpu().numpy(), 24_000)

有关实时语音识别、语音合成、音频理解和工具调用的信息,请参阅 LFM3-Audio-2B 模型卡片。

LFM3-Omni-2B

当你需要一个在设备端能看、能听并能回应的模型,以替代单独的 ASR 模型、视觉语言模型、LLM 和 TTS 模型时,请选择 LFM3-Omni-2B。它可以回答关于图像的口头问题,同时观看和聆听视频,并将所见所闻转化为工具调用。它是我们的首个全模态模型,具有文本、视觉和音频输入,以及文本和语音输出,并保留了核心能力

查看原文

LFM3 is our new generation of Liquid Foundation Models (LFMs), built to be the starting point for specialized intelligence. It brings text, vision, audio, omni, and decision models onto one shared backbone, all in the 2B parameter range. This means you can pick the model for your modality, fine-tune it on your own data on a single GPU, and deploy it where your application runs.

LFM3 brings four main changes compared to our previous LFM2 family:

  • More capability per parameter: a new tri-hybrid architecture and training recipe allow LFM3-1.7B to outperform LFM2.5-2.6B while using 35% fewer parameters.
  • Every modality on one backbone: six 2B-class models (text, vision, audio, omni, and decision) trained from LFM3-1.7B-Base, including our first omni model and video input for our vision model.
  • Built for the edge: the text model fits in about 1 GB at 4-bit precision, new in-house vision and audio encoders speed up processing, and the text model’s 256K context window lets agents run on-device.
  • Made to be specialized: every model fine-tunes on a single GPU, so you can adapt it to your data, terminology, and deployment environment.

How we built a more expressive backbone

LFM2 showed that a hybrid of short convolutions and attention can run fast on-device without sacrificing quality. For LFM3, we used our hardware-in-the-loop architecture search to redesign that architecture for agentic use cases, which need more capability per parameter and fast inference over long contexts. The search now covers 14 device and backend combinations, from phones and a Raspberry Pi 5 to laptops, cloud CPUs, GPUs, and the Qualcomm Hexagon NPU.

lfm3-1.7b-architecture

LFM3-1.7B-Base has 24 layers and four main changes:

  1. Tri-hybrid layer mix: 13 gated short convolutions, 5 sliding-window attention (SWA) layers with a 256-token window, and 6 global attention layers. The convolutions use a kernel size of 7, up from 3 in LFM2.
  2. Head-wise gated attention: a sigmoid gate scales each head's output, so a head can switch off when it has nothing to add. This can help suppress activation outliers that hurt quantization.
  3. Partial RoPE: global attention layers rotate only the highest-frequency half of each head, so the other half matches on content regardless of distance. SWA layers keep full RoPE.
  4. Sandwich norm: each block normalizes both its input and its output to keep activations well-scaled.

The payoff shows at long context. Per parameter, LFM3-1.7B matches LFM2-1.2B on short prompts across edge devices, and with 8K tokens in context it is about 25% faster. LFM3-1.7B-Base was pre-trained on 22T tokens with the same 128K vocabulary as LFM2.5-8B-A1B. The final 3.5T tokens are a mid-training stage on curated data with a larger share of agentic traces and tool calls, which also extends the context window to 256K tokens.

One backbone for six models

Every LFM3 model branches from LFM3-1.7B-Base. Instead of running one large general-purpose model, you pick the one that fits your inputs, customize it, and run it on-device.

lfm3-post-training

Model

Input

Output

Built on

LFM3-1.7B

Text

Text

LFM3-1.7B-Base

LFM3-VL-2B

Text, images, video

Text

LFM3 backbone + vision encoder

LFM3-Audio-2B

Text, audio

Text, speech

LFM3 backbone + audio encoder, audio decoder, and LiquidCodec

LFM3-Omni-2B

Text, images, video, audio

Text, speech

LFM3 backbone + vision and audio encoders and audio decoder

d1-2B

Text, images, video

Calibrated answers

LFM3-VL-2B

d1-omni-2B

Text, images, video, audio

Calibrated answers

LFM3-Omni-2B

The vision and audio models also get two new in-house encoders:

  • Vision encoder: it combines convolution and attention and uses 3x less compute than the SigLIP2 encoder in previous LFM VL models. Our 164M-parameter encoder matches Qwen3.5-2B's vision encoder in accuracy while requiring 2.2x fewer FLOPs (both measured with the same LFM2.5-230M language backbone). For video, it embeds each pair of sampled frames into one temporal slice, halving the temporal sequence length.
  • Audio encoder and LiquidCodec: the audio encoder mixes sliding-window attention and short convolutions and is fully causal, so the model can prefill while you speak, with time to first token as low as 50 ms. LiquidCodec, our new audio tokenizer, turns generated tokens into speech at about 87x real time on a single CPU thread on Apple M4 Max and supports streaming decoding.

How to use the LFM3 models

Each model runs in transformers. The snippets below come from the model cards, which also list the other inference engines each model supports.

LFM3-1.7B

Reach for LFM3-1.7B when you need local agents, tool calling, structured outputs, or a base for domain-specific fine-tuning. It is post-trained to run in agentic harnesses such as Hermes Agent, Pi, and OpenClaw. It outperforms its predecessor, LFM2.5-2.6B, with 35% fewer parameters, and the biggest gains are on agentic tasks: on WebArena-Verified, it scores 38.42 against 3.02, and it even beats Qwen3.5-9B on long tasks in browsers and business apps. You can find more details in the LFM3-1.7B model card.

To run LFM3-1.7B, install the latest version of transformers:

pip install -U transformers

Then load and run the model:

from transformers import pipeline

generator = pipeline(
    "text-generation",
    model="LiquidAI/LFM3-1.7B",
    trust_remote_code=True,
)

messages = [{"role": "user", "content": "What is C. elegans?"}]
output = generator(
    messages,
    do_sample=True,
    temperature=0.1,
    top_k=50,
    repetition_penalty=1.1,
    max_new_tokens=2048,
)
print(output[0]["generated_text"][-1]["content"])

For local agent setup, see the Agent Harnesses guide.

LFM3-VL-2B

Reach for LFM3-VL-2B when you need on-device visual understanding. It is the first LFM vision model that takes video as input; it reasons step by step before it answers, and it finds objects and reasons about how they are placed, a strong foundation for robotics. Compared with LFM2.5-VL-3B, it has fewer parameters (1.9B against 3.1B) yet raises the average across 62 vision benchmarks from 57.6 to 71.4, on par with Gemma 4 12B, a model more than six times larger. You can find more details in the LFM3-VL-2B model card.

To run LFM3-VL-2B, install transformers>=5.21.0 with its vision dependencies:

pip install "transformers>=5.21.0" torch torchvision pillow

Then load and run the model:

import torch
from transformers import AutoModelForImageTextToText, AutoProcessor

model_id = "LiquidAI/LFM3-VL-2B"

model = AutoModelForImageTextToText.from_pretrained(model_id, dtype=torch.bfloat16, device_map="auto", trust_remote_code=True)
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)

messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "url": "https://placecats.com/300/200"},
            {"type": "text", "text": "Describe this image."},
        ],
    }
]

inputs = processor.apply_chat_template(
    messages,
    add_generation_prompt=True,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

with torch.inference_mode():
    output_ids = model.generate(
        **inputs,
        do_sample=True,
        temperature=0.1,
        top_k=50,
        repetition_penalty=1.1,
        max_new_tokens=16384,  # generate() needs an explicit limit; reasoning can be long
    )

generated_ids = output_ids[:, inputs["input_ids"].shape[1] :]
print(processor.batch_decode(generated_ids, skip_special_tokens=True)[0])

See the LFM3-VL-2B model card for tool calling, tool search, and on-device inference with llama.cpp.

LFM3-Audio-2B

Reach for LFM3-Audio-2B when you need voice chat, speech recognition, speech synthesis, or translation across 18 languages on a laptop or edge device. It takes text or audio as input and responds with text, speech, or both, and it can turn spoken requests into tool calls. Compared with LFM2.5-Audio-1.5B, it uses a new in-house audio encoder and speech codec, speaks with higher quality (UTMOSv2 3.83 against 3.22), and adds audio understanding, general-purpose audio reasoning, and tool calling. You can find more details in the LFM3-Audio-2B model card.

To run LFM3-Audio-2B, install transformers>=5.20.2 with its audio dependencies:

pip install "transformers>=5.20.2" torch accelerate librosa soundfile

Load the model and processor directly from the Hugging Face Hub:

import torch
import soundfile as sf

from transformers import AutoModelForMultimodalLM, AutoProcessor

model_id = "LiquidAI/LFM3-Audio-2B"
device = "cuda" if torch.cuda.is_available() else "cpu"
dtype = torch.bfloat16 if device == "cuda" else torch.float32

model = AutoModelForMultimodalLM.from_pretrained(
    model_id, dtype=dtype, device_map=device, trust_remote_code=True
).eval()
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
codec = processor.audio_tokenizer.to(device=device).eval()

Then ask a question aloud and get a reply in text and speech:

conversation = [
    {"role": "system", "content": "Respond with interleaved text and audio."},
    {"role": "user", "content": [{"type": "audio", "audio": "question.wav"}]},
    {"role": "assistant", "content": "<|mixed_start|>"},
]
inputs = processor.apply_chat_template(
    conversation,
    continue_final_message=True,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
).to(device)
with torch.no_grad():
    outputs = model.generate(
        **inputs,
        max_new_tokens=1024,
        audio_temperature=1.0,
        audio_top_k=128,
        audio_repetition_penalty=1.1,
        audio_repetition_window=4096,
        return_dict_in_generate=True,
    )

    text = processor.decode(
        outputs.sequences[0, inputs["input_ids"].shape[1]:],
        skip_special_tokens=True,
    )
    waveform = codec.decode(
        outputs.audio_codes[:1, :, :outputs.audio_lengths[0]]
    ).audio_values[0]  # 24 kHz
print(text)
sf.write("reply.wav", waveform.float().cpu().numpy(), 24_000)

See the LFM3-Audio-2B model card for live speech recognition, speech synthesis, audio understanding, and tool calling.

LFM3-Omni-2B

Reach for LFM3-Omni-2B when you need one on-device model that sees, listens, and talks back, in place of a separate ASR model, vision-language model, LLM, and TTS model. It can answer spoken questions about an image, watch and listen to a video together, and turn what it sees and hears into tool calls. It is our first omni model, with text, vision, and audio input and both text and speech output, and it keeps the core capabilities of the standalone LFM3 models, including visual question answering, speech recognition, speech synthesis, and instruction following. Like LFM3-Audio-2B, it speaks through LiquidCodec, which turns generated tokens into speech faster than real time, so spoken replies stream as the model generates them. On audio-visual video understanding, it beats models up to 10.7B parameters, such as Qwen2.5-Omni-7B, on Daily-Omni, WorldSense, and AV-SpeakerBench. You can find more details in the LFM3-Omni-2B model card.

To run LFM3-Omni-2B, install transformers>=5.20.2 with its vision and audio dependencies:

pip install "transformers>=5.20.2" torch torchvision torchcodec accelerate pillow librosa soundfile
import torch
import soundfile as sf

from transformers import AutoModelForMultimodalLM, AutoProcessor

model_id = "LiquidAI/LFM3-Omni-2B"
device = "cuda" if torch.cuda.is_available() else "cpu"
dtype = torch.bfloat16 if device == "cuda" else torch.float32

model = AutoModelForMultimodalLM.from_pretrained(
    model_id, dtype=dtype, device_map=device, trust_remote_code=True
).eval()
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
codec = processor.audio_tokenizer.to(device=device).eval()

Then ask a question about a photo by voice:

conversation = [
    {
        "role": "system",
        "content": "Answer questions about the provided image. Base every answer only on what can be seen. Respond with text.",
    },
    {
        "role": "user",
        "content": [
            {"type": "image", "image": "photo.jpg"},
            {"type": "audio", "audio": "question.wav"},
        ],
    },
]
inputs = processor.apply_chat_template(
    conversation,
    add_generation_prompt=True,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
).to(device)

with torch.no_grad():
    outputs = model.generate(**inputs, max_new_tokens=1024, generation_mode="text")

print(processor.decode(
    outputs.sequences[0, inputs["input_ids"].shape[1]:outputs.sequence_lengths[0]],
    skip_special_tokens=True,
))

See the LFM3-Omni-2B model card for speech output, video with its soundtrack, and tool calling.

d1-2B and d1-omni-2B

Reach for the d1 models when you need fast, structured decisions instead of generated text. Give them a situation (a support ticket, an invoice, an app screen, a photo, a voice note) and a list of questions, and they answer all of them in a single forward pass, each with a calibrated probability. Beyond yes/no, choices, and scores, they can now point at objects, read values from documents, estimate numbers with a range, and pick every option that applies. You can find more details in the model cards for d1-2B and d1-omni-2B.

Between the two d1 models:

  • d1-2B: choose it for text, pictures, and video. It replaces d1-3B with a third fewer parameters and scores higher on all four of our decision suites, for example, 75.5 against 64.0 on ImajevBench.
  • d1-omni-2B: choose it when your inputs include audio. If you ask by voice instead of in writing, it keeps nearly all of its accuracy.

To run d1-2B, install transformers>=5.19 with its vision dependencies:

pip install "transformers>=5.19" torch torchvision pillow

Then load d1-2B and ask it several questions about one support ticket in a single pass:

import torch
from transformers import AutoModel

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-2B", trust_remote_code=True, dtype=dtype).to(device)

# Several named questions over one state, answered in one pass
questions = {
    "refund": {"type": "noul", "instructions": "Is the customer asking for a refund?"},  # yes/no: P(yes)
    "team": {"type": "choice", "instructions": "Which team should handle this?",
             "criteria": {"billing": "Charges, refunds, invoices", "shipping": "Delivery and parcels",
                          "technical": "App or site faults"}},
    "topics": {"type": "choice", "multiple": True, "instructions": "Which topics does the message raise?",
               "criteria": {"billing": "Payments and charges", "delivery": "Shipping and parcels",
                            "login": "Signing in to the account"}},
    "urgency": {"type": "score", "instructions": "How urgent is this ticket?", "criteria": ["low", "medium", "high"]},
}
out = model.system_one("I was charged twice and my parcel never arrived. Please refund one charge.", questions)
a = out["answers"]
urgency = a["urgency"]["legend"][str(int(a["urgency"]["score"]))]
print(round(a["refund"]["noul"], 2), a["team"]["choice"], a["topics"]["choices"], urgency)
# 1.0 billing ['billing', 'delivery'] medium

For brevity, we only include the example for d1-2B. See the d1-omni-2B model card for audio clips and spoken questions.

Fine-tune LFM3 for your task

LFM3 is built to be specialized. Frontier models are powerful generalists, but they are not necessarily experts in your use case. LFM3 packs extra capacity into a small, fast model, so a short fine-tune can turn it into a reliable expert on your task, with your data, terminology, and tools. Because it is small, you can deploy the fine-tuned model where your application runs, from devices to private infrastructure to the cloud.

Every model can be fine-tuned on a single GPU, and these notebooks walk you through a complete task for the text, vision, audio, and omni models, from data preparation to evaluation.

Model

Method

Task

Notebook

LFM3-1.7B

SFT

Extract structured JSON from messy documents

Open in Colab

LFM3-1.7B

DPO

Answer from retrieved documents, or decline

Open in Colab

LFM3-1.7B

GRPO

Call the right tools in a 108-tool phone app

Open in Colab

LFM3-1.7B

CPT

Learn a new language (Turkish) from raw text

Open in Colab

LFM3-VL-2B

SFT

Read receipt photos into JSON

Open in Colab

LFM3-VL-2B

GRPO

Transcribe images of equations to LaTeX

Open in Colab

LFM3-Audio-2B

SFT

Map spoken smart-home commands to function calls

Open in Colab

LFM3-Audio-2B

SFT

Teach the model a new voice

Open in Colab

LFM3-Omni-2B

SFT

Map spoken smart-home commands to function calls

Open in Colab

LFM3-Omni-2B

SFT

Answer spoken questions about medical images

Open in Colab

Example: teaching LFM3 to act

We adapt LFM3-VL-2B into three complementary robotics models for orchestration, navigation, and manipulation. The orchestrator operates a robot arm through tool calls: it grounds objects by pointing, measures them with depth tools, invokes motion planners, and checks outcomes in subsequent camera images. The navigator follows route descriptions using recent RGB observations, predicting spatial targets and a waypoint trajectory in just five tokens. The manipulation VLA maps images, language, and robot state to eight-step chunks of continuous actions in a single forward pass. Jointly trained across 15 embodiments, the VLA achieves 96.2% average success across the four LIBERO suites and 45.7% on RoboCasa-GR1 tabletop tasks, generating action chunks in under 50 ms on a Jetson AGX Orin with TensorRT FP16. These results highlight LFM3-VL-2B as a compact foundation for robotics, spanning high-level planning to low-level control with real-time action generation on embedded hardware.

Watch LFM3-VL-2B handle perception, navigation, and manipulation in this demo video.

Video title

Get Started with LFM3

All LFM3 models are open-weight and available on Hugging Face today:

We can't wait to see what you build.

Citation

If you use this work, please cite the release blog:

@article{liquidAI2026LFM3,
  author = {Liquid AI},
  title = {Introducing LFM3: Every Modality for Specialized Intelligence},
  journal = {Liquid AI Blog},
  year = {2026},
  note = {www.liquid.ai/blog/lfm3},
}

原文版权归 Hugging Face Blog 及原作者所有,本站转载仅供阅读。如需删除,请联系 support@aisa.one。

事件综述

LiquidAI 发布 LFM3 系列端侧基础模型,覆盖文本、音频与全模态

2026 年 10 月 27 日,LiquidAI 发布新一代液态基础模型系列 LFM3。据 Hugging Face 博客,LFM3 采用新的三混合(tri-hybrid)架构,将文本、视觉、音频、全模态及决策模型集成到共享的 2B 参数级骨干,在参数量减少 35% 的情况下性能超越 LFM2 系列,系列包含六个专用模型,针对 GPU、CPU、NPU 等 14 种处理器类别优化,面向端侧部署。 具体模型陆续披露:LFM3-1.7B 为 1.73B 参数文本模型,支持 256K token 上下文窗口和 16 种语言,针对智能体框架做后训练,4-bit 精度下约 1 GB;作者说明其适合本地智能体、工具调用和结构化输出,但模型较小,不建议用于 agentic coding 或复杂多步推理。LFM3-Omni-2B 是家族首个全模态模型,总参数 2.17B,单一模型理解文本、图像、视频、音频并以文本和语音输出,上下文 32K tokens,语音输出 24 kHz,视频按 2 fps 采样(默认 4 至 384 帧),已有 GGUF 格式支持本地 CPU/GPU 推理。LFM3-Audio-2B 为 2B 音频模型,采用 LFM3 主干和 LiquidCodec 音频分词器,支持 18 种语言的语音转写、合成与翻译、音频理解、语音聊天和工具调用,上下文 32K token,语音质量较 LFM2.5-Audio 提升,纯文本回复仅支持英文。

其他来源的报道 5