Инференс в машинном обучении¶
Инференс (от англ. inference — «вывод, умозаключение») — этап работы обученной модели искусственного интеллекта, на котором она применяет накопленные знания к новым входным данным для получения результата: прогноза, классификации, сгенерированного текста или изображения. В отличие от этапа обучения (тренинга), на инференсе веса модели не изменяются — происходит только прямой проход данных через нейросеть и выдача выходного значения.
¶Место инференса в жизненном цикле модели
Разработка системы на основе машинного обучения обычно включает три последовательных этапа:
| Этап | Что происходит | Изменяются ли веса |
|---|---|---|
| Обучение (training) | Модель настраивается на обучающем наборе данных | Да |
| Валидация / тестирование | Оценка качества на отложенных данных | Нет |
| Инференс (inference) | Применение модели к новым данным | Нет |
На этапе инференса модель получает входной тензор (например, текст, изображение, вектор признаков), прогоняет его через вычисленные математические операции и возвращает выход: вероятности классов, вектор эмбеддингов, сгенерированный токен и т. д. Параметры (веса) остаются фиксированными, поэтому инференс называют также «прогоном» или «эксплуатацией» модели.
¶Виды инференса
По характеру обрабатываемых данных инференс подразделяют на несколько типов:
- Батчевый (batch) — обработка большого набора данных за один проход. Используется при массовой разметке, офлайн-анализе, пересчёте эмбеддингов. Позволяет эффективно задействовать вычислительные ресурсы.
- Онлайн (online, real-time) — обработка данных по мере поступления, с минимальной задержкой. Применяется в рекомендательных системах, чат-ботах, системах распознавания речи, автопилотах.
- Стриминговый (streaming) — непрерывная обработка потока данных в реальном времени, например видео с камер или аудиопотока.
По масштабу выделяют также edge-инференс — выполнение вычислений на локальных устройствах (смартфоны, микроконтроллеры, встроенные системы) без обращения к облаку, и облачный инференс — выполнение на удалённых серверах.
¶Особенности инференса больших языковых моделей
Для трансформерных языковых моделей (GPT, LLaMA, RuGPT и аналогичных) инференс имеет ряд специфических черт:
- Авторегрессивная генерация. Модель предсказывает следующий токен, добавляет его к контексту и повторяет процедуру. Каждый шаг — отдельный проход через сеть.
- Кэширование ключей и значений (KV cache). При генерации повторно пересчитываются только новые токены; ранее вычисленные ключи и значения сохраняются в памяти, что существенно ускоряет вывод.
- Длина контекста. Чем больше окно внимания, тем больше памяти требуется для хранения KV-кэша и тем выше стоимость инференса.
- Декодирование. Стратегии выбора следующего токена (жадный алгоритм, beam search, сэмплирование с температурой, top-k, top-p) определяют баланс между детерминированностью и разнообразием ответов.
¶Оптимизация инференса
Стоимость инференса для крупных моделей часто превышает затраты на их обучение, поэтому разработано множество методов ускорения:
- Квантизация — снижение разрядности весов (например, с FP32 до INT8 или INT4), уменьшающее объём памяти и ускоряющее вычисления при минимальной потере качества.
- Дистилляция — обучение более лёгкой «студенческой» модели на выходах крупной «учительской» модели.
- Прореживание (pruning) — удаление малозначимых весов и целых нейронов.
- Экспорт в оптимизированные форматы — ONNX, TensorRT, OpenVINO, GGUF — с аппаратно-специфичными оптимизациями.
- Пакетирование запросов (batching) — объединение нескольких запросов в один проход для лучшей загрузки GPU.
- Параллелизм — распределение вычислений между несколькими ускорителями (тензорный, pipeline-, data-параллелизм).
¶Метрики и стоимость
Производительность инференса оценивают по нескольким показателям:
- Латентность (latency) — время от поступления запроса до получения ответа. Для онлайн-сценариев критична задержка в миллисекунды.
- Пропускная способность (throughput) — количество обрабатываемых запросов или токенов в единицу времени.
- Стоимость токена — цена обработки одного токена при обращении к API; определяется объёмом модели и объёмом контекста.
- Энергопотребление — важный показатель для edge-устройств и крупных дата-центров.
¶Применение
Инференс лежит в основе большинства практических применений искусственного интеллекта: рекомендательные системы в электронной коммерции, спам-фильтры, медицинская диагностика по снимкам, системы автоматического перевода, виртуальные ассистенты, генеративные системы для создания текста, изображений, кода и музыки. В России разработкой инфраструктуры для инференса и оптимизацией моделей занимаются как крупные технологические компании, так и исследовательские группы профильных вузов.
Источники:
- «Deep Learning» (Ian Goodfellow, Yoshua Bengio, Aaron Courville)
- «Attention Is All You Need» (Vaswani et al., 2017)
- Документация ONNX Runtime, NVIDIA TensorRT, Hugging Face Transformers
- Материалы конференций NeurIPS, ICML, ICLR по оптимизации инференса
