YouTube2Text

Agents Week 2026 | Лекция 1.1 Intro to AI Agents LLM — Transcript

by Яндекс Образование · 7,016 words · 1,226 segments · language ru · Watch on YouTube

Full transcript

  1. 2:36Всем привет. Меня зовут Зайцева Алёна, и
  2. 2:38я руковожу службой AI в Яндекславке. Я
  3. 2:41отвечаю, во-первых, за AI в клиентском
  4. 2:43продукте. Это всё, что видят наши юзеры.
  5. 2:46Например, ассистент лавка AI, с которым
  6. 2:48можно общаться как текстом, так и
  7. 2:49голосом, а генеративный контент в
  8. 2:51карточке товара и многое другое.
  9. 2:54Во-вторых, я отвечаю за AI для
  10. 2:56оптимизации команд и бизнес-процессов.
  11. 2:58Это множество совершенно разноплановых
  12. 3:00внутренних агентов, которые позволяют
  13. 3:02автоматизировать некоторую рутину или
  14. 3:04конкретные задачки, а что в итоге
  15. 3:06приводит к тому, что мы намного быстрее
  16. 3:07прототипируем, разрабатываем, тестируем
  17. 3:10и внедряем различные проекты. И
  18. 3:12в-третьих, я отвечаю за инфраструктуру
  19. 3:14для разработки всех этих агентов. И
  20. 3:16сегодня я рада приветствовать вас на
  21. 3:18старте интенсива по AI агентам. Давайте
  22. 3:21немного расскажу про него. Команда
  23. 3:23спикеров курса включает в себя
  24. 3:25руководителей и инженеров из разных
  25. 3:27кусочков Яндекса. Это Лавка, Алиса и
  26. 3:29умные устройство, поисковой портал и
  27. 3:31cloudд. За последние годы индустрия
  28. 3:33прошла путь от простого промтинга лмок
  29. 3:36до многоагентских систем. И мы прошли
  30. 3:38этот путь вместе с ней. За это время мы
  31. 3:41внедряли разные новые фреймворки,
  32. 3:42протоколы и подходы, отказывались от
  33. 3:45решений, которые не выдерживали проверку
  34. 3:46продакшеном и придумывали собственные
  35. 3:48архитектуры и обменивались опытом друг с
  36. 3:50другом. И этим опытом очень хочется
  37. 3:52поделиться в рамках данного интенсива.
  38. 3:54Сегодня агенты - это уже не просто
  39. 3:56какая-то игрушка из лаборатории. Это то,
  40. 3:58что реальные компании внедряют в
  41. 4:00повседневную рутину. И мы хотим, чтобы
  42. 4:02по итогам курса вы могли не только
  43. 4:03быстро запротипировать своего личного
  44. 4:06ассистента, но и знали, как довести его
  45. 4:08до продакшена и масштабировать. Наш
  46. 4:10интенсив будет состоять из 5 дней и
  47. 4:12завершиться контрольным заданием. А
  48. 4:14чтобы достичь нашей цели, мы в первый
  49. 4:17день рассмотрим
  50. 4:18вообще зачем нужны агенты и из каких
  51. 4:21кусочков они состоят, и дальше подробно
  52. 4:23будем погружаться в каждый отдельный
  53. 4:24блок. Так, сегодня же мы погрузимся в
  54. 4:27мозг агента, это лэмки, и рассмотрим,
  55. 4:30что такое инструменты и MCP. Во второй
  56. 4:34день мы улубимся в два ключевых слоя,
  57. 4:36без которых агент быстро превращается в
  58. 4:38игрушку. Это память Игор Дрейлза, то
  59. 4:40есть некоторые инструменты, которые нам
  60. 4:42позволяют обезопасить агента, чтобы он
  61. 4:45вёл себя более предсказуемо. В третий
  62. 4:47день мы соберём из разобранных кусочков
  63. 4:50общий пайплайн. Мы рассмотрим агентский
  64. 4:52workкflow и рассмотрим, как
  65. 4:54взаимодействуют агенты внутри
  66. 4:55мультиагентной системы. И дополнительно
  67. 4:58коснёмся и мультимодальных систем. В
  68. 5:00четвёртый день поговорим про то, что
  69. 5:02обычно болит больнее всего. как понять,
  70. 5:04что стало лучше, как вообще наш агент
  71. 5:06работает и как не дать ему умереть
  72. 5:09где-то в продакшене, потому что у нас
  73. 5:10поехали данные. То есть поговорим про
  74. 5:12эвал агентов. И наконец пятый день мы
  75. 5:15соберём всё изученное в один большой
  76. 5:18блок. А разберёмся, как вообще нужно
  77. 5:21прототипировать ассистентов и доводить
  78. 5:22их до продакшена. И как, э, какие
  79. 5:25особенности у агентов в продакшене, где
  80. 5:27нам нужны обзервабилити инструменты, как
  81. 5:30следить будем за качеством и как будем
  82. 5:32их масштабировать. Что нас ждёт сегодня?
  83. 5:34А, сначала мы погрузимся в самих
  84. 5:36агентов, рассмотрим, в каких сценариях
  85. 5:38они могут применяться, затем пройдёмся
  86. 5:40по эволюции взаимодействия человека и,
  87. 5:43наконец, дадим формальное определение
  88. 5:45агента. А дальше углубимся в мозг агента
  89. 5:48в лэмке. Дадим формальное определение
  90. 5:50уже lm, разберёмся, что такое веса и что
  91. 5:53такое загадочное next token prediction.
  92. 5:56Дальше изучим то, как лмки обычно
  93. 5:58обучаются, и сделаем из этого выводы, с
  94. 6:00чем они справляются хорошо, а с чем не
  95. 6:01очень. И в конце нас ждёт практика. Мы
  96. 6:03посмотрим, как использовать LM можно у
  97. 6:05себя в ноутбуке, а затем построим
  98. 6:08простейшего агента. Итак, давайте
  99. 6:09начинать с погружения в агентов. Для
  100. 6:12начала рассмотрим вообще, где агенты
  101. 6:15применяются сейчас. На самом деле,
  102. 6:17практически везде. А, во-первых, это
  103. 6:18персональные ассистенты и инструменты
  104. 6:20для работы со знаниями. То есть системы,
  105. 6:22которые нам помогают искать информацию,
  106. 6:24автоматизировать задачи и поддерживать
  107. 6:25принятие сложных решений. Во-вторых, это
  108. 6:28агенты исполнители, которые уже могут не
  109. 6:29просто отвечать, но и выполнять за вас
  110. 6:31какие-то действия в браузерах. Например,
  111. 6:33там заполнять формочки, выполнять
  112. 6:35цепочки действий в интерфейсах. И
  113. 6:37отдельный класс здесь - это инструменты
  114. 6:39для написания кода, а которые помогают
  115. 6:41буквально за вас разрабатывать какие-то
  116. 6:43приложения. Также агенты активно
  117. 6:46применяются в бизнес-процессах, в
  118. 6:48поддержке клиентов, а, и автоматизации
  119. 6:50операционных задач. И это сейчас
  120. 6:52действительно очень развивающаяся
  121. 6:54отрасль. Мм, например, недавно у Сева
  122. 6:56Макинти спросили: "Сколько у вас
  123. 6:57работает сотрудников, и он сказал, что
  124. 6:59больше 60.000. Причём из них там около
  125. 7:0140.000 - это люди, и около 25.000 - это
  126. 7:05и ассистенты. А интересно, что и агентов
  127. 7:07он уже рассматривает как полноценных
  128. 7:08сотрудников". И, наконец, агенты
  129. 7:10применяются и в интерактивных средах.
  130. 7:12Например, в видеоиграх NPC персонажей
  131. 7:14уже пробуют делать с помощью агента,
  132. 7:16чтобы они подстраивались под поведение,
  133. 7:18а, в реальном времени.
  134. 7:21И чтобы понять, как мы пришли в эту
  135. 7:23точку, где агенты уже умеют так много,
  136. 7:25полезно сделать шаг назад и посмотреть,
  137. 7:27как в целом развивалось наше
  138. 7:28взаимодействие с лмками. Это поможет нам
  139. 7:30сформировать интуицию о том, что такое
  140. 7:32современный агент. В таблице показаны
  141. 7:34основные паттерны от самых простых к
  142. 7:36более сложным и то, какие новые
  143. 7:38возможности появлялись на каждом этапе.
  144. 7:40Начиналось всё с простого промтинга,
  145. 7:42когда мы могли просто в модель занести
  146. 7:44какой-то текст и ждать от неё ответа. И
  147. 7:46выхлоп модели никак не влиял на
  148. 7:48дальнейший ход исполнения программы. А
  149. 7:50на следующем шаге у нас появился
  150. 7:51роутинг, когда LLM начинает участвовать
  151. 7:53в принятии решения. А, например, она
  152. 7:55может выбрать, какую из заранее заданных
  153. 7:58ветвей выбрать в исполнении. Тут уже
  154. 8:00поведение нашего ассистента становится
  155. 8:02частично детерминированным, потому что
  156. 8:04моделька может выбрать один из двух
  157. 8:05возможных путей. На следующем этапе
  158. 8:08появился лol коллин, а когда LLM уже
  159. 8:10могла выбрать не только путь, но и
  160. 8:12конкретную функцию, которую нужно
  161. 8:14вызвать, и в том числе аргументы, с
  162. 8:15которыми её нужно вызвать. Это позволило
  163. 8:17нам связывать модель с внешними IP,
  164. 8:19сервисами и инструментами. На следующем
  165. 8:22шаге мы уже получаем многошагового
  166. 8:24агента, когда он выбирает не просто
  167. 8:27отдельную функцию, её аргументы, а может
  168. 8:29планировать свои действия, выполнять их
  169. 8:31в цепочке, рефлексировать и так далее.
  170. 8:34И, наконец, вершина эволюции, когда мы
  171. 8:36пришли уже к мультиагентным системам,
  172. 8:38когда несколько агентных процессов
  173. 8:40смогли координироваться между собой,
  174. 8:42совещаться, а, тоже раскидывать задачки
  175. 8:44друг на друга и так далее. Если
  176. 8:46посмотреть на эту эволюцию целиком, то
  177. 8:48видно, что на каждом этапе модель
  178. 8:49получает всё больше контроля над
  179. 8:51процессом, от генерации текста к
  180. 8:53принятию решений и затем уже к
  181. 8:54планированию и координации. И именно это
  182. 8:57постепенное увеличение автономности и
  183. 8:59приводит нас к современному понятию
  184. 9:01агента. Но прежде чем его дать, хочется
  185. 9:03сделать оговорку, что на самом деле
  186. 9:05индустрия там новая и какого-то чёткого
  187. 9:07единого определения нет. А в индустрии и
  188. 9:10исследованиях крупных компаний есть
  189. 9:12несколько же разных формулировок, и они
  190. 9:14заметно отличаются. И вот, например,
  191. 9:15даже внутри Open AI нет единой
  192. 9:17канонической версии. А так, например, в
  193. 9:20презентации Open AI Agents SDK агент
  194. 9:22определяется как AI приложение, которое
  195. 9:24состоит из модели, инструкций,
  196. 9:26инструментов и среды выполнения, то есть
  197. 9:28рантайма, который управляет жизненным
  198. 9:29циклом агента. Одновременно с этим
  199. 9:32другое популярное определение предложила
  200. 9:34Лилин Венг. Это вице-президент по
  201. 9:36исследованиям и безопасности в Open AI.
  202. 9:38А в своём посте LM Powered Autonomous
  203. 9:41Agents она определяет агента как
  204. 9:43комбинацию LLM, памяти, навыков, навыков
  205. 9:46планирования и использования
  206. 9:48инструментов. И если сравнить эти два
  207. 9:50определения, то можно заметить, что
  208. 9:52каждый каждая из них делает акцент на
  209. 9:54разных аспектах. Да, в обоих есть
  210. 9:56упоминания моделей, инструментов, но в
  211. 9:58первом ничего не сказано про
  212. 9:59планирование и память, а во втором про
  213. 10:01промты и планирование и фокус на LLM как
  214. 10:04на мозгах агента, хотя на самом деле там
  215. 10:05могут использоваться и другие модельки.
  216. 10:07А-а, в этом курсе мы будем использовать
  217. 10:09наиболее общее рабочее определение,
  218. 10:11которое объединяет все эти компоненты.
  219. 10:13Итак, мы будем считать, что агент этойм
  220. 10:16система, внутри которой у нас есть
  221. 10:19модель, промты, инструменты, память,
  222. 10:22механизмы защиты и механизмы
  223. 10:24планирования. Конечно, все эти кусочки
  224. 10:26могут быть опциональные, и начинать
  225. 10:28стоить с простненького агента, который
  226. 10:30может состоять просто из модели,
  227. 10:31например, и инструментов. В этой лекции
  228. 10:33я только верхне уровне расскажу, зачем
  229. 10:35нужны каждый из этих компонентов. А в
  230. 10:38повод курса мы уже будем подробно
  231. 10:39погружаться в каждый из них. Итак, в
  232. 10:41центре у нас находится AI модель. Это
  233. 10:43можно сказать, что мозг агента. Но сама
  234. 10:45по себе модель может только генерировать
  235. 10:47текст и отвечать на какие-то вопросы.
  236. 10:49Поэтому, собственно, нужны все эти
  237. 10:50обявязки вокруг неё. А следующий слой -
  238. 10:53это промты. Сюда входят системный промт
  239. 10:55- это какие-то глобальные инструкции,
  240. 10:57которые задают роль агента, его цели,
  241. 10:59ограничения, стиль, как он должен
  242. 11:01принимать какие-то решения. Дальше
  243. 11:04сообщение пользователя. Это буквально
  244. 11:06текущая задача, которую должен выполнить
  245. 11:07ассистент. И в-третьих - это сообщение
  246. 11:10самого ассистента. Это могут быть его
  247. 11:12предыдущие ответы, результаты вызова
  248. 11:13тулов и так далее. Слева у нас находятся
  249. 11:16инструменты. Это какие-то внешние
  250. 11:18функции и опишки, которые позволяют
  251. 11:19агенту взаимодействовать с внешней
  252. 11:21средой, искать информацию, работать с
  253. 11:23календарём и многое другое. А наверху
  254. 11:26находится память. И, как правило, у
  255. 11:28агента есть три вида памяти. Это
  256. 11:29краткосрочная, например, текущий диалог
  257. 11:32или промежуточные результаты его
  258. 11:33действий, а долгосрочная память, а здесь
  259. 11:37уже может храниться информация между
  260. 11:38сессиями, знания о пользователя,
  261. 11:40какие-то исторические выполненные
  262. 11:42задачи, а знания про предметную область
  263. 11:45и так далее. И, наконец, контекстная
  264. 11:47память - это информация, которая
  265. 11:48необходима агенту конкретно в данный
  266. 11:50момент. Она может собираться из
  267. 11:51различных кусочков. Дальше отдельным
  268. 11:53облачком здесь вынесено guardrails, а не
  269. 11:56в облачке, потому что на самом деле они
  270. 11:57пронизывают каждый компонент системы. А
  271. 12:00это различные инструменты, которые она
  272. 12:02позволяют защитить агента от промт
  273. 12:04инжекна, а, и других попыток взлома и
  274. 12:07сделать его поведение более
  275. 12:08детерминированным.
  276. 12:10И, наконец, справа у нас находятся
  277. 12:11инструменты планирования. А они
  278. 12:14позволяют агенту не просто реагировать
  279. 12:15на запрос, а строить последовательность
  280. 12:17действий и исполнять их. И всё это
  281. 12:20объединяется потрясающий серый квадратик
  282. 12:22в RНТА, который управляет жизненным
  283. 12:24циклом агента, когда нужно вызвать
  284. 12:26модель, когда нужно вызвать инструменты
  285. 12:27и так далее. И вот, глядя на картинку на
  286. 12:30предыдущем слайде, возникает ощущение,
  287. 12:32что нам это что-то напоминает. И этот
  288. 12:34момент классно подметил Андрей Карпатый,
  289. 12:36со основатель Open AI, в своём видео
  290. 12:38Introduction to Large Language Motals.
  291. 12:40Он предлагает думать облmм не как о
  292. 12:42чатботе, а как о новой версии
  293. 12:44операционной системы. В этой аналогии
  294. 12:46сама LLM - это ядро операционной
  295. 12:48системы. Она оркестрирует инструменты,
  296. 12:50память, внешние ресурсы и процессы для
  297. 12:51решения задачи. Внешние базы знаний -
  298. 12:54это аналог диска, то есть модель может
  299. 12:56доставать оттуда информацию через
  300. 12:57retrieval или браузинг, когда ей это
  301. 12:59необходимо. Контекстное окно модели в
  302. 13:02данном случае можно сравнить с
  303. 13:03оперативной памятью. То есть это
  304. 13:05какая-то ограниченная рабочая область,
  305. 13:06где модель думает и она постоянно
  306. 13:08решает, какую информацию туда стоит
  307. 13:09погрузить, а какую уже можно выбросить.
  308. 13:12И, наконец, инструменты и
  309. 13:13специализированные модели - это как
  310. 13:15приложение, и LLM вызывает их по
  311. 13:17необходимости. И это, на самом деле,
  312. 13:19работает даже там на уровне экосистемы.
  313. 13:21То есть у нас есть какие-то закрытые
  314. 13:23проприетарные модели, как Windows и
  315. 13:25MacOS, и есть быстрорастущая Open source
  316. 13:27экосистема аналог Linux. Наконец, мы
  317. 13:30готовы погрузиться в основную часть
  318. 13:33агента, в его мозг, который в
  319. 13:35большинстве случаев представляется
  320. 13:37лмкой. Мы сегодня коснёмся только того,
  321. 13:40что нам пригодится для разработки
  322. 13:41агентов, а более подробно вы можете
  323. 13:43углубиться в мир GPT моделей и других на
  324. 13:46интенсиве GPT Week. Ссылочка здесь
  325. 13:48внизу. С точки зрения агентов LLM - это
  326. 13:51наиболее распространённые мозгагенты. А
  327. 13:54формальное определение может быть
  328. 13:55записано так: это нейросетевая модель,
  329. 13:58обученная на больших корпусах текстовых
  330. 14:00данных, которая применяется для
  331. 14:02предсказания следующего токена в
  332. 14:03контексте предыдущих. Определение
  333. 14:05длинное, сложное, мы его сейчас
  334. 14:07обязательно подробно разберём, но
  335. 14:08сначала давайте опустимся там на уровень
  336. 14:11физический. И с этой точки зрения LLM -
  337. 14:14это на самом деле два файла. Первый файл
  338. 14:16- это файл параметров. Это огромный файл
  339. 14:18с весами неросетки. В современных
  340. 14:20моделях это десятки и сотни гигабайт. А
  341. 14:22второй файл - это код выполнения.
  342. 14:24Относительно небольшой набор
  343. 14:26программного кода, который описывает
  344. 14:27архитектуру сети и принцип её
  345. 14:29инфекренса. И когда мы запускаем модель,
  346. 14:32а на самом деле этот код просто
  347. 14:33применяет математические операции к
  348. 14:35входным данным и весам, чтобы
  349. 14:37предсказать следующий токен на основе
  350. 14:39поданных на вход. То есть физический LM
  351. 14:41- это никакой не интеллект, не
  352. 14:42понимание, а просто огромная таблица с
  353. 14:44весами и код, который умеет правильно их
  354. 14:46применять.
  355. 14:47Давайте погружаться в определение LLM и
  356. 14:51начнём с первой части. Что такое там
  357. 14:53нейросетевая модель, обученная на
  358. 14:55больших корпусах текстовых данных?
  359. 14:56Весамодели - это, по сути, сжатое
  360. 14:58представление всех обучающих данных,
  361. 15:01которые были ей переданы. Чем больше
  362. 15:03параметров у модели, тем проще, на самом
  363. 15:06деле, это всё сжать, ну, вплоть до того,
  364. 15:07что оставить представление как есть. Но
  365. 15:10тем сложнее будет модель infрить с той
  366. 15:12точки зрения, что, во-первых, нужно
  367. 15:13будет уметь хранить этот огромный файл с
  368. 15:14весами, а во-вторых, придётся ждать,
  369. 15:16когда посчитаются все эти математические
  370. 15:18операции. Поэтому задача при обучении -
  371. 15:21это подобрать такую архитектуру, такой
  372. 15:23набор обучающих данных и так провести
  373. 15:24обучение, чтобы в как можно меньшем
  374. 15:27количестве параметров закодировать как
  375. 15:28можно большие знания о мире. Теперь
  376. 15:30перейдём ко второй части определения,
  377. 15:32что такое там next token prediction. Для
  378. 15:35простоты начнём сначала с Next word
  379. 15:38prediction, то есть представим, что
  380. 15:39модели на вход поступает предложение cat
  381. 15:42set on e и нам нужно предсказать, какое
  382. 15:44слово будет дальше. В данном случае мы
  383. 15:46там предсказываем, что 97% вероятности,
  384. 15:49что это слово будет mat. И задача во
  385. 15:51время обучения подобрать веса модели
  386. 15:53так, чтобы если они провзаимодействовали
  387. 15:55с входными токенами, то на выходе мы
  388. 15:57ожидали там действительно наиболее
  389. 15:59вероятное следующее слово.
  390. 16:02А откуда в этом всём берутся токены?
  391. 16:06Весамо модели - это числа. И чтобы мы
  392. 16:08могли как-то обработать входные наши
  393. 16:11данные, их тоже нужно представить в виде
  394. 16:12чисел. Давайте подумаем, как вот можно
  395. 16:15закодировать, например, предложение I
  396. 16:16was reading an interest in book in New
  397. 16:18York. Там первое очевидное решение.
  398. 16:21Давайте закодируем их буквально
  399. 16:22посимвольно. То есть каждую букву
  400. 16:25назначим ей отдельную цифру и попытаемся
  401. 16:26так переписать предложение. Ну да,
  402. 16:28получилось, но здесь есть много проблем.
  403. 16:30Во-первых, последовательность получается
  404. 16:32очень длинной, и из это будет нам
  405. 16:34замедлять и обучение модели, и потом её
  406. 16:36infренс. А во-вторых, модель видит
  407. 16:38только отдельные символы и никак не
  408. 16:39улавливает саму структуру слов. То есть
  409. 16:41такое кодирование, оно как бы
  410. 16:42бессмысленно с точки зрения языка. И да,
  411. 16:44нам становится сложнее захватывать смысл
  412. 16:46на уровне слов или даже целых фраз. А
  413. 16:49тогда следующий там наивный подход.
  414. 16:51Давайте закодируем по словам. Каждое
  415. 16:53отдельное слово мы берём, назначаем ему
  416. 16:54новую цифру, кодируем. Так, да,
  417. 16:56последовательность стала вроде как
  418. 16:57короче, но здесь у нас возникают новые
  419. 17:00проблемы. Во-первых, у нас языки
  420. 17:02содержат сотни слов. В английском,
  421. 17:04например, 600.000. И тогда у нас словарь
  422. 17:07сам по себе будет огромным. И хранить
  423. 17:08его вместе с лисами модели, а это очень
  424. 17:11тяжело. А, во-вторых, у нас будут
  425. 17:13появляться какие-то новые слова или
  426. 17:15редко встречающиеся, и под них нужно
  427. 17:17будет подбирать какое-то новое число,
  428. 17:19которое модель ещё не видела в обучении.
  429. 17:21И у нас всё ещё нет связи между,
  430. 17:23например, однокоренными словами. Если
  431. 17:24нам в следующем предложении придёт слово
  432. 17:26read, мы ему назначим цифру 10, и нам
  433. 17:30ничего не скажет, что цифры три и 10
  434. 17:31как-то связаны, хотя у них на самом деле
  435. 17:33одинаковый корень. И здесь приходит
  436. 17:35компромиссное решение. То есть у нас
  437. 17:37была проблема в том, что буквы - это
  438. 17:38слишком маленькие единицы языка, слова
  439. 17:40слишком большие.
  440. 17:42Вот пришло решение в виде токенизации. А
  441. 17:44токеном называют минимальную единицу
  442. 17:46текста, с которой работает языковая
  443. 17:48модель. Он может быть фрагментным одного
  444. 17:50слова или даже состоять из двух слов. То
  445. 17:52есть в данном случае, например, мы слово
  446. 17:53readдинг разбили на два токена: read и
  447. 17:56in, потому что когда мы в следующий раз
  448. 17:58встретим слово read, мы уже поймём, что
  449. 18:00вот оно как-то было связано с тем, что
  450. 18:01мы видели до этого. А, например, слово
  451. 18:03New York, а точнее Token New York,
  452. 18:05состоит из двух слов, ровно потому, что
  453. 18:07оно часто встречается именно в такой
  454. 18:09комбинации, и это можно выделять как
  455. 18:10отдельную сущность. И таким образом у
  456. 18:12нас уменьшается размер словаря. Это уже
  457. 18:14не сотня тысяч слов. Модель лучше умеет
  458. 18:17обобщать и находить взаимосвязи между
  459. 18:19различными токенами.
  460. 18:22И на самом деле существуют помимо
  461. 18:24обычных токенов ещё служебные или
  462. 18:26специальные токены. Это какие-то
  463. 18:27зарезервированные токены в висковых
  464. 18:29моделях, которые выполняют заранее
  465. 18:31заданные функции. Они не соответствуют
  466. 18:33обычному тексту, а используются именно
  467. 18:35для управления поведением модели. Да, у
  468. 18:38каждых моделей они разные, но их можно
  469. 18:40поделить на некоторые классы. Мы сегодня
  470. 18:41рассмотрим только те, которые нам важны
  471. 18:43с точки зрения агентов. А у нас есть,
  472. 18:45например, токены окончания генерации в
  473. 18:47авторегрессионных моделях. Это EОВ
  474. 18:50токены, как правило. Они буквально
  475. 18:51говорят, что всё, я предложение дописал,
  476. 18:53это можно отдавать пользователю. Дальше
  477. 18:55есть специальные токены, которые
  478. 18:56обозначают роли пользователь, ассистент
  479. 18:59или системный промт. Это нам позволяет
  480. 19:02сделать так, что модель видит множество
  481. 19:04таких токенов, после которых следуют
  482. 19:06непосредственно промты во время своего
  483. 19:08обучения. И потом на инференсе, когда мы
  484. 19:10применяем это в реальных системах, у неё
  485. 19:12меньше шансов заколлюционировать, и она
  486. 19:14лучше следует как бы этой структуре. И,
  487. 19:16наконец, у нас есть управляющие токены
  488. 19:18или модификаторы промта, например,
  489. 19:20translate summarize или перепиши там в
  490. 19:23формальном стиле. Они вот появляются
  491. 19:25ровно из того, что очень часто у
  492. 19:26ассистентов просят там просто переведи
  493. 19:28мне вот этот кусочек текста или
  494. 19:29сумморизируй. И опять же, если модель
  495. 19:31это много раз видела именно с таким
  496. 19:33фиксированным токеном во время обучения,
  497. 19:35то и потом при реальном использовании в
  498. 19:37жизни а она справится с этой задачкой
  499. 19:39получше. И теперь мы готовы вернуться к
  500. 19:42тому самому Next Token prediction. Так,
  501. 19:44мы теперь знаем, что такое токены. И то
  502. 19:46есть на самом деле наша модель
  503. 19:48предсказывает следующий токен в
  504. 19:50контексте всех поданных ей на вход. При
  505. 19:52этом говорят, что модель является
  506. 19:54авторегрессионной, то есть выход модели
  507. 19:57с одного этапа является входом для
  508. 19:58другого, чтобы мы не заканчивали просто
  509. 20:00генерацию на одном токене, а завершали
  510. 20:02предложение до конца, пока модель не
  511. 20:04сгенерирует как раз end of sequence
  512. 20:05token. А и здесь нам полезно понять, что
  513. 20:09такое контекстное окно. Это вот как раз
  514. 20:11длина, которая счисляется в токенах
  515. 20:14того, что модель может в моменте
  516. 20:15учитывать. И когда лимит достигается,
  517. 20:18более старые данные, которые были в этом
  518. 20:20промте, или откидываются, или
  519. 20:21суммаризируются, чтобы занимать меньше
  520. 20:23места, и так далее. А, но что происходит
  521. 20:25внутри каждого отдельного шага
  522. 20:27генерации? У нас после токинизации
  523. 20:29входного текста модель вычисляет
  524. 20:31представление последовательности,
  525. 20:32которая содержит информацию о значении и
  526. 20:34позиции каждого токена во входе. Затем
  527. 20:37это представление подаётся в модель,
  528. 20:39которая выдаёт оценки в виде логитов,
  529. 20:41которые отражают вероятность каждого
  530. 20:43токена и словаря быть следующим в
  531. 20:45последовательности. И здесь используются
  532. 20:47параметры температуры, который управляет
  533. 20:49степенью случайности вывода. Низкая
  534. 20:52температура делает распределение
  535. 20:53вероятностей более острым, и модель чаще
  536. 20:56выбирает наиболее вероятные токены, и
  537. 20:58текст получается более предсказуемым и
  538. 21:00строгим, а более высокая температура
  539. 21:02сглаживает это распределение, и у нас
  540. 21:04больше шансов выбрать какой-то токен,
  541. 21:05может быть, не самый вероятный, но один
  542. 21:07из. И на основе этих оценок, которые мы
  543. 21:10выдали на предыдущем этапе, существует
  544. 21:12несколько стратегий выбора следующего
  545. 21:14токена для продолжения текста. А самая
  546. 21:16простая стратегия - это буквально
  547. 21:17выбирать токен с максимальной оценкой. А
  548. 21:21есть более стахастические методы,
  549. 21:22например, топка смплинг, когда у нас
  550. 21:24выбирается случайный токен из К наиболее
  551. 21:26вероятных. И существует более
  552. 21:28продвинутые методы декодирования. Это,
  553. 21:30например, Beam Search, который
  554. 21:32рассматривает сразу несколько возможных
  555. 21:33вариантов продолжения и до какого-то
  556. 21:35этапа пытается сгенерировать все их и
  557. 21:37потом уже оценивает вероятность целой
  558. 21:39последовательности токенов. А, и давай
  559. 21:42теперь поговорим про то, как обучается
  560. 21:44LLM. М, в общем случае это можно
  561. 21:46разделить на три шага. Первый шаг - это
  562. 21:48притрейнинг. На этом шаге в несей
  563. 21:50загружают просто большие массивы данных
  564. 21:52о мире. И мы показываем модели текста
  565. 21:54отовсюду, откуда только можем. И главная
  566. 21:56её задача на этом этапе научиться
  567. 21:58предсказывать буквально вот следующий
  568. 22:00токен. Следующий этап - это фантюнинг.
  569. 22:03Это метод адаптации готовой языковой
  570. 22:04модели к специфическим задачам компании
  571. 22:07или, возможно, какой-то новой предметной
  572. 22:08области. Модель учится уже на примерах
  573. 22:11запрос-ответ и лучше подстраивается
  574. 22:13именно под то, как нужно на них
  575. 22:15отвечать. И, наконец, третий этап - это
  576. 22:17reinforcement learning. Например, на
  577. 22:19прошлом шаге мы научились не просто
  578. 22:21предсказывать следующий токен, но и
  579. 22:22отвечать на запросы. Но на самом деле
  580. 22:25людям не всегда нужны какие-то точные
  581. 22:26ответы или не всегда в такой
  582. 22:27формулировке. И при этом этих вопросов
  583. 22:29очень много, и у нас просто не хватит
  584. 22:31времени и денег, чтобы насобирать эти
  585. 22:34обучающие корпуса. Поэтому на этом этапе
  586. 22:36мы буквально пробуем обучить модельку на
  587. 22:39фидбэке или от живых людей, а или обучив
  588. 22:42другую языковую модель, которая будет
  589. 22:44оценивать, как наша LM справляется с
  590. 22:46какими-то конкретными ответами. И мы
  591. 22:48будем обучаться тогда на фидбэк от вот
  592. 22:50этой reward модели. Итак, давайте
  593. 22:52подсоберём, что хочется унести из этого
  594. 22:54рассказа. Первое, что модельки у нас
  595. 22:56работают с токенами, то есть они не
  596. 22:57знают, что такое слова, предложения или
  597. 22:59смысла напрямую. Они работают только с
  598. 23:01последовательностями токенов и пытаются
  599. 23:04предсказать наиболее вероятный из них.
  600. 23:06Почему это важно на практике? Во-первых,
  601. 23:08нам это пригодится при расчёте билингов
  602. 23:10за использование модели и при
  603. 23:12проектировании контекст окон, потому что
  604. 23:13их длина как раз вычисляется в
  605. 23:15количестве токенов, а не символов или
  606. 23:17слов.
  607. 23:18Во-вторых, это важно для понимания того,
  608. 23:21насколько важно соблюдать правильную
  609. 23:23структуру промта и передавать моделям
  610. 23:25контекст именно так, как они его
  611. 23:27ожидают. Потому что если они в обучающей
  612. 23:29выборке миллион раз видели, а что после
  613. 23:31слова system идёт system prompt, а мы
  614. 23:34его пытаемся записать просто так где-то
  615. 23:36сбоку, то не стоит удивляться тому, что
  616. 23:38моделька будет плохо реагировать.
  617. 23:40Второе, что мы обсудили - это специфику
  618. 23:42обучения, что модели обучаются на
  619. 23:44каких-то больших объёмах данных,
  620. 23:45предсказывает следующий токен.
  621. 23:47А мы из этого знаем, за что отвечает
  622. 23:50такой параметр, как температура. И
  623. 23:53теперь можно понять, откуда возникают
  624. 23:55галлюцинации. Галлюцинациями называют
  625. 23:57уверенную генерацию правдоподобной, но
  626. 23:59неверной или вымышленной информации. Они
  627. 24:02как раз возникают, потому что это
  628. 24:03стахистические модели. Она не проверяет
  629. 24:05факты, она просто в голове себе
  630. 24:07представляет, какой следующий токен
  631. 24:09наиболее вероятный, и уверенно
  632. 24:10генерирует дальше последованость
  633. 24:12токенов. Поэтому здесь очень важный
  634. 24:14пункт, который специально выделен
  635. 24:16жирным. А давайте автоматизировать всё,
  636. 24:18что автоматизируется, и изировать только
  637. 24:21то, что не автоматизируется. Например, в
  638. 24:24системном ромте писать, что если
  639. 24:25какая-то функция вернула true, то мы
  640. 24:27делаем а, а если она вернула фalse, то
  641. 24:29мы делаем b. А это попытка нарваться на
  642. 24:32лишние галлюцинации, ну, плюс потратить
  643. 24:34деньги на лишние infence модели, хотя
  644. 24:36это можно было написать просто
  645. 24:37программным кодом. [фыркает]
  646. 24:39И дальше в контексте того, как у нас
  647. 24:41обучаются модельки, можно сделать
  648. 24:43выводы, с какими задачками они
  649. 24:45справляются хорошо, а с какими не очень.
  650. 24:47Сначала давайте рассмотрим сильные
  651. 24:49стороны. А это, во-первых, задачи с
  652. 24:51высокой статистической структурой,
  653. 24:53разные перефразирования, резюмирование,
  654. 24:55генерация связанного текста или кода,
  655. 24:57потому что это всё, это задача на
  656. 24:59предсказание вероятных последованостей
  657. 25:01слов, на которых модели как раз
  658. 25:02обучались. А, во-вторых, модельки хорошо
  659. 25:05умеют обрабатывать и генерировать
  660. 25:06стандартные для них структуры. Это
  661. 25:08какие-то рассуждения, такие как Chain of
  662. 25:10SS, которые мы рассмотрим в следующих
  663. 25:12занятиях, вызовылов, а, и обработка
  664. 25:16каких-то стандартных файлов и таблиц. Но
  665. 25:18с чем модели справляются плохо?
  666. 25:20Во-первых, это точные алгоритмические
  667. 25:22символьные задачи. А, например, там под
  668. 25:25счёт букв, цифр, спрашивает, сколько
  669. 25:27букв А в слове банана. Вот это у моделек
  670. 25:30не нужно, потому что они учились
  671. 25:32предсказывать следующий токен, а не
  672. 25:34смотреть там на предыдущий и буквально
  673. 25:36уметь что-то считать. А второе
  674. 25:38ограничение - это актуальные знания.
  675. 25:42Если вы спросите у модели там новости за
  676. 25:44вчера, скорее всего, она не сможет
  677. 25:45ответить, если у неё нет никаких
  678. 25:47дополнительных инструментов, потому что
  679. 25:48её обучение было где-то год назад или
  680. 25:51там полгода назад, [фыркает] и все
  681. 25:52заложенные у неё базовые знания, они
  682. 25:54ограничены как раз этим периодом. А
  683. 25:57третье, в чём модельки не очень хорошо
  684. 25:59справляются без дополнений к ним - это
  685. 26:02долгосрочное планирование и память. То
  686. 26:04есть запланировать последовательность
  687. 26:05там на 30 шагов, нигде при этом не
  688. 26:08сохраняя её и не продумывая по несколько
  689. 26:10раз, а даётся им довольно тяжело.
  690. 26:14Но здесь небольшие спойлеры. Большинство
  691. 26:16из этих ограничений можно как раз решать
  692. 26:18с помощью кубиков, которые мы дальше и
  693. 26:20рассмотрим. И теперь мы готовы перейти к
  694. 26:22практике, где мы уже сможем на реальных
  695. 26:24кейсах посмотреть как раз ограничения
  696. 26:26лэмок и их сильные стороны. А в этом
  697. 26:29ноутбуке хочется показать, как можно
  698. 26:31использовать лмки. Мы рассмотрим как
  699. 26:32локальный infence и на ЦПУ, и на ГПУ,
  700. 26:35так и infence через внешние опишки. И
  701. 26:38также на примерах рассмотрим те ключевые
  702. 26:41выводы про LM, которые мы с вами сделали
  703. 26:43в лекции. А сначала мы настраиваем
  704. 26:46среду. На самом деле Google Club может
  705. 26:48работать и с ЦПУ, и с ГПУ.
  706. 26:50Я покажу оба варианта. Чтобы вам
  707. 26:52включить гпушку, нужно перейти в Rime и
  708. 26:56поменять Runime Type на гпушный. Здесь
  709. 26:58мы устанавливаем нужные нам библиотеки.
  710. 27:01И вот для того, чтобы установить
  711. 27:02библиотеку с поддержкой, а GPU, если она
  712. 27:05вам доступна, мы здесь добавим следующие
  713. 27:07флаги.
  714. 27:09Переходим к первому пункту. Как можно
  715. 27:11использовать лэмки. Во-первых, их можно
  716. 27:13инферить локально, когда вы буквально
  717. 27:15скачиваете модель с открытыми весами и
  718. 27:18инферите её на своём ноутбуке.
  719. 27:20как на ЦПУ, так и на ГПУ. И, во-вторых,
  720. 27:22можно ходить во внешние АИ. И здесь
  721. 27:25понятно, что везде есть какие-то плюсы и
  722. 27:27минусы. При локальном инференсе вы
  723. 27:29получаете там полную приватность данных,
  724. 27:30данные никуда не улетают, полностью у
  725. 27:32вас логируются и так далее. Но при этом
  726. 27:35приходится хостить модельки у себя, что
  727. 27:37иногда бывает дорого по железу и
  728. 27:39непосредственно по техподдержке. Когда
  729. 27:41мы ходим через опишки, мы получаем
  730. 27:43доступ к огромным моделям, потому что
  731. 27:46они расположены на больших
  732. 27:47вычислительных кластерах. Но при этом
  733. 27:49тогда нам необходимо платить за каждый
  734. 27:51отправленный туда токен и полученный с
  735. 27:53сервера. А, ну и плюс мы теряем
  736. 27:55приватность данных, потому что они уже
  737. 27:57могут куда-то утекать. Начнём с
  738. 27:59локального инференса, а, и с цепушек.
  739. 28:04Сначала вынесем какие-то общие
  740. 28:05параметры, которые мы будем использовать
  741. 28:07внутри всего ноутбука, и напишем
  742. 28:08какой-то системный промт. Здесь я просто
  743. 28:10говорю, что там ты мой персональный
  744. 28:11ассистент и, пожалуйста, там всегда
  745. 28:12обращайся ко мне Алёна. И прошу выдать
  746. 28:15там три идеи, где агенты могут быть
  747. 28:18полезны. И вот здесь мы
  748. 28:19продемонстрируем, почему важны те самые
  749. 28:22специальные токены и почему важно
  750. 28:23подавать в модель данные именно так, как
  751. 28:25она ожидает. То есть здесь я формирую PL
  752. 28:27промт, где буквально пытаюсь сказать,
  753. 28:29что смотри, вот этот кусочек - это
  754. 28:30системный промт, вот это кусочек мой
  755. 28:32промт, и дальше мы ждём от тебя
  756. 28:34ассистентский выхлоп. А, а здесь запишем
  757. 28:37в том формате, в котором принято
  758. 28:39передавать в эту конкретную модель в
  759. 28:41формате там messages, где роль отдельно
  760. 28:43выделена и она потом перекодируется.
  761. 28:46Итак, [фыркает] м здесь мы скачиваем
  762. 28:48маленькую-маленькую модельку с
  763. 28:50Хагинфейса, а, и распечатываем, что всё
  764. 28:53загрузилось успешно. И дальше пишем
  765. 28:56обёртку над этой моделью. Здесь мы
  766. 28:58проставляем флаг про NGPU layers 0, что
  767. 29:00нам говорит о том, пожалуйста, infли эту
  768. 29:02модельку только на CPU. Подгрузили её на
  769. 29:05ЦПУ. И теперь давайте попробуем
  770. 29:06заинферить. Здесь такая простая обёртка
  771. 29:08над ней, которая буквально передаёт
  772. 29:10сообщение, которое мы хотим ей передать,
  773. 29:12и получаем из неё выхлоп. Напоминаю, что
  774. 29:14я там просила дать три идеи, где агентам
  775. 29:16могут быть полезны. И в первом случае я
  776. 29:19её спрашивала с помощью плейнпромпта,
  777. 29:22где я буквально говорил: "Вот системный
  778. 29:24промт, это мой промт и что-нибудь
  779. 29:26ответь". А и что мы видим? Что вот
  780. 29:28моделька начала отвечать и потом решила
  781. 29:32догаллюцинировать, что дальше? Юзер
  782. 29:34спросил: "Что-то ещё? и попросил
  783. 29:35ассистентский выхлоп, и он что-то ещё
  784. 29:37поотвечал, и что-то ещё и так далее. То
  785. 29:39есть зациклилась. Поэтому, пожалуйста,
  786. 29:42обращайте внимание на то, как конкретная
  787. 29:43модель ожидает э данных, которые будут
  788. 29:46продаваться ей на вход. Потому что вот,
  789. 29:48например, если мы передаём так, как она
  790. 29:50ожидает, то она буквально отвечает то,
  791. 29:52что мы хотели, там три области, в
  792. 29:54которых агент может быть полезен. Ну и
  793. 29:57дальше, просто потому, что модельки
  794. 29:58любят генерировать много текста, она
  795. 30:00предлагает ещё более конкретные примеры,
  796. 30:03но это уже лучше, чем было в предыдущий
  797. 30:05раз. Но, как мы видим, на ЦПУ мы можем
  798. 30:08инфрить только супер-спер лёгкие
  799. 30:09модельки. И вот это, например, она даже
  800. 30:11забыла, что её просила, вообще-то,
  801. 30:12обращаться ко мне: "Привет, Алёна".
  802. 30:14Теперь давайте перейдём к гпушке. Здесь
  803. 30:16мы уже скачиваем модельку побольше и
  804. 30:18проставляем параметр в обёртке над лмкой
  805. 30:21ngp layers -1. Здесь мы просим:
  806. 30:23"Заиспользуй все слои, которые только
  807. 30:25можешь, перенеси их на ГПУ". И теперь
  808. 30:27спрашиваем ровно те же самые промты у
  809. 30:30Гпушной модели. И здесь она вот уже
  810. 30:32вспомнила, как надо ко мне обращаться. И
  811. 30:34там из-за того, что она уже потяжелее и
  812. 30:36посильнее, смогла ответить в обоих
  813. 30:38случаях, что нужно. Но здесь смотрим,
  814. 30:40что она решила продолжить ещё дальше.
  815. 30:42Hello, Алёна сказать. Теперь давайте
  816. 30:43перейдём к инференсу через внешние
  817. 30:45опишки. В данном случае я буду
  818. 30:47показывать, как мы инферим open AI на
  819. 30:50IP.
  820. 30:51Но можно там поизучать, как использовать
  821. 30:53и другие внешние пишки в других
  822. 30:55занятиях. Во-первых, нам нужно будет
  823. 30:58здесь генерировать ключ, который мы
  824. 31:00будем использовать для авторизации в
  825. 31:01Open AI и по которому будет билиться
  826. 31:03наши запросы, запросы и ответы, которые
  827. 31:05мы будем получать. И дальше здесь слева
  828. 31:08нужно выбрать секрет, чтобы сложить туда
  829. 31:10этот ключ. И дальше внутри а файла вы
  830. 31:13его можете потянуть уже вот так. или
  831. 31:15там, если вам не нужно демонстрировать
  832. 31:16экран и вы не рискуете спалить этот
  833. 31:18токен, можете его подложить буквально
  834. 31:19сюда. А дальше мы, собственно, загружаем
  835. 31:22нужную нам библиотеку Open AI, объявляем
  836. 31:25модельку, которую мы будем использовать.
  837. 31:26В данном случае это там GPT5 n, но
  838. 31:28можете использовать и более какие-то
  839. 31:30дешёвые. И, собственно, обёртка над
  840. 31:33лмкой. Здесь мы просто входим в самого
  841. 31:35клиента с нашими параметрами. Говорим:
  842. 31:37"Мот такую модель будем использовать". И
  843. 31:38вот тебе сообщение на вход, на которое
  844. 31:40мы ждём ответа. И вот я передаю тот же
  845. 31:43самый Messenges Prompt. Потрясающе. Нам
  846. 31:45моделька ответила из Hello Алёна и
  847. 31:47перечислила три пункта, где лмки могут
  848. 31:49быть полезны и дальше никуда не ушла.
  849. 31:51Теперь давайте перейдём ко второй части,
  850. 31:53где мы посмотрим на те самые ke
  851. 31:55takeaways, которые мы рассмотрели в
  852. 31:56лекции. С чем лнки хорошо справляются, с
  853. 31:59чем не очень и что для них специфично.
  854. 32:02Во-первых, как мы говорили, модельки
  855. 32:03умеют галлюционировать, то есть уверенно
  856. 32:06генерировать ненастоящую информацию.
  857. 32:08тоже такая миниобёртка, которая он будет
  858. 32:09просто красиво выхлоп делать. И теперь
  859. 32:11давайте посмотрим, что я пытаюсь у неё
  860. 32:13спросить. Говорю, что там ты мой
  861. 32:14ассистент по питону. Расскажи мне,
  862. 32:16пожалуйста, вот в Open AI SDK как
  863. 32:18использовать вот этот конкретный метод.
  864. 32:22Спрашиваю, и она мне начинает очень
  865. 32:24уверенно отвечать там, как его найти
  866. 32:26вообще, как его использовать, как его
  867. 32:28установить, как его использовать в коде,
  868. 32:29какие там мо могут быть ограничения.
  869. 32:31Здесь есть одна глобальная проблема, что
  870. 32:33этого метода на самом деле вообще не
  871. 32:34существует. То есть это буквально
  872. 32:36галлюцинация модели. где она пошла
  873. 32:38писать код, вроде как он очень похож на
  874. 32:40правду, и она его продолжает там
  875. 32:41дописывать. Мм, с этим можно бороться. И
  876. 32:44там самый простой способ - это просить в
  877. 32:46промте. Там, если ты не уверена,
  878. 32:47пожалуйста, не отвечай, что я,
  879. 32:48собственно, вот здесь вот и делаю. Там,
  880. 32:50если ты не знаешь, просто скажи, что не
  881. 32:54надо меня об этом спрашивать, ничего не
  882. 32:55придумывай. И теперь спрашиваю Ровно тот
  883. 32:57же самый вопрос. И к счастью, она
  884. 32:59говорит: "Да, что я там вообще не знаю
  885. 33:01про такой метод, отстаньте от меня".
  886. 33:02[откашливается]
  887. 33:03Теперь давайте перейдём к сильным
  888. 33:04сторонам лолэмок. Как мы говорили, их
  889. 33:08первая там сильная сторона - это что они
  890. 33:09хорошо справляются с задачками на
  891. 33:11суммаризацию и перефразирование. Здесь я
  892. 33:13её прошу, там вот у меня был какой-то
  893. 33:15текст, говорю там сумморизируй меня для
  894. 33:16слайда, чтобы было поболе там расписано.
  895. 33:19Вот потрясающе справляется. Дальше
  896. 33:21генерация каких-то стандартных структур,
  897. 33:23потому что она, опять же, их много раз
  898. 33:24видела в выучающей выборке. Здесь я её
  899. 33:26прошу сгенерировать не структурированный
  900. 33:28выхлоп в виде Jon объекта. И да, он
  901. 33:31действительно корректный там с какими-то
  902. 33:32сильными и слабыми сторонами лмок.
  903. 33:35И, наконец, давайте рассмотрим то, с чем
  904. 33:38лмки справляются. Не очень хорошо, как
  905. 33:39мы говорили, там подсчёт символов.
  906. 33:41Например, здесь я формирую строку из там
  907. 33:44заранее заданного числа символов и прошу
  908. 33:46буквально посчитать их. А, и там
  909. 33:48сравниваю с каким-то идеальным
  910. 33:50результатом, который просто вычислить
  911. 33:51там через длину строки можно. И, как мы
  912. 33:52видим, модель мне смогла в предыдущих
  913. 33:54шагах там и какой-то метод придумать, и
  914. 33:57что-то посумаризировать. И даже там
  915. 33:59запомнила, что ко мне надо обращаться
  916. 34:00Алёны, но с такой, казалось бы, простой
  917. 34:02задачей, как подсчёт символа в строке,
  918. 34:03она не справилась. А дальше какая-то
  919. 34:06точная арифметика. Здесь тоже не самое
  920. 34:08сложное выражение: два перемножения и
  921. 34:10потом какое-то деление. Прошу её
  922. 34:12посчитать результат, с чем она опять же
  923. 34:14не справляется. Ну там
  924. 34:16эвалем настоящее выражение с помощью
  925. 34:17встроенной функции.
  926. 34:19И третье - это знания, которые там
  927. 34:22случились за последние пару дней или
  928. 34:23буквально там в последние секунды. А
  929. 34:26здесь я пытаюсь ей сообщить, что у тебя
  930. 34:27там нету доступа в интернет. И расскажи
  931. 34:30мне, какая там цена биткоина прямо
  932. 34:32сейчас. И моделька в данном случае я её
  933. 34:34попросила не эвалюционировать, и поэтому
  934. 34:35она честно признаётся, что она не знает.
  935. 34:38А, но м если мы будем уже подключать
  936. 34:41какие-то инструменты, которые ей
  937. 34:42позволят входить в какие-то внешние базы
  938. 34:44знаний или там в интернет, то она бы это
  939. 34:46уже смогла сделать. И, наконец, а модель
  940. 34:49плохо справляется со задачками
  941. 34:50цитирования. Например, здесь я её прошу
  942. 34:53вытать чётко первый параграф Гарри
  943. 34:55Поттера, но при этом прошу там опять же
  944. 34:58не галлюционировать. А без этого в
  945. 35:00данном случае она справляется плохо. То
  946. 35:02есть в первом пункте она мне ответила,
  947. 35:03что извините, там не могу точно
  948. 35:06пересказать его, а ногу там
  949. 35:08посумаризировать что-то или вспомнить.
  950. 35:10Но во втором случае я ей говорю, что вот
  951. 35:12книга начинается вот так, и уже прошу из
  952. 35:14этой книги что-то поцитировать. То есть
  953. 35:16то, что у неё реально есть в доступе. И
  954. 35:17с этой задачей она справляется уже
  955. 35:20идеально. То есть так мы смогли на
  956. 35:21практике проверить то, что утверждалось
  957. 35:24в лекции. С чем модель XПSтся хорошо, с
  958. 35:26чем не очень и какие у них особенности.
  959. 35:28Итак, давайте перейдём ко второй части
  960. 35:29нашей практики, где мы уже, наконец,
  961. 35:31построим нашего первого агента, который
  962. 35:33будет использовать только лмку. И здесь
  963. 35:35я сначала расскажу, собственно, про
  964. 35:37агента, которого мы будем строить, на
  965. 35:38самом деле, сквозь весь курс. Для этого
  966. 35:40мы рассмотрим, что такое там TA bench, и
  967. 35:43рассмотрим конкретного задачу на
  968. 35:45построение агента. И затем уже
  969. 35:47непосредственно перейдём к его
  970. 35:48разработке и посмотрим на то, что может
  971. 35:51сделать агент, если у него есть только
  972. 35:53LLM и больше ничего. Итак, а давайте
  973. 35:56сначала разберёмся, что такое TWН. У нас
  974. 35:59появляется много агентов за последние
  975. 36:00годы, и, естественно, их всех нужно
  976. 36:02как-то оценивать. А многие изобретают
  977. 36:05какие-то отхочные подходы, где просто
  978. 36:07пытаются его протыкать руками и там на
  979. 36:09глаз понять, насколько он хорошо
  980. 36:10работает. Ну, понятно, что это не как не
  981. 36:11масштабируемое решение. Поэтому стали
  982. 36:13создавать разные бенчмарки, которые нам
  983. 36:15позволят, в том числе, оценить, как
  984. 36:17разные лмки справляются в агентских
  985. 36:19сценариях. И вот как раз одним из таких
  986. 36:21бенчмарков является T2 benнchmark. А он
  987. 36:24вышел там в двух версиях. Здесь есть и
  988. 36:26ссылки на статьи, и ссылки на их
  989. 36:28реализации в гитхабе. Можете почитать
  990. 36:30подробнее, если интересно. Но если
  991. 36:32коротко, то в Таубенче оценка агентов
  992. 36:36происходит так, что есть какие-то
  993. 36:37конкретные сценарии, где описывается
  994. 36:39там, э, что случилось у пользователей,
  995. 36:42что он пытается добиться от агента,
  996. 36:43описывается ожидаемое поведение агента,
  997. 36:45какие он инструменты должен выдать и как
  998. 36:47ответить пользователю или вообще никак
  999. 36:49не отвечать на такой запрос и так далее.
  1000. 36:51И вот потом вышло ещё обновление T2
  1001. 36:54bench, где можно эмулировать не только
  1002. 36:56поведение самого агента, как он будет
  1003. 36:58отвечать на конкретный запрос с
  1004. 37:00конкретной лмкой под капотом, ну и
  1005. 37:02поведение пользователя, то есть чтобы
  1006. 37:04они могли общаться между собой. Итак,
  1007. 37:06здесь мы скачиваем, собственно,
  1008. 37:08репозиторий St2 Bнчо. Можем перейти в
  1009. 37:10директорию и установить там необходимые
  1010. 37:12зависимости. А опять же, как в прошлый
  1011. 37:14раз, генерируем ключик для модели,
  1012. 37:17которую мы будем использовать под
  1013. 37:18капотом. В моём случае это Open AI
  1014. 37:20модель. И подгружаем его в переменные
  1015. 37:22среды. Также вы можете вызвать команду,
  1016. 37:25которая позволит вам запустить
  1017. 37:26симуляцию. И здесь вы сможете поработать
  1018. 37:28в разных доменах и от лица пользователя,
  1019. 37:31и от лица агента. То есть вы будете
  1020. 37:32получать конкретное задание, чтом ты
  1021. 37:34должен заставить его отменить твоё
  1022. 37:35бронирование и играть роль пользователя.
  1023. 37:40Давайте посмотрим на задачку, которую мы
  1024. 37:42будем решать. Там есть несколько
  1025. 37:43доменов. Мы с вами займёмся агентом
  1026. 37:46бронирований или airline агентом. То
  1027. 37:48есть агент, который отвечает там за
  1028. 37:50полёты, бронирование и так далее. В
  1029. 37:52самом задании мы сейчас посмотрим
  1030. 37:54конкретно его политики и что он должен
  1031. 37:57делать, а что не должен. Для этого мы
  1032. 37:58переходим там в внутри этого репозитория
  1033. 38:01в папочку с нужным доменом и достаём вот
  1034. 38:04его политику. И здесь написан,
  1035. 38:06собственно, можно сказать, системный
  1036. 38:08промт нашего агента. То есть в целом
  1037. 38:10какое сейчас число, ну, для него, чтобы
  1038. 38:11он понимал, и там какой у него t of
  1039. 38:14voice, что такое пользователь, что такое
  1040. 38:16перелёт, как мы работаем с
  1041. 38:18бронированиями, как мы работаем там с
  1042. 38:20изменениями этих бронирований, их
  1043. 38:22отменой, где нужно подтверждать у
  1044. 38:23пользователя, а где нет.
  1045. 38:26И мом посмотреть с вами на пример
  1046. 38:27заданий, которые лежат внутри этого
  1047. 38:29бенчмарка. А вот выберем там самый
  1048. 38:32первый. Здесь, как мы видим, несколько
  1049. 38:33блоков. То есть вот описан
  1050. 38:34пользовательский сценарий, а здесь
  1051. 38:36написано, что ты пытаешься сделать с
  1052. 38:39агентом следующие э задачки, а и вызвал
  1053. 38:42его вообще по такой-то причине. Мы знаем
  1054. 38:45про тебя, как тебя зовут, и там твой
  1055. 38:47usеer ID, который там, видимо, ты будешь
  1056. 38:49сообщать агенту, чтобы он мог дальше
  1057. 38:51найти твои бронирования. И также есть
  1058. 38:53описание самой задачки в целом, что она
  1059. 38:55конкретно проверяет, а, и как мы её
  1060. 38:57будем оценивать, что значит, что агент
  1061. 38:59справился хорошо, какие инструменты он
  1062. 39:01должен вызвоть, а какие нет. И можем там
  1063. 39:03посмотреть на конкретные задачки,
  1064. 39:05которые мы могли бы задавать нашему
  1065. 39:06агенту. А, например, там ты хочешь
  1066. 39:09отменить какое-то конкретное
  1067. 39:10бронирование и добавлена специфика, с
  1068. 39:13которой агенту предстоит справиться. А
  1069. 39:16там или ты недавно разговаривал с
  1070. 39:19саппортом, и тебе сказали, что э агент
  1071. 39:22сможет помочь отменить твоё
  1072. 39:24бронирование. То есть какая-то может
  1073. 39:25быть немного другая задачка. И таких
  1074. 39:28бенчмарков, на которых они будут
  1075. 39:29замеряться, их очень много в данном
  1076. 39:31репозитории.
  1077. 39:32И как мы будем работать над этим
  1078. 39:34агентом, мы буквально его соберём по
  1079. 39:36кусочкам. То есть мы с вами в лекции
  1080. 39:37рассмотрели, из чего состоит в целом наш
  1081. 39:39агент. Сегодня попробуем реализовать
  1082. 39:41только то, что касается лмной части, а в
  1083. 39:43последующих занятиях будем добавлять
  1084. 39:44инструменты, память, гардрелзы и потом
  1085. 39:47всё это, собственно, попробуем оценить.
  1086. 39:49Итак, сегодня начинаем разработку с
  1087. 39:52самого простого агента. Я немного
  1088. 39:54сократила системный прот, потому что
  1089. 39:56большинство из того, что написано прямо
  1090. 39:58сейчас в нём, то, что мы просматривали
  1091. 39:59выше, нашему агенту не нужно, потому что
  1092. 40:01он не с базы данных не сможет
  1093. 40:02поработать, не сходить в какие-то
  1094. 40:04внешние опишки. Здесь я просто говорю,
  1095. 40:05что там ты ассистент, не галлюционируй,
  1096. 40:08пожалуйста, ничего лишнего не дёргай, а
  1097. 40:10можешь просто отвечать на мои вопросы.
  1098. 40:12Разрабатывать э нашего агента мы будем в
  1099. 40:15экосистеме L. Что нам понадобится
  1100. 40:17сегодня - это две части: Linkchain и
  1101. 40:19Longraph. Linkchain - это, собственно,
  1102. 40:22первый фреймворк в данной экосистеме для
  1103. 40:24разработки агентов. А он капсулерует
  1104. 40:27себе разные обёртки над промтами, а,
  1105. 40:29цепочками исполнения, инструментами,
  1106. 40:32агентами, памятью и так далее. А нграф -
  1107. 40:35это его расширение, а, которое нам
  1108. 40:37позволяет реализовывать агентов, у
  1109. 40:39которых состояние будет постепенно
  1110. 40:42изменяться, проходя через различные узлы
  1111. 40:45нашего графа. Также в этой системе есть
  1112. 40:47ещё LFOW. Это инструмент, который
  1113. 40:50позволяет визуально собирать агентов
  1114. 40:52даже без кода. И LMI - это инструмент,
  1115. 40:55который позволяет дебажить и отлаживать
  1116. 40:58наших агентов и многое другое.
  1117. 41:01Устанавливаем нужные библиотеки и
  1118. 41:02переходим, собственно, к написанию
  1119. 41:04агентов. Сначала сделаем обёртку над
  1120. 41:06Лэмкой, а тоже здесь импортируем нужный
  1121. 41:09нам класс чат Open AI, который м как раз
  1122. 41:12является обёркой для Open Aйных моделей.
  1123. 41:14То есть он знает, в каком формате нужно
  1124. 41:15им передавать разные промты и как
  1125. 41:17парсить их выхлопы. Дальше импортируем
  1126. 41:21обёртки над сообщениями. А это системное
  1127. 41:23сообщение, сообщение пользователя,
  1128. 41:25сообщение ассистента, ну и, собственно,
  1129. 41:27базовое сообщение, от которого они все
  1130. 41:28наследуются.
  1131. 41:30Теперь, а давайте чуть углубимся в то,
  1132. 41:32как работает нграф, то есть место самого
  1133. 41:34обычного пайплайна, там где у нас просто
  1134. 41:36от пользователя прилетел запрос, мы его
  1135. 41:37бросили в lлм, получили выхлоп и отдали
  1136. 41:39обратно пользователю. Здесь вводится
  1137. 41:41несколько абстракций. Мы создаём агента
  1138. 41:44как некоторый граф, в котором состояние
  1139. 41:46будет перетекать между узлами графа. Что
  1140. 41:49это даёт? Так разрабатывать продакшновых
  1141. 41:52агентов на самом деле намного проще,
  1142. 41:53потому что у тебя есть какие-то
  1143. 41:54абстрактные объекты, про которые ты
  1144. 41:56знаешь, в какой момент, что и как именно
  1145. 41:58должно было поменяться, и при переходе
  1146. 42:00из какого состояния в какое мы ожидаем
  1147. 42:02выполнения следующих действий. Итак, нам
  1148. 42:05нужно определить состояние, которое у
  1149. 42:06нас будет перетекать между вершинами
  1150. 42:08графа. Собственно, это мы и делаем. В
  1151. 42:10данном случае в состоянии мы хотим
  1152. 42:11хранить пока только сообщения, которыми
  1153. 42:13обменивался пользователь и ассистент.
  1154. 42:16Теперь, а, обсудим узлы, через которые
  1155. 42:18это состояние должно перетекать. Узел в
  1156. 42:20данном случае должен получить текущее
  1157. 42:22состояние агента, потом выполнить нужные
  1158. 42:24ему операции и отдать, собственно,
  1159. 42:27изменённое состояние. А в нашем случае
  1160. 42:30мы объявляем лмный узел, который берёт
  1161. 42:33текущее состояние, в котором должно
  1162. 42:35лежать сообщение пользователя,
  1163. 42:37дальше ходит в лэмку и дописывает ответ
  1164. 42:41Лэмки в состоянии агента. И давайте
  1165. 42:45перейдём уже к разработке самого агента.
  1166. 42:46То есть мы формируем его как граф, в
  1167. 42:49котором а вершинки - это некоторые
  1168. 42:52функции, рёбра определяют транзакции
  1169. 42:54между этими вершинками и передают между
  1170. 42:57ними состояние агента, которое должно
  1171. 42:59меняться. В нашем случае у нас будет
  1172. 43:01самый простой агент, у которого будет
  1173. 43:02просто старт, потом лмная нода и конец.
  1174. 43:05Но на самом деле, естественно, дальше мы
  1175. 43:07будем его расширять, подключая
  1176. 43:08инструменты, память и так далее.
  1177. 43:10объявляем наш граф, создаём его, а, с
  1178. 43:14каким-то начальным состоянием, а,
  1179. 43:16указывая, собственно, какой класс у него
  1180. 43:18будет храниться. Дальше задаём стартовый
  1181. 43:20узел. В нашем случае это лмная нода, и
  1182. 43:22она же будет конечной. Дальше мы
  1183. 43:25компилим наш граф в некоторое
  1184. 43:26приложение, которое уже непосредственно
  1185. 43:27можно будет запускать и исполнять, и
  1186. 43:29получаем самый простой граф. Теперь
  1187. 43:31давайте проверим, что у нас получилось.
  1188. 43:34Просто делаем обёртку, которая будет
  1189. 43:35красиво принтить выхлоп модели, и задаём
  1190. 43:38два вопроса, с которыми в целом наш
  1191. 43:39ассистент без чего-то дополнительного
  1192. 43:41сможет справиться, и с чем он не сможет
  1193. 43:44в данном случае. С чем он сможет
  1194. 43:46справиться, как мы ожидаем. Это спросить
  1195. 43:48про политику, где нужны там конкретные
  1196. 43:51подтверждения от пользователя при
  1197. 43:53исполнении некоторых действий. И да,
  1198. 43:55агент там может нам порассказывать. А
  1199. 43:57второе тоже попросить объяснить какие-то
  1200. 44:00ограничения по багажу при перелётах.
  1201. 44:03тоже потрясающе справился. Аа и задачки,
  1202. 44:06где агент уже не может сработать, это,
  1203. 44:08например, попросить отменить конкретную
  1204. 44:10резервацию. Мм, ну не сможет он так
  1205. 44:13сделать, просто потому что он может
  1206. 44:14только генерировать какой-то текст. И
  1207. 44:16здесь там вопрос тоже, какую компенсацию
  1208. 44:19конкретный пользователь сможет получить
  1209. 44:21по данному бронированию с перелётом а из
  1210. 44:24одного города в другой. Опять же, из-за
  1211. 44:25того, что у агента нету никакого доступа
  1212. 44:27изучить, что это вообще за бронирование,
  1213. 44:29в данном случае он нам ответить не
  1214. 44:31сможет. Но всё это мы будем решать в
  1215. 44:34последующих уроках, прикручивая к лэмке
  1216. 44:36инструменты, память, инструменты защиты
  1217. 44:38и так далее. На этом мы заканчиваем нашу
  1218. 44:41первую лекцию, где мы с вами подробно
  1219. 44:42рассмотрели из каких компонент состоит
  1220. 44:44агент, детально углубились в то, как
  1221. 44:46работают лмки и собрали простейшего
  1222. 44:48агента. В следующем занятии, которое
  1223. 44:50стартует совсем скоро, мы изучим, что
  1224. 44:52такое инструменты и MCP, и
  1225. 44:54непосредственно интегрируем их в нашего
  1226. 44:56агента.

About this transcript

This page contains the full transcript of Agents Week 2026 | Лекция 1.1 Intro to AI Agents LLM by Яндекс Образование , generated from the public captions YouTube serves with the video. The transcript has 7,016 words across 1,226 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.

What you can do with it

Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.

Free YouTube transcript tool

YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.