Выбор модели определяется объёмом видеопамяти и задачей, под которую она нужна: модель, которая не помещается в память целиком, начинает работать в разы медленнее, потому что часть весов постоянно подгружается заново.
Что такое self-hosted LLM и чем это отличается от обращения к чужому API
Self-hosted LLM — это языковая модель, которая работает на вашем собственном сервере, а не вызывается через API стороннего сервиса. Вы отвечаете за железо, но данные не покидают вашу инфраструктуру.
Плата за это — обычно более низкое качество ответов по сравнению с крупнейшими закрытыми моделями, доступными только по API, и расходы смещаются с оплаты за токены на оплату за сервер, который работает постоянно, вне зависимости от того, обращаетесь вы к модели прямо сейчас или нет.
Главное ограничение — объём памяти
Прежде чем выбирать модель по названию, стоит понять, сколько памяти она займёт в разных степенях сжатия. Ниже — ориентировочные значения: точные цифры зависят от конкретной реализации, но порядок величины такой.
| Класс модели (параметров) | Полная точность | 8-бит | 4-бит |
|---|---|---|---|
| 7-8 млрд | около 15 ГБ | около 8 ГБ | около 4-5 ГБ |
| 13-14 млрд | около 28 ГБ | около 14 ГБ | около 7-8 ГБ |
| 30-34 млрд | около 65 ГБ | около 33 ГБ | около 17 ГБ |
| 70 млрд и больше | около 140 ГБ | около 70 ГБ | около 35-40 ГБ |
Отсюда практический вывод: модель с запасом должна помещаться в доступную память с учётом контекста и служебных буферов, а не ровно впритык.
Что такое квантование и чем за него платишь
Квантование — это сжатие весов модели до меньшей разрядности: вместо 16-битных чисел используются 8-битные или 4-битные. Это уменьшает объём памяти и ускоряет работу на одном и том же железе.
Расплата — постепенная потеря точности: чем сильнее сжатие, тем выше риск, что модель начнёт путаться в деталях и длинных рассуждениях. Для большинства практических задач 8-битное и умеренное 4-битное сжатие работают приемлемо, но проверять стоит на своих данных, а не доверять общим описаниям.
Выбор модели под задачу
Разные задачи требуют разного класса моделей, и переплачивать памятью за задачу, которая в этом не нуждается, смысла нет.
| Задача | Класс модели | На что смотреть |
|---|---|---|
| Чат и переписка | 7-8 млрд параметров обычно достаточно | качество удержания контекста диалога |
| Помощь с кодом | 13-14 млрд параметров и выше | отдельная версия, обученная на коде |
| Перевод текста | 7-8 млрд параметров | поддержка нужной пары языков |
| Извлечение данных из документов | 7-8 млрд параметров с низким сжатием | устойчивость к формату и опечаткам в источнике |
| Векторные представления для поиска | отдельный, более компактный класс моделей | размер и скорость получения векторов, а не диалоговые способности |
Процессор или видеокарта
Без видеокарты модель тоже запускается, если она помещается в оперативную память, но ответ формируется заметно дольше, слово за словом, и ждать его приходится секундами на каждый запрос.
Видеокарта обязательна, когда ответ нужен быстро и регулярно — например, в сервисе с живыми пользователями. Для редких фоновых задач без жёсткого требования к скорости процессора достаточно.
Как проверить, что модель подходит, до того как строить на ней сервис
Три признака видно уже на первых запросах, и проверить их стоит до того, как вокруг модели построен весь сервис.
- Модель держит контекст именно той длины, которая нужна в задаче, а не теряет начало диалога
- Ответ укладывается в приемлемое время на реальном железе, а не на бумаге
- Качество на ваших настоящих примерах, а не на демонстрационных, остаётся стабильным
Что делать дальше
Когда класс модели понятен, дальше — вопрос запуска и обвязки вокруг неё. Установка разобрана в статье про настройку Ollama на VDS, а про работу с локальными моделями без внешних API — в статье про локальные LLM на VPS.