Перейти к содержанию

Почему локальная нейросеть отвечает медленно

Сначала измерьте загрузку модели, обработку запроса и генерацию отдельно. По этим цифрам можно выбрать, что проверить первым: диск, контекст, память или ускоритель.

Обновлено Редакция GAW

Медленный первый ответ и медленная генерация требуют разных проверок. Загрузка весов, обработка входных токенов и выдача токенов ответа образуют отдельные этапы.

Коротко

  • Сравнивайте холодный и прогретый запросы отдельно.
  • Для длинного промпта запишите число обработанных и кешированных токенов.
  • Скорость генерации сравнивайте при одинаковых модели и настройках.
  • Проверяйте размещение модели, свободную память и частоты под нагрузкой.
Этапы выполнения запроса LLMЗагрузка модели → Обработка промпта → ГенерацияЗагрузка моделиload_durationОбработка промптаprompt_eval_durationГенерацияeval_duration
Замер разделяет загрузку модели, обработку запроса и генерацию.

Снять измерения в Ollama

После установки и загрузки тестового тега выполните запрос к локальному API. Сохраните JSON. Затем повторите тот же запрос, пока модель остаётся в памяти.

curl -fsS http://127.0.0.1:11434/api/generate \
  -H 'Content-Type: application/json' \
  -d '{"model":"llama3.2:1b","prompt":"Explain why leaves look green in one sentence.","stream":false,"keep_alive":"5m","options":{"num_ctx":2048,"num_predict":64,"temperature":0}}'
ollama ps

Времена в ответе приведены в наносекундах. Для скорости генерации поделите eval_count на eval_duration / 1e9, если время положительное. Например, 48 токенов за 2 секунды дают 24 токена/с. Это пример арифметики, а не результат теста оборудования. Для промпта смотрите prompt_eval_duration вместе с числом входных и кешированных токенов. Повтор того же текста может использовать кеш, поэтому помечайте такие результаты отдельно.

Что вырослоВозможная причинаСледующая проверка
load_durationМодель выгрузилась или долго читаетсяСравните холодный и прогретый запросы, проверьте диск и свободную RAM
prompt_eval_durationДлинный ввод или кеш не использовалсяСократите ввод, проверьте num_ctx и число токенов
eval_duration при том же eval_countИзменилось размещение модели или частотаСверьте ollama ps, VRAM и частоты CPU/GPU во время запроса
Время клиента при схожих метриках движкаОчередь, клиент или сетьСравните прямой запрос к локальному API и запрос через интерфейс

Память, питание и диск

Проверьте, не началась ли активная подкачка при загрузке. Если часть модели остаётся на CPU, запишите этот факт и сравните с вариантом, который полностью помещается в доступную VRAM. Уменьшение контекста помогает, когда дополнительное место занимает кеш. Для длительного падения скорости сравните частоты и температуру в начале и в конце серии. У ноутбука зафиксируйте питание от сети или батареи и режим энергопотребления. Диск особенно важен при загрузке весов и при подкачке.

Проверяйте по одному изменению за раз. Для времени до первого токена используйте потоковый запрос и таймер клиента. Время полного непотокового ответа включает больше этапов. Запишите версию движка, тег, контекст, размещение, число токенов и разброс нескольких сопоставимых запусков.

Частые вопросы

Почему первый запрос дольше последующих?

В него может войти загрузка модели. Сравните load_duration и проверьте, оставалась ли модель загруженной между запросами.

Как проверить использование GPU?

В Ollama выполните ollama ps и сравните поле PROCESSOR. Сверьте его с загрузкой и памятью GPU во время запроса.

Можно ли вычислить время до первого токена из eval_duration?

Нет. eval_duration относится к генерации. Время до первого токена измеряйте на клиенте с потоковым ответом и фиксируйте начало запроса.

Источники

  1. Ollama Generate API — Прочитано 08.11.2026
  2. Ollama FAQ — Прочитано 08.11.2026
  3. Ollama Context length — Прочитано 08.11.2026
  4. vLLM Metrics — Прочитано 08.11.2026
  5. llama.cpp README — Прочитано 08.11.2026
Страница помогла?

Нашли ошибку? ·