Повысьте эффективность ИИ с помощью кэширования промптов! Узнайте, как уменьшить задержку, сократить расходы и масштабировать приложения ИИ с помощью этого мощного метода.
Кэширование подсказок - это специализированная техника оптимизации, используемая при развертывании Большие языковые модели (LLM) для значительного сокращения времени ожидания вывода и вычислительных затрат. В контексте генеративного ИИ обработка подсказки включает в себя преобразование текста в числовые представления и вычисление связей между каждой лексемой с помощью механизм внимания. Когда значительная часть подсказки - например, длинная системная инструкция или набор примеров - остается статичной в течение нескольких запросов, кэширование подсказок позволяет системе хранить промежуточные данные. кэширование позволяет системе хранить промежуточные математические состояния (в частности, пары ключ-значение) этого статичного текста текста. Вместо того чтобы заново вычислять эти состояния для каждого нового запроса, механизм механизм вывода извлекает их из памяти, что позволяет модели сосредоточить свою вычислительную мощность исключительно на новых, динамических частях входных данных.
Основной механизм кэширования подсказок основан на эффективном управлении контекстным окном. Когда LLM обрабатывает ввод, он генерирует "KV Cache" (Key-Value Cache), представляющий понимание текста моделью до этого момента. Кэширование подсказок рассматривает начальный segment подсказки (префикс) как многократно используемый актив.
Оперативное кэширование меняет подход разработчиков к созданию и масштабированию приложений машинного обучения (ML), особенно тех, которые связаны с интенсивной обработкой текста.
Хотя кэширование подсказок является внутренним для серверов вывода LLM, понимание структуры данных помогает прояснить концепцию. В "кэше", по сути, хранятся тензоры (многомерные массивы), представляющие состояния внимания.
Следующий фрагмент на Python , использующий torch демонстрирует форму и концепцию tensor кэша "ключ-значение",
который хранится и повторно используется при оперативном кэшировании:
import torch
# Simulate a KV Cache tensor for a transformer model
# Shape: (Batch_Size, Num_Heads, Sequence_Length, Head_Dim)
batch_size, num_heads, seq_len, head_dim = 1, 32, 1024, 128
# Create a random tensor representing the pre-computed state of a long prompt
kv_cache_state = torch.randn(batch_size, num_heads, seq_len, head_dim)
print(f"Cached state shape: {kv_cache_state.shape}")
print(f"Number of cached parameters: {kv_cache_state.numel()}")
# In practice, this tensor is passed to the model's forward() method
# to skip processing the first 1024 tokens.
Важно отличать оперативное кэширование от других терминов в глоссарии глоссарияUltralytics , чтобы применить правильную стратегию оптимизации.
Кэширование подсказок является неотъемлемой частью Обработка естественного языка (NLP), принципы эффективности универсальны. В компьютерном зрении (КВ) используются такие модели, как YOLO11 архитектурно оптимизированы для скорости, обеспечивая чтобы задачи обнаружения объектов достигали высокой частоты кадров не нуждаясь в кэшировании состояния, которое используется в моделях языка авторегрессии. Однако по мере по мере развития мультимодальных моделей для совместной обработки видео и текста, кэширование визуальных лексем становится новой областью исследований, описанной в работах на arXiv.