инференс модели
Инференс модели (model inference) — процесс применения обученной нейронной сети для получения предсказаний на новых данных. В отличие от обучения, инференс не обновляет параметры модели: веса зафиксированы, а система лишь выполняет прямой проход (forward pass) для преобразования входных данных в результат.
Инференс vs обучение
Обучение — вычислительно дорогостоящий итерационный процесс, который запускается один раз (или периодически). Инференс — то, что происходит каждый раз, когда пользователь отправляет запрос к модели. Для production-систем инференс выполняется миллиарды раз в день, поэтому его оптимизация критически важна для экономики продукта.
Для инференса не нужно хранить градиенты и промежуточные активации в памяти GPU — это снижает потребность в VRAM примерно вдвое по сравнению с обучением.
Ключевые метрики инференса
- Латентность (latency): время от запроса до получения первого токена (TTFT, Time to First Token) и общее время генерации.
- Пропускная способность (throughput): число токенов или запросов в секунду на единицу оборудования.
- Стоимость: цена на 1 млн токенов или запрос — определяет экономическую эффективность.
- Потребление памяти: сколько VRAM требует модель для загрузки и генерации.
Оптимизации инференса
Квантизация
Снижение точности весов с float32/float16 до int8 или int4 уменьшает размер модели и ускоряет вычисления. INT8-квантизация даёт ~2x ускорение и сжатие с минимальным падением качества. INT4 (GPTQ, AWQ) позволяет запускать 70B-модели на бытовых GPU.
KV-кеширование
При авторегрессионной генерации модель вычисляет векторы Key и Value для каждого токена контекста. KV-cache сохраняет эти вычисления и переиспользует их для последующих токенов, избегая повторных вычислений. Без KV-cache генерация длинных текстов была бы экспоненциально медленнее.
Непрерывное батчирование (Continuous Batching)
Традиционное батчирование ждёт завершения всех запросов в батче перед началом нового. Continuous batching добавляет новые запросы сразу после освобождения слотов, что резко повышает утилизацию GPU.
Спекулятивный декодинг
Маленькая «черновая» модель генерирует несколько токенов-кандидатов, большая проверяет их за один проход. При высоком Accept Rate ускорение достигает 2–3x.
PagedAttention
Технология vLLM: KV-кеш хранится в не-смежных блоках памяти по аналогии с виртуальной памятью ОС. Это устраняет фрагментацию и позволяет обслуживать значительно больше параллельных запросов.
Инфраструктура для инференса
vLLM — наиболее популярный high-throughput serving фреймворк для LLM. TGI (Text Generation Inference от Hugging Face) — production-готовый сервер. Triton Inference Server (NVIDIA) — универсальный сервер для разных типов моделей. TensorRT-LLM — оптимизированный движок NVIDIA для максимальной производительности на GPU. Ollama — удобный инструмент для локального инференса.
Cloud vs on-premise инференс
Cloud-провайдеры (OpenAI, Anthropic, Together AI, Groq) берут на себя инфраструктуру — платите только за токены. On-premise выгоден при высоких объёмах запросов или требованиях к конфиденциальности. Groq использует специализированные LPU (Language Processing Units) с рекордной скоростью генерации ~700 токенов/сек.
Инференс на edge-устройствах
Запуск моделей на смартфонах, IoT-устройствах, автомобилях — активно развивающееся направление. Инструменты: llama.cpp (CPU-инференс через GGUF), Core ML (Apple Silicon), ONNX Runtime, MediaPipe. Малые модели (Phi-3-mini, Gemma-2B) с агрессивной квантизацией (Q4) запускаются прямо на телефоне.
Частые вопросы
Сколько VRAM нужно для инференса LLM?
Базовое правило: 2 байта на параметр для fp16. Модель 7B = ~14 GB, 13B = ~26 GB, 70B = ~140 GB. INT4-квантизация снижает в 4 раза: 7B = ~4 GB, 70B = ~35 GB. KV-кеш добавляет дополнительную память в зависимости от длины контекста и размера батча.
Что такое TTFT и почему это важно?
TTFT (Time to First Token) — время до появления первого токена в ответе. Влияет на восприятие отзывчивости системы пользователем: даже если общая генерация занимает 10 секунд, низкий TTFT (< 0.5 сек) делает взаимодействие комфортным. Для потоковой генерации (streaming) TTFT критичнее общей латентности.
Как ускорить инференс без потери качества?
Первый шаг — включить KV-кеширование (в большинстве фреймворков по умолчанию). Второй — перейти на INT8-квантизацию (минимальная деградация качества). Третий — использовать continuous batching (vLLM, TGI). Для самых требовательных задач — speculative decoding и TensorRT-LLM с custom kernels.
Другие термины в теме «ИИ и машинное обучение»
Не хватает деталей?
Напишите, что уточнить по теме «инференс модели» — это помогает улучшать материал и подсказывает, какие термины добавить дальше. Email необязателен: укажите, если хотите ответ только для вас (мы не шлём рассылки).