3,583 papers
arXiv:2510.14115 68 15 окт. 2025 г. FREE

FSER (Few-Shot with Example Retriever) – как превратить LLM из «угадывателя» в «имитатора» через подбор релевантных примеров

КЛЮЧЕВАЯ СУТЬ
Разработчики автопилотов столкнулись с проблемой: даже большие LLM плохо генерируют код по текстовому описанию (30-40% успеха). Метод FSER позволяет резко повысить точность и предсказуемость LLM на сложных задачах — превращая модель из системы, которая «пытается угадать», в систему, которая «видит паттерн и копирует его». Секрет в том, чтобы дать модели 2-3 идеальных примера "вход→выход" перед основным заданием — это создаёт мини-обучение прямо в контексте. Результат: средние модели с FSER обгоняют большие модели без примеров, а точность выполнения задач вырастает на 35-50%.
Адаптировать под запрос
📌

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

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

Ключевой результат: Наибольший прирост качества, особенно для моделей среднего размера, дает техника FSER — предоставление модели нескольких релевантных примеров задачи перед тем, как дать основное задание.


🔬

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

Суть метода, который показал наилучшие результаты в исследовании — Few-Shot with Example Retriever (FSER) — заключается в "обучении на лету" с помощью тщательно подобранных примеров. Для обычного пользователя это можно сформулировать так: "Прежде чем просить модель сделать что-то сложное, покажи ей, как это делать, на 2-3 похожих примерах".

Методика для пользователя выглядит следующим образом:

  1. Осознайте задачу. Вы не просто просите "написать текст", а хотите преобразовать информацию из одного формата в другой (например, из messy notes в structured summary).
  2. Станьте "Извлекателем" (Retriever). Найдите или создайте 2-3 идеальных примера, где показан вход (например, сырой текст отзыва) и желаемый выход (например, структурированный JSON с оценкой и ключевыми тезисами). Эти примеры должны быть максимально похожи на вашу текущую задачу.
  3. Постройте промпт по принципу "Примеры сначала, задача потом". В вашем промпте сначала предоставьте модели эти примеры в формате "Вот пример 1: [ВХОД] -> [ВЫХОД]", "Вот пример 2: [ВХОД] -> [ВЫХОД]".
  4. Сформулируйте основную задачу. После примеров напишите: "А теперь, используя тот же подход, обработай следующий текст: [ВАШ НОВЫЙ ВХОД]".

Этот подход превращает LLM из "угадывателя" в "имитатора". Модель видит паттерн в ваших примерах и применяет его к новой задаче, что резко повышает точность, предсказуемость и качество результата. Исследование также показало, что этот метод особенно эффективен в комбинации с техникой Chain-of-Thought (CoT), когда вы дополнительно просите модель "думать шаг за шагом".


📌

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

  • Прямая применимость: Нулевая. Пользователь не будет генерировать код на языке Scenic. Все примеры и метрики из статьи относятся к очень специфической IT-задаче.

  • Концептуальная ценность: Очень высокая. Исследование дает пользователю мощную ментальную модель: "Качество контекста определяет качество ответа". Оно наглядно доказывает, что LLM — это не волшебная коробка, а система, обучающаяся на паттернах. Предоставляя релевантные примеры (FSER), пользователь активно управляет процессом "обучения в контексте" (in-context learning), что дает ему контроль над результатом. Это объясняет, почему простые запросы часто дают плохие результаты на сложных задачах.

  • Потенциал для адаптации: Огромный. Принцип FSER универсален. Пользователь может адаптировать его для любой повторяющейся задачи, требующей структурированного или стилизованного вывода.

    • Механизм адаптации:
      1. Определите свою задачу (например, "превратить заметки со встречи в краткое резюме с задачами").
      2. Создайте "золотой стандарт" — 2-3 примера, где вы вручную превратили заметки в идеальное резюме.
      3. Сохраните эти примеры в текстовом файле или шаблоне.
      4. Каждый раз, когда нужно выполнить эту задачу, копируйте шаблон с примерами в начало своего промпта, а затем добавляйте новые заметки.

🚀

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

Ты — опытный маркетолог, который анализирует отзывы клиентов на новый фитнес-браслет. Твоя задача — извлекать из текста отзыва структурированную информацию и представлять ее в формате JSON.

Обрати внимание на следующие поля:
- `sentiment`: "positive", "negative" или "neutral".
- `key_features`: список функций, которые упоминает пользователь (например, "батарея", "пульсометр", "дизайн").
- `summary`: краткое резюme отзыва в одном предложении.

Вот несколько примеров, как это нужно делать:

### Пример 1
**Отзыв:** "Купил браслет на прошлой неделе. В целом неплохо, но батарея садится всего за 2 дня, хотя обещали 5. Пульс меряет точно, сравнивал с тонометром. Экран яркий, но на солнце все равно бликует. Дизайн классный, на руке сидит удобно."

**Результат:**
json

{ "sentiment": "neutral", "key_features": ["батарея", "пульсометр", "дизайн", "экран"], "summary": "Пользователь доволен дизайном и точностью пульсометра, но разочарован временем работы от батареи и читаемостью экрана на солнце." }


### Пример 2
**Отзыв:** "Это просто лучший гаджет, что у меня был! Работает уже неделю без подзарядки. Все уведомления приходят моментально. Приложение для телефона супер удобное. Спал в нем, трекинг сна очень подробный. 10 из 10!"

**Результат:**
```json
{
  "sentiment": "positive",
  "key_features": ["батарея", "уведомления", "приложение", "трекинг сна"],
  "summary": "Клиент в восторге от длительности работы батареи, удобства приложения и функции отслеживания сна."
}

А теперь проанализируй следующий отзыв по тому же принципу:

Отзыв: "Полное разочарование. Шагомер врет безбожно, насчитал мне 2000 шагов, пока я просто сидел в офисе. Ремешок вызвал раздражение на коже через день использования. Вернул в магазин."

Результат:


🧠

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

Этот промпт эффективен, потому что он в точности реализует принцип FSER (Few-Shot with Example Retriever), адаптированный для обычного пользователя:

  1. Few-Shot (Несколько примеров): Промпт содержит два полных примера "вход -> выход". Это позволяет модели не гадать, а увидеть конкретный образец работы.
  2. Retriever (Извлечение релевантных примеров): Пользователь сам выступил в роли "извлекателя", подобрав примеры, которые точно соответствуют задаче: они оба про фитнес-браслет и оба требуют вывода в формате JSON с теми же полями. Это создает очень сильный, релевантный контекст.
  3. Структурирование: Использование ### и ** четко разделяет инструкции, примеры и основное задание. Модель легко парсит эту структуру.
  4. Явное указание формата (JSON): Это снижает вероятность того, что модель выдаст ответ в виде простого текста. Примеры подкрепляют это требование, показывая точную структуру JSON.

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


📌

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

Ты — ассистент руководителя. Твоя задача — превращать мои короткие, сумбурные заметки в вежливое и структурированное письмо для команды.

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

Вот пара примеров, как это должно выглядеть:

### Пример 1
**Мои заметки:** "завтра созвон по новому проекту в 11. пусть все подготовят свои идеи по продвижению. особенно маркетинг. и отчет по прошлому кварталу нужен от продаж."

**Результат (письмо):**
**Тема:** Подготовка к завтрашнему созвону по новому проекту

Коллеги, привет!

Напоминаю, что завтра в 11:00 у нас состоится созвон, посвященный запуску нового проекта.

Прошу всех подготовить и принести свои первоначальные идеи по стратегии продвижения. Особенно жду предложений от отдела маркетинга.

Также, коллеги из отдела продаж, пожалуйста, подготовьте краткий отчет по результатам прошлого квартала.

До встречи завтра!

### Пример 2
**Мои заметки:** "сервер опять упал. надо чтобы сисадмины разобрались срочно. клиенты жалуются. пусть напишут когда починят."

**Результат (письмо):**
**Тема:** Срочно: проблема с доступностью сервера

Команда, добрый день.

Мы снова столкнулись с падением сервера, что уже привело к жалобам от клиентов.

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

Спасибо за оперативность!

---

**А теперь напиши письмо на основе моих сегодняшних заметок:**

**Мои заметки:** "в пятницу корпоратив. начало в 19 в офисе. будет пицца. надо чтобы все подтвердили участие до среды, чтобы заказать еду."

**Результат (письmo):**
🧠

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

Этот промпт работает за счет того же адаптированного принципа FSER, но для задачи стилизации и форматирования текста, а не извлечения данных.

  1. Обучение стилю: Примеры не просто показывают структуру, они задают тон и лексику. Модель видит, как "пусть все подготовят" превращается в вежливое "Прошу всех подготовить", а "срочно" — в деловое "незамедлительно приступить к диагностике". Она учится стилистическому преобразованию.
  2. Обучение структуре: Примеры демонстрируют, как из хаотичных заметок создается логичное письмо с темой, приветствием, основной частью и заключением/призывом к действию. Модель усваивает эту структуру как обязательный шаблон.
  3. Контекстная релевантность: Пользователь (в роли "Retriever") выбрал примеры, которые отражают типичные рабочие ситуации (созвон, техническая проблема). Это помогает модели лучше понять контекст и использовать подходящую терминологию.

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

📌

Оценка полезности: 68

📌

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

  • A. Релевантность техникам промтинга: Очень высокая. Исследование напрямую тестирует и сравнивает эффективность различных техник промтинга: Zero-Shot, Few-Shot, Chain-of-Thought (CoT), Self-Planning (SP), Modularization-of-Thoughts (MoT) и, что самое важное, их комбинации с поиском релевантных примеров (FSER - Few-Shot with Example Retriever).
  • B. Улучшение качества диалоговых ответов: Низкая. Исследование сфокусировано на генерации кода, а не на диалоговых ответах. Качество оценивается по компиляции и исполнению кода, а не по разговорным метрикам.
  • C. Прямая практическая применимость: Очень низкая. Исследование узкоспециализированное — генерация кода на языке Scenic для симуляции дорожных сценариев. Обычный пользователь не может напрямую применить эти выводы для своих повседневных задач (написание текстов, анализ данных и т.д.).
  • D. Концептуальная ценность: Очень высокая. Несмотря на узкую специализацию, работа раскрывает фундаментальные принципы взаимодействия с LLM:
    • Демонстрирует огромную пользу предоставления релевантных примеров (аналог RAG для пользователя).
    • Показывает, что комбинация техник (например, CoT + Few-Shot с релевантными примерами) дает лучший результат.
    • Выявляет эффект "насыщения" — увеличение размера модели не всегда ведет к пропорциональному росту качества.
  • E. Новая полезная практика (кластеризация): Работа попадает в несколько ключевых кластеров:
    • Кластер 1 (Техники формулирования): Явно исследуются CoT, Few-Shot и их комбинации.
    • Кластер 2 (Поведенческие закономерности): Анализируется зависимость качества от размера модели ("эффект плато").
    • Кластер 6 (Контекст и память): Метод FSER (Few-Shot with Example Retriever) является, по сути, пользовательской реализацией принципа RAG (Retrieval-Augmented Generation), где пользователь сам "извлекает" релевантные примеры и подает их в контекст.
  • Чек-лист практичности (+15 баллов): Да, исследование показывает, как структурировать сложные запросы, раскрывает неочевидные особенности поведения LLM и предлагает способы улучшить consistency. Бонус в 15 баллов применен к базовой оценке.
📌

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

Оценка 68 отражает огромную концептуальную ценность исследования, которая, однако, требует от пользователя усилий по адаптации и переносу идей из узкоспециализированной области (генерация кода) в свои повседневные задачи.

Аргументы за (почему оценка могла быть выше): * Ключевой вывод о эффективности FSER (Few-Shot with Example Retriever) — это, по сути, обучение пользователя "RAG-мышлению". Это один из самых мощных приемов в промт-инжиниринге: не просто давать примеры, а давать релевантные примеры. Этот принцип универсален и применим к любой задаче, от написания email до анализа данных. * Исследование наглядно доказывает, что даже модели среднего размера могут показывать отличные результаты при правильном промтинге, что является важным знанием для пользователей, не всегда имеющих доступ к самым последним и дорогим моделям.

Контраргументы (почему оценка могла быть ниже): * Крайне узкая предметная область (код для симуляторов беспилотных авто) делает статью почти непроницаемой для обычного пользователя. Термины вроде "Scenic", "CARLA", "compilation rate" создают высокий порог входа. * Прямого "копипаста" техник не получится. Пользователю нужно самостоятельно понять основной принцип (FSER) и придумать, как применить его к своим задачам, что требует определенного уровня абстрактного мышления.


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

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

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