Локальная модель: Ollama по-настоящему

Все задания этого курса проходят без сети — но на FakeLLM. Когда захочется живых прогонов без облака — ни подписок, ни ключей, ни «код улетел на чужие серверы», — есть третий путь: модель, которая целиком живёт на вашей машине. При настройке окружения вы уже ставили Ollama и делали первый запрос; этот урок — про понимание: почему модель занимает столько памяти, как выбрать её под своё железо и чего ждать по скорости и качеству.

Главное правило: модель — это файл

Языковая модель — это веса: миллиарды чисел, упакованные в файл. Когда вы «запускаете модель», файл грузится в память целиком — и он там живёт, пока вы ей пользуетесь. Отсюда арифметика, которая объясняет всё остальное.

Веса по умолчанию хранятся в 16-битном формате — по два байта на параметр. Модель на 8 миллиардов параметров: 8 млрд × 2 байта ≈ 16 гигабайт памяти — до того, как она обработала хоть один токен. Плюс место под контекст (он растёт с длиной запроса — ещё гигабайт-другой на типичные наши промпты с диффами).

Квантизация — трюк, который делает локальный запуск реальным: веса округляются и упаковываются в 4–5 бит на параметр вместо 16. Файл худеет примерно вчетверо, качество проседает немного (не «вчетверо хуже», а «на ощущаемый шажок»), скорость растёт — меньше данных гонять по памяти. Формат с пометкой Q4 в имени модели — это оно. Та же 8-миллиардная модель в Q4 — около 5 ГБ: влезает в обычный ноутбук с запасом.

Подбор под железо

Считать надо свободную память — операционная система, браузер и IDE уже съели свою часть. Ориентиры для Q4:

Свободной памяти

Комфортный класс модели

6–8 ГБ

3–4 млрд параметров

12–16 ГБ

7–8 млрд (наш основной случай)

24 ГБ и больше, или GPU с 8–12 ГБ видеопамяти

13–14 млрд

Конкретные имена моделей смотрите в библиотеке Ollama — семейства вам уже знакомы по уроку о выборе модели (Qwen, Llama, DeepSeek); для каждого есть версии разного размера, в имени зашит и вес файла. Mac с унифицированной памятью — отдельная песня: там «видеопамять» и обычная — одна и та же, и 16-гигабайтовый MacBook тянет 7–8B лучше многих ноутбуков с дискретной видеокартой.

Главная ошибка здесь — «возьму покрупнее ради качества» на 8 гигабайтах: модель не влезает, система уходит в своп, и токен генерируется секунды. Медленная модель не просто раздражает — она ломает лимиты шагов агента. Меньшая модель, которая честно влезла в память, почти всегда полезнее большей, которая жертвует собой в свопе.

Ollama: пять команд и один суффикс

Практическая часть — короткая, потому что инструмент честный:

bash
ollama pull <модель>    # скачать; файл ляжет в ~/.ollama/models
ollama list             # что скачано и сколько весит
ollama run <модель>     # чат прямо в терминале — быстрая проверка «жива ли»
ollama ps               # что прямо сейчас загружено в память

Сервер (ollama serve) обычно уже работает как служба после установки и поднимает OpenAI-совместимый API на localhost:11434. Подключение вашего LLMClient вы видели при настройке окружения — повторю с акцентом на самой частой ошибке:

bash
export LLM_BASE_URL=http://localhost:11434/v1   # суффикс /v1 обязателен
export LLM_API_KEY=ollama                       # локальному серверу всё равно, но поле не пустое
export LLM_MODEL=<имя из ollama list>

Пропущенный /v1 — причина номер один «соединение есть, а ответы нет» (номер два — ключ, заданный не в той сессии терминала, привет промо-модулю). Ещё одна особенность: Ollama выгружает модель из памяти после простоя — первый запрос после паузы медленный, пока файл грузится обратно. Для агента это лечится прогревочным запросом при старте.

Из альтернатив того же жанра — LM Studio: графический интерфейс, свой OpenAI-совместимый эндпоинт, те же модели; кому комфортнее мышкой, чем терминалом. Взаимозаменяемо с Ollama для всего курса.

Чего ждать

Качество. Модель на 7–8 миллиардов параметров — крепкий середняк: черновики текстов, простые ревью, разбор трейсов из практики — уверенно; сложные рассуждения и тонкий код — заметно слабее облачных флагманов. В терминах урока о выборе модели: это дешёвый ярус, только бесплатно. Роутинг отсюда напрашивается сам: локальная модель на поток рутины, облачная — на эскалацию спорных случаев.

Скорость. По порядку величины: на CPU — единицы-десятки токенов в секунду, на GPU — десятки-сотни. Для ночного ревью в CI скорость почти неважна (вспомните критерии выбора); для интерактивного диалога с агентом медленная модель — обуза.

Экономика. Арифметика меняется по сравнению с облаком зеркально: кэш-скидки не существует (нечего тарифицировать — токены бесплатные), зато каждый прогон стоит электричества и вашего железа. Локально выгодно, когда объёмы постоянные и большие, а железо уже куплено; облачно — когда потребность рваная или нужна выпечка флагманского качества.

И отдельно — приватность: при работе с локальной моделью код не покидает машину. Для репозиториев под NDA, корпоративных данных и просто осторожных людей это не «бонус», а единственный приемлемый вариант — и сильный аргумент в пользу навыка «агент на локальной модели», когда вас спросят про AI-инструменты на собеседовании.

Практика без домашки

Железо у всех разное, поэтому вместо тестов — чек-лист «поднять локальный мозг»:

  1. ollama pull модель класса под вашу свободную память (таблица выше).

  2. ollama run — задайте пару вопросов, почувствуйте скорость.

  3. Экспортируйте три переменные окружения и прогоните любой живой режим из заданий курса (первый запрос из окружения, слепой бенчмарк).

  4. Сравните с бесплатной облачной моделью на тех же задачах: где локальная справилась, где нет. Вывод из трёх строк — ваш личный вердикт по роутингу.

Когда в следующем модуле появится агент-разведчик, он заработает на локальной модели без единой правки кода — в этом и был смысл провайдер-нейтрального LLMClient.

Что запомнить

  • Модель — файл весов, грузится в память целиком: 16 бит на параметр → 8 млрд ≈ 16 ГБ; Q4-квантизация сжимает примерно вчетверо при несущественной потере качества.

  • Подбор по свободной памяти: 6–8 ГБ → 3–4B, 12–16 ГБ → 7–8B, 24+ ГБ → 13–14B. Меньшая, но влезшая, лучше большей в свопе.

  • Ollama: pull/list/run/ps; эндпоинт localhost:11434/v1 — суффикс /v1 обязателен; после простоя модель «прогревается».

  • Локальная модель — дешёвый ярус бесплатно: рутина — ей, эскалация — облаку; токены бесплатны, кэш-скидок нет.

  • Код не покидает машину: для приватных репозиториев это не бонус, а требование.

Дополнительно

  • ollama.com — библиотека моделей и документация по командам.

  • theory icon

    Как устроены LLM: токены, контекст, цена

    10 мин

  • homework icon

    Домашка: токен-калькулятор

    4 мин

  • quiz icon

    Квиз: Как устроены LLM: токены, контекст, цена

    8 мин

  • theory icon

    Промпты как код: шаблоны и переменные

    8 мин

  • homework icon

    Домашка: промпт ревьюера

    3 мин

  • quiz icon

    Квиз: Промпты как код: шаблоны и переменные

    7 мин

  • theory icon

    Структурированный вывод: JSON вместо прозы

    6 мин

  • homework icon

    Домашка: парсер ревью

    3 мин

  • quiz icon

    Квиз: Структурированный вывод: JSON вместо прозы

    7 мин

  • theory icon

    Выбор модели: GPT, Claude, открытые

    7 мин

  • homework icon

    Домашка: бенчмарк вслепую

    4 мин

  • quiz icon

    Квиз: Выбор модели: GPT, Claude, открытые

    7 мин

  • homework icon

    HARD-задача: смета агента

    3 мин

  • theory icon

    Локальная модель: Ollama по-настоящему

    8 мин

  • quiz icon

    Квиз: Локальная модель: Ollama по-настоящему

    6 мин

🎯
Тренажёр собеседованияЗакрепите знания перед интервью