ym104432846
Вставьте ссылку на видео из Youtube, Rutube, VK видео
Задайте вопрос по видео
Что вас интересует?
00:03:22
Организация интенсива по ai агентам:
  • Курс посвящен обучению участников созданию и внедрению личных ассистентов и их доведению до промышленной эксплуатации (продакшен)
  • Программа курса состоит из пяти дней, включающих изучение структуры агентов, инструментов и методов обеспечения безопасности, взаимодействия агентов в мультиагентных системах, оценки качества и масштабирования агентов
  • Рассматриваемые сценарии применения агентов включают персональные помощники, исполнительные агенты, написание программного кода, поддержку клиентов, бизнес-процессы и интерактивные среды, такие как видеоигры
00:07:21
Эволюция взаимодействия человека и llm:
  • 1. Рассмотрена эволюция взаимодействия с ЛЭМ-ка (LLM), начиная от простейшего промта и заканчивая мультиагентными системами, способными координировать процессы и принимать решения
  • 2. Описаны этапы развития возможностей агентов, включая появление маршрутизации, выбора пути выполнения, вызова функций и аргументов, планирования действий и работы с внешними API-сервисами
  • 3. Обозначена конечная цель — создание многоагентной системы, способной самостоятельно распределять задачи и взаимодействовать между собой
00:08:54
Современные определения агента:
  • 1. Участники дискуссии пришли к выводу о необходимости принять единое рабочее определение агента, объединяющее различные аспекты существующих формулировок
  • 2. Обсуждалось использование общего рабочего определения, включающего рантайм, модель, промты, инструменты, память, механизмы защиты и планирования
  • 3. Было отмечено наличие нескольких различных формулировок определения агентов в индустрии и научных кругах, каждая из которых делает акцент на разных аспектах деятельности агента
00:10:26
Архитектура агента и его компоненты:
  • В лекции планируется рассмотреть верхнеуровневую структуру компонентов системы агентов, после чего детально погрузиться в изучение каждого компонента в ходе курса
  • Модель агента (аяй модель) способна генерировать текст и отвечать на вопросы, однако требует дополнительных обвязок и инструментов для полноценного функционирования
  • Система включает три типа памяти агента: краткосрочную, долгосрочную и контекстную, каждая из которых имеет свою специфику хранения и использования информации
00:13:30
Мозг агента и LLM:
  • 1. Участники обсудили разработку агентов на основе llm (нейросетевой модели)
  • 2. Рассмотрели возможность углубленного изучения мира GPT и работы с агентами LLM
  • 3. Определили, что формальное описание LLM — это нейронная сеть, обученная на больших массивах текстовых данных
00:14:00
Физическая структура LLM:
  • Языковые модели (LLM) состоят из двух файлов: один содержит параметры нейросети (десятки и сотни гигабайт), другой — код выполнения и описание архитектуры сети
  • Нейронная сеть предсказывает следующий токен на основе введённых данных и весов, однако сама по себе не обладает пониманием или интеллектом, являясь лишь набором весов и инструкций по их применению
  • Для представления входных данных используется метод токенизации, позволяющий уменьшить размер словаря и улучшить способность модели выявлять взаимосвязи между токенами
00:21:43
Обучение LLM:
  • Нейронная модель работает исключительно с последовательностью токенов, не воспринимая слова, предложения или смысловые единицы напрямую
  • Для расчета стоимости использования моделей (биллинга), проектирования контекстных окон важна правильная структура входящего контекста (промта)
  • Модели склонны к ошибкам («галлюцинациям») при генерации информации, поскольку они строят прогнозы на основе вероятности появления следующего токена, не сверяя данные с фактами
00:26:20
Практическое применение LLM:
  • 1. Рассмотрят практические кейсы ограничений LMOC и их сильных сторон на реальных примерах
  • 2. Планируется демонстрация работы с локальным инференсом на CPU и GPU, использование внешних API и настройка среды Google Colab
  • 3. Предложено рассмотреть установку необходимых библиотек и изменение типа рантайма для запуска вычислений на GPU
00:27:09
Локальный и внешний инференс:
  • Рассматриваются два способа использования моделей машинного обучения (ML): локальное использование с моделью на устройстве и обращение к внешним API
  • Локальная работа позволяет сохранить приватность данных, однако требует значительных ресурсов устройства и затрат на оборудование
  • Внешние API предоставляют доступ к мощным вычислительным ресурсам, но требуют оплаты за каждое взаимодействие и снижают уровень конфиденциальности данных
00:31:54
Кейсы сильных и слабых сторон LLM:
  • Обсуждались сильные и слабые стороны моделей машинного обучения (ЛМОК), включая способность генерировать галлюцинации, суммировать тексты, генерировать стандартные структуры, справляться с подсчетом символов и арифметическими операциями, а также цитировать точные данные
  • Модель показала хорошие результаты в переформулировании текста, создании структурированных объектов JSON и цитировании доступного материала, однако столкнулась с трудностями при выполнении простых арифметических операций и подсчете символов
  • Рассматривалась возможность подключения внешних инструментов и баз знаний для повышения эффективности работы модели, однако пока такие возможности не были реализованы
00:36:14
Оценка агентов с использованием Tau Benchmark:
  • Разработана методика оценки работы агентов на основе бенчмарков Тау-2, включающих оценку поведения агентов и пользователей
  • Рассмотрен процесс сборки и запуска простого агента с использованием фреймворков Langchain и Langaraph, а также OpenAI-моделей
  • Обозначены этапы дальнейшего развития агента, включая интеграцию инструментов, памяти и механизмов защиты
0: Всем привет, меня зовут Зайцева Алёна и я руковожу службой эйай в яндекс лавке. Я отвечаю во первых, за ai в клиентском продукте это все, что видят наши юзеры, например ассистент лавка эйай, с которым можно общаться как текстом, так и голосом генеративный контент.
1: Карточки товара и многое другое. Во вторых, я отвечаю за ai для оптимизации команд и бизнес процессов. Это множество совершенно разноплановых внутренних агентов, которые позволяют автоматизировать некоторую рутину или конкретные задачки, что в итоге приводит к тому,
2: Что мы намного быстрее прототипируем, разрабатываем, тестируем, внедряем различные проекты и в третьих, я отвечаю за инфраструктуру для разработки всех этих агентов и сегодня я рада приветствовать вас на старте интенсива по ai агентам давайте немного рас.
3: Расскажу про него команда спикеров курса включает в себя руководителей и инженеров из разных кусочков яндекса это лавка, Алиса и умное устройство, поисковый портал и cloud за последние годы индустрия прошла путь от простого Промина мок до многоагентных систем.
4: И мы прошли этот путь вместе с ней за это время мы внедряли разные новые фреймворки, протоколы и подходы, отказывались от решений, которые не выдерживали проверку продакшена и придумывали собственные архитектуры, и обменивались опытом друг с другом, и этим опытом очень хочется поделиться в рамка.
5: Данного интенсива. Сегодня агенты это уже не просто какая-то игрушка из лаборатории. Это то, что реальные компании внедряют в повседневную рутину. И мы хотим, чтобы по итогам курса вы могли не только быстро запрототипировать своего личного ассистента, но и знали, как довести его до
6: Продакшена и масштабировать. Наш интенсив будет состоять из 5 дней и завершится контрольным заданием. Чтобы достичь нашей цели. Мы в 1 день рассмотрим вообще, зачем нужны агенты и из каких кусочков они состоят. И дальше подробно будем.
7: Погружаться в каждый отдельный блок так сегодня же мы погрузимся в мозг агента это ллм и рассмотрим, что такое инструменты и mcp во 2 день мы углубимся в 2 ключевых слоя, без которых агент быстро превращается в игрушку.
8: Это память и гардрейл. То есть некоторые инструменты, которые нам позволяют обезопасить агента, чтобы он вёл себя более предсказуемо. В 3 день мы соберём из разобранных кусочков общий пайплайн. Мы рассмотрим агентский воркфлоу и рассмотрим
9: Как взаимодействуют агенты внутри мультиагентной системы и дополнительно коснёмся и мультимодальных систем. 4 день поговорим про то, что обычно болит больнее всего. Как понять, что стало лучше, как вообще наш агент работает и как не дать ему умереть, где
10: В продакшене, потому что у нас поехали данные, то есть поговорим про eval агентов и, наконец, 5 день мы соберём все изученное в 1 большой блок, разберёмся, как вообще нужно прототипировать ассистентов и доводить их до продакшена и как.
11: Как, какие особенности у агентов в продакшене, где нам нужны абзера ити инструменты? Как следить будем за качеством и как будем их масштабировать? Что нас ждёт сегодня? Сначала мы погрузимся в самих агентов, рассмотрим, в каких сценариях они могут применяться. Зачем?
12: Тем пройдёмся про эволюции взаимодействия человека и ллм. И, наконец, дадим формальное определение агента, а дальше углубимся в мозг агента в ллм, дадим формальное определение уже ллм. Разберёмся, что такое веса и что такое загадочное некст токен предикшн.
13: Дальше изучим то, как лмки обычно обучаются, и сделаем из этого выводы, с чем они справляются. Хорошо, а с чем не очень. И в конце нас ждёт практика. Мы посмотрим, как использовать ллм можно у себя в ноутбуке, а затем построим простейшего агента. Итак, давайте начинать с погружения в агент.
14: Для начала рассмотрим вообще, где агенты применяются сейчас. На самом деле практически везде. Во первых, это персональные ассистенты и инструменты для работы со знаниями, то есть системы, которые нам помогают искать информацию, автоматизировать задачи и поддерживать принятие сложны
15: Решений. Во вторых, это агенты исполнители, которые уже могут не просто отвечать, но и выполнять за вас какие-то действия в браузерах, например, там заполнять формочки, выполнять цепочки действий в интерфейсах и отдельный класс. Здесь это инструменты для написания кода, которые помогают
16: Буквально за вас разрабатывать какие-то приложения. Также агенты активно применяются в бизнес процессах, в поддержке клиентов и автоматизации операционных задач. И это сейчас действительно очень развивающаяся отрасль. Например, недавно у CEO маккинзи спросил,
17: Сколько у вас работает сотрудников? И он сказал, что больше 60000, причём из них там около 40000. Это люди и около 25000. Это и ассистенты. Интересно, что и агентов он уже рассматривает как полноценных сотрудников, и, наконец, агенты применяются в интерактивных среда.
18: Например, в видеоиграх энписи персонажей уже пробуют делать с помощью агентов, чтобы они подстраивались под поведение в реальном времени.
19: И чтобы понять, как мы пришли в эту точку, где агенты уже умеют так много, полезно сделать шаг назад и посмотреть, как в целом развивалось наше взаимодействие с лэмками. Это поможет нам сформировать интуицию о том, что такое современный агент. В таблице показаны основные паттерны от самых простых.
20: Более сложным и то, какие новые возможности появлялись на каждом этапе, начиналось все с простого промти га, когда мы могли просто в модель занести какой-то текст и ждать от неё ответа, и выхлоп модели никак не влиял на дальнейший ход исполнения программы на следующем шаге у нас появился роутинг.
21: Когда ллм начинает участвовать в принятии решения, например, она может выбрать, какую из заранее заданных ветвей выбрать в исполнении тут уже поведение нашего ассистента становится частично детерминированным, потому что моделька может выбрать 1 из 2 возможных путей на след.
22: Этапе появился тул коллинг, когда ллм уже могла выбрать не только путь, но и конкретную функцию, которую нужно вызвать, и в том числе аргумент, с которым её нужно вызвать. Это позволило нам связывать модель с внешними апи сервисами и инструментами на следующем шаг.
23: Мы уже получаем многошагового агента, когда он выбирает не просто отдельную функцию её аргументы, а может планировать свои действия, выполнять их в цепочке, рефлексировать и так далее. И, наконец, вершина эволюции, когда мы пришли уже к мультиагентным системам, когда
24: Несколько агентных процессов смогли координироваться между собой, совещаться, тоже раскидывать задачки друг на друга и так далее. Если посмотреть на эту эволюцию целиком, то видно, что на каждом этапе модель получает все больше контроля над процессом от генерации текста к принятию реше.
25: И затем уже к планированию и координации. И именно это постепенное увеличение автономности и приводит нас к современному понятию агента, но прежде чем его дать, хочется сделать оговорку, что на самом деле индустрия там новая и какого-то чёткого единого определения нет.
26: В индустрии и исследованиях крупных компаний есть несколько же разных формулировок, и они заметно отличаются, и вот, например, даже внутри open eye нет единой канонической версии так, например, в презентации open i. Agents s дикей агент определяется как i приложение, которое
27: Состоит из модели инструкций, инструментов и среды выполнения, то есть рантайма, который управляет жизненным циклом агента одновременно с этим другое популярное определение предложила Лилия венг, это вице президент по исследованиям и безопасности open eye в своём посте.
28: Agents. Она определяет агента как комбинацию ллм памяти, навыков, навыков планирования и использования инструментов, и если сравнить эти 2 определения, то можно заметить, что каждый, каждое из них делает акцент на разных аспектах да.
29: В обоих есть упоминание моделей инструментов, но в 1 ничего не сказано про планирование и память, а во 2 про промты и планирование и фокус на ллм, как на мозгах агента. Хотя на самом деле там могут использоваться и другие модельки. В этом курсе мы будем использовать наиболее общее рабочее определ.
30: Которое объединяет все эти компоненты. Итак, мы будем считать, что агент это рантайм, система, внутри которой у нас есть модель, промты, инструменты, память, механизмы защиты и механизмы планирования. Конечно, все эти кусочки
31: Могут быть опциональные и начинать стоит с простенького агента, который может состоять просто из модели, например, и инструментов. В этой лекции я только верхнеуровнево расскажу, зачем нужны каждый из этих компонентов, а в ходе курса мы уже будем подробно погружаться в каждый из них. Итак, в центре
32: У нас находится аяй модель. Это можно сказать, что мозг агента, но сама по себе модель может только генерировать текст и отвечать на какие-то вопросы. Поэтому, собственно, нужны все эти обвязки вокруг неё. Следующий слой это промты. Сюда входят системный промт, это какие-то глобальные инструкции.
33: Которые задают роль агента, его цели, ограничения, стиль, как он должен принимать какие-то решения. Дальше сообщение пользователя. Это буквально текущая задача, которую должен выполнить ассистент. И, в третьих, это сообщение самого ассистента. Это могут быть ег.
34: Предыдущие ответы, результаты вызова Тулов и так далее. Слева у нас находятся инструменты. Это какие-то внешние функции и апишки, которые позволяют агенту взаимодействовать с внешней средой, искать информацию, работать с календарём и многое другое. Наверху находится память
35: И, как правило, у агента есть 3 вида памяти. Это краткосрочная, например, текущий диалог или промежуточные результаты его действий. Долгосрочная память. Здесь уже может храниться информация между сессиями знания пользователя, какие-то исторические, выполненные за
36: Задачи знания по предметную область и так далее. И, наконец, контекстная память это информация, которая необходима агенту конкретно. В данный момент она может собираться из различных кусочков дальше отдельным облачком здесь вынесены гардрейл, они в облачке, потому что на самом деле они пронизываю
37: Каждый компонент системы это различные инструменты, которые нам позволяют защитить агента от prompt, инжекшен и других попыток взлома и сделать его поведение более детерминированным, и, наконец, справа у нас находятся инструменты планирования.
38: Они позволяют агенту не просто реагировать на запрос, а строить последовательность действий и исполнять их и все это объединяется в потрясающий серый квадратик в runtime, который управляет жизненным циклом агента, когда нужно вызвать модель, когда нужно вызвать инструменты и так далее.
39: И вот, глядя на картинку на предыдущем слайде, возникает ощущение, что нам это что-то напоминает, и этот момент классно подметил Андрей карпатый, сооснователь опен ай в своём видео интродакшн тулач ленгвич мотелс, он предлагает думать об ллм не как о чат боте, а как о новой.
40: Версия операционной системы в этой аналогии сама ллм это ядро операционной системы, она оркестрирует инструменты, память, внешние ресурсы и процессы для решения задачи. Внешние базы знаний это аналог диска. То есть модель может доставать оттуда информацию через ретривел или браузинг, когда ей это не
41: Необходимо контекстное окно модели в данном случае можно сравнить с оперативной памятью. То есть это какая-то ограниченная рабочая область, где модель думает и она постоянно решает, какую информацию туда стоит подгрузить, а какую уже можно выбросить. И, наконец, инструменты и специализированные модели.
42: Это как приложение и ллм вызывает их по необходимости и это на самом деле работает даже там на уровне экосистемы, то есть у нас есть какие-то закрытые пропитанные модели как windows и macos и есть быстрорастущая опенсорс экосистема, аналог линукс, наконец.
43: Мы готовы погрузиться в основную часть агента в его мозг, который в большинстве случаев представляется ллм. Ой, мы сегодня коснёмся только того, что нам пригодится для разработки агентов, а более подробно вы можете углубиться в мир gpt.
44: И других на интенсиве gpt вик ссылочка здесь, внизу с точки зрения агентов ллм, это наиболее распространённый мозг агента. Формальное определение ллм может быть записано так это нейросетевая модель, обученная на больших корпусах текстовых данных.
45: Которая применяется для предсказания следующего токена в контексте предыдущих. Определение длинное, сложное. Мы его сейчас обязательно подробно разберём, но сначала давайте опустимся там на уровень физический. И с этой точки зрения, ллм, это на самом деле 2 файла, 1 файл.
46: Это файл параметров, это огромный файл с весами нейросетки в современных моделях, это десятки и сотни гигабайт, a2 файл это код выполнения относительно небольшой набор программного кода, который описывает архитектуру сети и принцип её инференса. И когда мы запускаем
47: Модель. На самом деле, этот код просто применяет математические операции к входным данным и весам, чтобы предсказать следующий токен на основе поданных на вход. То есть физически лм, это никакой не интеллект, не понимание, просто огромная таблица с весами и код, который умеет правильно их применят.
48: Давайте погружаться в определение ллм и начнём с 1 части что такое там нейросетевая модель, обученная на больших корпусах текстовых данных веса модели. Это, по сути, сжатое представление всех обучающих данных, которые были ей переданы.
49: Чем больше параметров у модели, тем проще на самом деле это все сжать, ну вплоть до того, что оставить представление как есть, но тем сложнее будет модель инферить с той точки зрения, что, во первых, нужно будет уметь хранить этот огромный файл с весами, а во вторых, придётся ждать, когда посчитаются все эти математически.
50: Операции, поэтому задача при обучении это подобрать такую архитектуру, такой набор обучающих данных и так провести обучение, чтобы в как можно меньшем количестве параметров закодировать как можно большие знания о мире. Теперь перейдём ко 2 части определения, что такое там
51: Next токен предикшн для простоты начнём сначала с next word prediction, то есть представим, что модели на вход поступает предложение кэт сет он э, и нам нужно предсказать, какое слово будет дальше в данном случае мы там предсказываем, что 97% вероятност.
52: Что это слово будет, мэтт? И задача во время обучения подобрать веса модели так, чтобы если они провзаимодействовали с входными токенами, то на выходе мы ожидали там действительно наиболее вероятные следующее слово.
53: Откуда в этом всем берутся токены, веса, модели это числа, и чтобы мы могли как-то обработать входные наши данные, их тоже нужно представить в виде чисел давайте подумаем, как вот можно закодировать, например, предложение i was reading н. Интерестин.
54: Book и Нью-Йорк, там 1 очевидное решение. Давайте закодируем их буквально посимвольно, то есть каждую букву назначим ей отдельную цифру и попытаемся так переписать предложение. Ну да, получилось, но здесь есть много проблем. Во первых последовательность получается очень длинно.
55: И из за это будет нам замедлять и обучение модели, и потом её инференс. Во вторых, модель видит только отдельные символы и никак не улавливает саму структуру слов. То есть такое кодирование, оно как бы бессмысленно с точки зрения языка. И да, нам становится сложнее захватывать смысл на уровне слов или даже целых фраз.
56: Тогда следующий там наивный подход. Давайте закодируем. По словам каждое отдельное слово мы берём, назначаем ему новую цифру, кодируем. Так, да, последовательность стала вроде как короче, но здесь у нас возникают новые проблемы. Во первых, у нас языки содержат сотни слов в английском.
57: Это 600000, и тогда у нас словарь сам по себе будет огромным и хранить его вместе с весами модели. Это очень тяжело. Во вторых, у нас будут появляться какие-то новые слова или редко встречающиеся, и под них нужно будет подбирать какое-то новое число, которое модель ещ.
58: Не видела в обучении, и у нас все ещё нет связи между, например, однокорёнными словами если нам в следующем предложении придёт слово ret, мы ему назначим цифру 10, и нам ничего не скажет, что цифры 3 и 10 как-то связаны, хотя у них на самом деле одинаковый корень и здесь.
59: Приходит компромиссное решение. То есть у нас была проблема в том, что буквы это слишком маленькие единицы языка, слова слишком большие. Вот пришло решение в виде токенизации. Токеном называют минимальную единицу текста, с которой работает языковая модель. Он может быть фрагментом 1 слова.
60: Или даже состоять из 2 слов, то есть в данном случае, например, мы слово reading разбили на 2 токена рит и inc. Потому что когда мы в следующий раз встретим слово рид, мы уже поймём, что вот оно как-то было связано с тем, что мы видели до этого, а например слово Нью-Йорк, точнее токен Нью-Йорк.
61: Состоит из 2 слов Ровно потому, что оно часто встречается именно в такой комбинации, и это можно выделять как отдельную сущность. И таким образом у нас уменьшается размер словаря. Это уже не сотни тысяч слов. Модель лучше умеет обобщать и находить взаимосвязи между различными токенами.
62: На самом деле существуют, помимо обычных токенов, ещё служебные или специальные токены. Это какие-то зарезервированные токены в исковых моделях, которые выполняют заранее заданные функции. Они не соответствуют обычному тексту, а используются именно для управления поведением модели. Да, у
63: Каждых моделей, они разные, но их можно поделить на некоторые классы. Мы сегодня рассмотрим только те, которые нам важны. С точки зрения агентов. У нас есть, например, токены окончания генерации авторегрессионных моделях. Это еос токены. Как правило, они буквально говорят, что все предложение доп.
64: Это можно отдавать пользователю. Дальше. Есть специальные токены, которые обозначают Роли пользователь, ассистент или системный промт. Это нам позволяет сделать так, что model видит множество таких токенов, после которых следуют непосредственно промты во время своего обучении.
65: И потом, на инференсе, когда мы применяем это в реальных системах, у неё меньше шансов закалютин ровать, и она лучше следует как бы этой структуре. И, наконец, у нас есть управляющие токены или модификаторы промта, например, транслейт самурайс или перепиши там в формальном стиле.
66: Они вот появляются Ровно из того, что очень часто у ассистентов просят там просто переведи мне вот этот кусочек текста или суммаризировать же, если модель это много раз видела именно с таким фиксированным токеном во время обучения, то и потом при реальном использовании в жизни она справится с этой задачкой получше.
67: И теперь мы готовы вернуться к тому самому next токен, предикшн, так мы теперь знаем, что такое токены, и то есть на самом деле наша модель предсказывает следующий токен в контексте всех поданных ей на вход, при этом говорят, что модель является авторегрессионной, то есть
68: Выход модели с 1 этапа является входом для другого, чтобы мы не заканчивали просто генерацию на 1 токене, а завершали предложение до конца, пока модель не сгенерирует как раз эндо сиквенс токен. И здесь нам полезно понять, что такое контекстное окно.
69: Это вот как раз длина, которая исчисляется в токенах того, что модель может в моменте учитывать и когда лимит достигается, более старые данные, которые были в этом промке, или откидываются, или суммаризировать меньше места и так далее. Но что происходит внутри?
70: Каждого отдельного шага генерации у нас после токенизации входного текста модель вычисляет представление последовательности, которая содержит информацию о значении и позиции каждого токена во входе. Затем это представление подаётся в модель, которая выдаёт оценки в виде логитов.
71: Которые отражают вероятность каждого токена и словаря быть следующим в последовательности. И здесь используются параметры температуры, который управляет степенью случайности вывода. Низкая температура делает распределение вероятностей более острым, и модель чаще выбирает наиболее
72: Вероятные токены, и текст получается более предсказуемым и строгим, а более высокая температура сглаживает это распределение, и у нас больше шансов выбрать какой-то токен, может быть, не самый вероятный, но 1 из и на основе этих оценок, которые мы выдали на предыдущем этапе.
73: Существует несколько стратегий выбора следующего токена для продолжения текста самая простая стратегия это буквально выбирать токен с максимальной оценкой есть более стахастический методы, например, top ка семплинг, когда у нас выбирается случайный токен из-ка наиболее вероятных.
74: И существуют более продвинутые методы декодирования. Это, например, бимсерч, который рассматривает сразу несколько возможных вариантов продолжения и до какого-то этапа пытается сгенерировать все их и потом уже оценивает вероятность целой последовательности токенов. И давайте теперь поговорим про то,
75: Как обучается ллм. В общем случае, это можно разделить на 3 шага. 1 шаг это претрейнинг. На этом шаге в нейросеть загружают просто большие массивы данных о мире. И мы показываем модели текста отовсюду, откуда только можем. И главная её задача на этом этапе научиться пред
76: Показывать буквально. Вот следующий токен. Следующий этап это фантюнинг, это метод адаптации готовой языковой модели к специфическим задачам компании или, возможно, какой-то новой предметной области. Модель учится уже на примерах. Запрос ответ и лучше подстраивается именно под
77: То, как нужно на них отвечать. И, наконец, 3 этап это реинфорсмент. Лернинг, например, на прошлом шаге мы научились не просто предсказывать следующий токен, но и отвечать на запросы, но на самом деле людям не всегда нужны какие-то точные ответы или не всегда в такой формулировке и при этом
78: Вопросов очень много, и у нас просто не хватит времени и денег, чтобы насобирать эти обучающие корпуса. Поэтому на этом этапе мы буквально пробуем обучить модельку на фидбеке или от живых людей, или обучив другую языковую модель, которая
79: Будет оценивать, как наша лм справляется с какими-то конкретными ответами, и мы будем обучаться тогда на фидбэк от вот этой реворд модели. Итак, давайте подсоберём, что хочется унести из этого рассказа. 1, что модельки у нас работают с токенами. То есть они не знают, что такое слова, предложения или смысл.
80: Напрямую они работают только с последовательностями токенов и пытаются предсказать наиболее вероятные из них, почему это важно на практике. Во первых, нам это пригодится при расчёте биллингов за использование модели и при проектировании контекстных окон, потому что их длина как раз вычис.
81: В количестве токенов, а не символов или слов. Во вторых, это важно для понимания того, насколько важно соблюдать правильную структуру промта и передавать моделям контекст именно так, как они его ожидают, потому что если они в обучающей выборке 1000000 ра,
82: Видели, что после слова систем идёт систем промт, а мы его пытаемся записать просто так, где-то сбоку то не стоит удивляться тому, что моделька будет плохо реагировать. 2, что мы обсудили, это специфику обучения, что модели обучаются на каких-то больших объёмах.
83: Данных предсказывать следующий токен. Мы из этого знаем, за что отвечает такой параметр, как температура, и теперь можно понять, откуда возникают галлюцинации. Галлюцинациями называют уверенную генерацию правдоподобной, но неверной.
84: Вымышленной информации, они как раз возникают, потому что это статистические модели, она не проверяет факты, она просто в голове себе представляет, какой следующий токен наиболее вероятный и уверенно генерирует дальше последовательность токенов. Поэтому здесь очень важный пункт, который специа,
85: Выделен жирным. Давайте автоматизировать все, что автоматизируется и изировать только то, что не автоматизируется например, в системном рамте писать, что если какая-то функция вернула тру, то мы делаем а, а если она вернула false, то мы делаем б.
86: Это попытка нарваться на лишние галлюцинации, ну и плюс потратить деньги на лишние инференс модели. Хотя это можно было написать просто программным кодом. И дальше в контексте того, как у нас обучаются модельки, можно сделать выводы, с какими задачками они справляются хорошо, а с какими не очень
87: Сначала давайте рассмотрим сильные стороны. Это, во первых, задачи с высокой статистической структурой, разные перефразирование, резюмирование, генерация связанного текста или кода, потому что это все это задачи на предсказание вероятных последовательностей слов, на которых модели, как
88: Как раз обучались, во вторых, модельки хорошо умеют обрабатывать и генерировать стандартные для них структуры это какие-то рассуждения, такие как chain of thoughts, которые мы рассмотрим в следующих занятиях вызовы Тулов и обработка каких-то стандартных файлов и таблиц.
89: Но с чем модели справляются плохо. Во первых, это точные алгоритмические, символьные задачи. Например, там подсчёт букв цифр спрашивает, сколько букв, а в слове банана вот это в моделях не нужно, потому что они учились предсказывать следующий
90: Токен, а не смотреть там на предыдущий и буквально уметь что-то считать. 2 ограничение это актуальные знания. Если вы спросите у модели, там новости, за вчера, скорее всего, она не сможет ответить, если у неё нет никаких дополнительных инструментов, потому чт
91: Её обучение было где-то год назад или там полгода назад, и все заложенные в неё базовые знания, они ограничены как раз этим периодом. 3, в чем модельки не очень хорошо справляются без дополнений к ним, это долгосрочное планирование и память.
92: То есть запланировать последовательность там на 30 Шагов, нигде при этом не сохраняя её и не продумывая, по несколько раз даётся им довольно тяжело, но здесь небольшие спойлеры. Большинство из этих ограничений можно как раз решать с помощью Кубиков, которые мы дальш,
93: И рассмотрим. И теперь мы готовы перейти к практике, где мы уже сможем на реальных кейсах посмотреть как раз ограничения лмок и их сильные стороны. В этом ноутбуке хочется показать, как можно использовать лмки. Мы рассмотрим как локальный инференс и на цпу, и на
94: Gpu так и инференс через внешние апишки и также на примерах рассмотрим те ключевые выводы про лм, которые мы с вами сделали в лекции сначала мы настраиваем среду на самом деле google колаб может работать и с цпу иис.
95: Я покажу оба варианта чтобы вам включить гпушку, нужно перейти в runtime и поменять рантайм тайп на гпушный, здесь мы устанавливаем нужные нам библиотеки и вот для того, чтобы установить библиотеку с поддержкой gpu если она вам.
96: Доступно. Мы здесь добавим следующие флаги.
97: Переходим к 1 пункту как можно использовать лмки во первых их можно инферить локально когда вы буквально скачиваете модель с открытыми весами и инферить её на своём ноутбуке как на цпу так и на gpu и во вторых можно ходить во внешние api и.
98: Понятно, что везде есть какие-то плюсы и минусы. При локальном инференсе вы получаете там полную приватность данных, данные никуда не улетают, полностью, у вас логгируются и так далее. Но при этом приходится хостить модельки у себя, что иногда бывает дорого по железу и непосредственно по тех
99: Когда мы ходим через апишки, мы получаем доступ к огромным моделям, потому что они расположены на больших вычислительных кластерах, но при этом тогда нам необходимо платить за каждый отправленный туда токен и полученный с сервера. Ну и плюс мы теряем
100: Приватность данных, потому что они уже могут куда-то утекать. Начнём с локального инференса и с цпушки. Сначала вынесем какие-то общие параметры, которые мы будем использовать внутри всего ноутбука и напишем какой-то системный промт. Здесь я просто говорю, что та
101: Ты мой персональный ассистент, и, пожалуйста, всегда обращайся ко мне, Алёна, и прошу выдать там 3 идеи, где агенты могут быть полезны. И вот здесь мы продемонстрируем, почему важны те самые специальные токены и почему важно подавать в модель данные именно так, как она ожида.
102: То есть здесь я формирую плейн промт, где буквально пытаюсь сказать, что смотри, вот этот кусочек, это системный промт, вот этот кусочек, мой промт. И дальше мы ждём от тебя ассистентский выхлоп, а здесь запишем в том формате, в котором принято передавать в эту конкретную модель в формате
103: Messages, где роль отдельно выделена и она потом перекодируется. Итак, здесь мы скачиваем маленькую маленькую модельку с Хагин фейса и распечатываем, что все загрузилось успешно. И дальше пишем обёртку над этой модель.
104: Здесь мы проставляем флаг про энглу леерс 0. Что нам говорит о том, пожалуйста, инфери. Эту модельку. Только на цпу подгрузили её на цпу. И теперь давайте попробуем заинтерисов ая обёртка над ней, которая буквально передаёт сообщение, которое мы хотим ей передать.
105: И получаем из неё выхлоп. Напоминаю, что я там просила дать 3 идеи, где агенты могут быть полезны. И в 1 случае я её спрашивала с помощью плейн промта.
106: Где я буквально говорил, системный промт, это мой промт и что-нибудь ответь. И что мы видим, что вот моделька начала отвечать и потом решила догаллюцинировался. Дальше юзер спросил что-то ещё и попросил ассистентский выхлоп, и он что-то ещё по
107: Отвечал и что-то ещё и так далее. То есть зациклилась. Поэтому, пожалуйста, обращайте внимание на то, как конкретная модель ожидает данных, которые будут подаваться ей на вход, потому что вот, например, если мы передаём так как она ожидает, то она буквально отвечает то, что мы хотим.
108: Там 3 области, в которых агент может быть полезен. Ну и дальше просто потому, что модельки любят генерировать много текста, она предлагает ещё более конкретные примеры, но это уже лучше, чем было в предыдущий раз. Но, как мы видим, на цпу мы можем
109: Только супер супер лёгкие модельки. И вот эта, например, она даже забыла, что я её просила вообще то обращаться ко мне. Привет, Алёна. Теперь давайте перейдём к гпушке. Здесь мы уже скачиваем модельку побольше и проставляем параметры в обёртке над лмкой нгпу. Лес - 1. Здесь мы
110: Просим заиспользовать все слои, которые только можешь, перенеси их на gpu и теперь спрашиваем Ровно те же самые промты у гпушной модели и здесь она вот уже вспомнила, как надо ко мне обращаться, и там из за того, что она уже потяжелее и посильнее смогла ответить в обоих случаях, что?
111: То нужно, но здесь смотрим, что она решила продолжить ещё дальше. Hello, Алёна, сказать теперь давайте перейдём к инференс через внешние апишки. В данном случае я буду показывать, как мы инфери опен иное апи, но можно там поизучать, как использовать и другие.
112: И внешние фишки в других занятиях во первых, нам нужно будет здесь сгенерировать ключ, который мы будем использовать для авторизации в openai и по которому будет билиться наши запросы, запросы и ответы, которые мы будем получать и дальше здесь слева нужно выбрать секрет.
113: Чтобы сложить туда этот ключ и дальше внутри файла, вы его можете потянуть уже вот так или там, если вам не нужно демонстрировать экран, вы не рискуете спалить этот токен, можете его подложить буквально сюда. Дальше мы, собственно, загружаем нужную нам библиотеку опен.
114: Объявляем модельку, которую мы будем использовать в данном случае. Там gpt 5 нано, но можете использовать и более какие-то дешёвые и собственно обёртка над лмкой. Здесь мы просто входим в самого клиента с нашими параметрами, говорим вот такую модель будем использовать. И вот тебе сообщени
115: На вход, на который мы ждём ответа. И вот я передаю тот же самый месседжи, спром потрясающе нам. Моделька ответила из hello, Алёна, и перечислила 3 пункта, где ленки могут быть полезны, и дальше никуда не ушла. Теперь давайте перейдём ко 2 части, где мы посмотрим на
116: Те самые кей тейк Вейс, которые мы рассмотрели в лекции, с чем и хорошо справляются, с чем не очень и что для них специфично. Во первых, как мы говорили, модельки умеют галлюцинировать, то есть уверенно генерировать ненастоящую информацию тоже такая мини обёртка, которая будет прост.
117: Красиво выхлоп делать, и теперь давайте посмотрим, что я пытаюсь у неё спросить, я говорю, что там ты, мой ассистент по питону, расскажи мне, пожалуйста, вот в open eye сдк, как использовать вот этот конкретный метод, спрашиваю, и она мне начинает очень уверенно отвечат.
118: А как его найти вообще, как его использовать, как его установить, как его использовать в коде, какие там могут быть ограничения? Здесь есть 1 глобальная проблема, что этого метода на самом деле вообще не существует. То есть это буквально галлюцинация модели, где она пошла писать код. Вроде как он очень похож на
119: Правду, и она его продолжает там дописывать. С этим можно бороться. И там самый простой способ попросить в промте там, если ты не уверена, пожалуйста, не отвечай, что я, собственно, вот здесь вот и делаю там, если ты не знаешь, просто скажи, что не надо меня об этом спрашивать, ничего не
120: И теперь спрашиваю Ровно тот же самый вопрос. И, к счастью, она говорит, да что я там вообще не знаю про такой метод. Отстаньте от меня. Теперь давайте перейдём к сильным сторонам. Лмок, как мы говорили, их 1 там сильная сторона. Это что, они хорошо справляются с задачкам.
121: На суммаризация и перефразирование. Здесь я её прошу, там у меня был какой-то текст, говорю, там суммаризировать, чтобы было по более там расписано, вот потрясающе справляется дальше генерация каких-то стандартных структур, потому что, опять же их много раз видела в обучающей выборке здесь
122: Прошу сгенерировать мне структурированный выхлоп в виде json объекта, и да, он действительно корректный, там с какими-то сильными и слабыми сторонами лмок, и, наконец, давайте рассмотрим то, с чем лмки справляются не очень хорошо, как мы говорили, там подсчёт Сим.
123: Например, здесь я формирую строку из там заранее заданного числа символов и прошу буквально посчитать их. И там сравниваю с каким-то идеальным результатом, который просто вычислить там через длину строки можно, и, как мы видим, модель не смогла в предыдущих шагах, там и какой-то метод.
124: Думать и что-то по суммаризировать. И даже там запомнила, что ко мне надо обращаться, Алёна, но с такой, казалось бы, простой задачей, как подсчёт символов в строке, она не справилась. Дальше какая-то точная арифметика. Здесь тоже не самое сложное выражение, 2 перемножения и потом какое-то деление прошу
125: Её посчитать. Результат, с чем она опять же, не справляется. Ну, там, эвалим настоящее выражение с помощью встроенной функции. И 3, это знания, которые там случились за последние пару дней или буквально там, в последние секунды. Здесь я пытаюсь
126: Сообщить, что у тебя там нету доступа в интернет. И расскажи мне, какая там цена биткоина прямо сейчас и моделька. В данном случае я её попросила не галлюцинировать, и поэтому она честно признается, что она не знает, но если мы будем уже подключать какие-то инструменты, которые ей
127: Позволят входить в какие-то внешние базы знаний или там в интернет, то она бы это уже смогла сделать. И, наконец, модель плохо справляется с задачками цитирования. Например, здесь я её прошу выдать чётко 1 параграф гарри поттера, но при этом прошу там
128: Опять же, не галлюцинировать без этого в данном случае она справляется плохо. То есть в 1 пункте она мне ответила, что, извините, там не могу точно пересказать его, но могу там посоналии что-то или вспомнить, но во 2 случае я ей говорю, что вот книга начинает
129: Вот так и уже прошу из этой книги что-то процитировать. То есть то, что у неё реально есть в доступе. И с этой задачей она справляется уже идеально. То есть так мы смогли на практике проверить то, что утверждалось в лекции, с чем модельки справляются хорошо, с чем не очень и какие у них особенности. Итак,
130: Давайте перейдём ко 2 части нашей практики, где мы уже наконец построим нашего 1 агента, который будет использовать только лмку. И здесь я сначала расскажу, собственно, про агента, которого мы будем строить на самом деле, сквозь весь курс. Для этого мы рассмотрим, что такое там тау бэнч и
131: Смотрим конкретного задачу на построение агента и затем уже непосредственно перейдём к его разработке и посмотрим на то, что может сделать агент, если у него есть только ллм и больше ничего. Итак, давайте сначала разберёмся, что такое тау бэнч у нас
132: Появляется много агентов за последние годы. Естественно, их всех нужно как-то оценивать. Многие изобретают какие-то отходные подходы, где просто пытаются его протыкать руками и там на глаз понять, насколько он хорошо работает. Ну понятно, что это никак не масштабируемое решение, поэтому стали создавать разны.
133: Бенчмарки, которые нам позволят в том числе оценить, как разные лмки справляются в агентских сценариях, и вот как раз 1 из таких бенчмарков является тау 2 бенчмарк он вышел там в 2 версиях здесь есть и ссылки на статьи, и ссылки на их реализации в guitar.
134: Можете почитать подробнее, если интересно, но если коротко, то в тауне оценка агентов происходит так, что есть какие-то конкретные сценарии, где описывается там, что случилось у пользователей, что он пытается добиться от агента, описывается ожидаемая
135: Поведение агента, какие он инструменты должен выдать и как ответить пользователю или вообще никак не отвечать на такой запрос и так далее. И вот потом вышло ещё обновление тау 2 бэнч, где можно эмулировать не только поведение самого агента, как он будет отвечать на конкретный
136: Вопрос с конкретной под капотом, но и поведение пользователя, то есть чтобы они могли общаться между собой. Итак, здесь мы скачиваем собственно репозиторий с тао 2 бчо, можем перейти в директорию и установить там необходимые зависимости, опять же, как в прошлый раз.
137: Ключик для модели, которую мы будем использовать под капотом. В моём случае это open айная модель и подгружаем его в переменные среды. Также вы можете вызвать команду, которая позволит вам запустить симуляцию. И здесь вы сможете поработать в разных доменах и
138: От лица пользователя и от лица агента. То есть вы будете получать конкретное задание, что ты должен заставить его отменить твоё бронирование и играть роль пользователя. Давайте посмотрим на задачку, которую мы будем решать. Там есть несколько доменов, мы с вами займёмся.
139: Агентом бронирований или эйрлайн, агентом, то есть агент, который отвечает там за полёты, бронирование и так далее. В самом задании мы сейчас посмотрим конкретно его политики и что он должен делать, а что не должен для этого мы переходим там, в внутри этого
140: Папочку с нужным доменом и достаём вот его политику. И здесь написан, собственно, можно сказать, системный промт нашего агента. То есть в целом, какое сейчас число, ну, для него, чтобы он понимал, и там какой у него тонофвойс, что такое пользователь, что
141: Такое Перелёт, как мы работаем с бронированиями, как мы работаем там с изменением этих бронирований, их отменой, где нужно подтверждать у пользователя, а где нет. И можем посмотреть с вами на пример заданий, которые лежат внутри этого benchmark. Вот вы
142: Выберем там самый 1. Здесь, как мы видим, несколько блоков, то есть вот описан пользовательский сценарий. Здесь написано, что ты пытаешься сделать с агентом следующие задачки и вызвал его вообще по такой-то причине. Мы знаем про тебя. Как тебя зовут?
143: И там твой user id, который там, видимо, ты будешь сообщать агенту, чтобы он мог дальше найти твои бронирования. И также есть описание самой задачки в целом, что она конкретно проверяет и как мы её будем оценивать? Что значит, что агент справился хорошо, какие инструменты он должен вызвать, а каки
144: И нет. И можно там посмотреть на конкретные задачки, которые мы могли бы задавать нашему агенту. Например, там ты хочешь отменить какое-то конкретное бронирование и добавлена специфика, с которой агенту предстоит справиться там, или ты
145: Разговаривал с саппортом, и тебе сказали, что агент сможет помочь отменить твоё бронирование. То есть какая-то может быть немного другая задачка и таких бенчмарков, на которых они будут замеряться. Их очень много в данном репозитории, и
146: Как мы будем работать над этим агентом? Мы буквально его соберём по кусочкам. То есть мы с вами в лекции рассмотрели, из чего состоит в целом наш агент. Сегодня попробуем реализовать только то, что касается ллно части, а в последующих занятиях будем добавлять инструменты, память, гардрейл и потом все это, собственно,
147: Пробуем оценить. Итак, сегодня начинаем разработку с самого простого агента. Я немного сократила системный прод, потому что большинство из того, что написано прямо сейчас в нём, то, что мы просматривали выше, нашему агенту не нужно, потому что он ни с базой данных не сможет поработат.
148: Не сходить какие-то внешние афишки здесь. Я просто говорю, там ты, ассистент, не галлюцинирую, пожалуйста, ничего лишнего не дёргай. Можешь просто отвечать на мои вопросы. Разрабатывать нашего агента. Мы будем в экосистеме, лэнг, что нам понадобится сегодня? Это 2 части.
149: Chained и Ланграф ланчен это, собственно, 1 фреймворк в данной экосистеме для разработки агентов он капсулирует в себе разные обёртки над промтами, цепочками исполнения, инструментами, агентами, памятью и так далее.
150: Ланграф это его расширение, которое нам позволяет реализовывать агентов, у которых состояние будет постепенно изменяться, проходя через различные узлы нашего графа. Также в этой системе есть ещё length флоу, это
151: Инструмент, который позволяет визуально собирать агентов даже без кода и lange smith, это инструмент, который позволяет дебажить и отлаживать наших агентов и многое другое устанавливаем нужные библиотеки и переходим собственно к написанию агентов сна.
152: Сначала сделаем обёртку над лмкой. Тоже здесь импортируем нужный нам класс чат опен аай, который как раз является обёрткой для open айных моделей. То есть он знает, в каком формате нужно передавать разные промты и как парсить их выхлопы дальше.
153: Импортируем обёртки над сообщениями. Это системное сообщение, сообщение пользователя, сообщение ассистента. Ну и собственно базовое сообщение, от которого они все наследуются. Теперь давайте чуть углубимся в то, как работает Ланграф. То есть вместо самого обычного пайплайна там, где
154: У нас просто от пользователя прилетел запрос, мы его бросили в лм, получили выхлоп и отдали обратно пользователю. Здесь вводится несколько абстракций. Мы создаём агента как некоторый граф, в котором состояние будет перетекать между узлами графа. Что это даёт так?
155: Разрабатывать продакш новых агентов на самом деле намного проще, потому что у тебя есть какие-то абстрактные объекты, про которые ты знаешь, в какой момент, что и как именно должно было поменяться и при переходе из какого состояния, в какое мы ожидаем выполнения следующих действий. Итак, нам нужно определить состояние.
156: Которые у нас будет перетекать между вершинами графа. Собственно, это мы и делаем в данном случае в состоянии. Мы хотим хранить пока только сообщения, которыми обменивался пользователь и ассистент. Теперь обсудим узлы, через которые это состояние должно перетекать узел в данном случае.
157: Должен получить текущее состояние агента, потом выполнить нужные ему операции и отдать собственно изменённое состояние. В нашем случае мы объявляем мный узел, который берет текущее состояние, в котором должно лежать сообщение пользователя.
158: Дальше ходит в лмку и дописывает ответ лмки в состояние агента. И давайте перейдём уже к разработке самого агента. То есть мы формируем его как граф, в котором вершинки это некоторые функции.
159: Ребра определяют транзакции между этими вершинками и передают между ними состояние агента, которое должно меняться. В нашем случае у нас будет самый простой агент, у которого будет просто start, потом мная Нода и конец. Но на самом деле, естественно, дальше мы будем его
160: Подключая инструменты, память и так далее, объявляем наш граф, создаём его с каким-то начальным состоянием, указывая, собственно, какой класс у него будет храниться. Дальше задаём стартовый узел. В нашем случае это мая Нода и она
161: Будет конечной. Дальше мы компилим наш граф в некоторое приложение, которое уже непосредственно можно будет запускать и исполнять. И получаем самый простой графф. Теперь давайте проверим, что у нас получилось. Просто делаем обёртку, которая будет красиво принтить выхлоп модели, и задаём 2 вопроса.
162: С которыми в целом наш ассистент без чего-то дополнительного сможет справиться и с чем он не сможет в данном случае, с чем он сможет справиться? Как мы ожидаем это спросить про политику, где нужны там конкретные подтверждения от пользователя при исполнении.
163: Некоторых действий. И да, агент там может нам порассказывать. 2 тоже попросить объяснить какие-то ограничения по багажу при перелётах тоже потрясающе справился. И задачки, где агент уже не может сработать
164: Например, попросить отменить конкретную резервацию, но не сможет он так сделать просто потому что он может только генерировать какой-то текст. И здесь там вопрос тоже, какую компенсацию конкретный пользователь сможет получить по данному бронированию с перелётом из
165: 1 города в другой. Опять же из за того, что у агента нету никакого доступа, изучить, что это вообще за бронирование. В данном случае он нам ответить не сможет. Но все это мы будем решать в последующих уроках, прикручивая к лмке инструменты, память, инструменты защиты и так далее.
166: На этом мы заканчиваем нашу 1 лекцию, где мы с вами подробно рассмотрели из каких компонентов состоит агент, детально углубились в то, как работают лмки, собрали простейшего агента в следующем занятии, которое стартует совсем скоро мы изучим что такое инструменты и msp и непосредственн.
167: Интегрируем их в нашего агента.