TL;DR
Near-domain learning — принцип использования примеров из близких, но не идентичных задач для более эффективной классификации. Исследователи обучали BERT-модель последовательно на трёх связанных вопросах (про репликацию ДНК, транскрипцию и трансляцию) и обнаружили: модель, которая «видела» примеры оценок из первого вопроса, требует в 2-3 раза меньше примеров для качественной оценки второго и третьего вопросов. Это работает потому что вопросы из одного домена — студенты используют похожую терминологию, делают похожие ошибки, строят аргументы схожим образом.
Проблема: когда нужно оценить письменные ответы (эссе, объяснения, reasoning), модель без контекста даёт непредсказуемые результаты. GPT-4 в zero-shot промпте с одним reference answer показала точность 65-70% в оценке студенческих ответов. Причина: модель не понимает градации качества — что считать полным ответом, что неполным, какие ошибки критичны. Ей нужны примеры каждого уровня, но набирать их с нуля долго.
Решение: дай модели сначала примеры оценок из похожей задачи, потом добавь несколько примеров из текущей. Исследование показало "accuracy advantage" — модель достигает 85% точности с 50 примерами из текущей задачи + контекст из похожей, вместо 150 примеров только из текущей задачи. Примеры из near-domain создают «базовое понимание стандартов оценки», которое потом быстро адаптируется под специфику конкретного вопроса.
Схема метода
Метод исследовали через fine-tuning, но принцип применим через few-shot в чате:
ШАГ 1: Собери примеры оценок из похожей задачи
→ 5-10 примеров каждой категории (правильно/неполно/неправильно)
ШАГ 2: Добавь примеры из текущей задачи
→ 2-5 примеров каждой категории
ШАГ 3: Дай текущий ответ для оценки
→ Модель классифицирует на основе паттернов из обоих наборов
Всё в одном промпте, один запрос.
Пример применения
Задача: Ты продакт-менеджер, проводишь интервью с пользователями о новой фиче. Нужно быстро оценивать десятки ответов на вопрос "Как вы сейчас решаете задачу X?" по критериям: Детальный (описал процесс пошагово, назвал инструменты), Поверхностный (общие слова без деталей), Не по теме (не понял вопрос или ушёл в сторону).
У тебя есть прошлый опрос про другую фичу — вопрос был "Как вы планируете задачи в команде?". Используй оценки оттуда как near-domain контекст.
Промпт:
Оцени письменный ответ пользователя по трём категориям: Детальный, Поверхностный, Не по теме.
ПРИМЕРЫ ИЗ ПОХОЖЕГО ОПРОСА (про планирование задач):
Детальный:
"Используем Notion. Создаём базу с полями: приоритет, дедлайн, ответственный. Каждый понедельник синхронизируемся в Zoom 15 минут, распределяем задачи. В пятницу — ретро, смотрим что не закрыли, переносим на след неделю."
Поверхностный:
"Ну у нас есть таск-менеджер, там все задачи. Периодически встречаемся и обсуждаем."
Не по теме:
"Планирование это вообще бюрократия, мы agile команда, у нас спринты."
ПРИМЕРЫ ИЗ ТЕКУЩЕГО ОПРОСА (про оплату подписок):
Детальный:
"Раз в месяц сижу в банковском приложении, смотрю выписку. Выписываю все регулярные списания в Excel. Считаю сумму. Потом прохожусь по каждому сервису — где-то отменяю через сайт, где-то пишу в саппорт, у Spotify нашёл только через приложение."
Поверхностный:
"Просто захожу в настройки подписок и смотрю что можно отключить."
ОЦЕНИ ЭТОТ ОТВЕТ:
"Честно, никак особо не отслеживаю. Иногда вижу списание и думаю 'это вообще что', но забиваю. Недавно случайно обнаружил что три месяца платил за Headspace которым не пользуюсь."
Категория:
Результат:
Модель выдаст одну из трёх категорий с кратким обоснованием. В данном случае скорее всего классифицирует как Поверхностный — есть общее описание процесса (точнее, его отсутствия), упомянут конкретный кейс, но нет систематического подхода который мы хотим увидеть в "Детальном". Благодаря near-domain примерам модель понимает градацию между "вообще не по теме" и "поверхностно" — в прошлом опросе она видела что "поверхностный" = упоминание инструмента без деталей процесса.
Почему это работает
Слабость LLM: модель плохо оценивает качество ответов без калибровки. Ей нужно понять границы между категориями — где заканчивается "поверхностный" и начинается "детальный". В zero-shot она применяет свои общие представления, которые могут не совпадать с твоими критериями.
Сильная сторона LLM: модель отлично находит паттерны и аналогии между текстами. Она видит: в near-domain примерах "детальный" = названы конкретные инструменты + описаны шаги + упомянуты частоты/тайминги. Этот паттерн она переносит на новую задачу.
Как метод использует силу: near-domain примеры создают базовое понимание стандарта оценки через паттерн-матчинг. Модель учится не на уровне "что такое хороший ответ про ДНК", а на уровне "что такое хороший ответ вообще — структура, детальность, релевантность". Когда ты добавляешь 2-5 примеров из текущей задачи, модель быстро адаптирует базовый стандарт под специфику домена. Это эффективнее чем давать 15 примеров только из текущей задачи — там она учится с нуля, здесь она дообучает уже сформированную оценочную шкалу.
Рычаги управления:
Соотношение near-domain / текущих примеров → исследование показало 5-10 из near-domain + 2-5 текущих оптимально. Больше near-domain — риск что модель будет слишком привязана к старому контексту. Больше текущих — теряешь преимущество метода.
Близость доменов → чем ближе темы (оба вопроса про user research vs один про молекулярную биологию второй про UI дизайн), тем сильнее эффект. Проверяй: используют ли люди похожую терминологию, строят ли аргументы схожим образом.
Количество категорий → исследование использовало 3 категории (правильно/неполно/неправильно). Это работает для большинства задач оценки. Больше 5 категорий — near-domain примеры могут не покрыть все нюансы.
Шаблон промпта
Оцени ответ по категориям: {список_категорий}.
ПРИМЕРЫ ИЗ ПОХОЖЕЙ ЗАДАЧИ (про {near_domain_тема}):
{категория_1}:
"{пример_1}"
{категория_2}:
"{пример_2}"
{категория_3}:
"{пример_3}"
[повтори для всех категорий, 2-3 примера каждой]
ПРИМЕРЫ ИЗ ТЕКУЩЕЙ ЗАДАЧИ (про {текущая_тема}):
{категория_1}:
"{пример_1}"
{категория_2}:
"{пример_2}"
[для каждой категории, достаточно 1-2 примера]
ОЦЕНИ ЭТОТ ОТВЕТ:
"{текст_для_оценки}"
Категория:
Как заполнять:
{список_категорий}— твои категории оценки (Детальный/Поверхностный/Не_по_теме, или Правильно/Частично/Неправильно, или свои){near_domain_тема}и{текущая_тема}— сформулируй коротко, чтобы модель понимала контекст- Near-domain примеры — возьми из прошлых опросов, оценок, анализа — главное чтобы структура оценки была похожей (те же критерии детальности, полноты, релевантности)
- Текущие примеры — 1-2 реальных ответа которые ты уже оценил вручную, они адаптируют near-domain паттерн под специфику
Ограничения
⚠️ Требуется near-domain датасет: метод работает только если у тебя есть готовый набор оцененных примеров из похожей задачи. Если оцениваешь что-то впервые без истории — придётся собирать примеры с нуля, near-domain преимущество пропадает.
⚠️ Домены должны быть действительно близкими: исследование показало эффект на трёх вопросах про молекулярную биологию (один домен, разные аспекты). Если темы слишком разные (например, оценка технических ответов про код и креативных ответов про дизайн), near-domain примеры могут внести шум вместо пользы — модель будет искать паттерны там где их нет.
⚠️ Субъективные критерии оценки сложнее: метод показал высокую точность (85%+) на задачах с относительно объективными критериями (есть научно правильный ответ). Для оценки креативности, оригинальности, "нравится/не нравится" результаты будут менее надёжными — там даже near-domain примеры не создают чёткую шкалу.
Как исследовали
Команда из UC Davis и Michigan State взяла 2,861 студенческих ответа на три связанных вопроса про молекулярную биологию (как мутация ДНК влияет на репликацию, транскрипцию и трансляцию). Каждый ответ оценивали эксперты как Правильный, Неполный или Неправильный с 80% согласованностью между оценщиками.
Дизайн эксперимента: Обучили BERT-модель сначала на вопросе Q1 (репликация), потом дообучили её на Q2 (транскрипция) с разным количеством примеров — от 2.5% до 100% датасета Q2. Потом взяли лучшую модель Q1→Q2 и дообучили на Q3 (трансляция). Сравнили с baseline моделями, обученными только на Q2 или Q3 без near-domain контекста.
Ключевая находка: Модель Q1→Q2 достигла точности baseline модели Q2 используя в 2-3 раза меньше примеров. Например, для 85% точности на Q2 нужно было 150 примеров без near-domain или 50 примеров с near-domain контекстом от Q1. Это назвали "data advantage" — ты можешь получить ту же точность с меньшим количеством размеченных данных.
Сравнили с GPT-3.5, GPT-4 и GPT-4o без fine-tuning (с reference answers в промпте). Non-fine-tuned LLM показали на 10-20% хуже результаты чем fine-tuned BERT с near-domain данными. Причина: reference answer это один пример "правильного", но модель не видит границы между категориями — что отличает "неполный" от "неправильного", какие формулировки приемлемы.
Почему это работает: Вопросы про репликацию, транскрипцию и трансляцию используют общую терминологию (ДНК, РНК, белки, кодоны), студенты делают похожие типы ошибок (путают направление процесса, забывают про ферменты), структура хороших ответов общая (описание процесса → влияние мутации → последствия). Модель учится распознавать эти паттерны на Q1, потом переносит на Q2 и Q3.
Что удивило: "Accuracy advantage" (меньше данных нужно) оказался сильнее на Q3 чем на Q2. Это значит что последовательное обучение Q1→Q2→Q3 накапливает знание о домене — третий вопрос требовал ещё меньше примеров чем второй. Эффект компаундируется.
Ресурсы
AI-Enabled grading with near-domain data for scaling feedback with human-level accuracy Shyam Agarwal, Ali Moghimi, Kevin C. Haudek University of California, Davis; Michigan State University
