150 миллисекунд против 2.5 секунд. 0.2$ против 30$ за миллион токенов. Это метрики из продакшена, где мы меняли флоу извлечения данных из неструктурированного текста. В первом случае работала локальная Mistral 7B, во втором — облачное API. Рынок верит, что без foundation-модели на триллион параметров качественного парсинга не получить. Это иллюзия. Хорошо обученная маленькая специализированная модель рвёт тяжеловесов на узких задачах. И экономит бизнесу миллионы.
Маленькая специализированная модель против гиганта: архитектура выбора
Размер нейросети определяет не её «интеллект», а ёмкость. Коммерческие LLM учат всё: от квантовой физики до рецептов ризотто. Но если вам нужно классифицировать банковские транзакции, собирать саммари созвонов или отдавать жестко типизированный JSON, 99% знаний гиганта будут лежать мёртвым грузом. Вы сжигаете деньги на вычислениях, которые никогда не используете.
Наш подход в Morana Labs жёстче привычного вендор-лока. Мы не дёргаем API везде, где есть текст. Мы смотрим на p99 latency, энтропию задачи и бюджет на инференс. Если система работает в high-load режиме, требует отклика до 300 мс и живёт на edge-контуре без внешнего интернета, гигант отпадает на этапе проектирования.
Берётся базовая open-source модель на 7–8 миллиардов параметров. Сначала мы прогоняем краевые случаи через тяжёлую модель-учителя. Это — дистилляция знаний. Мы собираем датасет эталонных ответов и файн-тюним малую сеть. В узком домене она выдаёт точность гиганта, но делает это кратно быстрее и дешевле.
Трейд-офф честный: узкая специализация ведёт к моментальной деградации на out-of-domain запросах. Шаг влево от скрипта — и 7B начинает агрессивно галлюцинировать. Для творческих задач и сложных рассуждений гигант оправдан. Для детерминированной рутины — нет.
Механика сжатия: дистилляция, LoRA и квантизация
Обучать base-модель с нуля — дорого и бессмысленно. Мы используем Low-Rank Adaptation (LoRA). Замораживаем основные веса и тренируем только небольшие матрицы-адаптеры. На одной GPU это занимает часы.
from peft import LoraConfig, get_peft_model; config = LoraConfig(r=16, lora_alpha=32, target_modules=["q_proj", "v_proj"], lora_dropout=0.05, bias="none", task_type="CAUSAL_LM"); model = get_peft_model(base_model, config)Для максимального throughput при деплое применяется квантизация.
- AWQ / GPTQ: снижение точности весов до 4 бит почти без потери качества генерации.
- Batching: движки вроде vLLM утилизируют GPU на 100%, переваривая тысячи запросов параллельно.
- Edge-развертывание: сжатая до 4 ГБ модель легко влезает в память промышленных плат.
Цена гибкости
Малые модели требуют инженерии. Интегрировать API-ключ может джун за час. Собрать репрезентативный датасет, подобрать гиперпараметры адаптера, победить catastrophic forgetting и настроить инференс-сервер — это суровая инфраструктурная работа.
Вы экономите на железе, но инвестируете в компетенции. Если логика меняется каждую неделю, адаптеры протухнут быстрее, чем окупят затраты на обучение. Но на устоявшемся потоке маленькая специализированная модель выигрывает всухую.