Глоссарий

Кэширование подсказок

Повысьте эффективность ИИ с помощью оперативного кэширования! Узнайте, как уменьшить задержки, сократить расходы и масштабировать приложения искусственного интеллекта с помощью этой мощной технологии.

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

Как работает кэширование подсказок

Когда LLM обрабатывает последовательность текста, например, предложение или абзац, он вычисляет баллы внимания для каждой лексемы в своем контекстном окне. Этот процесс требует больших вычислительных затрат, особенно для длинных подсказок. Основная идея кэширования подсказок, часто называемого KV-кэшированием, заключается в том, чтобы избежать лишней работы. Если модель уже обрабатывала фразу "Переведите следующий английский текст на французский:", она сохраняет полученное внутреннее состояние. Когда позже она получит запрос "Переведите следующий английский текст на французский: 'Hello, world!'", она может загрузить кэшированное состояние для исходной фразы и начать вычисления только для новой части, "'Hello, world!". Это значительно ускоряет процесс генерации текста при последующих аналогичных запросах. Системы, подобные vLLM, предназначены для эффективного управления этим процессом, что повышает общую пропускную способность.

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

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

  • Интерактивные чатботы и виртуальные помощники: При общении с чатботом каждый ответ строится на основе предыдущих. Кэширование истории разговора в виде префикса позволяет модели генерировать следующий ответ без повторной обработки всего диалога, что приводит к гораздо более плавному и быстрому взаимодействию. Это очень важно для работы современных виртуальных помощников.
  • Генерация и завершение кода: ИИ-помощники по кодированию, такие как GitHub Copilot, часто используют кэширование. Существующий код в файле служит длинной подсказкой. Кэшируя KV-состояния этого кода, модель может быстро генерировать предложения для следующей строки или завершения функции без необходимости повторно анализировать весь файл при каждом вводе символа, что делает возможным вывод в реальном времени.

Кэширование подсказок по сравнению со смежными концепциями

Полезно отличать оперативное кэширование от других связанных с ним техник:

  • Prompt Engineering: Сосредоточен на разработке эффективных подсказок для получения желаемых ответов от модели ИИ. Кэширование оптимизирует выполнение этих подсказок, независимо от того, насколько хорошо они разработаны.
  • Обогащение подсказок: Добавление контекста или уточняющей информации в подсказку пользователя до ее отправки в модель. Кэширование происходит во время или после того, как модель обрабатывает (потенциально обогащенную) подсказку.
  • Оперативный тюнинг и LoRA: Это методы эффективной тонкой настройки параметров (PEFT), которые адаптируют поведение модели путем обучения небольших наборов дополнительных параметров. Кэширование - это оптимизация во время вывода, которая не изменяет веса самой модели.
  • Поколение с дополненным извлечением (RAG): Улучшает подсказки, извлекая релевантную информацию из внешних баз знаний и добавляя ее в контекст подсказки. Хотя RAG изменяет входные данные, кэширование все еще может применяться для обработки комбинированной подсказки (исходный запрос + извлеченные данные).
  • Стандартное кэширование вывода: традиционное веб-кэширование хранит конечный результат запроса. Кэширование подсказок часто хранит промежуточные вычислительные состояния в рамках конвейера обработки модели, что позволяет более гибко использовать их повторно, особенно для подсказок с общими префиксами, но разными окончаниями.

Хотя кэширование подсказок преимущественно ассоциируется с LLM, основной принцип кэширования вычислений потенциально может применяться в сложных мультимодальных моделях, где текстовые подсказки взаимодействуют с другими модальностями. Однако он менее распространен в стандартных задачах компьютерного зрения (КВ), таких как обнаружение объектов с помощью таких моделей, как Ultralytics YOLO. Платформы, подобные Ultralytics HUB, упрощают развертывание и управление моделями ИИ, где такие оптимизации, как кэширование, могут иметь решающее значение для производительности в производственных средах.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему искусственного интеллекта. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединяйтесь сейчас
Ссылка копируется в буфер обмена