Few-Shot Промптинг (In-Context Learning)
Методология инженерии промптов, при которой модель адаптируется к специфическому формату, стилю или логике непосредственно во время инференса (In-Context Learning) благодаря показу 2–5 эталонных примеров.
1. Обзор концепции и системная проблема
Один из самых распространенных вызовов в работе с языковыми моделями — это неоднозначность естественного языка. Когда разработчик пишет в инструкции: «Напиши лаконичный TypeScript интерфейс в стиле нашего проекта», модель вынуждена опираться на усредненные представления из интернета:
- Субъективность формулировок: Понятия «лаконичный», «красивый» или «строгий» трактуются моделью слишком широко, что вызывает нестабильность результатов от запуска к запуску.
- Невозможность описать все правила текстом: Описание конвенций кодовой базы может занять 10 страниц правил, которые модель неизбежно начнет нарушать.
- «Лучше один раз увидеть»: Как и живому программисту, языковой модели значительно проще повторить стиль по двум наглядным примерам, чем разбираться в абстрактных описаниях.
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 промпта:
- Exemplar Selection & Curation (Отбор примеров): Формируется компактный набор пар, демонстрирующих желаемый результат без ошибок и лишнего многословия.
- Structural Delimitation (Структурная изоляция):
Примеры оборачиваются в строгие XML- или Markdown-теги для избежания смешивания инструкций с примерами:
<example id="1"><input>...</input><output>...</output></example>. - Induction Head Pattern Activation (Активация индукционных голов):
Во время расчета слоев внимания трансформер фиксирует переход от тега
<input>к<output>как детерминированное преобразование данных. - 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 для системных промптов с примерами.
FAQ: Few-Shot Промптинг (In-Context Learning)
Связанные термины
Промпт-инжиниринг (Архитектура контекста и промпт-инжиниринг)
Инженерная дисциплина структурирования системных директив, XML-разметки, семантических делимитеров и примеров для достижения детерминированных, предсказуемых результатов от вероятностных моделей.
Системный промпт (System Instructions & Metaprompting)
Приоритетный метаконтекстный блок инструкций, передаваемый на нулевой позиции контекстного окна, определяющий роль, правила безопасности, доступные инструменты и границы поведения агента.
Цепочка размышлений (Chain of Thought - CoT)
Методология побуждения языковой модели генерировать последовательные промежуточные шаги размышлений перед формированием финального ответа, что конвертирует дополнительные токены (Test-Time Compute) в качество и точность результата.
Markdown AST для агентов (Abstract Syntax Tree)
Иерархическое древовидное представление разметки Markdown (стандарт mdast / Unified.js), позволяющее программным системам и AI-агентам детерминированно анализировать, трансформировать и безопасно редактировать технический контент без использования хрупких регулярных выражений.