跳到主要內容
maxstudioNews
產品Hugging Face Blog約 15 分鐘

Hugging Face 推出 LFM3:打造專用多模態模型的起點

Hugging Face 發布了新一代 Liquid Foundation Models (LFM) 系列 LFM3,旨在成為專用智慧的基礎。LFM3 將文字、視覺、音訊、全能和決策模型整合到一個共享的 20 億參數骨幹網路,並支援在單一 GPU 上進行微調,實現高效的邊緣部署。

Hugging Face 推出 LFM3:打造專用多模態模型的起點
圖片來源:Hugging Face Blog

LFM3 是我們新一代的 Liquid Foundation Models (LFM),旨在成為專用智慧的起點。它將文字、視覺、音訊、全能和決策模型整合到一個共享的骨幹網路,所有模型都在 20 億參數範圍內。

這表示您可以根據您的模態選擇模型,在單一 GPU 上使用自己的資料進行微調,並將其部署到您的應用程式運行的地方。

與我們之前的 LFM2 系列相比,LFM3 帶來了四個主要變化:

每個參數提供更強大的功能:全新的三混合架構和訓練配方,使 LFM3-1.7B 在參數減少 35% 的情況下,效能超越 LFM2.5-2.6B。

所有模態共用一個骨幹網路:從 LFM3-1.7B-Base 訓練出六個 20 億級模型(文字、視覺、音訊、全能和決策),其中包括我們首個全能模型,以及視覺模型的視訊輸入功能。

專為邊緣裝置打造:文字模型在 4 位元精度下約佔 1 GB 空間,新的內部視覺和音訊編碼器加快了處理速度,而文字模型 256K 的上下文視窗讓代理程式能夠在裝置上運行。

專為專業化設計:每個模型都可以在單一 GPU 上進行微調,因此您可以根據自己的資料、術語和部署環境進行調整。

LFM2 證明了短卷積和注意力機制的混合架構,可以在不犧牲品質的情況下,在裝置上快速運行。對於 LFM3,我們利用硬體在迴路(hardware-in-the-loop)架構搜尋,重新設計了該架構,以適應代理(agentic)使用案例。

這些案例需要每個參數具備更強大的功能,並在長上下文上進行快速推論。目前的搜尋範圍涵蓋 14 種裝置和後端組合,從手機、Raspberry Pi 5 到筆記型電腦、雲端 CPU、GPU 和 Qualcomm Hexagon NPU。

LFM3-1.7B-Base 擁有 24 層,並有四個主要變化:

三混合層組合:13 個門控短卷積層、5 個帶有 256 個 token 視窗的滑動視窗注意力(SWA)層,以及 6 個全域注意力層。卷積核大小從 LFM2 的 3 增加到 7。

頭部級門控注意力:一個 sigmoid 門控會縮放每個頭部的輸出,因此當一個頭部沒有額外資訊時可以關閉。這有助於抑制損害量化的活化異常值。

部分 RoPE:全域注意力層只旋轉每個頭部的高頻一半,因此另一半無論距離多遠都能在內容上匹配。SWA 層則保留完整的 RoPE。

三明治正規化:每個區塊都會正規化其輸入和輸出,以保持活化值的良好縮放。

其優勢在長上下文中顯現。在邊緣裝置上,LFM3-1.7B 在短提示詞方面,每個參數的效能與 LFM2-1.2B 相當,而在 8K token 的上下文中,速度約快 25%。

LFM3-1.7B-Base 使用與 LFM2.5-8B-A1B 相同的 128K 詞彙表,在 22 兆個 token 上進行了預訓練。最後的 3.5 兆個 token 是在精選資料上進行的中期訓練階段,其中包含更大比例的代理追蹤和工具呼叫,這也將上下文視窗擴展到 256K token。

每個 LFM3 模型都源自 LFM3-1.7B-Base。您無需運行一個大型通用模型,而是選擇一個適合您輸入的模型,進行客製化,並在裝置上運行。

| 模型 | 輸入 | 輸出 | 建基於 |

|---|---|---|---|

| 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 轉換為語音,並支援串流解碼。

每個模型都在 transformers 框架中運行。以下程式碼片段來自模型卡,其中也列出了每個模型支援的其他推論引擎。

當您需要本地代理、工具呼叫、結構化輸出,或作為特定領域微調的基礎時,請選擇 LFM3-1.7B。它經過後訓練,可在 Hermes Agent、Pi 和 OpenClaw 等代理框架中運行。

它以減少 35% 的參數,超越了其前身 LFM2.5-2.6B,並且在代理任務上取得了最大的進步:在 WebArena-Verified 上,它獲得 38.42 分,而 LFM2.5-2.6B 僅為 3.02 分,甚至在瀏覽器和商業應用程式的長任務中擊敗了 Qwen3.5-9B。您可以在 LFM3-1.7B 模型卡中找到更多詳細資訊。

```python

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。這是第一個接受視訊作為輸入的 LFM 視覺模型;它在回答之前會逐步推理,並能找到物體並推斷它們的放置方式,為機器人技術奠定了堅實的基礎。

與 LFM2.5-VL-3B 相比,它參數更少(19 億對 31 億),但在 62 個視覺基準測試中的平均分數從 57.6 提高到 71.4,與大六倍多的 Gemma 4 12B 模型相當。您可以在 LFM3-VL-2B 模型卡中找到更多詳細資訊。

```python

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() 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])

```

有關工具呼叫、工具搜尋以及使用 llama.cpp 進行裝置上推論的資訊,請參閱 LFM3-VL-2B 模型卡。

當您需要在筆記型電腦或邊緣裝置上進行語音聊天、語音辨識、語音合成或 18 種語言翻譯時,請選擇 LFM3-Audio-2B。它接受文字或音訊作為輸入,並以文字、語音或兩者回應,並且可以將語音請求轉換為工具呼叫。

與 LFM2.5-Audio-1.5B 相比,它使用了新的內部音訊編碼器和語音編解碼器,語音品質更高(UTMOSv2 3.83 對 3.22),並增加了音訊理解、通用音訊推理和工具呼叫功能。您可以在 LFM3-Audio-2B 模型卡中找到更多詳細資訊。

```python

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

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 模型卡。

當您需要一個能夠看、聽、說的裝置上模型,以取代獨立的 ASR 模型、視覺語言模型、LLM 和 TTS 模型時,請選擇 LFM3-Omni-2B。它可以回答關於圖像的語音問題,一起觀看和聆聽視訊,並將其所見所聞轉換為工具呼叫。

這是我們第一個全能模型,具備文字、視覺和音訊輸入以及文字和語音輸出,並保留了獨立 LFM3 模型的核心功能,包括視覺問答、語音辨識、語音合成和指令遵循。與 LFM3-Audio-2B 一樣,它透過 LiquidCodec 發聲,能以比即時更快的速度將生成的 token 轉換為語音,因此語音回覆會在模型生成時進行串流。

在影音視訊理解方面,它在 Daily-Omni、WorldSense 和 AV-SpeakerBench 上擊敗了高達 107 億參數的模型,例如 Qwen2.5-Omni-7B。您可以在 LFM3-Omni-2B 模型卡中找到更多詳細資訊。

```python

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()

conversation = [

{

"role": "system",

"content": "Answer questions about the provided image. Base every ans"

```

Share

覺得值得一看?分享給朋友。

以上為 AI 自動翻譯導讀。原文版權歸 Hugging Face Blog 所有, 建議透過「閱讀原文」前往原始網站,以取得最完整資訊並支持原作者。

Newsletter

不用每天追,AI 重點每週寄給你

43 個來源、每 2 小時更新,太多看不完。電子報每週挑最值得看的幾則,附上 Max 的看法。

每週一封。Email 只用來寄電子報,每封信都能一鍵退訂。