Skip to main content

Few-Shot Промптинг (In-Context Learning)

Методология инженерии промптов, при которой модель адаптируется к специфическому формату, стилю или логике непосредственно во время инференса (In-Context Learning) благодаря показу 2–5 эталонных примеров.

1. Обзор концепции и системная проблема

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

  1. Субъективность формулировок: Понятия «лаконичный», «красивый» или «строгий» трактуются моделью слишком широко, что вызывает нестабильность результатов от запуска к запуску.
  2. Невозможность описать все правила текстом: Описание конвенций кодовой базы может занять 10 страниц правил, которые модель неизбежно начнет нарушать.
  3. «Лучше один раз увидеть»: Как и живому программисту, языковой модели значительно проще повторить стиль по двум наглядным примерам, чем разбираться в абстрактных описаниях.

Few-Shot промптинг устраняет неоднозначность через демонстрацию: вы показываете модели 2–4 контрастные пары «Входные данные -> Эталонный результат», задавая четкий канон поведения.

2. Архитектурная таксономия и ментальная модель

Градация методов обучения в контексте (In-Context Learning):

  • 1. Zero-Shot (Без примеров): Модель получает сугубо текстовую инструкцию и новое задание. Подходит для базовых рутинных задач, но дает наибольшую вариативность вывода.
  • 2. One-Shot (Один эталонный пример): В промпт добавляется один идеальный пример. Этого достаточно, чтобы задать синтаксический каркас (например, форму выходного JSON).
  • 3. Few-Shot (Классический набор из 2–5 примеров): Золотой баланс. Включает примеры различных сценариев: простой случай, сложный случай с вложенными данными и один крайний случай (Edge Case / Error Handling).
  • 4. Retrieval-Augmented (Dynamic) Few-Shot: Продвинутый продакшен-паттерн: библиотека из 500 примеров индексируется в векторной базе данных. Для каждого запроса пользователя векторный поиск подтягивает топ-3 наиболее релевантных примера.

3. Технический пайплайн и внутренняя механика

Жизненный цикл подготовки и выполнения Few-Shot промпта:

  1. Exemplar Selection & Curation (Отбор примеров): Формируется компактный набор пар, демонстрирующих желаемый результат без ошибок и лишнего многословия.
  2. Structural Delimitation (Структурная изоляция): Примеры оборачиваются в строгие XML- или Markdown-теги для избежания смешивания инструкций с примерами: <example id="1"><input>...</input><output>...</output></example>.
  3. Induction Head Pattern Activation (Активация индукционных голов): Во время расчета слоев внимания трансформер фиксирует переход от тега <input> к <output> как детерминированное преобразование данных.
  4. Target Inference Alignment (Генерация целевого ответа): Модель генерирует ответ на новый вопрос, подсознательно копируя синтаксис, длину, конвенции нейминга и ключи, использованные в примерах.

4. Практические инженерные сценарии в продакшене

01. Строгий парсинг неструктурированных данных в JSON

Вам нужно преобразовать текстовые описания банковских транзакций в валидный JSON. Zero-shot часто путает поля дат или копирует копейки. Few-shot с тремя примерами (включая возврат средств и мультивалютные платежи) обеспечивает 99.8% стабильность схемы.

02. Соблюдение фирменного стиля кода компании

Команде нужно, чтобы кодовый агент писал юнит-тесты строго по внутреннему стандарту: использование describe.concurrent, специфический хелпер фабрики пользователей makeUser() и запрет моков через jest.spyOn. Два примера в системном промпте полностью решают проблему.

03. Канонизация и перевод технических терминов

Перевод документации на русский язык с требованием сохранять специфические термины в оригинале (например, Checkpointer, Race condition) и переводить другие по корпоративному глоссарию.

5. Подводные камни, типовые ошибки и безопасность

  • Смещение большинства и позиций (Majority & Recency Bias): Модели крайне чувствительны к порядку примеров. Если в 3 из 4 примеров результатом был ответ «Да», модель будет иметь сильное смещение в пользу «Да» для любого нового входа. Всегда балансируйте классы в примерах (50/50).
  • Копирование багов из примеров (Error Mimicry): Если в одном из примеров вы случайно пропустили закрывающую скобку или сделали орфографическую ошибку, модель воспроизведет эту ошибку и в новых результатах.
  • Раздувание входного контекста: Десять детализированных Few-shot примеров могут занять 15 000 токенов. Всегда используйте Prompt Caching для системных промптов с примерами.
/ Частые вопросыSchema.org FAQPage

FAQ: Few-Shot Промптинг (In-Context Learning)

Это явление называется In-Context Learning (ICL). Специализированные контуры внимания трансформера — так называемые индукционные головы (Induction Heads) — обучены выявлять закономерности и повторяющиеся паттерны прямо в последовательности токенов. Модель распознает структуру «Вход A -> Выход A» и автоматически экстраполирует это правило на новый запрос.
/ Внутренняя перелинковка
Все термины
Промпты и RAG

Промпт-инжиниринг (Архитектура контекста и промпт-инжиниринг)

Инженерная дисциплина структурирования системных директив, XML-разметки, семантических делимитеров и примеров для достижения детерминированных, предсказуемых результатов от вероятностных моделей.

Читать термин
Промпты и RAG

Системный промпт (System Instructions & Metaprompting)

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

Читать термин
Промпты и RAG

Цепочка размышлений (Chain of Thought - CoT)

Методология побуждения языковой модели генерировать последовательные промежуточные шаги размышлений перед формированием финального ответа, что конвертирует дополнительные токены (Test-Time Compute) в качество и точность результата.

Читать термин
Промпты и RAG

Markdown AST для агентов (Abstract Syntax Tree)

Иерархическое древовидное представление разметки Markdown (стандарт mdast / Unified.js), позволяющее программным системам и AI-агентам детерминированно анализировать, трансформировать и безопасно редактировать технический контент без использования хрупких регулярных выражений.

Читать термин