1. Отличите загрузку от инференса
| Наблюдение | Проверить |
|---|---|
| Медленно только после запуска | Чтение весов; повторный запрос на загруженной модели |
| Медленно каждый ответ | PROCESSOR, слои на GPU, VRAM и shared memory |
| OOM сразу | Веса + настроенный контекст + другие приложения |
| OOM на длинном входе | Пик prefill, batch/ubatch, окно и число запросов |
На NVIDIA nvidia-smi покажет занятость памяти и процессы. Запишите точную модель, файл квантования, ОС, драйвер и версию движка.
2. Сначала посмотрите CONTEXT
ollama psOllama выбирает исходное окно по VRAM: менее 24 ГиБ — 4K, от 24 до менее 48 ГиБ — 32K, от 48 ГиБ — 256K. Проверьте столбцы CONTEXT и PROCESSOR командой ollama ps. Задать своё окно можно ползунком в настройках приложения, через OLLAMA_CONTEXT_LENGTH у сервера или /set parameter num_ctx 8192 внутри чата CLI.
На 24-ГБ карте начните проверку ухода на CPU с исходных 32K. Это проверяемая возможная причина, а не статистически доказанная «самая частая». В CLI задайте /set parameter num_ctx 4096, выполните короткий запрос и снова посмотрите CONTEXT/PROCESSOR. Если GPU совсем не обнаружен, снижение контекста не исправит драйвер или права доступа.
3. Квантованный KV и автоматическая подгонка
Для Ollama квантованный KV требует Flash Attention. После завершения приложения пример ручного сервера в PowerShell:
$env:OLLAMA_FLASH_ATTENTION="1"
$env:OLLAMA_KV_CACHE_TYPE="q8_0"
$env:OLLAMA_CONTEXT_LENGTH="8192"
ollama serveПроверьте применение настройки в журнале и ответы на контрольных вопросах. У службы переменные задаются окружению службы, не клиенту.
llama-server -m model.gguf -c 8192 -ngl auto -fa on -ctk q8_0 -ctv q8_0В текущем llama-server -ngl auto и --fit on включены по умолчанию. Fit подгоняет незаданные параметры под память; целевой запас по умолчанию — 1024 МиБ. Явные настройки и фактическое размещение смотрите в журнале. Квантование K/V не меняет состояния DeltaNet. При несовместимой архитектуре или бэкенде используйте поддержанный формат кэша.
4. Windows: проверьте fallback NVIDIA
Драйвер NVIDIA может разрешать CUDA-программе использовать системную память при заполнении VRAM. Для диагностического прогона: NVIDIA Control Panel → Manage 3D settings → Program Settings, выберите исполняемый файл приложения, затем CUDA – Sysmem Fallback Policy → Prefer No Sysmem Fallback. Перезапустите приложение.
Так скрытое замедление может смениться явным OOM. Это помогает обнаружить нехватку памяти, но не увеличивает VRAM. Для возврата выберите Driver Default. Инструкция NVIDIA дана для Python/Stable Diffusion; выбирайте именно процесс, выполняющий CUDA-нагрузку.
5. Найдите точную ошибку в журнале
Windows Ollama: %LOCALAPPDATA%\Ollama\server.log. macOS: ~/.ollama/logs/server.log. Linux/systemd:
journalctl -u ollama --no-pager --follow --pager-endOLLAMA_DEBUG=1 включает подробный журнал. Для HIP/ROCm AMD_LOG_LEVEL=3 добавляет сообщения библиотеки; это не настройка Vulkan. В Windows после выхода из приложения:
$env:OLLAMA_DEBUG="1"
& "ollama app.exe"Ищите ошибки обнаружения GPU, версии драйвера и выделения буферов. Удалите личные запросы и токены из журнала перед передачей другим людям.
Источники и документация
- Ollama: устранение неполадок ↗
- Ollama: контекст по объёму VRAM ↗
- Ollama: настройки, кэш, хранение моделей ↗
- llama.cpp: параметры сервера ↗
- NVIDIA: System Memory Fallback ↗
- NVIDIA: nvidia-smi ↗
Сведения и документация проверены 24.10.2026.