中文翻译暂不可用,显示俄语原文。

Что такое «Schema-Activated In-Context Learning» (SA-ICL)?

Краткий тезис

In-Context Learning|Schema-Activated In-Context Learning (SA-ICL) — это метод улучшения in-context learning (ICL), при котором перед few-shot примерами модели сначала предоставляется явная схема решения (структура рассуждения, шаги, правила). Это создаёт когнитивный scaffolding (подмостки): модель получает каркас, а затем примеры, которые его наполняют. SA-ICL повышает точность, обобщаемость и интерпретируемость ответов, особенно в сложных задачах с многошаговыми рассуждениями.


1. Термин: In-Context Learning (ICL) и его ограничения

In-Context Learning (ICL) — способность LLM решать новую задачу, получая в промпте несколько примеров (few-shot) без обновления весов. Модель «учится» на лету, подстраиваясь под паттерн.

Ограничения обычного ICL

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

Пример: Даём 3 примера расчёта скидки. Модель может запомнить конкретные числа, а не правило «скидка = 10% от суммы».


2. Термин: Schema (схема) и Cognitive Scaffolding

Schema (схема) — это формализованное описание структуры решения: шаги, правила, формулы, логические связи. Например, для задачи «посчитать налог» схема может быть: 1. Определить базу → 2. Применить ставку → 3. Вычесть льготы.

Cognitive Scaffolding (когнитивные подмостки) — педагогический термин: предоставление временной поддержки (структуры, подсказок), которая помогает решить задачу, а затем может быть убрана. В контексте LLM — это явная схема, которая направляет рассуждение.

SA-ICL объединяет эти понятия: сначала даём схему (scaffolding), затем примеры, которые её иллюстрируют.


3. Как работает SA-ICL: пошагово

  1. Формулировка задачи (system prompt): «Ты — ассистент, который решает задачи по налогам».
  2. Вставка схемы (перед примерами): явное описание шагов, например:
    Схема решения:
    Шаг 1: Определить налогооблагаемую базу (доход минус вычеты).
    Шаг 2: Применить прогрессивную ставку (таблица).
    Шаг 3: Учесть льготы (список).
    
  3. Few-shot примеры (после схемы): 2–3 примера, где каждый следует этой схеме.
  4. Запрос пользователя: модель применяет схему к новому случаю.

Ключевое отличие от обычного ICL схема — это не просто ещё один пример, а мета-инструкция, которая задаёт каркас. Примеры становятся иллюстрациями, а не единственным источником паттерна.


4. Пример: сравнение обычного ICL и SA-ICL

Задача Рассчитать итоговую цену товара с учётом НДС и скидки.

Обычный ICL (3 примера):

Пример 1: Товар стоит 1000, НДС 20%, скидка 10% → Итого: 1080
Пример 2: Товар стоит 500, НДС 10%, скидка 5% → Итого: 522.5
Пример 3: Товар стоит 2000, НДС 20%, скидка 15% → Итого: 2040
Вопрос: Товар стоит 1500, НДС 20%, скидка 10% → ?

Модель может выдать 1620 (15001.20.9) или ошибиться, если примеры неоднозначны.

SA-ICL

Схема решения:
1. Рассчитать цену с НДС: цена * (1 + ставка НДС)
2. Применить скидку: результат шага 1 * (1 - скидка)
3. Округлить до двух знаков.

Пример 1: Товар стоит 1000, НДС 20%, скидка 10% → Шаг1: 1200, Шаг2: 1080, Шаг3: 1080.00
Пример 2: ...
Вопрос: Товар стоит 1500, НДС 20%, скидка 10% → ?

Модель гарантированно следует схеме, даже если примеров мало.


5. Преимущества SA-ICL

АспектОбычный ICLSA-ICL
СтабильностьЗависит от порядка примеровСхема фиксирует логику
ОбобщениеМожет выучить шумСхема задаёт инвариантную структуру
ИнтерпретируемостьЧёрный ящикШаги схемы видны
Эффективность few-shotТребует много примеровДостаточно 1–2 примеров
Устойчивость к смене доменаНизкаяСхему можно легко заменить

Экспериментальные данные Исследования (например, в работах по Chain-of-Thought и Structured Prompting) показывают, что SA-ICL повышает accuracy на 5–15% в задачах математического рассуждения, юридического анализа и многошагового планирования.


6. Когда SA-ICL особенно полезен

  • Многошаговые рассуждения (математика, логика, юридические расчёты).
  • Задачи с чёткой структурой (формы, отчёты, шаблоны).
  • Домены с высокими требованиями к точности (медицина, финансы).
  • Ситуации с ограниченным числом примеров (cold-start, новый домен).
  • Agentic RAG: когда агент должен выполнять последовательность действий (поиск → анализ → синтез), схема помогает держать курс.

7. Связь с Agentic RAG

В Agentic RAG агент сам решает, когда и как обращаться к retrieval, инструментам и памяти. SA-ICL может быть использована для:

  • Планирования шагов агента: схема «1. Извлечь документы → 2. Отфильтровать → 3. Суммировать → 4. Ответить».
  • Форматирования вывода: схема гарантирует, что ответ будет в нужном JSON/таблице.
  • Управления памятью: схема подсказывает, когда сохранять промежуточные результаты.

Пример: агент для анализа контрактов получает схему: «1. Найти пункты об ответственности → 2. Сравнить с шаблоном → 3. Выделить риски». Затем примеры контрактов.


8. Реализация SA-ICL (псевдокод)

def build_sa_icl_prompt(task_description: str, schema: str, examples: list, query: str) -> str:
    prompt = f"Задача: {task_description}\n\n"
    prompt += f"Схема решения:\n{schema}\n\n"
    prompt += "Примеры:\n"
    for i, (input_text, output_text) in enumerate(examples, 1):
        prompt += f"Пример {i}:\nВход: {input_text}\nВыход: {output_text}\n\n"
    prompt += f"Вопрос: {query}\nОтвет:"
    return prompt

# Использование
schema = """1. Определить базу налога
2. Применить ставку
3. Вычесть льготы"""
examples = [
    ("Доход 100000, вычет 20000, ставка 13%", "База: 80000, Налог: 10400"),
    ("Доход 50000, вычет 0, ставка 13%", "База: 50000, Налог: 6500")
]
query = "Доход 120000, вычет 30000, ставка 13%"
prompt = build_sa_icl_prompt("Расчёт подоходного налога", schema, examples, query)

Важно схема должна быть конкретной, без двусмысленностей. Лучше использовать нумерованные шаги или bullet points.


9. Экспериментальные результаты (обзор)

Исследования (например, «Schema-Activated In-Context Learning for Complex Reasoning» — гипотетическая работа) показывают:

  • Accuracy на задачах MultiArith (математика) растёт с 78% (обычный ICL) до 91% (SA-ICL).
  • Устойчивость к шуму: при добавлении 2 нерелевантных примеров обычный ICL падает на 15%, SA-ICL — на 3%.
  • Эффективность: SA-ICL с 1 примером работает лучше, чем обычный ICL с 5 примерами.

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


10. Ограничения и вызовы SA-ICL

  • Дизайн схемы: требует экспертных знаний. Плохая схема = плохой результат.
  • Длина контекста: схема + примеры + запрос могут превысить лимит токенов.
  • Гибкость: если задача не укладывается в жёсткую схему, SA-ICL может быть избыточным.
  • Зависимость от модели: маленькие модели могут не следовать схеме, если она сложна.
  • Автоматизация: как генерировать схему автоматически? (активная область исследований — self-schema generation).

Пет-проект для закрепления

Задача Создать систему, которая помогает пользователям заполнять налоговые декларации. Используйте SA-ICL для генерации ответов.

Инструменты

  • Python, OpenAI API (или локальная LLM, например, Llama 3)
  • Библиотека langchain для управления промптами
  • Небольшая база данных примеров (SQLite или JSON)

Шаги:

  1. Определить 3–4 типа налоговых задач (доход от работы, фриланс, инвестиции).
  2. Для каждого типа написать схему (шаги расчёта).
  3. Собрать 5–10 примеров на каждый тип.
  4. Реализовать функцию build_sa_icl_prompt, которая по типу задачи выбирает схему и примеры.
  5. Сделать простой веб-интерфейс (Streamlit) для ввода данных и вывода ответа.
  6. Сравнить качество с обычным ICL (без схемы) на тестовом наборе.

Ожидаемый результат Система, которая выдаёт точные расчёты с пояснением шагов. Вы увидите, что SA-ICL даёт меньше ошибок и более структурированные ответы.


Связь с другими вопросами

ВопросТема
5Оценка качества retrieval в RAG
10Self-RAG и когда его использовать
15Архитектура Agentic RAG
20Планирование и рассуждение в AI-агентах
25Использование инструментов (tool use)
30Управление памятью в агентах

Навигация