Технологии

Что такое инференс

Инференс — использование уже обученной модели. Разбираем, чем он отличается от обучения по ресурсам, и почему ваши диалоги локальную модель ничему не учат.

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

Второй процесс — обучение — устроен принципиально иначе, и смешение этих двух вещей порождает больше всего путаницы у новичков.

#Обучение и инференс: сравнение по ресурсам

Критерий Обучение Инференс
Как часто один раз (плюс дообучения) при каждом запросе
Кто делает владелец модели вы, на своём железе или у провайдера
Нужны данные корпус на терабайты только ваш запрос
Память под модель веса + градиенты + состояния оптимизатора только веса
Множитель по памяти примерно вчетверо к весам и больше ~1,2 к весам
Железо кластер ускорителей одна видеокарта, иногда процессор
Результат новый файл весов текст ответа

Строка про множитель объясняет, почему обучить модель на домашней видеокарте нельзя, а запустить — можно. При обучении рядом с каждым весом надо держать градиент и состояние оптимизатора; при инференсе — только сам вес. Сколько места занимает модель при разных уровнях сжатия, посчитано в справке про параметры модели.

#Из чего состоит один запрос

Инференс делится на два неравных этапа, и это объясняет большинство жалоб на скорость.

  1. Prefill — обработка промпта. Модель прогоняет весь входной текст и заполняет кэш. Этап упирается в вычислительную мощность и даёт паузу перед началом ответа.
  2. Decode — порождение ответа по одному токену. На каждый токен модель читает все свои активные веса из памяти, поэтому этап упирается в пропускную способность памяти.

Разделять эти два числа при диагностике обязательно — иначе «медленно» ничего не значит; подробности — в справке про задержку и время до первого токена.

#Где путают

Заблуждение первое, самое частое: «я запустил модель локально, теперь она учится на моих данных». Не учится. Локальный запуск — чистый инференс: пока вы не запустили отдельную процедуру дообучения, файл весов побайтово тот же, что вы скачали. Ощущение обучения создаёт память ассистента — внешнее хранилище, куски из которого подкладываются в запрос.

Заблуждение второе: инференс — лёгкая операция. Лёгкая по сравнению с обучением, но не по сравнению с обычными программами: генерация одного токена требует прочитать из памяти все активные веса — гигабайты на каждый токен ответа.

Заблуждение третье: медленный инференс лечится мощным процессором. Чаще он упирается не в вычисления, а в память — в объём и в скорость чтения. Потолок процессорного запуска задан пропускной способностью оперативной памяти, и сменой процессора он не поднимается.

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

#Чем инференс отличается от дообучения?

Направлением: при инференсе данные проходят через модель, при дообучении модель подстраивается под данные. Дообучение требует в разы больше памяти и заканчивается новым файлом весов.

#Почему один и тот же запрос второй раз обрабатывается быстрее?

Обычно из-за кэширования: модель уже в памяти, а у части движков сохраняется обработанный префикс промпта. Первый запрос после запуска включает чтение весов с диска — это заметные секунды.

#Можно ли делать инференс без видеокарты?

Можно, и для небольших моделей это рабочий сценарий — практические шаги в разборе того, как запустить LLM локально. Скорость будет ниже, модель придётся брать меньше.

#Что такое пакетный инференс?

Обработка нескольких запросов одновременно, при которой видеокарта загружается плотнее и общая пропускная способность растёт, а задержка отдельного запроса — нет. Для одного пользователя выигрыша почти нет, для сервера на несколько человек — существенный; подробности в разборе vLLM и пакетного инференса.

Остальные термины — в глоссарии терминов ИИ.

Хотите ИИ, который помнит вас?

Persona держит контекст между чатами и работает на вашем железе — если развернуть её у себя и подключить локальную модель.

Создать аккаунт