VKВлад КуликовОткрытые лекции
Современные LLM18 / 20

Модуль 18. Агенты и работа с инструментами

Сначала попробуйте решить упражнение. Ответы, подробные решения и проектные ориентиры раскрываются отдельно и сохраняют своё состояние при переключении RU/EN.

Скачать файлы курса (.zip) 2588,1 КБ

Архив содержит файлы на обоих языках и вспомогательные материалы с сохранением структуры каталогов.

У1. Контекст и задержка одного шага

Цикл начинается с 3000 токенов и на каждом из 20 шагов добавляет 1500. Сравните повторный prefill всей истории с сохранением префикса и найдите финальную KV-память при 128 KiB/токен. Для одного шага сложите prefill 1500 токенов у 8.03B-модели при 495 TFLOP/s, decode 90 токенов при 209.4 токена/с и задержку инструмента 300 мс.

Показать ответ и решение

Решение. Без сохранения префикса на шаге ii снова обрабатывается вся история 3000+1500i3000+1500i. Арифметическая прогрессия даёт 20⋅3000+1500⋅(0+⋯+19)=34500020\cdot3000+1500\cdot(0+\cdots+19)=345000 токенов. При сохранении префикса его исходная часть обрабатывается один раз, а каждый прирост — один раз: 3000+19⋅1500=315003000+19\cdot1500=31500, то есть в 10.9524 раза меньше входных позиций. Чтение старого KV новыми запросами этим отношением не описывается. Финальная KV-память: 33000⋅12833000\cdot128 KiB = 4.0283 GiB.

Условная оценка prefill по 2PT2PT равна 2⋅8.03B⋅1500/(495 TFLOP/s)=48.6672\cdot8.03\text{B}\cdot1500/(495\text{ TFLOP/s})=48.667 мс. Decode: 90/209.4=429.79990/209.4=429.799 мс; инструмент: 300 мс. Сумма 778.466 мс, доля decode 429.799/778.466=55.21%429.799/778.466=55.21\%. Это сценарная условная оценка без очередей и накладных расходов среды исполнения.

У2. Надёжность и параллельная смета

Посчитайте успех 20-шаговой траектории для вероятностей шага 0.98 и 0.95 без повторов и с одной независимой повторной попыткой. Найдите вероятность шага, необходимую для 90% успеха на 50 шагах. Затем оцените 20 субагентов: 400 минут работы, 5 минут планирования, 20 минут слияния, 30 тысяч токенов контекста на агента и 128 KiB KV/токен.

Показать ответ и решение

Решение. Без повторных попыток все шаги должны быть успешны: 0.9820=0.667610.98^{20}=0.66761, 0.9520=0.358490.95^{20}=0.35849. С одной независимой повторной попыткой успех отдельного шага равен 1−(1−p)21-(1-p)^2: 0.9996 и 0.9975. Возведение в 20-ю степень даёт 0.99203 и 0.95117. Для 90% успеха на 50 шагах требуется p50=0.9p^{50}=0.9, то есть p=0.91/50=0.997895p=0.9^{1/50}=0.997895.

При равномерном делении работа занимает 400/20=20400/20=20 минут; критический путь 5+20+20=455+20+20=45 минут. Отсюда ускорение 400/45=8.89×400/45=8.89\times относительно полезной работы и (5+400+20)/45=9.44×(5+400+20)/45=9.44\times относительно полного последовательного выполнения. Даже при бесконечном числе исполнителей последовательные 25 минут ограничивают их 16× и 17×. KV всех контекстов: 20⋅30000⋅12820\cdot30000\cdot128 KiB = 73.242 GiB. Независимость повторов и идеальное разбиение — сильные допущения.

У3. CodeAct и трасса цикла

Пять JSON-действий занимают по 90 токенов; один блок CodeAct — 160 токенов. Посчитайте отношения и объясните смысл учебного коэффициента 150000/(2⋅8.03B)150000/(2\cdot8.03\text{B}). Затем воспроизведите трассу, где ошибочный вызов исправляется и финальный ответ равен 27.92.

Показать ответ и решение

Решение. JSON-путь использует 5⋅90=4505\cdot90=450 токенов и пять переходов «модель — инструмент»; CodeAct — 160 токенов и один. Поэтому отношения равны 450/160=2.8125×450/160=\mathbf{2.8125\times} и 5/1=5×5/1=\mathbf{5\times}. Коэффициент 150000/(2⋅8.03B)=9.33998⋅10−6150000/(2\cdot8.03\text{B})=9.33998\cdot10^{-6} сравнивает 150 тыс. проверок допустимых токенов с приближённым числом FLOP 2P2P на один токен модели; это отношение чисел с различными единицами работы, а не доля времени выполнения.

Воспроизводимая трасса начинается с lookup(sensor_bach) и получает tool_error; затем исправляет ключ на sensor_batch и получает 13.96; третье действие вызывает калькулятор с 13.96 * 2 и получает 27.92; после этого следует Answer: 27.92. Последовательность событий: assistant_action → tool_error → assistant_action → tool_result → assistant_action → tool_result → assistant_final → verification_pass; три обращения к реестру, одна ошибка и статус completed. Существенный инвариант — ошибка возвращается политике как наблюдение, а не исполняется бесконтрольно.

У4 [проект]

Реализуйте ReAct-подобный агент с поиском, калькулятором и безопасным локальным исполнителем. На 20 задачах измерьте долю успешно выполненных задач, долю ошибок протокола, долю ошибок инструментов, число шагов и стоимость. Затем подключите собственный MCP-сервер только для чтения и повторите оценку.

Демо и критерии проекта

Демо к этому проектному упражнению: русскоязычный demo-notebook модуля 18, раздел «Демо 1». Он показывает компактный воспроизводимый пример на малых данных, а не готовое решение полномасштабного проекта.

У5 [проект]

Разделите задачу анализа десяти файлов между субагентами. Сравните последовательную и параллельную версии по календарному времени, суммарным токенам, KV-памяти, дублированию работы и конфликтам слияния. Добавьте контрольную точку и проверьте восстановление после падения одного исполнителя.

Демо и критерии проекта

Демо к этому проектному упражнению: русскоязычный demo-notebook модуля 18, раздел «Демо 2». Он показывает компактный воспроизводимый пример на малых данных, а не готовое решение полномасштабного проекта.