LFM3 는 특화된 지능의 출발점이 되도록 만들어진 차세대 Liquid Foundation Models(LFMs)입니다. LFM3는 텍스트, 비전, 오디오, 옴니(omni), 의사결정 모델을 하나의 공유 백본 위에 통합하며, 모두 2B 파라미터 범위입니다. 즉, 사용자 모달리티에 맞는 모델을 선택하고, 단일 GPU에서 자체 데이터로 파인튜닝한 뒤, 애플리케이션이 실행되는 곳에 배포할 수 있습니다.
LFM3는 이전 LFM2 계열에 비해 네 가지 주요 변화를 제공합니다:
- 파라미터당 더 높은 성능: 새로운 트라이-하이브리드(tri-hybrid) 아키텍처와 학습 레시피 덕분에 LFM3-1.7B는 35% 더 적은 파라미터를 사용하면서 LFM2.5-2.6B를 능가합니다.
- 하나의 백본에 모든 모달리티: LFM3-1.7B-Base에서 학습된 여섯 개의 2B급 모델(텍스트, 비전, 오디오, 옴니, 의사결정)로, 첫 옴니 모델과 비전 모델의 비디오 입력이 포함됩니다.
- 엣지를 위해 설계: 텍스트 모델은 4비트 정밀도에서 약 1 GB에 들어가고, 새로운 자체 개발 비전 및 오디오 인코더가 처리 속도를 높이며, 텍스트 모델의 256K 컨텍스트 윈도우 덕분에 에이전트를 온디바이스에서 실행할 수 있습니다.
- 특화되도록 제작: 모든 모델은 단일 GPU에서 파인튜닝할 수 있어, 자신의 데이터, 용어, 배포 환경에 맞게 조정할 수 있습니다.
더 표현력 있는 백본을 만든 방법
LFM2는 짧은 합성곱과 어텐션의 하이브리드가 품질을 희생하지 않고 온디바이스에서 빠르게 실행될 수 있음을 보여주었습니다. LFM3에서는 하드웨어 인 더 루프 아키텍처 탐색을 사용하여 에이전트 사용 사례, 즉 파라미터당 더 높은 성능과 긴 컨텍스트에서의 빠른 추론이 필요한 경우를 위해 해당 아키텍처를 재설계했습니다. 이번 탐색은 휴대폰과 Raspberry Pi 5부터 노트북, 클라우드 CPU, GPU, Qualcomm Hexagon NPU까지 14가지 디바이스 및 백엔드 조합을 대상으로 했습니다.
LFM3-1.7B-Base는 24개의 레이어와 네 가지 주요 변화를 갖추고 있습니다:
- 트라이-하이브리드 레이어 구성: 13개의 게이티드 짧은 합성곱, 256토큰 윈도우를 가진 5개의 슬라이딩 윈도우 어텐션(SWA) 레이어, 6개의 전역 어텐션 레이어. 합성곱은 LFM2의 3에서 늘어난 커널 크기 7을 사용합니다.
- 헤드별 게이티드 어텐션: 시그모이드 게이트가 각 헤드의 출력을 스케일링하여, 추가할 것이 없을 때 헤드를 끌 수 있습니다. 이는 양자화에 해를 끼치는 활성화 이상치를 억제하는 데 도움이 될 수 있습니다.
- Partial RoPE: 전역 어텐션 레이어는 각 헤드의 최고 주파수 절반만 회전하므로, 나머지 절반은 거리와 무관하게 내용으로 매칭됩니다. SWA 레이어는 전체 RoPE를 유지합니다.
- 샌드위치 노름(Sandwich norm): 각 블록은 활성화가 적절히 스케일링된 상태를 유지하도록 입력과 출력을 모두 정규화합니다.
그 효과는 긴 컨텍스트에서 드러납니다. 파라미터당 기준으로 LFM3-1.7B는 엣지 디바이스 전반에서 짧은 프롬프트에 대해 LFM2-1.2B에 필적하며, 컨텍스트에 8K 토큰이 있을 때는 약 25% 더 빠릅니다. LFM3-1.7B-Base는 동일한 128K 어휘로 22T 토큰으로 사전 학습되었으며, LFM2.5-8B-A1B와 동일한 128K 어휘로 22T 토큰으로 사전 학습되었습니다. 마지막 3.5T 토큰은 에이전트 트레이스와 도구 호출의 비중이 더 큰 선별된 데이터를 사용하는 미드 트레이닝(mid-training) 단계로, 컨텍스트 윈도우를 256K 토큰으로 확장합니다.
여섯 개 모델을 위한 하나의 백본
모든 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 |
비전 및 오디오 모델에는 자체 개발 인코더 2개도 새로 추가되었습니다:
- 비전 인코더: 컨볼루션과 어텐션을 결합하여 이전 LFM VL 모델의 SigLIP2 인코더보다 3배 적은 연산량을 사용합니다. 164M 파라미터 인코더는 Qwen3.5-2B의 비전 인코더와 정확도가 동일하면서 2.2배 적은 FLOPs를 요구합니다(둘 다 동일한 LFM2.5-230M 언어 백본으로 측정). 비디오의 경우 샘플링된 프레임 쌍마다 하나의 시간 슬라이스로 임베딩하여 시간 시퀀스 길이를 절반으로 줄입니다.
- 오디오 인코더 및 LiquidCodec: 오디오 인코더는 슬라이딩 윈도우 어텐션과 짧은 컨볼루션을 결합하고 완전히 인과적(causal)이므로, 모델이 사용자가 말하는 동안 프리필(pre-fill)을 수행할 수 있으며 첫 토큰까지의 시간이 최대 50 ms까지 낮아집니다. 새로운 오디오 토크나이저인 LiquidCodec은 생성된 토큰을 Apple M4 Max의 단일 CPU 스레드에서 약 87배 실시간 속도로 음성으로 변환하며 스트리밍 디코딩을 지원합니다.
LFM3 모델 사용 방법
각 모델은 다음에서 실행됩니다. transformers. 아래 스니펫은 모델 카드에서 발췌한 것이며, 이 카드에는 각 모델이 지원하는 다른 추론 엔진들도 나열되어 있습니다.
LFM3-1.7B
로컬 에이전트, 도구 호출, 구조화된 출력 또는 도메인별 파인튜닝용 베이스가 필요하다면 LFM3-1.7B를 선택하세요. 이 모델은 Hermes Agent, Pi, OpenClaw 같은 에이전틱 하네스에서 실행되도록 포스트트레이닝되었습니다. 이전 모델인 LFM2.5-2.6B보다 35% 적은 파라미터로 더 우수한 성능을 보이며, 가장 큰 향상은 에이전틱 작업에서 나타납니다. WebArena-Verified에서 3.02 대비 38.42를 기록했으며, 브라우저와 비즈니스 앱의 긴 작업에서는 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"])
로컬 에이전트 설정에 대해서는 다음을 참조하십시오. 에이전트 하네스 가이드.
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() 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])
다음을 참조하세요: LFM3-VL-2B 모델 카드 툴 호출, 툴 검색 및 llama.cpp를 사용한 온디바이스 추론에 관한 내용입니다.
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를 선택하세요. 이미지에 대한 음성 질문에 답하고, 비디오를 함께 보고 들으며, 보고 들은 내용을 도구 호출로 변환할 수 있습니다. 이는 텍스트, 비전, 오디오 입력과 텍스트 및 음성 출력을 갖춘 우리의 첫 옴니(omni) 모델이며, 시각적 질의응답, 음성 인식, 음성 합성, 지시 사항 수행을 포함한 독립형 LFM3 모델의 핵심 기능을 유지합니다. LFM3-Audio-2B와 마찬가지로 LiquidCodec을 통해 음성을 생성하며, 생성된 토큰을 실시간보다 빠르게 음성으로 변환하므로 모델이 생성하는 즉시 음성 답변이 스트리밍됩니다. 오디오-비전 비디오 이해 분야에서는 Daily-Omni, WorldSense, AV-SpeakerBench에서 Qwen2.5-Omni-7B 등 최대 10.7B 파라미터 모델보다 뛰어난 성능을 보입니다. 자세한 내용은 LFM3-Omni-2B 모델 카드.
에서 확인할 수 있습니다. LFM3-Omni-2B를 실행하려면 transformers>=5.20.2 을 비전 및 오디오 의존성과 함께 설치하세요:
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 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,
))
음성 출력, 사운드트랙이 포함된 비디오, 도구 호출에 대해서는 LFM3-Omni-2B 모델 카드 를 참조하세요.
d1-2B와 d1-omni-2B
생성된 텍스트가 아니라 빠르고 구조화된 결정이 필요하다면 d1 모델을 선택하세요. 상황(지원 티켓, 청구서, 앱 화면, 사진, 음성 메모)과 질문 목록을 입력하면 단일 순전파(forward pass)로 모든 질문에 답하며, 각 답변에는 보정된 확률이 함께 제공됩니다. 예/아니오, 선택, 점수를 넘어 이제는 객체를 가리키고, 문서에서 값을 읽고, 범위를 제시하여 수치를 추정하고, 해당하는 모든 옵션을 선택할 수 있습니다. 자세한 내용은 d1-2B 및 d1-omni-2B.
모델 카드에서 확인할 수 있습니다. 두 d1 모델의 비교:
- d1-2B: 텍스트, 그림, 비디오 처리에 적합합니다. 파라미터 수는 3분의 1로 줄어든 d1-3B 를 대체하며, 4가지 결정 스위트 전부에서 더 높은 점수를 기록합니다. 예를 들어 ImajevBench에서 75.5 대 64.0을 기록했습니다.
- d1-omni-2B: 입력에 오디오가 포함된 경우 선택하세요. 글 대신 음성으로 질문해도 거의 모든 정확도를 유지합니다.
d1-2B를 실행하려면 transformers>=5.19 을 비전 의존성과 함께 설치하세요:
pip install "transformers>=5.19" torch torchvision pillow
그런 다음 d1-2B를 불러와 하나의 지원 티켓에 대해 여러 질문을 단일 패스로 물어봅니다:
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
간략화를 위해 d1-2B의 예제만 포함했습니다. 오디오 클립과 음성 질문에 대해서는 d1-omni-2B 모델 카드 를 참조하세요.
당신의 작업에 맞게 LFM3 파인튜닝하기
LFM3는 특화되도록 설계되었습니다. 프론티어 모델은 강력한 범용 모델이지만, 반드시 당신의 사용 사례에 대한 전문가는 아닙니다. LFM3는 작고 빠른 모델에 추가 용량을 담아두었기 때문에, 짧은 파인튜닝만으로도 당신의 데이터, 용어, 도구를 활용해 당신의 작업에 대한 신뢰할 수 있는 전문가로 탈바꿈시킬 수 있습니다. 모델이 작기 때문에 디바이스부터 프라이빗 인프라, 클라우드까지 애플리케이션이 실행되는 어디서든 파인튜닝된 모델을 배포할 수 있습니다.
모든 모델은 GPU 한 개로 파인튜닝할 수 있으며, 이 노트북들은 데이터 준비부터 평가까지 텍스트, 비전, 오디오, 옴니 모델에 대한 완전한 작업 과정을 안내합니다.
| 모델 | 방법 | 작업 | 노트북 |
|---|---|---|---|
| LFM3-1.7B | SFT | 지저분한 문서에서 구조화된 JSON 추출 | Colab에서 열기 |
| LFM3-1.7B | DPO | 검색된 문서에서 답변하거나 거절하기 | Colab에서 열기 |
| LFM3-1.7B | GRPO | 108개 도구가 있는 전화 앱에서 올바른 도구 호출하기 | Colab에서 열기 |
| LFM3-1.7B | CPT | 원시 텍스트로부터 새로운 언어(터키어) 학습하기 | Colab에서 열기 |
| LFM3-VL-2B | SFT | 영수증 사진을 JSON으로 변환하기 | Colab에서 열기 |
| LFM3-VL-2B | GRPO | 방정식 이미지를 LaTeX으로 전사하기 | Colab에서 열기 |
| LFM3-Audio-2B | SFT | 음성 스마트홈 명령을 함수 호출로 매핑하기 | Colab에서 열기 |
| LFM3-Audio-2B | SFT | 모델에게 새로운 목소리 가르치기 | Colab에서 열기 |
| LFM3-Omni-2B | SFT | 음성 스마트홈 명령을 함수 호출로 매핑하기 | Colab에서 열기 |
| LFM3-Omni-2B | SFT | 의료 영상에 대한 음성 질문에 답변하기 | Colab에서 열기 |
예시: LFM3에게 행동하도록 가르치기
우리는 LFM3-VL-2B를 세 가지 상호 보완적인 로봇 공학 모델로 변형하여 오케스트레이션, 내비게이션 및 조작. 오케스트레이터는 도구 호출을 통해 로봇 팔을 조작합니다: 가리키기로 객체를 그라운딩하고, 깊이 도구로 측정하며, 모션 플래너를 호출하고, 이후 카메라 이미지에서 결과를 확인합니다. 내비게이터는 최근 RGB 관측을 사용해 경로 설명을 따라가며, 단 5개의 토큰만으로 공간적 목표와 웨이포인트 궤적을 예측합니다. 조작 VLA는 이미지, 언어, 로봇 상태를 단일 순전파에서 8단계 연속 동작 청크로 매핑합니다. 15개의 구현(embodiment)에 걸쳐 공동 학습된 이 VLA는 네 개의 LIBERO 스위트에서 평균 96.2%의 성공률과 RoboCasa-GR1 테이블톱 작업에서 45.7%를 달성했으며, Jetson AGX Orin에서 TensorRT FP16으로 50 ms 미만의 시간에 동작 청크를 생성합니다. 이러한 결과는 LFM3-VL-2B가 임베디드 하드웨어에서 실시간 동작 생성과 함께 고수준 계획부터 저수준 제어까지 아우르는 컴팩트한 로보틱스 기반 모델임을 보여줍니다.
LFM3-VL-2B가 인식, 내비게이션, 조작을 수행하는 모습 보기: 이 데모 영상.
LFM3 시작하기
모든 LFM3 모델은 오픈 웨이트로 공개되어 있으며 오늘 Hugging Face에서 이용할 수 있습니다:
- 다운로드: 그 LFM3 컬렉션 Hugging Face에서 제공되며, 다음을 포함합니다 LFM3-1.7B-Base 자체 포스트 트레이닝을 위해.
- 미세 조정: LFM3를 여러분의 작업에 맞게 조정하세요. 저희의 파인튜닝 노트북.
- 하네스에서 사용: 저희의 가이드 OpenClaw, Hermes Agent, Pi 같은 로컬 에이전트를 실행하는 방법에 관한 것입니다.
여러분이 만들 결과물을 기다릴 수가 없습니다.
인용
이 저작물을 사용하실 경우 릴리스 블로그를 인용해 주세요:
@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},
}