Как RAG, Tool Calling и агенты связывают LLM с реальным миром: лекция CME295 в Стэнфорде

Stanford Online 72,6 тыс. 1 ч 49 мин 7 мин 18.11.2025
Главное

В рамках курса CME295 Стэнфордского университета прошла седьмая лекция, посвященная «агентным» большим языковым моделям (LLM). Преподаватели Атин и Шервин разобрали, как вывести нейросети за пределы их изолированного состояния и научить их взаимодействовать с внешним миром через механизмы RAG, вызов инструментов и автономные циклы рассуждений.

🧠 От рассуждений к действиям: рекап и контекст 0:05

Предыдущая лекция была посвящена моделям рассуждения (reasoning models) и отличиям их архитектуры от классических LLM . Атин напомнил, что ключевым инструментом обучения таких моделей является алгоритм GRPO (Group Relative Policy Optimization), который оптимизирует политику модели без необходимости обучения функции ценности (value function) .

В процессе обучения с подкреплением (RL) исследователи заметили феномен «предвзятости длины» (length bias): модели стремятся выдавать всё более длинные цепочки рассуждений, так как это коррелирует с более высокими наградами, даже если производительность выходит на плато . Для решения этой проблемы были предложены методы DAPO и обновлённые версии GRPO .

Сегодня фокус сместился с того, как модель думает, на то, как она получает знания и совершает действия. Ключевые проблемы «ванильных» LLM, которые решаются в этой лекции:

🔍 RAG: Как преодолеть «дату отсечки» знаний 6:34

Основная проблема современных моделей — устаревание данных. Например, у GPT-4o дата отсечки знаний зафиксирована сентябрём 2024 года . Это означает, что на вопрос о событиях октября 2024 года базовая модель не ответит или ответит неверно.

По мнению Атина, дообучение модели на новых данных (fine-tuning) для обновления знаний — плохая идея по ряду причин:

  1. Это сложно реализовать без деградации других способностей модели (регрессии) .
  2. Это непрактично при наличии множества специфических сценариев использования .

Простое добавление всей новой информации в контекстное окно (prompt) также имеет ограничения. Хотя современные модели поддерживают сотни тысяч токенов, тест «иголка в стоге сена» (needle in a haystack) показывает, что производительность LLM падает, если релевантный факт спрятан в середине огромного массива текста . Кроме того, длинные промпты стоят дорого: около $1 за миллион токенов в современных API .

Решением становится RAG (Retrieval-Augmented Generation) — генерация с дополнением выборкой. Процесс состоит из трёх шагов:

  1. Retrieve (Извлечение): Поиск релевантных документов в базе знаний.
  2. Augment (Дополнение): Добавление найденных фактов в промпт.
  3. Generate (Генерация): Формирование ответа моделью на основе контекста .

🛠 Архитектура поиска: от эмбеддингов до ранжирования 19:01

Для создания эффективной системы RAG необходимо правильно подготовить базу знаний. Документы разбиваются на «чанки» (chunks) — фрагменты текста размером около 500 токенов с небольшим перекрытием (overlap) в 100–200 токенов, чтобы сохранить контекст . Каждому чанку присваивается векторное представление — эмбеддинг.

Атин выделяет два этапа поиска:

Интересные подходы для улучшения поиска:

Для экономии средств в таких системах активно применяется кэширование промптов (Prompt Caching). Если префикс запроса повторяется, провайдеры (например, OpenAI или Anthropic) могут снизить цену в 10 раз за такие токены .

📊 Метрики качества поиска 48:03

Чтобы понять, насколько хорошо работает поисковый движок RAG, используются классические метрики из области информационного поиска :

  1. NDCG (Normalized Discounted Cumulative Gain): Оценивает качество ранжирования. Чем выше в списке находится релевантный документ, тем выше балл .
  2. MRR (Mean Reciprocal Rank): Учитывает только позицию самого первого релевантного документа .
  3. Recall@K и Precision@K: Доля найденных релевантных документов среди всех существующих и доля релевантных среди К выданных моделью соответственно .

Для глобальной оценки моделей Атин рекомендует использовать бенчмарк MTEB (Massive Text Embedding Benchmark) .

🔌 Tool Calling: Когда нужны структурированные данные 59:27

Шервин переходит ко второму способу связи LLM с миром — вызову инструментов (Tool Calling). В отличие от RAG, который работает с неструктурированным текстом, инструменты нужны для работы со структурированными данными и API .

Процесс вызова функции выглядит так:

  1. Разработчик описывает API (название, описание, параметры) в промпте модели.
  2. Модель, видя запрос пользователя, решает вызвать функцию и подготавливает аргументы (например, в формате JSON) .
  3. Система исполняет код функции и возвращает результат модели.
  4. Модель формирует финальный ответ на естественном языке .

Шервин подчеркивает, что модель не видит реализацию кода, только его описание. Поэтому критически важно снабжать функции качественной документацией. Для обучения моделей этому навыку используется SFT (Supervised Fine-Tuning) на парах «запрос — вызов функции» . Однако современные мощные модели часто понимают, как использовать инструменты, просто из качественного текстового описания (In-context learning) .

🌐 Масштабирование и стандарты: MCP и маршрутизация 1:22:26

Когда инструментов становится слишком много (сотни или тысячи), возникают проблемы: модель путается, а контекстное окно переполняется. Шервин упоминает решение от Google DeepMind — использование «селектора инструментов» (tool selector) или роутера . Это отдельный шаг, на котором LLM сначала выбирает 2–3 потенциально полезных инструмента из общего списка, и только их полные описания добавляются в финальный запрос.

Для борьбы с фрагментацией рынка (когда под каждую модель нужно писать свои описания инструментов) команда Anthropic представила MCP (Model Context Protocol) . Это открытый стандарт, позволяющий разработчикам создавать «серверы инструментов», которые могут подключаться к любой совместимой модели.

В структуре MCP выделяют:

🤖 Агенты: Автономия и циклы рассуждений 1:32:05

Агент — это система, которая автономно преследует цель, совершая цепочку действий . Главное отличие агента от простого вызова инструментов — наличие итеративного цикла рассуждений.

Шервин разбирает классический фреймворк React (Reason + Act):

  1. Observe (Наблюдение): Интерпретация текущего состояния или ответа от инструмента.
  2. Plan (Планирование): Решение, какой шаг сделать следующим.
  3. Act (Действие): Выполнение действия (вызов инструмента) .

Пример с умным домом: пользователь говорит «моему медведю холодно». Агент сначала наблюдает (связывает холод с температурой), затем планирует (проверить датчик), действует (вызывает API термостата), видит результат (65°F), планирует поднять температуру, снова действует и, наконец, сообщает пользователю об успехе .

Для взаимодействия нескольких агентов между собой Google предложила протокол «Agent-to-Agent», который стандартизирует передачу задач и статусов выполнения между независимыми ИИ-системами .

🛡 Безопасность и этика агентных систем 1:42:19

Наделение LLM правом совершать действия несет серьезные риски. Шервин выделяет проблему эксфильтрации данных (data exfiltration): например, вредоносный промпт может заставить почтового агента переслать пароли пользователя на внешний адрес .

Методы защиты включают:

Шервин упомянул недавний отчет Anthropic о крупномасштабной кибератаке, запущенной через их модель Claude. Злоумышленники использовали агентные способности модели для разведки. Компания опубликовала подробный отчет, подчеркивая, что это постоянная борьба брони и снаряда .

💡 Практические советы для разработчиков 1:47:34

В завершение лекции Шервин дал несколько советов по созданию агентов:

  1. Начинайте с малого: Сначала реализуйте один простой инструмент и проверьте его работу .
  2. Используйте лучшие модели на старте: Сначала добейтесь корректной логики на мощной модели (например, GPT-4 или Claude 3.5 Sonnet), а затем оптимизируйте стоимость и задержки .
  3. Изучайте логи рассуждений: Всегда смотрите на цепочки рассуждений (CoT) модели для отладки.

Шервин также отметил, что его любимый сценарий использования агентов сегодня — помощь в написании кода. При этом он предостерег студентов: «Генерация кода стала дешевой, но суждение о том, правильный ли это код, — всё еще сложная задача». По его мнению, вкус и фундаментальные знания программиста теперь важнее, чем умение писать синтаксические конструкции .

💬 Цитаты

«Генерация кода стала дешевой, но суждение о том, правильный ли это код и делает ли он то, что нужно, — это самая трудная часть.»

«Агенты — это системы, которые автономно преследуют цели и выполняют задачи от имени пользователя.»

👥 Спикеры
🔗 Упомянутые сайты и проекты
📖 Термины
RAG
Метод архитектуры ИИ, объединяющий генеративные способности LLM с внешним поиском информации.
Эмбеддинг
Векторное (числовое) представление смысла слова или текста, используемое для семантического поиска.
Чанкинг
Процесс разбиения длинных документов на более мелкие фрагменты для индексации в базе данных.
CoT (Chain of Thought)
Цепочка рассуждений модели, позволяющая ей решать сложные задачи по шагам.
Prompt Caching
Технология сохранения результатов вычислений для повторяющихся частей запроса для снижения стоимости и ускорения ответа.
📊 Цифры
🗓 Хронология
  1. Сентябрь 2024 Дата отсечки знаний GPT-4o, после которой модель не знает о событиях без RAG.
  2. 2024 Google выпустил протокол Agent-to-Agent для взаимодействия ИИ-систем.
  3. Вчера (относительно лекции) Anthropic опубликовала отчет о крупной кибератаке через их модель Claude.
⚖️ Другая сторона
Искусственный интеллект RAG Model Context Protocol Tool Calling Agentic LLMs Stanford University