Знаете это чувство, когда читаешь статью про локальные LLM и думаешь: «А, ну это же просто. Поставлю Ollama, тяну модель, и у меня уже свой ИИ-агент, который знает весь код»?
Я думал именно так.
Меня зовут Егор Лаптев, я QA Fullstack Java в SENSE на проекте крупного российского банка. У меня MacBook Pro M2 Pro с 32 ГБ RAM: не topical машина, но для разработки рабочая лошадка. Даже не подозревал, что через 20 минут после запуска модели ноутбук будет звучать как истребитель на взлёте, а температура процессора будет такой, что можно было бы варить яичницу на крышке.
Это история о том, как «просто запустить локально» превратилось в инженерный проект с бюджетом, расчётами и одним почти сгоревшим ноутбуком.
Две команды в терминале
Всё началось с двух команд в терминале:
ollama pull qwen-coder:3.5-72b
ollama run qwen-coder:3.5-72b
Модель — Qwen Coder 3.5, 72 миллиарда параметров, а по меркам LLM это уже тяжёлый класс. В интернете пишут: «72B — это для воркстейшнов, тебе нужен сервер с 128 ГБ». Но Ollama с агрессивным квантованием до Q2_K (~26 ГБ) «вмещает» модель в 32 ГБ, так что технически она влезает, если сжать её до состояния, при котором она сама начинает сомневаться в своём интеллекте.
Да, я знаю, что вы сейчас подумали: «Q2_K? Это же каша из токенов, любая логика умирает». И вы правы, но цель была проверить, заведётся ли вообще 72B на ноутбуке, а эксперимент — не продакшн. Для реальной работы я бы взял Qwen 2.5 7B или 14B в Q4_K_M или Q8, а это 90% качества при трети ресурсов. Но тогда бы не было этой статьи.
Не стал ничего настраивать: никаких лимитов или ограничений GPU. Просто ollama run и поехали.

Вентилятор заорал
Ollama забрал всю доступную RAM, все 32 ГБ: 32 гигабайта, и он сожрал ВСЕ. macOS начала активно использовать swap, и диск начал гудеть как стиральная машина на отжиме, а CPU и GPU (у нас же unified memory, так что это одно и то же) стояли на 100% весь период инференса. Вентилятор заорал, а всё остальное на машине стало неюзабельным: браузер лагал, IDE зависала, даже ls в терминале отвечал с задержкой. Через несколько минут включился thermal throttling, и система начала принудительно снижать частоты, чтобы не сгореть.

Кто-то скажет: «Да macOS не даст одному процессу забрать всю память». И будет прав: по умолчанию есть лимит ~70-75% от общего объёма RAM для GPU. Но Ollama + macOS в связке с 72B моделью ушли в жёсткий своп: модель не влезала в отведённые 75%, и macOS начала активно писать и читать на SSD. А это медленная смерть для диска: постоянная нагрузка на NAND-ячейки, нагрев, деградация. MacBook страдал не только от CPU/GPU, но и от того, что SSD работал на износ.
Я смотрел на Activity Monitor, где все графики были красными, и подумал: «Больше похоже на запуск ракеты, чем на деплой агента». Каким-то чудом ноутбук выжил, но я понял, что так продолжаться не может.
Пытаемся спасти ситуацию: лимит памяти
Первым делом я поставил лимит на память: пусть модель работает в отведённом бюджете, а остальное достанется системе и моим окнам. 4096 MB, как советовали в туториалах, не сработали: 72B in Q2_K весит ~26 ГБ, и в 4 ГБ она просто не влезает, Ollama честно сообщал об ошибке загрузки. Пришлось поднять лимит до 28 ГБ, ровно чтобы модель влезла, и ни гигабайтом больше. У меня 32 ГБ, а модель мучается в 28. Звучит как издевательство, но это единственное, что позволяло ноутбуку не перегреться.
# В конфиге Ollama или через переменные окружения
OLLAMA_NUM_PARALLEL=1
# Лимит памяти через системные настройки macOS
В итоге модель отвечает, а скорость инференса при этом упала до 1-2 токенов в секунду (для сравнения, на RTX 4090 та же модель выдаёт 10-15 tok/s).
Что это значит на практике? Простой запрос «напиши функцию для парсинга JSON» заставляет ждать минуту-две, пока модель генерирует ответ. Токены приходят по одному-два, буква за буквой, как будто кто-то печатает на машинке 1985 года.

Оно живое. Но живое как черепаха. Разница между двумя режимами видна в таблице.
Параметр | Без лимита | С лимитом 28 ГБ |
|---|---|---|
RAM usage | 28-32 ГБ (всё) | ~28 ГБ |
Скорость | ~3-4 tok/s (до троттлинга) | ~1-2 tok/s |
Юзабилити | MacBook неюзабелен | Работает, но медленно |
Температура | 95°C+ | ~85-90°C |
Для экспериментов, конечно, терпимо, но для ежедневной работы точно нет.
Переезд на ПК, который теперь работает на агента
Решение было очевидным: нужен ПК уровня рабочей станции.
Спеки, которые у меня были в наличии:
GPU: RTX 4070 Ti Super 16GB
RAM: 32 ГБ DDR5
SSD: 2TB NVMe Gen4
CPU: Intel Core i5-13600KF
72B в Q2_K (~26 ГБ) не влезает в 16 ГБ видеопамяти целиком, часть весов живёт в оперативке, и это заметно. Но модель на этом железе работает:
5-8 токенов в секунду — ответ на простой запрос генерируется за 10-20 секунд
Можно держать открытыми IDE, браузер, терминал — всё работает
GPU не в 100%, а в 60-70% при инференсе
Звучит идеально, правда? Но теперь, когда я запускаю агента:
GPU сидит на 80-90% во время инференса
Играть в AAA-тайтлы — невозможно (GPU занят)
Монтировать видео — можно, но медленно (конкуренция за VRAM)
ПК теперь на 50% ИИ-сервер и на 50% личный компьютер
Оно живое и быстрое, но мне немного жаль личный ПК: он теперь работает на меня 24/7, а я не могу даже поиграть в Cyberpunk без того, чтобы сначала остановить агента.
RAG-база: кошелёк начинает нервничать
И вот тут начинается самое интересное. Потому что модель, которая просто генерирует текст, ещё не агент. Агент — это модель + контекст. А контекст — это RAG (Retrieval-Augmented Generation).
Мне хотелось, чтобы агент знал мой домен: код, доки, процессы, тикеты, чаты. Для этого я начал собирать RAG-пайплайн: векторная база + эмбеддинги + retrieval. И вот тут я сел посчитать, а сколько это всё вообще весит.
Расчёт: сколько нужно для «полного» покрытия домена

Исходные данные:
Средний документ: 10-50 страниц
Размер чанка: 500 токенов (~350 слов)
Размерность эмбеддинга: 1536 или 4096
Масштаб | Документов | Страниц | Чанков | Хранение |
|---|---|---|---|---|
Личный проект | 500 | 10,000 | 14,000 | ~200 MB |
Внутренние доки | 50,000 | 1,000,000 | 1,400,000 | ~20 GB |
Полный домен | 500,000 | 10,000,000 | 14,000,000 | ~200 GB |
Enterprise-grade | 5,000,000+ | 100,000,000+ | 140,000,000+ | ~2 TB |
И это только векторная база, давайте ещё приплюсуем к ней:
Веса модели: 32B в FP16 = 64 ГБ, в FP32 = 128 ГБ
Данные для fine-tuning + состояния оптимизатора: ×3-4
Структуры индекса: HNSW-графы добавляют 30-50% overhead
В сумме получим, что реалистичный footprint для «полностью обученного» личного агента — это 2-4 ТБ.
Show me the money: сколько стоит агент целиком
Считаем железо, которое нужно для локального агента:
Компонент | Минимум для агента | Стоимость (ориентир) |
|---|---|---|
GPU (24GB+ VRAM) | RTX 4090 / A5000 | $4,500 |
RAM (64GB+) | DDR5 64GB | $500 |
Storage (4TB NVMe) | 4TB Gen4 SSD | $500 |
CPU (16+ cores) | Ryzen 9 / i9 | $600 |
БП, корпус, охлаждение | 1000W+ | $400 |
Итого | $6,500 |
Плюс электричество:
RTX 4090 превращает ~350W под нагрузкой
8 часов в день = ~2.8 кВт·ч/день
В год: ~$100-180

Но главная стоимость — личное устройство теперь сервер. Вы не сможете использовать его для других задач, не сможете выключить, если агент должен быть доступен, и не сможете продать, потому что он «привязан» к инфраструктуре.
Когда локально, а когда облако
Раз расчёт вышел таким, остаётся решить, что запускать локально, а что в облаке. Однозначного ответа тут нет: многое зависит от того, какое у вас железо, насколько чувствительны данные и нужен ли агенту аптайм 24/7. Ниже условия, при которых я бы выбрал тот или другой вариант.
Когда локально имеет смысл:
У вас уже есть мощное железо (воркстейшн, игровой ПК с 24GB+ VRAM)
Вам нужна конфиденциальность (чувствительный код, внутренние доки, данные клиентов)
Вы экспериментируете и не нужен 24/7 аптайм
Модель маленькая (7B-14B) и задача не требует глубокого рассуждения
Когда облако / корпоративная инфраструктура лучше:
Нужна скорость и постоянная доступность
Нужен полный RAG-пайплайн на масштабе (миллионы чанков)
Не хотите обслуживать железо (апгрейды, замена, охлаждение)
Стоимость инференса в облаке часто ниже амортизированной стоимости железа
Sweet spot: гибридный подход
Задача | Где | Почему |
|---|---|---|
Быстрые задачи, приватность | Локально (7B) | Дёшево, быстро, данные не уходят |
Сложное рассуждение, генерация | Облако (70B+) | Качество, скорость, масштаб |
RAG на больших данных | Облако | 200GB+ не потянет локально |
Fine-tuning | Облако / GPU-кластер | Состояния оптимизатора ×4 |
Используйте MacBook для того, что он умеет. А облако — для того, что он не умеет.
Ноутбук цел, а счёт остался
MacBook жив и полностью в порядке. Один троттлинг ещё не болезнь, просто macOS снизил частоты, чтобы не перегреться. Вреда и последствий нет. Живёт, работает, как и раньше, разве что иногда чуть сильнее греется под нагрузкой, но, как уже понял, это не про LLM.
Если считать целиком, цена локального ИИ складывается из четырёх частей:
Железо: $3000-6500 (или личный ПК, который теперь сервер)
Электричество: $100-180/год (мало, но это не ноль)
Время: настройка, отладка, мониторинг, апгрейды
Ограничения: личное устройство теперь работает на агента
Но опыт того стоил. Теперь я знаю, что 7B-14B можно держать на своём железе, а RAG на сотни гигабайт и дообучение лучше отдать облаку.
А вот терпение закончилось: ждать минуту на каждый ответ я не хочу.

Если вы думаете «а я просто запущу на своём ПК», загляните в блок «RAG-база» и посчитайте, прежде чем решать.
Какую модель вы запускаете локально, на каком железе и что вас остановило? Давайте обсудим в комментариях.
