Одна модель на 2,17 млрд параметров заменяет связку «ASR + распознавание картинок + LLM + синтез речи». Разбираем установку через llama.cpp и Ollama, готовые команды для транскрипции, озвучки и вопросов по видео — и честно про русский язык.
Liquid AI выпустила LFM3-Omni-2B — омни-модальную модель, которая понимает текст, картинки, видео со звуковой дорожкой и аудио, а отвечает текстом или речью 24 кГц. Главное: она помещается на обычный ноутбук. В этом гайде — рабочие команды запуска через llama.cpp, Ollama, LM Studio и Llama.app, режимы распознавания и синтеза речи, голосовой чат в реальном времени и ограничения, о которых вендор пишет мелким шрифтом.
ollama run lfm3-omni (Ollama 0.40.12+), самый полный — llama.cpp b11960 или новее: llama serve -hf LiquidAI/LFM3-Omni-2B-GGUF:Q4_K_M даёт веб-чат, OpenAI-совместимый API и WebSocket /v1/realtime для голосового диалога. Модель нерассуждающая, контекст 32K, а русский поддерживается в тексте, но не в синтезе речи.Обычный локальный голосовой ассистент собирается из четырёх частей: распознавание речи, модель, описывающая картинки, языковая модель и синтез речи. Каждая часть — отдельный файл весов, отдельный процесс и отдельные задержки. LFM3-Omni-2B заменяет всю цепочку одним чекпойнтом на 2,17 млрд параметров: вход — текст, изображение, видео или 16 кГц аудио, выход — текст, речь 24 кГц или их чередование.
Вендор позиционирует модель для работы на устройстве: телефон, ноутбук, встраиваемое железо. Практический сценарий — не «заменить GPT», а закрыть задачи, которые раньше требовали облака: расшифровка встречи без отправки записи наружу, вопросы к видео с субтитрами и звуком, голосовой помощник в офлайне, озвучка текста без внешнего TTS.
Важное отличие от LFM3-1.7B, гайд по которой у нас уже есть: там текст и картинки, здесь добавлены слух и голос. Это разные модели с разными весами, и запускать нужно именно lfm3-omni, а не текстовую версию.
Требования к железу скромные: BF16-чекпойнт занимает около 4,5 ГБ, квантованный Q4_K_M — заметно меньше. Модель нерассуждающая: в чат-шаблоне каждый ответ ассистента открывается пустым блоком размышлений, а в llama.cpp нужно явно передать --reasoning off. Контекст — 32K токенов, словарь — 128 тысяч текстовых токенов.
| Вариант | Минимальная версия | Что умеет |
|---|---|---|
| llama.cpp / llama serve | b11960 (v0.8.0)+ | Текст, картинки, аудио, видео, TTS, /v1/realtime |
| Ollama | 0.40.12+ | macOS: картинки и аудио, команда ollama run lfm3-omni |
| LM Studio | движок llama.cpp 2.65.1+ | macOS, Windows, Linux: картинки |
| Llama.app | llama.cpp v0.8.0+ | macOS и Windows: картинки, аудио, видео |
Для видео нужен ffmpeg в PATH — модель получает кадры (по умолчанию 2 кадра в секунду, от 4 до 384 кадров) и полную звуковую дорожку. Для картинок ограничение — до 2048 токенов на изображение, при этом они обрабатываются в исходном разрешении, а каждый блок 2×2 патчей превращается в один языковой токен.
Начать проще всего с Ollama — одна команда, и модель уже работает. Если нужны аудио-вход, видео и голосовой диалог, идите в llama.cpp: там поддержка шире. LM Studio подойдёт, если вы не хотите трогать терминал, но учтите — в нём заявлен только ввод картинок.
ollama --version
ollama run lfm3-omni
brew install llama.cpp
llama serve -hf LiquidAI/LFM3-Omni-2B-GGUF:Q4_K_M \ --reasoning off --temp 0 --port 8080
http://localhost:8080
Флаг -hf сам скачивает и веса, и проекторы для зрения и слуха — отдельно ничего искать не нужно. Если вы вызываете llama-tts вручную, понадобятся два файла: сама модель и mmproj-проектор.
llama-tts -m LFM3-Omni-2B-Q4_K_M.gguf \ -mm mmproj-LFM3-Omni-2B-Q8_0.gguf \ -p "Hello world" -o out.wav
Модель управляется системным промптом и параметром generation_mode. Это не «магия»: вендор прямо описывает, что ответ открывается специальным токеном — <|audio_start|> для речи и <|mixed_start|> для чередования. Если хотите гарантированный текстовый ответ, просите его явно.
Распознавание речи. Системный промпт Perform ASR in English. (или другой язык) превращает модель в транскрибатор. Файл передаётся флагом --audio, а в промпте ставится маркер <__media__>.
llama cli -hf LiquidAI/LFM3-Omni-2B-GGUF:Q4_K_M \ --audio speech.wav \ -sys "Perform ASR in English." \ -p "<__media__>" --temp 0
Синтез речи. Здесь системный промпт другой: Perform TTS in American English using a female voice. Голос — female или male, для английского нужно указать вариант: American English или British English. Для речи рекомендуются параметры audio_temperature 0.4 и audio_repetition_penalty 1.2 — они уже прошиты в GGUF.
Вопросы по картинке. Достаточно передать файл и попросить описать или ответить по изображению; для точных ответов вендор советует системный промпт «Answer questions about the provided image. Base every answer only on what can be seen.».
llama cli -hf LiquidAI/LFM3-Omni-2B-GGUF:Q4_K_M \ --image photo.png \ -p "Describe this image." --temp 0
Видео со звуком. Модель смотрит кадры и одновременно слышит дорожку — это её главное отличие от «видео-LLM», которые работают только с картинкой. Нужен ffmpeg. Системный промпт: «Answer questions about the video using what you see and hear.»
llama cli -hf LiquidAI/LFM3-Omni-2B-GGUF:Q4_K_M \ --video reading.mp4 \ -sys "Answer questions about the video using what you see and hear." \ -p "What happens here, and what can you hear?" --temp 0
Голосовой диалог в реальном времени. В llama serve есть WebSocket-эндпоинт /v1/realtime — тот же протокол, что у OpenAI Realtime. Именно этот режим превращает модель в голосового ассистента с поддержкой вызова инструментов, без склейки отдельных сервисов распознавания и синтеза.
enable_thinking не поддерживается, попытка включить рассуждения ничего не даст.Здесь легко ошибиться, потому что метаданные карточки перечисляют 23 языка, включая русский. Но это список языков модели в целом. Если посмотреть таблицу характеристик, текстовых языков шестнадцать (русский в их числе), а языков и локалей синтеза речи — девятнадцать, и русского среди них нет: арабский, датский, немецкий, греческий, английский (британский и американский), финский, французский, иврит, итальянский, японский, корейский, нидерландский, польский, португальский, испанский, шведский, турецкий, китайский.
Это типичная ловушка омни-моделей: «понимает 16 языков» и «говорит на 19 языках» — разные списки. Проверяйте именно список speech languages, если задача — голосовой ответ, а не распознавание.
Все цифры ниже — из карточки модели, то есть данные авторов. Сравнение идёт с моделями в пять раз крупнее: Qwen2.5-Omni на 6 и 10,7 млрд, Gemma 4 E4B на 8 млрд, Phi-4 multimodal на 5,6 млрд. Именно поэтому результат в 2,17 млрд интересен: на части задач модель не проигрывает, а выигрывает.
На английском модель почти догоняет Qwen2.5-Omni-3B (6,36 против 6,30) и уверенно обходит обе Gemma 4, но уступает Phi-4 multimodal. На многоязычном наборе картина интереснее: 6,72 против 7,41 у Qwen — то есть на неанглийской речи маленькая модель выигрывает у более крупной.
Качество синтеза — сильная сторона: UTMOSv2 3,80 против 3,42 у Qwen2.5-Omni-3B (у Gemma и Phi значения не приводятся). Для 2-миллиардной модели это хороший результат: озвучка звучит естественно, хотя студийного качества ждать не стоит. В вызове инструментов по голосу модель уступает: 52,20 против 44,30 у Qwen2.5-Omni-3B, но заметно ниже 72,40 у Gemma 4 E4B.
Именно в задачах «видео + звук» модель выглядит сильнее всего: Daily-Omni 70,09, WorldSense 47,10, AV-SpeakerBench 46,79 — первые места во всех трёх против перечисленных соперников. В обычном понимании картинок картина ровная: MMBench 73,68, SEEDBench 75,07, POPE 89,34, а OCR слабее — 806 против 863 у Qwen2.5-Omni-3B на OCRBench.
| Задача | LFM3-Omni-2B | Лучший конкурент | Комментарий |
|---|---|---|---|
| Daily-Omni (видео+звук) | 70,1 | 61,3 (Qwen-Omni-7B) | модель в 5 раз крупнее |
| AV-SpeakerBench | 46,8 | 43,2 (Qwen-Omni-7B) | кто говорит в записи |
| ASR английский, WER | 6,36 | 5,14 (Phi-4 mm) | меньше — лучше |
| TTS UTMOSv2 | 3,80 | 3,42 (Qwen-Omni-3B) | натуральность озвучки |
| OCRBench | 806 | 863 (Qwen-Omni-3B) | текст на изображениях |
| MMMU (val) | 42,4 | 54,8 (Phi-4 mm) | сложные визуальные задачи |
Модель нерассуждающая: сложные многошаговые задачи, где нужна цепочка размышлений, ей даются хуже, чем большим reasoning-моделям. Контекст 32K — это немного для длинных документов: часовую запись целиком в контекст не положить, придётся резать на части.
--reasoning off сервер может пытаться включить рассуждения, которых у модели нет.Отдельная тонкость — размер изображения. Картинки обрабатываются в натуральном разрешении, до 2048 токенов на изображение: скриншот 4K «съест» заметную долю контекста, а несколько таких картинок в одном запросе могут вытеснить историю диалога. Для OCR-задач лучше предварительно обрезать изображение до нужной области.