3,583 papers
arXiv:2501.12372 93 1 янв. 2025 г. FREE

Долгий контекст — это всё, что вам нужно? Использование расширенного контекста LLM для NL2SQL.

КЛЮЧЕВАЯ СУТЬ
Для повышения точности LLM лучше предоставить ей всю доступную релевантную информацию, даже с избытком, чем пытаться угадать и дать только самое важное.
Адаптировать под запрос
📌

1. Ключевые аспекты исследования:

Исследование доказывает, что для решения сложных задач (на примере перевода естественного языка в SQL-запросы) современные LLM с длинным окном контекста, такие как Gemini 1.5 Pro, выигрывают от получения максимально полной, пусть и избыточной, информации. Вместо того чтобы пытаться угадать и подать в промпт только самые релевантные данные, эффективнее передать весь доступный массив информации (например, описание всех таблиц базы данных), дополнив его явными подсказками и примерами.

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

🔬

2. Объяснение всей сути метода:

Суть метода заключается в переходе от "минималистичных" промптов к "максимально обогащенным" при работе с современными LLM, обладающими большим окном контекста. Вместо того чтобы бояться "запутать" модель, следует намеренно предоставлять ей избыточный, но полный контекст, чтобы она сама нашла нужные связи.

Методология для пользователя сводится к четырем основным принципам при формулировке сложного промпта:

  1. Принцип "Полной картины" (аналог "All database tables"): Не фильтруйте исходные данные слишком сильно. Если ваша задача — проанализировать отзывы, предоставьте полный, неотредактированный текст всех отзывов. Если нужно составить отчет по документу — передайте весь документ. Исследование показывает, что LLM отлично справляется с задачей нахождения нужного в большом объеме данных и не "теряется".

  2. Принцип "Явных подсказок" (аналог "Hints"): Не надейтесь, что модель поймет все нюансы сама. Если в вашей задаче есть неоднозначные термины или неявные правила, пропишите их прямым текстом. Например: "Под 'негативным отзывом' понимать любой отзыв с оценкой 1 или 2, а также упоминанием слов 'ужасно', 'плохо'". Это самый эффективный способ улучшить точность по данным исследования.

  3. Принцип "Конкретных примеров данных" (аналог "Column sample values"): Покажите модели, с какими именно данными она работает. Если вы просите классифицировать товары, приведите примеры названий из разных категорий. Это помогает модели лучше "почувствовать" данные и избежать семантических ошибок.

  4. Принцип "Обучения на лету" (аналог "Synthetic examples"): Если вам нужен ответ в сложной, специфической структуре, предоставьте один или несколько полных примеров в формате "запрос -> идеальный ответ". Это работает лучше, чем долгое словесное описание формата.

📌

3. Анализ практической применимости:

*Прямая применимость:Пользователь может немедленно начать применять эти принципы. Вместо короткого запроса "Проанализируй эти отзывы и найди основные проблемы", он может составить обогащенный промпт, вставив в него: (1) полный текст всех отзывов, (2) блок с определениями ("Под 'проблемой с доставкой' я имею в виду..."), (3) примеры ключевых слов для каждой проблемы, (4) пример готового анализа одного отзыва. Все это делается простым копированием текста в чат.

  • Концептуальная ценность: Главный концептуальный сдвиг — перестать бояться "перегрузить" модель информацией и начать доверять ее способности к извлечению смысла из большого контекста. Пользователь учится думать не как "цензор", отбирающий для LLM самое важное, а как "архивариус", предоставляющий полный доступ ко всем релевантным материалам и снабжающий их хорошим каталогом (подсказками и примерами).

  • Потенциал для адаптации: Метод легко адаптируется. "Схема базы данных" становится "полным текстом годового отчета" или "описанием всех персонажей книги". "Названия колонок" — это "ключи в JSON" или "заголовки разделов в статье". "SQL-запрос" — это "требуемая структура вывода", будь то таблица, JSON или маркированный список. Механизм адаптации — это простая мысленная замена специфических терминов из исследования на сущности из собственной задачи.


🚀

4. Практически пример применения:

Ты — внимательный аналитик клиентского опыта. Твоя задача — проанализировать массив отзывов на наш новый онлайн-курс по фотографии и структурировать основные проблемы и положительные моменты в формате JSON.
# ИСХОДНЫЕ ДАННЫЕ (Raw Data)

<ОТЗЫВЫ>
1. "Курс просто супер! Особенно понравился блок про композицию. Но сайт иногда подтормаживал, видео грузилось долго." - Анна, оценка 4/5
2. "В целом неплохо, но я так и не понял, как работать с диафрагмой. Объяснение было слишком запутанным. Преподаватель отвечает быстро, это плюс." - Иван, оценка 3/5
3. "Это лучший курс! Все понятно, много практики. Отдельное спасибо за модуль по обработке в Lightroom." - Елена, оценка 5/5
4. "Почему нельзя скачать видео? Очень неудобно. И цена, как по мне, завышена для такого материала. Хотя домашки проверяют тщательно." - Сергей, оценка 2/5
5. "Ужасное качество видео! Постоянные артефакты. Смотреть невозможно, хотя материал вроде интересный. Требую возврата денег." - Ольга, оценка 1/5
ОТЗЫВЫ

# СТРУКТУРА ВЫВОДА

Предоставь ответ в виде одного JSON-объекта со следующей структурой:
{
 "positive_points": [
 {
 "theme": "Название темы",
 "mentions": ["цитата 1", "цитата 2"]
 }
 ],
 "negative_points": [
 {
 "theme": "Название темы",
 "urgency": "Высокая/Средняя/Низкая",
 "mentions": ["цитата 1"]
 }
 ]
}

# ВАЖНЫЕ ПОДСКАЗКИ И ОПРЕДЕЛЕНИЯ (Hints)

- **Тема "Технические проблемы"**: Сюда относится все, что связано с работой платформы (сайт, видео, загрузка).
- **Тема "Содержание курса"**: Относится к качеству и понятности учебных материалов, лекций, объяснений.
- **Тема "Цена и ценность"**: Упоминания стоимости курса, его соответствия цене.
- **Срочность (Urgency)**:- **Высокая**: Проблемы, которые мешают прохождению курса или вызывают требования возврата денег (например, неработающее видео).
- **Средняя**: Существенные неудобства (например, запутанные объяснения).
- **Низкая**: Небольшие пожелания или субъективные замечания (например, "нельзя скачать видео").

# ПРИМЕРЫ КЛЮЧЕВЫХ СЛОВ (Sample Values)

- **Для "Технические проблемы"**: "тормозил", "грузилось долго", "качество видео", "артефакты".
- **Для "Содержание курса"**: "блок про композицию", "понятно", "запутанным", "материал".
- **Для "Сервис"**: "преподаватель отвечает", "домашки проверяют".
🧠

5. Почему это работает:

Этот промпт эффективен, потому что он напрямую применяет выводы исследования, переведенные на язык обычной пользовательской задачи:

  1. Принцип "Полной картины": Вместо того чтобы пересказывать отзывы, мы передаем их в блоке <ОТЗЫВЫ> как есть, с ошибками и неформальной лексикой. Это аналог передачи "всех таблиц базы данных". Модель сама извлекает из этого "сырого" массива нужную информацию.
  2. Принцип "Явных подсказок" (Hints): Блок ВАЖНЫЕ ПОДСКАЗКИ И ОПРЕДЕЛЕНИЯ — это прямая реализация самого эффективного метода из исследования. Мы не надеемся, что модель сама догадается, что такое "Высокая срочность", а даем ей четкое определение. Это устраняет двусмысленность и направляет логику модели.
  3. Принцип "Конкретных примеров данных" (Sample Values): Блок ПРИМЕРЫ КЛЮЧЕВЫХ СЛОВ работает как аналог "sample column values". Он помогает модели сопоставить абстрактные темы ("Технические проблемы") с конкретными словами из текста отзывов, улучшая точность классификации.

📌

6. Другой пример практического применения

Ты — опытный SMM-менеджер и контент-стратег для трэвел-блога "Дороги мира". Твоя целевая аудитория — семьи с детьми (3-10 лет), которые ищут идеи для бюджетных, но интересных путешествий по России.
Твоя задача — на основе моих заметок создать контент-план на 3 дня.

# ИСХОДНАЯ ИНФОРМАЦИЯ (Raw Data Dump)

<ЗАМЕТКИ>
Стиль блога: дружелюбный, простой, много фото, фокус на практической пользе.
Цели: увеличить вовлеченность, получить больше сохранений постов.
Недавно ездили в Кострому. Что видели: терем Снегурочки (детям очень понравилось!), лосиная ферма (восторг!), музей сыра (скучновато для мелких), набережная Волги (красиво, но холодно).
Еда: пробовали местные сыры, ели в кафе "Рога и копыта" (вкусно, есть детский уголок).
Проживание: отель "Снежинка", 10 мин от центра, чисто, завтрак включен.
Проблемы: дорога заняла 5 часов, дети устали. Нужно придумать, чем их занять в машине.
ЗАМЕТКИ

# ФОРМАТ ВЫВОДА

Представь контент-план в виде таблицы Markdown со столбцами: "День", "Формат", "Тема поста", "Ключевые тезисы".

# КЛЮЧЕВЫЕ ПРАВИЛА И ПОДСКАЗКИ (Hints)

- **Форматы**: Обязательно чередуй форматы. Используй: "Пост в ленте", "Reels", "Stories" (серия из 3-5).
- **Фокус**: Каждый пост должен отвечать на какой-то вопрос или решать проблему аудитории (например, "чем кормить?", "где жить?", "как развлечь?").
- **Стиль**: Тексты должны быть легкими для чтения, с эмодзи. В Reels фокус на динамичной картинке.

# ПРИМЕР ГОТОВОЙ ИДЕИ (Synthetic Example)

Вот пример того, как должна выглядеть одна строка в таблице, чтобы ты понял(а) структуру и стиль:

| День | Формат | Тема поста | Ключевые тезисы |
|---|---|---|---|
| 1 | Пост в ленте | ✨ Кострома с детьми: ТОП-3 места, которые нельзя пропустить! | 1. Терем Снегурочки - маст-хэв для всех! 🎅 2. Лосиная ферма - обнимашки с лосями! 🦌 3. Где вкусно поесть с детьми (наш опыт). 🍽️ |

🧠

7. Объяснение механизма почему этот пример работает.

Этот промпт следует той же логике, основанной на выводах исследования, но в креативной сфере:

  1. Предоставление "всей базы данных": Блок <ЗАМЕТКИ> — это неструктурированный поток мыслей, аналог "всей базы данных со всеми таблицами". Мы не просим модель работать с абстрактной идеей "поездки в Кострому", а даем ей всю конкретику, позволяя самой найти ценные детали (понравилось/не понравилось, названия мест).
  2. Использование "подсказок" (Hints): Раздел КЛЮЧЕВЫЕ ПРАВИЛА И ПОДСКАЗКИ задает рамки и ограничения для креативной задачи. Вместо того чтобы надеяться, что LLM сама сгенерирует разнообразный контент, мы явно указываем: "чередуй форматы", "фокусируйся на пользе". Это направляет генерацию в нужное русло.
  3. Применение "синтетических примеров" (Synthetic Examples): Блок ПРИМЕР ГОТОВОЙ ИДЕИ — это самый мощный инструмент из арсенала исследования для задач генерации контента. Мы не просто описываем формат таблицы, мы показываем готовый, идеально оформленный пример одной строки. Это обучает модель не только структуре, но и стилю, тональности, использованию эмодзи и формулировке тем, что значительно повышает качество и релевантность итогового контент-плана.

📌

Основные критерии оценки

  • Предварительный фильтр: Исследование полностью сфокусировано на текстовых промптах и их оптимизации для задачи NL2SQL (Natural Language to SQL). Основной предмет — влияние различной контекстной информации в текстовом промпте на качество генерации структурированного текстового вывода (SQL-кода). Исследование проходит фильтр.

  • A. Релевантность техникам промтинга: Максимальная. Работа напрямую исследует, какие типы информации (схемы, подсказки, примеры значений, примеры "вопрос-ответ") и в каком объеме нужно включать в промпт для повышения точности.

  • B. Улучшение качества диалоговых ответов: Высокое. Хотя задача специфична (генерация SQL), принципы улучшения точности и релевантности через обогащение контекста напрямую переносятся на любые диалоговые задачи, требующие генерации точного или структурированного ответа на основе исходных данных.
  • C. Прямая практическая применимость: Высокая. Пользователь может немедленно применить выводы без кода. Принципы "дай больше контекста", "добавь явные подсказки", "покажи примеры" интуитивно понятны и реализуются простым добавлением текста в промпт в любом чат-интерфейсе.
  • D. Концептуальная ценность: Очень высокая. Исследование дает фундаментальное понимание поведения современных LLM с длинным контекстом:
    • Они не "теряются в середине": Модели устойчивы к большому объему "шумной" (избыточной, нерелевантной) информации.
    • Полнота важнее точности (для контекста): Предоставление полного набора данных (high recall) работает лучше, чем попытка угадать и предоставить только самое релевантное (high precision).
    • Ценность разных типов информации: Четко ранжируется польза от подсказок, примеров данных и синтетических примеров.
  • E. Кластеризация:
    1. Техники формулирования промптов: Да (использование hints, many-shot).
    2. Поведенческие закономерности LLM: Да (устойчивость к "шуму" в длинном контексте, отсутствие "забывания" в середине).
    3. Оптимизация структуры промптов: Да (исследуется влияние добавления целых блоков информации).
    4. Извлечение и структурирование: Да (основная задача - генерация структурированного SQL).
    5. Контекст и память: Да (ключевая тема - long context).
    6. Надежность и стабильность: Да (методы self-correction, disambiguation).
  • Чек-лист практичности (+15 баллов): Да, работа дает готовые подходы (добавлять подсказки, все исходные данные), объясняет, что можно не беспокоиться о расположении информации, показывает, как структурировать сложные запросы (через комбинацию данных, подсказок и примеров), раскрывает неочевидные особенности (устойчивость к шуму) и предлагает способы улучшить точность.
📌

2 Цифровая оценка полезности

Аргументы в пользу оценки (93/100): Исследование предоставляет чрезвычайно ценные и практически применимые выводы для любого продвинутого пользователя LLM. Ключевой инсайт — "не бойтесь перегрузить модель контекстом, полнота информации важнее ее стерильности" — меняет подход к написанию промптов для сложных задач. Он освобождает пользователя от необходимости быть идеальным "фильтром" и позволяет делегировать эту работу модели. Выводы о пользе явных "подсказок" (hints) и примеров конкретных значений (sample values) можно немедленно внедрить в свои промпты для повышения точности в любой сфере, от анализа документов до генерации креативного контента. Работа дает четкие выводы, которые можно сразу учесть при построении промпта, что соответствует критерию оценки >75 баллов. Высокая оценка обусловлена фундаментальной полезностью этих концепций.

Контраргументы (почему оценка могла быть ниже):

* Узкая специализация: Исследование сфокусировано на очень специфической задаче NL2SQL. Обычный пользователь не генерирует SQL-запросы, и ему придется мысленно "переводить" термины: "схема базы данных" -> "мои исходные документы", "колонки" -> "ключевые сущности", "SQL" -> "желаемый формат ответа". Это требует определенного уровня абстрактного мышления.
* Ориентация на Gemini 1.5 Pro: Выводы о том, что модель не "теряется" в контексте и нечувствительна к позиции информации, могут быть не так верны для других LLM с менее продвинутыми возможностями обработки длинного контекста.

Контраргументы (почему оценка могла быть выше):

* Фундаментальность инсайтов: Выводы о поведении LLM в длинном контексте настолько универсальны, что их можно считать одним из ключевых принципов промпт-инжиниринга для современных моделей. Это не просто "еще один трюк", а изменение парадигмы взаимодействия с LLM. Если пользователь это поймет, качество его работы с LLM вырастет скачкообразно.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с