Prompt Caching
Узнай, как кэширование промптов оптимизирует генеративный ИИ, сокращая задержки и расходы. Изучи его роль в больших языковых моделях и компьютерном зрении в реальном времени с Ultralytics YOLO26.
Кэширование промптов — это передовая стратегия оптимизации, используемая главным образом в генеративном ИИ, которая позволяет значительно снизить затраты и сократить время отклика во время инференса. В сфере больших языковых моделей (LLMs) обработка текста требует преобразования входных данных в числовые последовательности, известные как токены. Зачастую значительная часть входных данных — например, подробная системная инструкция, объемный юридический документ или кодовая база — остается неизменной для множества разных запросов пользователей. Вместо повторной обработки этих неизменных разделов для каждого нового запроса кэширование промптов сохраняет предварительно вычисленные математические состояния (часто называемые кэшем Key-Value) в памяти. Это позволяет движку инференса пропускать избыточные вычисления и направлять вычислительные ресурсы только на новые, динамические части промпта пользователя.
Механизмы и преимущества#
Принцип работы кэширования промптов основан на архитектуре Transformers, которая обрабатывает данные последовательно. Определяя повторяющийся префикс промпта, система может напрямую загружать соответствующие состояния механизма внимания из высокоскоростной памяти.
- Снижение задержки: кэширование значительно уменьшает задержку инференса, в частности время до выдачи первого токена (TTFT). Благодаря этому приложения реального времени, такие как интерактивные чат-боты, воспринимаются пользователем как мгновенные.
- Экономия средств: поскольку поставщики услуг облачных вычислений часто выставляют счета в зависимости от продолжительности вычислений или обработки токенов, пропуск ресурсоемкой обработки статического контекста приводит к существенной экономии.
- Увеличение пропускной способности: высвобождая ресурсы GPU, серверы могут обрабатывать больше одновременных запросов, делая всю инфраструктуру обслуживания моделей более масштабируемой.
Практические применения#
Кэширование промптов преобразует отрасли, которые работают с большими объемами контекстных данных.
-
Помощники в программировании: при разработке программного обеспечения такие инструменты, как GitHub Copilot, используют большие объемы контекста из открытых файлов пользователя и структуры репозитория. Кэшируя эмбеддинги кодовой базы, модель может в реальном времени предлагать варианты автодополнения кода, не анализируя заново всю структуру файлов проекта при каждом нажатии клавиши.
-
Юридический и медицинский анализ: специалисты часто направляют запросы к ИИ-агентам, используя огромные статические документы, такие как архивы судебных дел или записи историй болезни пациентов. С помощью генерации с дополнением поиска (RAG) система извлекает релевантные фрагменты текста. Кэширование промптов гарантирует, что базовый контекст извлеченных документов не придется пересчитывать для последующих вопросов, упрощая рабочий процесс ответов на вопросы.
Применение в компьютерном зрении#
Хотя традиционно эта концепция ассоциируется с текстом, кэширование играет важную роль в мультимодальном компьютерном зрении (CV). Такие модели, как YOLO-World, позволяют пользователям обнаруживать объекты с помощью текстовых промптов с открытым словарем. Когда пользователь задает список классов (например, "person, backpack, car"), модель вычисляет текстовые эмбеддинги для этих классов. Кэширование этих эмбеддингов избавляет модель от необходимости повторно кодировать текстовые промпты для каждого отдельного кадра видео, обеспечивая высокоскоростной инференс в реальном времени.
Различия между связанными терминами#
- В отличие от проектирования промптов: проектирование промптов требует от человека разрабатывать оптимальный текстовый ввод для управления моделью. Кэширование промптов — это вычислительная оптимизация на стороне серверной части, сохраняющая результаты обработки этого текста машиной.
- В отличие от настройки промптов: настройка промптов — это метод трансферного обучения, который обновляет определенные веса модели (мягкие промпты), чтобы адаптировать модель к задаче. Кэширование не изменяет параметры модели, а только запоминает состояния активаций во время выполнения.
Пример кода: кэширование текстовых эмбеддингов в компьютерном зрении#
Следующий фрагмент Python демонстрирует концепцию «кэширования» промпта в контексте компьютерного зрения с использованием пакета ultralytics. Однократно задав классы в модели YOLO-World, ты вычисляешь и сохраняешь текстовые эмбеддинги, что позволяет модели эффективно выполнять предсказания для нескольких изображений без повторной обработки текстового описания.
from ultralytics import YOLOWorld
# Load a YOLO-World model capable of open-vocabulary detection
model = YOLOWorld("yolov8s-world.pt")
# "Cache" the prompt: Define classes once.
# The model computes and stores text embeddings for these specific terms.
model.set_classes(["helmet", "reflective vest", "gloves"])
# Run inference repeatedly. The text prompt is not re-computed for each call.
# This mimics the efficiency gains of prompt caching in LLMs.
results_1 = model.predict("construction_site_1.jpg")
results_2 = model.predict("construction_site_2.jpg")Для управления наборами данных и развертывания этих оптимизированных моделей платформа Ultralytics предоставляет комплексную среду для аннотирования данных, обучения передовых моделей, таких как YOLO26, и мониторинга производительности развертывания на различных устройствах периферийного ИИ.









