Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

PagedAttention

Узнайте, как PagedAttention оптимизирует управление памятью LLM и повышает эффективность кэша «ключ-значение». Оцените его влияние на пропускную способность и сравните его производительность с результатами Ultralytics .

PagedAttention — это высокоэффективный алгоритм управления памятью, разработанный для оптимизации скорости инференса и пропускной способности крупных языковых моделей (LLM). Опираясь на концепции виртуальной памяти и подкачки, используемые в традиционных операционных системах, эта технология решает проблему огромного потребления памяти, связанного с кэшем «ключ-значение» (часто называемым KV-кэшем) во время генерации текста. Разбивая непрерывные блоки памяти, необходимые для кэша, на более мелкие, несмежные «страницы», PagedAttention эффективно устраняет как внутреннюю, так и внешнюю фрагментацию памяти. Это позволяет серверам ИИ одновременно обрабатывать значительно большее количество запросов, максимально GPU .

Постепенное привлечение внимания против мгновенного привлечения внимания

Хотя обе техники оптимизируют производительность нейронных сетей, они направлены на устранение разных узких мест. Flash Attention — это оптимизация на уровне вычислений, которая ускоряет сам механизм внимания, минимизируя медленные операции чтения и записи в памяти по всей GPU . В отличие от этого, PagedAttention — это стратегия распределения памяти. Она сосредоточена исключительно на том, как память для контекстного окна структурирована и хранится, что позволяет осуществлять динамическое масштабирование без предварительного выделения больших, неэффективных блоков памяти.

Применение в реальном мире

Эффективность использования памяти, обеспеченная технологией PagedAttention, кардинально изменила подход к развертыванию крупномасштабных генеративных моделей в производственной среде.

  1. Обслуживание API с высокой пропускной способностью: Производственные системы, обслуживающие модели, аналогичные GPT-4, используют PagedAttention через такие фреймворки, как vLLM. Благодаря совместному использованию блоков памяти для разных пользовательских запросов провайдеры могут обслуживать до четырех раз больше пользователей на том же оборудовании, что позволяет значительно снизить затраты на работу облачных сервисов искусственного интеллекта.
  2. Стратегии комплексного декодирования: Когда модель ИИ генерирует сразу несколько потенциальных ответов (например, при поиске по лучу или параллельной выборке), PagedAttention позволяет этим параллельным последовательностям безопасно совместно использовать одни и те же базовые страницы памяти. Это предотвращает дублирование избыточной памяти системой, что значительно ускоряет выполнение сложных задач логического вывода.

Эффективность использования памяти в компьютерном зрении

Хотя PagedAttention в основном используется в обработке естественного языка, лежащий в его основе принцип строгой оптимизации памяти имеет не менее важное значение в компьютерном зрении (CV). При развертывании моделей на пограничных устройствах с ограниченными аппаратными ресурсами крайне важно избегать избыточного использования памяти. Ultralytics обеспечивает эффективность вывода решений в реальном времени нативно, избавляясь от необходимости сложного управления кэшем за счет использования сквозной архитектуры NMS.

Разработчикам, которым необходимо обеспечить бесперебойную работу с памятью и выполнить требования к экспорту в рамках конвейеров обнаружения объектов, Ultralytics предлагает инструменты автоматического развертывания, которые формируют пакеты моделей для оптимального выполнения на аппаратном обеспечении.

Пример кода

PagedAttention работает «под капотом» в сервисных фреймворках, заменяя стандартные функции внимания оптимизированными Cuda . Ниже приведён концептуальный пример, демонстрирующий, как можно определить стандартное внимание в PyTorch, которую такие системы, как vLLM, автоматически перехватывают и оптимизируют с помощью страничной организации памяти во время развертывания модели.

import torch
import torch.nn.functional as F

# Simulated Key, Query, and Value tensors for a standard attention block
batch_size, num_heads, sequence_length, head_dim = 1, 8, 1024, 64
query = torch.randn(batch_size, num_heads, sequence_length, head_dim)
key = torch.randn(batch_size, num_heads, sequence_length, head_dim)
value = torch.randn(batch_size, num_heads, sequence_length, head_dim)

# Standard attention computation (often replaced by PagedAttention kernels in production LLM servers)
attention_output = F.scaled_dot_product_attention(query, key, value)

print(f"Computed attention shape: {attention_output.shape}")

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

Давайте вместе создадим будущее искусственного интеллекта!

Начните свой путь в будущее машинного обучения