Sobes.tech
Назад к вопросам
Middle
11

Какие приёмы prompt compression вы знаете (LLMLingua)?

Компании, где спрашивали
Ниармедик Ваш Доктор Рядом

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

LLMLingua и похожие методы решают задачу сжатия промпта без сильной потери смысла. Обычно ждут понимание, что сжимают не «все подряд», а убирают наименее важные токены/фразы, сохраняя инструкции, ограничения и ключевой контекст. Также важно упомянуть, что компрессия полезна для уменьшения latency, стоимости и укладывания контекста в лимит окна.

Определение:

Prompt compression — это набор приёмов, которые уменьшают длину входного текста для LLM, сохраняя максимально полезную информацию.
LLMLingua — один из подходов к такой компрессии: он оценивает важность токенов/фрагментов и удаляет или сокращает наименее значимые части промпта.
На практике это помогает вместить больше полезного контекста в ограниченное окно модели и снизить стоимость вызова.

Пример использования:

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

# Упрощённый псевдокод идеи prompt compression

prompt = """
Ты - помощник. Ответь кратко и по делу.
Контекст: ... очень длинный текст ...
Дополнительные детали: ... ещё длинный текст ...
Вопрос: Какие риски у этой схемы?
"""

compressed_prompt = compress(prompt, keep=["инструкция", "вопрос", "ключевые факты"])

response = llm.generate(compressed_prompt)

Пояснение кода:

Код не требуется, потому что здесь важен сам принцип, а не конкретный API.

Разбор примера по шагам:

  1. Входной промпт содержит полезные и шумовые части.
  2. Функция compress(...) условно оценивает, какие части несут основную смысловую нагрузку.
  3. Сохраняются инструкции, вопрос и важные факты.
  4. Убираются повторы, второстепенные детали и длинные фрагменты, которые мало влияют на ответ.
  5. Сжатый промпт отправляется в LLM.

Ключевые моменты:

  • LLMLingua — это не «сжатие текста по символам», а отбор наиболее информативных токенов и фрагментов.
  • Важно сохранять системные инструкции, ограничения, вопрос пользователя и сущностно важные факты.
  • Компрессия полезна для снижения стоимости, задержки и для работы с длинным контекстом.
  • Есть риск потери деталей, поэтому агрессивное сжатие может ухудшить качество ответа.
  • Особенно хорошо подходит для длинных промптов в RAG, суммаризации, агентных сценариях и многошаговых диалогах.
  • На собеседовании полезно показать понимание баланса: меньше токенов, но без потери критического смысла.