Small Language Models
small language models — компактные языковые модели для узких и локальных задач
Компактные языковые модели требуют меньше памяти и вычислений, чем более крупные сопоставимые модели. Разберём, для каких задач этого достаточно и что проверить перед локальным запуском.
Коротко
SLM — языковая модель, достаточно компактная для выбранной среды и задачи. Она может работать на ноутбуке, телефоне, устройстве рядом с источником данных или недорогом сервере, быстрее обрабатывать короткие запросы и не отправлять данные внешнему API. Граница между small и large условна и меняется вместе с железом.
Что это такое
Число параметров удобно для грубой ориентации, но не определяет категорию полностью. Квантизация, архитектура, длина контекста и активная часть MoE сильно меняют требования.
Поэтому практичное определение звучит так: SLM — модель, которую можно экономично развернуть в целевой среде и которая решает ограниченный набор задач с нужным качеством.
Один и тот же checkpoint может считаться небольшим для сервера и слишком тяжёлым для телефона. А модель с меньшим числом параметров способна требовать слишком много рабочей памяти или неподдерживаемых операций.
Где SLM особенно полезны
- классификация и маршрутизация запросов;
- извлечение полей из документов;
- короткое суммирование;
- исправление текста по фиксированным правилам;
- локальная работа с приватными данными;
- офлайн-помощник;
- автодополнение в узком домене;
- управление устройством;
- первый слой каскада перед большой моделью;
- массовая обработка однотипных задач.
Для сложного исследования, длинного свободного диалога или редкой экспертной области маленькой модели может не хватить знаний и устойчивости.
Почему компактная модель может быть сильной
Качество зависит не только от размера. Помогают:
- хорошо отобранные обучающие данные;
- дистилляция — обучение по ответам или внутренним представлениям более сильной модели;
- узкое дообучение;
- поиск подходящих документов;
- подключённые инструменты вычислений и поиска;
- подходящий для языка токенизатор;
- дополнительное время на проверку;
- ограниченный и чёткий формат выхода.
Если задача узкая, модель не обязана знать всё. Классификатор обращений выигрывает не от энциклопедических знаний, а от стабильного понимания нескольких категорий.
Пример на практике
Допустим, сервис получает письма клиентов и определяет отдел. Есть несколько стабильных категорий и вариант не уверен.
Команда сравнивает:
- большой облачный API;
- локальную SLM;
- каскад, где SLM обрабатывает уверенные случаи, а остальные передаёт большой модели.
В тесте сравнивают долю правильных ответов, путаницу между критичными категориями, задержку, стоимость и долю запросов, переданных дальше. Каскад полезен, если маршрутизация надёжно выделяет случаи для повторной проверки. Одного заявления модели «я уверена» недостаточно: правило передачи проверяют на размеченных данных, включая уверенные ошибки. Как задать категории обращений и оставить путь для неоднозначного запроса, объясняет статья о распознавании намерений.
Локальный запуск
Для запуска важны:
- формат весов и квантизация;
- объём RAM или VRAM;
- KV-кэш для нужного контекста;
- поддержка CPU, GPU или NPU;
- токенизатор и шаблон оформления диалога;
- лицензия;
- скорость на минимальном целевом устройстве;
- устойчивость при длительной нагрузке.
Фраза «работает на ноутбуке» ещё не показывает, сколько придётся ждать ответа. Нужны характеристики устройства, длина контекста и длина ответа. Скорость удобнее измерять на том оборудовании, которое действительно будет использоваться. Разные расходы и обязанности двух способов запуска собраны в разборе «Локальная нейросеть или облако».
В творческой работе компактную модель можно проверить на подготовке коротких описаний кадров, а затем передавать текст генератору через совместимое подключение. ComfyUI помогает собрать визуальную часть такого процесса; поддержка языковой модели и её формата проверяется отдельно.
Приватность
Локальный инференс может оставить текст внутри устройства, но только если вся цепочка обработки локальна. Телеметрия, облачный поиск, отчёты о сбоях, резервные копии и обновления способны отправлять данные наружу.
Для чувствительной системы проверяют сетевые вызовы, место хранения журнала и механизм удаления. Само слово local не является политикой приватности.
Как уложиться в ограниченные ресурсы
Квантизация снижает точность чисел и требования к памяти.
Дистилляция обучает компактную модель повторять ответы или промежуточные признаки учителя.
Прореживание (pruning) удаляет или обнуляет часть связей. Простое обнуление не гарантирует экономии: библиотека должна уметь использовать разреженность.
Узкое дообучение может улучшить работу небольшой модели в нужной области. Само по себе оно не уменьшает размер весов.
RAG и инструменты дают модели внешние документы и вычисления. Они могут позволить обойтись меньшей моделью, но добавляют свои расходы и не уменьшают её веса.
Каждый метод меняет профиль ошибок. Квантизация может почти не повлиять на обычный текст и заметно ухудшить код или редкий язык. Проверка идёт по реальной задаче.
SLM в каскаде
Каскад распределяет запросы по сложности:
правила или маленькая модель
↓ сомнение
сильная локальная или облачная модель
↓ высокий риск
человек или специализированная система
Маршрутизатор должен быть дешёвым и проверенным: уверенные решения должны действительно чаще оказываться правильными. Если он отправляет почти всё наверх, архитектура не экономит. Если задерживает сложные запросы внизу, страдает качество.
С чем часто путают
- SLM и локальная модель. Большую модель тоже можно запускать локально, а маленькую — через облачный API.
- SLM и edge AI. SLM — тип языковой модели, edge — место выполнения.
- Маленькая модель и узкая модель. Компактная модель может быть общей, а специализированная — большой.
- SLM и квантизация. Квантизация уменьшает представление весов, но не меняет число параметров.
- SLM и дистилляция. Дистилляция — один из способов получить или улучшить компактную модель.
Частые ошибки и заблуждения
«Маленькая модель почти такая же сильная во всём». Она может совпасть с крупной на выбранном наборе и заметно проиграть вне него.
«До определённого числа параметров модель всегда помещается в телефон». Нужны размер весов, KV-кэш, активации и поддержка программной среды.
«Локальная SLM бесплатна». Даже если нет платы за токены, остаются устройство, электричество, разработка и обновления. У самой модели или программы тоже могут быть платные условия.
«SLM не галлюцинирует, потому что меньше». Размер не убирает генеративную ошибку. Узкий контекст и проверяемый формат уменьшают риск, но не обнуляют его.
«Вся приватность решена локальным запуском». Другие компоненты приложения могут передавать данные.
Частые вопросы
Какой размер считается small? Фиксированной границы нет. Для решения важнее, помещается ли модель в целевую память и выполняет ли задачу в нужное время.
Когда выбирать SLM вместо API? Когда важны офлайн-работа, предсказуемая нагрузка, локальные данные или очень большой поток узких запросов. Сравнение включает стоимость поддержки.
Нужен ли fine-tuning? Не всегда. Сначала полезно проверить формулировку запроса, ограничения формата ответа и поиск по документам — если они подходят задаче. Дообучение оправдано, если стабильная ошибка повторяется на достаточном наборе размеченных примеров.
Как проверить качество? На реальных данных, включая редкие и опасные случаи, с отдельным тестом после квантизации. Средняя доля правильных ответов без разбора того, какие категории путаются, может скрыть важную проблему.
Главное
Small Language Model — компактная языковая модель. Она может быть обучена самостоятельно или с помощью более крупного учителя; для пользователя важнее то, справляется ли она с задачей в доступных ресурсах. Её ценность раскрывается в локальном запуске, каскадах и массовой обработке. Удачный выбор подтверждает полный тест: качество, память, задержка, приватность и стоимость эксплуатации.