Poolside выпустила три модели Laguna на архитектуре Mixture-of-Models (MoM) - XS.2 (33B-A3B), S 2.1 (118B-A8B) и M.1 (225B-A23B). Все три уже поддерживаются в llama.cpp и доступны для локального инференса. Ключевая особенность семейства - token-choice роутер с softplus-гейтингом, 256 экспертов плюс один общий эксперт, GQA и гибридное внимание, чередующее полные и sliding-window слои.
XS.2 с 3B активных параметров на токен специально спроектирована для запуска на локальных машинах. Для S 2.1 уже доступны GGUF-кванты от unsloth и оригинальные сборки, что позволяет развернуть 118B-модель на системах с 64+ ГБ ОЗУ или VRAM. M.1 масштабирует архитектуру до 225B общих параметров для задач, где критично максимальное качество генерации кода.
В этом разборе - детали архитектуры MoM, практические инструкции по запуску XS.2 и S 2.1, сравнение моделей и сценарии интеграции в рабочие процессы разработки. Без маркетинговой воды, с конкретными цифрами и командами.
Архитектура Mixture-of-Models: как устроены Laguna XS.2, S 2.1 и M.1
Все три модели построены на архитектуре Mixture-of-Experts с token-choice роутером. В отличие от классических dense-моделей, где каждый параметр участвует в обработке каждого токена, MoE-архитектура активирует только небольшую долю параметров. Это радикально снижает вычислительные затраты при инференсе без пропорциональной потери качества.
Laguna использует 256 экспертов плюс один общий эксперт, Grouped Query Attention (GQA) и чередование полного внимания со sliding-window. Такая конфигурация оптимизирована под задачи агентного кодинга - генерацию, отладку и рефакторинг кода с длинными цепочками инструментов.
Token-choice роутер и softplus-гейтинг: маршрутизация токенов
Token-choice роутер принимает решение о маршрутизации каждого токена к конкретным экспертам независимо. Это контрастирует с expert-choice роутерами, где эксперты сами выбирают токены для обработки. Token-choice подход обеспечивает более равномерную загрузку экспертов и лучшую масштабируемость при увеличении числа экспертов.
Функция гейтинга использует softplus вместо традиционного softmax. Softmax нормализует веса так, что сумма равна единице - это создаёт конкуренцию между экспертами и может приводить к коллапсу, когда один эксперт доминирует. Softplus, напротив, вычисляет активацию для каждого эксперта независимо:
gate_i = softplus(W_i · x + b_i)
Результат - модель может активировать от 1 до k экспертов без принудительной нормализации. Это повышает разреженность и качество: эксперт активируется только когда он действительно нужен, а не потому что кто-то должен получить меньший вес. На практике softplus-гейтинг снижает вероятность коллапса экспертов и улучшает специализацию.
256 экспертов + общий эксперт: баланс специализации и обобщения
Общий эксперт (shared expert) - архитектурное решение, которое решает проблему «холодного старта» для редких паттернов. Когда токен не попадает уверенно ни под одного из специализированных экспертов, общий эксперт обеспечивает базовое качество обработки. Он активируется всегда и обучается на всём корпусе данных, выступая страховочной сеткой.
Специализированные эксперты, напротив, обучаются на кластерах данных и активируются только для релевантных токенов. В задачах кодинга это проявляется в естественной специализации: одни эксперты фокусируются на синтаксисе Python, другие - на типах данных, третьи - на алгоритмических паттернах. Token-choice роутер обучается распознавать эти паттерны и направлять токены к нужным экспертам.
Балансировка загрузки решается на уровне функции потерь при обучении - добавляется auxiliary loss, штрафующий неравномерное использование экспертов. Это предотвращает ситуацию, когда 90% токенов уходят к 10% экспертов.
Гибридное внимание: полное + sliding-window
Laguna чередует слои с полным вниманием (full attention) и sliding-window вниманием. Полное внимание вычисляет зависимости между всеми парами токенов в контексте - квадратичная сложность O(n²). Sliding-window внимание ограничивает поле зрения фиксированным окном (например, 4096 токенов) - линейная сложность O(n·w), где w - размер окна.
Схема чередования: каждый второй или третий слой использует sliding-window, остальные - полное внимание. Это снижает общие вычислительные затраты на 30-40% при длинных контекстах, сохраняя способность модели улавливать дальние зависимости через полные слои. Для задач кодинга с контекстом до 128K токенов это критично: полное внимание на всей длине потребовало бы нереалистичных объёмов памяти.
Grouped Query Attention (GQA) дополнительно оптимизирует механизм внимания, разделяя ключи и значения между группами запросов. При стандартном числе голов 32 и 8 группах GQA снижает размер KV-кэша в 4 раза по сравнению с Multi-Head Attention, что прямо уменьшает требования к VRAM при инференсе.
Laguna XS.2: 3B активных параметров для локального инференса
XS.2 - самая компактная модель семейства с 33B общих параметров, из которых только 3B активны на каждый токен. Это достигается за счёт высокой разреженности MoE: при 256 экспертах и top-2 роутинге активируется лишь малая доля параметров. Результат - модель, которая требует памяти как 3B dense-модель, но сохраняет знания 33B-архитектуры.
Для сравнения: Qwen3.5-32B - dense-модель, все 32B параметров активны на каждом токене. При 4-битном квантовании Qwen занимает около 18 ГБ VRAM. XS.2 в аналогичном качестве потребует 6-8 ГБ - в 2-3 раза меньше. Это делает её пригодной для запуска на ноутбучных GPU и даже CPU с достаточным объёмом ОЗУ.
Ограничения XS.2 связаны с объёмом знаний, распределённых по экспертам. На узкоспециализированных задачах, где требуется редкая экспертиза, модель может уступать dense-аналогам сходного размера. Однако для типовых сценариев кодинга - автодополнение, рефакторинг, генерация тестов - разреженная архитектура показывает конкурентоспособные результаты.
Требования к оборудованию и первые шаги в llama.cpp
Для запуска XS.2 через llama.cpp достаточно 8-16 ГБ ОЗУ при использовании квантованных версий. Точные цифры зависят от уровня квантования:
- Q4_K_M: ~6 ГБ RAM, минимальная потеря качества, рекомендуется для GPU с 8 ГБ VRAM
- Q5_K_M: ~7 ГБ RAM, баланс качества и размера
- Q8_0: ~10 ГБ RAM, близко к FP16 качеству, требует GPU с 12+ ГБ VRAM
Пример команды для запуска с Q4_K_M квантом:
./llama-cli \
-m laguna-xs.2-Q4_K_M.gguf \
-p "Напиши функцию на Python для парсинга JSON с обработкой ошибок" \
-n 512 \
-t 8 \
-ngl 99
Флаг -ngl 99 загружает все слои на GPU. Если VRAM не хватает, уменьшите число до 20-30 - часть слоёв будет обрабатываться на CPU, скорость снизится, но модель запустится.
Для продакшен-использования запускайте llama.cpp server с OpenAI-совместимым API:
./llama-server \
-m laguna-xs.2-Q4_K_M.gguf \
--host 0.0.0.0 \
--port 8080 \
-ngl 99
После этого модель доступна через стандартный эндпоинт /v1/chat/completions для интеграции с VS Code, Continue.dev и другими инструментами.
Laguna S 2.1 и M.1: масштабирование для сложных задач
S 2.1 (118B-A8B) и M.1 (225B-A23B) масштабируют архитектуру MoM для сценариев, где качество генерации кода критично. S 2.1 активирует 8B параметров на токен, M.1 - 23B. Обе модели демонстрируют сильные результаты на бенчмарках агентного кодинга.
S 2.1 набирает 70.2% на Terminal-Bench 2.1 и 78.5% на SWE-bench Multilingual, обходя DeepSeek V4 Flash при меньшей стоимости инференса. В тестах на RTX Pro 6000 модель показала 109 токенов/с и глубину цепочек инструментов до 6 уровней - рекордный показатель для моделей этого класса.
M.1 с 23B активных параметров на токен нацелена на сценарии, где допустимы более высокие затраты на инференс ради максимального качества: сложный рефакторинг, межфайловые изменения, генерация архитектурно значимого кода.
GGUF-кванты для S 2.1: где скачать и как запустить
Для S 2.1 доступны GGUF-кванты от unsloth и оригинальные сборки от poolside. Unsloth предоставляет оптимизированные кванты с улучшенным качеством за счёт калибровки на репрезентативных данных:
- Q4_K_M от unsloth: ~40 ГБ, минимальная потеря качества, рекомендуется для систем с 48+ ГБ VRAM
- IQ4_XS от unsloth: ~35 ГБ, агрессивное квантование, подходит для 48 ГБ VRAM с запасом под KV-кэш
- Q3_K_M: ~30 ГБ, заметное снижение качества, крайний вариант для 32 ГБ систем
Загрузка и запуск Q4_K_M кванта:
# Скачивание (требуется huggingface-cli)
huggingface-cli download unsloth/Laguna-S-2.1-GGUF \
laguna-s-2.1-Q4_K_M.gguf \
--local-dir ./models
# Запуск
./llama-cli \
-m ./models/laguna-s-2.1-Q4_K_M.gguf \
-p "Сгенерируй REST API на FastAPI с аутентификацией JWT" \
-n 1024 \
-t 16 \
-ngl 99 \
-c 32768
Для систем с Apple Silicon M5 Max модель запускается со скоростью 33-44 ток/с на 4-битном кванте, что достаточно для интерактивной работы.
Сравнение моделей Laguna: какую выбрать для своих задач
Выбор модели зависит от доступного оборудования, требований к качеству и сценария использования. Ниже - сводная таблица характеристик:
| Характеристика | Laguna XS.2 | Laguna S 2.1 | Laguna M.1 |
|---|---|---|---|
| Общие параметры | 33B | 118B | 225B |
| Активные параметры | 3B | 8B | 23B |
| Экспертов | 256 + 1 общий | 256 + 1 общий | 256 + 1 общий |
| Контекст | до 128K | до 128K | до 128K |
| VRAM (Q4_K_M) | ~6 ГБ | ~40 ГБ | ~70 ГБ |
| Минимальная система | 8 ГБ RAM, любой GPU | 48 ГБ VRAM (A6000, RTX Pro 6000) | 80 ГБ VRAM (A100, H100) |
| Сценарий | Локальное прототипирование, автодополнение | Агентное кодирование, рефакторинг | Сложные межфайловые изменения |
XS.2 - выбор для локального прототипирования и повседневных задач кодинга. Модель запускается на большинстве современных ноутбуков и десктопов, обеспечивая достаточное качество для автодополнения, генерации тестов и простого рефакторинга.
S 2.1 - рабочая лошадка для серьёзных проектов. Подходит для агентного кодинга с длинными цепочками инструментов, межфайлового рефакторинга и генерации комплексных решений. Требует серьёзного GPU, но окупается качеством.
M.1 - флагман для задач, где допустимы высокие затраты на инференс. Максимальное качество генерации кода, лучшая обработка сложных архитектурных паттернов. Требует серверного оборудования.
Интеграция в рабочие процессы: llama.cpp и не только
Модели Laguna интегрируются в рабочие процессы разработки через llama.cpp server с OpenAI-совместимым API. Это открывает совместимость с большинством инструментов, поддерживающих OpenAI API.
Интеграция с VS Code через Continue.dev:
# config.json для Continue.dev
{
"models": [
{
"title": "Laguna XS.2",
"provider": "openai",
"model": "laguna-xs.2",
"apiBase": "http://localhost:8080/v1",
"apiKey": "not-needed"
}
]
}
После настройки модель доступна для автодополнения, чата и inline-редактирования прямо в редакторе. Для командной работы llama.cpp server поддерживает параллельные запросы - несколько разработчиков могут использовать одну модель одновременно.
Продвинутый сценарий - запуск S 2.1 как агента кодинга с доступом к инструментам (файловая система, терминал, браузер). Модель показала нулевое число JSON-ошибок при вызове инструментов, что критично для автономных агентов. Однако в тестах зафиксированы случаи галлюцинаций под давлением сложных цепочек - рекомендуется ручная проверка результатов для ответственных операций.
Для систем с несколькими GPU llama.cpp поддерживает тензорный параллелизм через опцию --tensor-split, позволяя распределить S 2.1 или M.1 между двумя GPU. Пример для S 2.1 на двух RTX 3090 (24 ГБ каждая):
./llama-server \
-m laguna-s-2.1-Q4_K_M.gguf \
--tensor-split 24,24 \
--host 0.0.0.0 \
-ngl 99
Файнтюнинг моделей Laguna на данный момент не поддерживается в открытых фреймворках - архитектура MoM с token-choice роутером требует адаптации обучающих пайплайнов. Poolside не публиковала скрипты для дообучения, поэтому модели используются в режиме zero-shot или few-shot через промпт-инжиниринг.