Ollama keep_alive: загрузка, удержание и выгрузка модели
На странице · 6 разделов
Параметр keep_alive в запросах Ollama /api/generate и /api/chat определяет, сколько модель остаётся загруженной после ответа: по умолчанию пять минут, 0 означает выгрузку, отрицательное значение — удержание без таймера. Для предзагрузки отправьте пустой запрос, затем проверьте точный тег через /api/ps; при нехватке памяти удержание не гарантирует постоянного присутствия модели.
Источники: Git-ревизия Ollama
42e911b, проверена 4 октября 2026 года. Команды ниже — документированный сценарий для вашего компьютера; Modelium не запускал модель и не измерял память или задержку. Изменения Ollama после этой ревизии требуют новой проверки s1s5.
Что меняет keep_alive и когда он нужен?
При обращении к локальной модели Ollama запускает её вычислительный процесс. По умолчанию после ответа модель остаётся загруженной пять минут; это позволяет следующим запросам избежать повторной загрузки, если ресурсов достаточно. keep_alive управляет временем удержания после запроса, а не длиной контекста и не хранением истории чата. Для одного рабочего потока с долгими паузами имеет смысл сначала измерить стоимость повторной загрузки; для ограниченной памяти — настроить своевременную выгрузку. При дефиците ресурсов сервер может вытеснить загруженную модель ради другой, поэтому -1 не резервирует RAM/VRAM навечно s1s6s7.
Маршрут задачи: ваш локальный запрос → конкретный установленный тег модели → доступная RAM/VRAM и число одновременных клиентов → Ollama → ответ и запись в /api/ps. Если модель ещё не установлена или сервер не отвечает, начните с установки Ollama и проверки API. Размер файла весов не равен минимуму памяти процесса, а ускорение от удержания нужно измерять на собственном устройстве s1s3.
Какие значения действуют и что важнее: запрос или сервер?
В /api/generate и /api/chat параметр keep_alive может быть строкой длительности ("10m", "24h"), числом секунд, нулём для выгрузки после ответа или отрицательным значением для удержания без таймера. Если параметр опущен, применяется OLLAMA_KEEP_ALIVE сервера; без настройки значение по умолчанию — 5m. Явный параметр запроса переопределяет переменную сервера. Не смешивайте "0" как строку и 0 как число при копировании примеров: здесь используем именно JSON-число 0 s1s3s7.
Серверный OLLAMA_KEEP_ALIVE меняет стандартную политику для запросов без индивидуального значения; чтобы изменить окружение уже работающего приложения или systemd-сервиса, его нужно корректно сконфигурировать и перезапустить. В документации Ollama есть разные инструкции для macOS, Linux systemd и Windows: редактирование окружения текущего shell само по себе не меняет уже запущенный сервер. Прежде чем задавать длительное удержание сразу всем моделям, оцените рабочую конкуренцию и бюджет памяти s1s7.
Длительность не означает гарантию точного момента исчезновения из /api/ps. В закреплённом планировщике отсчёт таймера идёт, когда завершившийся запрос делает runner простаивающим; при новых запросах таймер может сбрасываться, а при нехватке ресурсов модель может быть вытеснена раньше. Поэтому фиксируйте время последнего ответа и смотрите фактическое состояние, а не используйте один таймер как SLA s6.
Как предзагрузить модель и увидеть её в памяти?
Сначала убедитесь, что Ollama работает на вашем локальном 127.0.0.1:11434, а выбранный тег уже установлен. Подставьте вместо ВАШ_ТЕГ реальный локальный тег из ollama ls; не указывайте случайную модель, чтобы не запускать незапланированную загрузку весов. Документация Ollama разрешает пустой запрос для предзагрузки через generate или chat. Для короткого разогрева по описанному API отправьте со своей машины: curl -fsS --max-time 120 http://127.0.0.1:11434/api/generate -d '{"model":"ВАШ_ТЕГ","keep_alive":"10m","stream":false}'. Тайм-аут клиента 120 секунд — лишь редакционный пример, он может оказаться слишком коротким для вашей машины. Команда не исполнялась Modelium s1s2s4.
Теперь выполните curl -fsS --max-time 10 http://127.0.0.1:11434/api/ps. В объекте models найдите точное имя тега, а также expires_at и, если нужен аудит размещения, size_vram. Альтернативно ollama ps показывает загруженные модели и их процессор; /api/ps — список сейчас загруженных, а не список установленных тегов. Значение size_vram — наблюдение текущего размещения, не минимальное требование видеопамяти. Отсутствие записи после долгого ожидания может быть следствием срока удержания или вытеснения, не доказательством поломки inference s1s2s3s4s6.
Для проверки именно ответа модели пошлите на /api/generate короткий запрос с реальным prompt и "stream":false, сохранив keep_alive, например curl -fsS --max-time 120 http://127.0.0.1:11434/api/generate -d '{"model":"ВАШ_ТЕГ","prompt":"Ответь одним словом: готово","stream":false,"keep_alive":"10m"}'. Сверьте поле done и текст response; метрика load_duration в ответе измеряется наносекундами, но её значение без одинаковой нагрузки и серии повторов не является обещанием выигрыша. На используемых модели и железе Modelium таких запросов не делал s2s3.
Как выгрузить одну модель и проверить результат?
Документированный API-путь — пустой prompt плюс keep_alive: 0 у точного выбранного тега: curl -fsS --max-time 120 http://127.0.0.1:11434/api/generate -d '{"model":"ВАШ_ТЕГ","prompt":"","keep_alive":0}'. Это команда на выгрузку, а не сброс всех моделей и не удаление файлов. В исходном коде специальная ветка вызывает expireRunner для пустого prompt и нулевой длительности; альтернативная команда CLI — ollama stop ВАШ_ТЕГ. Не используйте ollama rm, если намеревались лишь освободить занятую память: rm удаляет установленную модель с диска s1s2s4s5.
Повторите GET /api/ps и проверьте, что тот же тег больше не присутствует в models. При параллельном активном запросе выгрузка может ожидать завершения работы runner; проверьте список ещё раз спустя короткую паузу и убедитесь, что другое приложение не отправило новый запрос на тот же тег. Сам по себе успешный HTTP-ответ команды на выгрузку не измеряет освобождённые байты RAM/VRAM: при необходимости снимайте системные показатели до и после, сохранив имена процессов и другую нагрузку s2s3s6.
Что делать, если модель неожиданно загружается снова или не выгружается?
- В
/api/psснова появился тег: проверьте клиентов, фоновые задачи и реальные повторные запросы. Параметрkeep_aliveотдельного клиента может переопределить настройку сервера; вы не «зафиксировали» модель на всех клиентов одним запросом s1s6. - Долгое удержание не работает: посмотрите установленный
OLLAMA_KEEP_ALIVE, значение в самом API-запросе, момент последнего ответа и доступные ресурсы. При необходимости планировщик вытесняет idle runner ради другой модели; отрицательное значение — отсутствие обычного таймера, не запрет на вытеснение s1s6s7. - Освободилась не вся память: изучите
/api/psпо остальным моделям и системные показатели.size_vramодного runner и файл весов не описывают все буферы приложения и память других процессов. Не объявляйте уменьшение VRAM по одному исчезнувшему имени без измерения s3s6. - Повторный ответ медленный: сравните
load_durationна одинаковых запросах с холодным и тёплым запуском, а также состояние/api/psдо каждого вызова. Параллельная очередь и ограничение памяти могут влиять на задержку независимо от TTL; гайд о параллельных запросах помогает отделить эти причины s1s2s3.
Какой следующий шаг подтверждает рабочую настройку?
Сохраните тег и версию Ollama, выбранное значение keep_alive, способ запуска сервера, время тестового запроса, результат /api/ps до и после выгрузки, а также фактический ответ модели. Для приложения перед передачей реальной нагрузки нужна проверка готовности Ollama: запись в /api/ps подтверждает состояние загрузки, но не качество и не успешность inference. Если модель постоянно вытесняется, пересмотрите одновременное число моделей, контекст и ресурсы вместо обещания, что -1 решит нехватку RAM/VRAM. Это план проверки читателем, а не результат теста Modelium s1s2s3s6.
Источники
- Ollama FAQ: предзагрузка, keep_alive, очереди и конфигурация — revision 42e911bc3d05798cad729cb474bf62f378cb2e26. Получено 04.10.2026.
- Ollama API: generate, chat, unload и список запущенных моделей — revision 42e911bc3d05798cad729cb474bf62f378cb2e26. Получено 04.10.2026.
- Ollama OpenAPI: keep_alive, ps, expires_at и load_duration — revision 42e911bc3d05798cad729cb474bf62f378cb2e26. Получено 04.10.2026.
- Ollama CLI: ps, stop, serve и загрузка модели — revision 42e911bc3d05798cad729cb474bf62f378cb2e26. Получено 04.10.2026.
- Ollama server/routes.go: специальный запрос на выгрузку — revision 42e911bc3d05798cad729cb474bf62f378cb2e26. Получено 04.10.2026.
- Ollama server/sched.go: таймер простоя и вытеснение runner — revision 42e911bc3d05798cad729cb474bf62f378cb2e26. Получено 04.10.2026.
- Ollama envconfig/config.go: настройка и значение KeepAlive — revision 42e911bc3d05798cad729cb474bf62f378cb2e26. Получено 04.10.2026.