«Большие языковые модели», главы 10–12: промптинг, агенты, оценка и «медленное мышление»
Конспект глав 10–12 учебника RUC AI Box и слайдов 2025 года: четыре элемента промпта и практические правила, автоматическая оптимизация промптов, обучение в контексте (выбор, формат и порядок примеров, механизмы), цепочки рассуждений и их развитие; планирование и устройство LLM-агента; метрики и три способа оценки, галлюцинации, бенчмарки; RAG и рассуждающие модели (DeepSeek-R1, Kimi k1.5).
Коротко
Заголовок раздела «Коротко»- Глава 10 — промптинг. Четыре элемента промпта и четыре принципа, автоматический поиск промптов, обучение в контексте (как выбрать, оформить и упорядочить примеры и почему оно вообще работает), цепочка рассуждений и её развитие от self-consistency до деревьев и графов мыслей.
- Глава 11 — планирование и агенты. Схема «планировщик — исполнитель — среда», планы текстом и кодом, обратная связь; агент как память + планирование + действие на примере симулятора RecAgent; мультиагентные системы и открытые проблемы.
- Глава 12 — оценка. Метрики (от перплексии до Elo и pass@k), три способа оценки — бенчмарки, люди, модели-судьи, проблемы базовых способностей (галлюцинации, устаревание знаний, непоследовательность рассуждений) и обзор MMLU, BIG-Bench, HELM, C-Eval.
- Слайды 2025 года закрывают пробелы книги: RAG и «медленное мышление» — DeepSeek-R1-Zero, четырёхэтапный рецепт R1, Kimi k1.5.
Как читать вместе с курсом
Заголовок раздела «Как читать вместе с курсом»| Раздел | Урок курса | Что даёт книга сверх урока |
|---|---|---|
| §10.1 промпты | 8.1.2 Промптинг, 8.4.1 Дисциплина промпт-инжиниринга | десятки коротких практических правил по каждому принципу |
| §10.2 обучение в контексте | 8.1.2 Промптинг | систематика выбора и порядка примеров, гипотезы о механизме |
| §10.3, слайды 8.2 рассуждения | 6.4.2 R1-Zero, 6.4.4 Дистилляция мышления | путь от CoT-промптов к RL-рассуждениям одной линией |
| §11 агенты | 8.3.1 Цикл агента, 8.3.3 Планирование и память | общая схема планирования, мультиагентные системы |
| слайды 7.4 RAG | 8.2.1 Основы RAG, 8.2.2 Продвинутый RAG | когда поиск не нужен и как это решить маленькой моделью |
| §12 оценка | 7.3.1 Бенчмарки, 7.3.2 LLM как судья | таблица «какие наборы берут в техотчётах» |
Глава 10. Промптинг
Заголовок раздела «Глава 10. Промптинг»Элементы и принципы (§10.1.1)
Заголовок раздела «Элементы и принципы (§10.1.1)»Промпт складывается из четырёх элементов: описание задачи, входные данные (структурированные — таблицы, графы — линеаризуют в текст или записывают как структуру данных в коде), контекст (найденные документы, примеры) и стратегия («давай подумаем шаг за шагом», «ты эксперт в…», разбиение на реплики диалога). Четыре принципа:
- Ясно сформулировать цель — с ограничениями на вход и выход («сводка не длиннее 50 слов»).
- Разбить на простые подзадачи и пронумеровать их.
- Дать несколько примеров (few-shot).
- Использовать удобный модели формат — разделители вроде
###, роли, английский для англоязычных моделей.
Ценнее всего в разделе — плотные списки советов (в книге они даны по-английски). Несколько, которые не устарели: говорить модели, что делать, а не чего не делать; делать промпт самодостаточным, без «оно» и «они» вне контекста; при сравнении нескольких вариантов помнить, что порядок сильно влияет на ответ; для шкалы оценок давать описание баллов с примерами; в задачах ранжирования просить вывести метки (A, B, C), а не полные тексты; просить модель проверить свой ответ перед выводом; для разнообразных примеров, если вопросы похожи, разнообразить хотя бы решения.
Автоматическая оптимизация промптов (§10.1.2)
Заголовок раздела «Автоматическая оптимизация промптов (§10.1.2)»Дискретные промпты ищут градиентами (замены токенов по оценке изменения правдоподобия), RL (сеть-политика генерирует промпт и получает награду за качество на задаче), правками (менять описание, примеры, слова-метки и оставлять лучшее — подходит для моделей за API) и самой LLM как генератором и улучшателем промптов (так устроены, например, APE и OPRO; лучше давать ей всю историю попыток с оценками, иначе поиск застревает или «колеблется»). Непрерывные промпты — prefix tuning и prompt tuning — для больших моделей используют редко. Авторы прямо пишут, что многие методы этого раздела оставлены «для полноты».
Обучение в контексте (§10.2)
Заголовок раздела «Обучение в контексте (§10.2)»Выбор примеров: ближайших соседей по эмбеддингам заметно лучше случайных; для покрытия — алгоритмы разнообразия (MMR, детерминантные точечные процессы); дорогой, но точный вариант — оценивать пользу примера самой LLM и учить на этих оценках маленький классификатор. Формат: «вопрос — ответ» → плюс описание задачи → плюс цепочка рассуждений; шаблоны можно генерировать LLM по нескольким образцам. Порядок: модели сильнее опираются на конец промпта, поэтому самые похожие на тестовый вопрос примеры ставят ближе к нему; без тестовых данных порядок выбирают по минимальной энтропии предсказаний.
Почему работает (§10.2.3). Со стороны предобучения: способность можно «натренировать» специальной задачей (MetaICL — мета-обучение на десятках NLP-задач в формате «примеры → ответ», чем разнообразнее, тем лучше), помогают разнообразие доменов и длинные связные документы. Со стороны вывода — два режима: распознавание задачи (примеры помогают «узнать» скрытую переменную задачи, знакомой с предобучения, — обоснование через PAC-обучение; это умеют уже модели на 350M) и обучение задаче (ICL как неявный градиентный спуск, который внимание выполняет за один прямой проход, или как более сложный «внутренний» алгоритм обучения; заметно сильнее у больших моделей, порядка 66B). Различить режимы помогают опыты, где верные метки в примерах заменяют случайными метками или бессмысленными символами.
Цепочка рассуждений (§10.3)
Заголовок раздела «Цепочка рассуждений (§10.3)»Пример превращается из пары ⟨вход, выход⟩ в тройку ⟨вход, рассуждение, выход⟩. Без примеров рассуждение вызывают фразами «Let’s think step by step» или «Take a deep breath and work on this problem step-by-step» (последнюю нашёл сам LLM-оптимизатор промптов). Как улучшать:
- Примеры: сложные (больше шагов или длиннее вопрос) работают лучше простых; разнообразные (Auto-CoT: кластеризуем вопросы k-means и берём по представителю из кластера) снижают вред от ошибок в сгенерированных примерах.
- Генерация: self-consistency — сэмплировать много цепочек и голосовать по ответам (можно ещё и по нескольким промптам — цепочек); верификаторы (DIVERSE: отдельные классификаторы для всей цепочки и для шагов; разметку шагов получают из того, привела ли цепочка к верному ответу).
- Структура: дерево мыслей — порождаем несколько шагов, оцениваем, заглядываем вперёд, откатываемся (пример книги — игра «24» с числами 4, 9, 10, 13); граф мыслей — ещё и сливаем ветви (пример: сортировка 64 чисел кусками по 16 с последующим слиянием).
Ограничения: на простых задачах вроде анализа тональности CoT может навредить («передумывание»). Почему CoT работает — три линии объяснений: в данных много пересекающихся «локальных» тем, и цепочка связывает переменные, которые редко встречаются вместе; CoT разлагает обучение составной функции на «фокусировку» и шаги; эксперименты с порчей цепочек показывают, что важны связность и релевантность, а не правильность каждого числа. И ещё: если при декодировании взять не только самый вероятный первый токен, а вариантов, среди продолжений находятся цепочки рассуждений и без всякого промпта, и они чаще приводят к верному ответу.
Глава 11. Планирование и агенты
Заголовок раздела «Глава 11. Планирование и агенты»Планирование (§11.1)
Заголовок раздела «Планирование (§11.1)»flowchart LR
P["Планировщик<br/>(LLM)"] -->|план, действия| E["Исполнитель<br/>(LLM, инструменты, робот)"]
E -->|действие| W["Среда<br/>(веб, игра, мир)"]
W -->|результат| F["Обратная связь"]
F -->|уточнить план| P
M[("Память")] <--> PПланы бывают текстовые (наглядно, но исполнение не гарантировано — пример книги: рецепт яичницы с помидорами, разбитый на девять шагов) и кодовые (строго, исполняются интерпретатором). Генерировать план можно целиком сразу или итеративно, шаг за шагом; обратная связь бывает внутренней (сама LLM проверяет план) и внешней (среда, инструменты, человек, другие модели). Авторы подчёркивают, что это шире классического RL: план и исполнение здесь явно разделены.
Устройство агента (§11.2)
Заголовок раздела «Устройство агента (§11.2)»Три компонента:
- Память. Краткосрочная — окно контекста; долгосрочная — внешнее хранилище (файлы, базы) с чтением через поиск и записью через «рефлексию», с очисткой дублей. Описание роли агента обычно лежит в долгосрочной памяти, в профиле.
- Планирование. Разбиение на подзадачи, несколько кандидатов плана и выбор лучшего, правка плана по обратной связи.
- Действие. Выполнение шага самой моделью или через инструменты.
Цикл: понять состояние (подтянув память) → спланировать → выполнить → получить обратную связь → отфильтровать и записать в память. Сквозной пример — RecAgent, симулятор пользователей рекомендательной системы, сделанный авторами книги: у агента «Bob» есть профиль (25 лет, фотограф, любит фантастику и комедии), свежие наблюдения, план «найти фильм → посмотреть → обсудить с друзьями», и в логе он смотрит «Интерстеллар» и договаривается с агентом «Alice» о совместном просмотре. Новым воспоминаниям при записи ставится оценка важности.
Мультиагентные системы: определить цель, создать агентов с разными ролями, задать правила взаимодействия (сотрудничество, соревнование, обмен сообщениями) и механизмы связи. Открытые проблемы по версии книги: цена вызовов (особенно у множества агентов), сложные инструменты и масштабирование на новые инструменты, протоколы взаимодействия для больших систем, модели, специально приспособленные для агентов (длинная память, устойчивость роли), и перенос из симуляций в реальный мир, где цена ошибки выше.
Глава 12. Оценка
Заголовок раздела «Глава 12. Оценка»Метрики и способы оценки
Заголовок раздела «Метрики и способы оценки»Метрики по типам задач: точность, F1, точное совпадение (EM) — для классификации и QA; BLEU и ROUGE — для генерации по эталону; перплексия — для языкового моделирования; pass@k — для кода; доля успехов — для агентов и инструментов; Elo — для попарных сравнений. Несмещённую оценку pass@k по сгенерированным решениям, из которых верных, удобно считать так (наш код):
from math import comb
def pass_at_k(n, c, k): """Вероятность, что среди k случайно выбранных из n решений есть хотя бы одно верное.""" if n - c < k: return 1.0 return 1 - comb(n - c, k) / comb(n, k)
print(pass_at_k(10, 3, 1)) # 0.3print(pass_at_k(10, 3, 5)) # ≈ 0.917print(pass_at_k(200, 10, 100)) # ≈ 0.999Три способа оценки и что кому подходит:
| Способ | Примеры | Для каких моделей | Подводные камни |
|---|---|---|---|
| бенчмарки | MMLU, C-Eval, GSM8K, BBH, MATH, OpenCompass, Open LLM Leaderboard | базовые и дообученные; для базовых — лучше few-shot | разбор ответа правилами, утечка тестов |
| люди | Chatbot Arena (попарно, Elo), HELM (баллы) | дообученные, диалог | дорого и медленно |
| модели-судьи | AlpacaEval, MT-Bench | дообученные | доступ к закрытому судье, утечка данных; выход — дообучать открытых судей |
Проблемы базовых способностей (§12.2)
Заголовок раздела «Проблемы базовых способностей (§12.2)»- Генерация: автоматические метрики вроде BLEU плохо согласуются с людьми, люди не всегда согласны между собой, а LLM-судьи пристрастны (к порядку ответов, к текстам, написанным LLM); кроме того, в узких областях генерация слабее, а дообучение на область грозит забыванием общих навыков.
- Знания: галлюцинации — внутренние (противоречат входу) и внешние (не проверяются по источнику); устаревание знаний — регулярно доучивать дорого и грозит катастрофическим забыванием, поэтому практичнее подключать внешние источники (поиск); редактирование параметров на больших моделях пока работает плохо.
- Рассуждения: непоследовательность (верный ответ после неверного рассуждения и наоборот; ответ меняется от мелких изменений формулировки — лечат голосованием по многим цепочкам, обратной связью по шагам, переводом задачи в код) и ошибки вычислений (мало таких данных в предобучении; помогают поцифровая токенизация, как в LLaMA, и калькулятор как инструмент).
Продвинутые способности (§12.3): выравнивание (полезность, честность, безвредность), взаимодействие со средой (ALFWorld, WebShop) и использование инструментов.
Какие наборы брать (§12.4.6)
Заголовок раздела «Какие наборы брать (§12.4.6)»Сводка по техотчётам GPT-4, Claude 3, LLaMA-2 и др.: общие знания — MMLU и BBH (для китайского — C-Eval и CMMLU); математика — GSM8K, MATH, DROP; код — HumanEval, MBPP; знания о мире — NaturalQuestions, TriviaQA; здравый смысл — SIQA, PIQA, ARC; выравнивание — TruthfulQA, WinoGender, CrowS-Pairs, RealToxicityPrompts. И главное предупреждение — помнить об утечке тестов в обучающие данные. Код оценки в книге показан на LLMBox (53 набора): три режима — перплексия каждого варианта ответа (для базовых моделей), вероятность буквы-варианта A/B/C/D (для чат-моделей) и свободная генерация с разбором ответа.
Слайды 7.4: RAG
Заголовок раздела «Слайды 7.4: RAG»Книга почти не говорит о RAG отдельно — слайды 2025 года это восполняют. Зачем: галлюцинации, устаревание, нехватка узкоспециальных знаний, проверяемость источников. Конвейер: поиск → сборка промпта → генерация. Оптимизации:
- поиск — единица поиска поменьше документа («утверждения»), расширение и переписывание запроса, гипотетический ответ как запрос (HyDE);
- промпт — переранжирование документов (самые релевантные не прятать в середину), сжатие контекста (LLMLingua выбрасывает маловажные токены по вероятностям маленькой модели);
- процесс — итеративный и адаптивный поиск (Self-RAG сама решает, когда искать и каким документам верить);
- обучение — дообучение с документами на разных позициях и с «шумовыми» документами.
Главный вопрос слайдов — всегда ли поиск помогает? Нет: нерелевантные документы вредят, а то, что модель и так знает, искать незачем. Сгенерировать ответ, а потом решать, нужен ли поиск, — дорого. Удешевление: маленькая «прокси-модель» отвечает первой, и по её ответу решают, искать ли и что именно. Это работает, потому что модели учатся на похожих корпусах: популярные знания у больших и маленьких моделей почти совпадают, а различаются в «длинном хвосте».
Слайды 8.2: сложные рассуждения и медленное мышление
Заголовок раздела «Слайды 8.2: сложные рассуждения и медленное мышление»Этих тем в книге нет; слайды 2025 года пересказывают их так.
Зачем «медленно думать». Масштабирование обучения (train-time scaling) даёт убывающую отдачу, а качество можно покупать ещё и длиной вывода (test-time scaling). Полезная метрика — эффективность по токенам: прирост качества на число сгенерированных токенов. Аналогия — «быстрое и медленное мышление» Канемана: попробуйте сразу назвать . Почему CoT вообще помогает: модель предсказывает ответ токен за токеном, и заменяется на — «давление» на каждый отдельный токен меньше.
Четыре пути к медленному мышлению: многократное сэмплирование, поиск по дереву, SFT на длинных цепочках и RL (o1, R1). Общая идея — поиск + обучение.
DeepSeek-R1-Zero. Раньше RL для LLM буксовал из-за того, что общую модель награды учить трудно. Подсказка AlphaGo:
нужна проверяемая награда — в математике и коде правильность проверяется автоматически. R1-Zero: прямо из
DeepSeek-V3-Base, GRPO, награда за верный ответ + за формат (<think>…<answer>), больше 8000 шагов, без SFT; длина
ответов и точность растут вместе, появляются «человеческие» рассуждения. Аналогия слайдов: дать ученику задачник с
ответами, но без решений, и пусть пробует сам.
flowchart LR B["DeepSeek-V3-Base"] --> S1["① холодный старт:<br/>SFT на тысячах<br/>длинных цепочек"] S1 --> S2["② RL на проверяемых<br/>задачах + награда<br/>за язык"] S2 -->|генерирует данные| S3["③ SFT базовой модели:<br/>600K рассуждений +<br/>200K прочего, 2 эпохи"] B --> S3 S3 --> S4["④ RL во всех сценариях:<br/>правила + модели награды<br/>полезности и безвредности"] S4 --> R1["DeepSeek-R1"]
Детали рецепта R1 по слайдам: холодный старт нужен для стабильности и читаемости (данные — few-shot, особые промпты, отфильтрованные ответы R1-Zero, ручная разметка); награда за «единый язык» борется со смешением языков ценой небольшой потери качества; на шаге ④ полезность оценивают только по итоговому ответу, а безвредность — по рассуждению и ответу вместе. Дистилляция R1 в маленькие модели работает неожиданно хорошо — слайды особо отмечают Qwen2.5-1.5B.
Kimi k1.5 (мультимодальная рассуждающая модель): отбор RL-задач по охвату, сложности (по доле верных решений самой модели) и проверяемости, с удалением легко «взламываемых» форматов — выбор вариантов, «верно/неверно»; разогрев SFT на длинных цепочках с планированием, проверкой и рефлексией; награда — проверяемая (0/1) или от модели награды, для кода — автоматически сгенерированные тесты; штраф за длину; учебный план «от лёгкого к трудному» и приоритет трудных задач; без value-сети. Отдельно — long2short: сделать короткие цепочки из длинных слиянием весов, отбором самой короткой верной цепочки, DPO «короткое лучше длинного» и повторным RL со штрафом за длину.
Открытые проблемы на 2025 год: дорого (железо и задержка), «передумывание» и «недодумывание», смешение языков, новые риски безопасности, а открытые модели ещё не повторили сверхдлинные рассуждения o3. Применение, на которое авторы делают ставку, — автоматизация науки (Deep Research).
Что сделать руками
Заголовок раздела «Что сделать руками»- Порядок примеров. Для классификации тональности из 4 примеров переберите все 24 порядка на 100 тестовых отзывах с маленькой локальной моделью. Каков разброс точности? Совпадает ли лучший порядок с порядком минимальной энтропии предсказаний?
- Self-consistency. На 50 задачах GSM8K сравните точность при одном жадном ответе и при голосовании по 5 и 10 сэмплам (температура 0,7). Постройте зависимость точности от числа токенов — это и есть «эффективность по токенам».
- Проверяемая награда. Напишите функцию награды в стиле R1-Zero: 1 за верный ответ в
<answer>, 0,1 за правильный формат<think>…</think><answer>…</answer>, 0 иначе — и проверьте её на десятке «хитрых» строк (ответ вне тега, два тега, пустое рассуждение). Пригодится в уроке 6.4.5. - pass@k. Сгенерируйте по 20 решений на 20 задач HumanEval маленькой кодовой моделью, посчитайте pass@1, pass@5 и pass@10 функцией выше и сравните с наивной оценкой «решена ли задача хотя бы одной из первых k попыток».
Словарик
Заголовок раздела «Словарик»| English | Русский |
|---|---|
| prompt learning / prompt engineering | промптинг / промпт-инжиниринг |
| task description | описание задачи |
| in-context learning, ICL | обучение в контексте (ICL) |
| demonstration | пример (демонстрация) |
| chain / tree / graph of thought | цепочка / дерево / граф мыслей |
| self-consistency | самосогласованность (self-consistency) |
| planning | планирование |
| agent / multi-agent | агент / мультиагентный |
| memory (short-term / long-term) | память (краткосрочная / долгосрочная) |
| retrieval-augmented generation, RAG | генерация с поиском (RAG) |
| benchmark | бенчмарк |
| hallucination | галлюцинация |
| perplexity | перплексия |
| data contamination / benchmark leakage | утечка тестов в данные |
| slow / fast thinking | медленное / быстрое мышление |
| reasoning model | рассуждающая модель |
| cold start | холодный старт |
| verifiable reward | проверяемая награда |
| long chain-of-thought, long CoT | длинная цепочка рассуждений (long CoT) |