ym104432846
Вставьте ссылку на видео из Youtube, Rutube, VK видео
Задайте вопрос по видео
Что вас интересует?
00:00:00
Проблематика тестирования и валидации агентов:
  • Рассмотрение необходимости тестирования и валидации агентов
  • Обсуждение двух противоположных мнений о роли агентов в бизнесе
  • Примеры использования агентов в автоматизации рутинных операций
  • Важность обеспечения безопасного и надежного внедрения агентов
00:03:54
Представление докладчика и знакомство с темой:
  • Докладчик представляет себя и свою роль в разработке и применении больших языковых моделей
  • Упоминание опыта работы с предиктивной аналитикой и машинным обучением
  • Описание текущих проектов по внедрению больших языковых моделей в финтехе
00:09:32
Особенности и сложности работы с большими языковыми моделями:
  • Обсуждение кривой обучения и подходов к изучению больших языковых моделей
  • Необходимость понимания архитектуры и принципов работы моделей
  • Упоминание важности системного анализа и объяснения принимаемых решений в бизнесе
00:16:46
Организация учебного процесса и содержание курсов:
  • Описание структуры и содержания курсов по обработке данных и машинному обучению
  • Акцент на практических результатах и возможности применения знаний на практике
  • Возможность индивидуального подхода и разработки специализированных программ для компаний
00:27:32
Основные цели и план вебинара:
  • Постановка целей вебинара и ожидаемые результаты
  • Анализ рисков и ограничений агентов
  • Ознакомление с принципами построения управляемых систем с предсказуемым поведением
00:29:45
Архитектура и тестирование агентов:
  • Подробное описание архитектуры агента и его компонентов
  • Обсуждение методов тестирования и валидации ответов агентов
  • Пример использования модуля RAGOS для оценки релевантности ответов
00:51:55
Практическое применение и демонстрация тестов:
  • Демонстрация практического примера тестирования агентов
  • Использование GitHub Actions для автоматического запуска тестов
  • Применение фреймворка RAGOS для оценки ответов
01:49:24
Балльная система оценки и выбор метрик:
  • Описание балльной системы оценки ответов агентов
  • Выбор и использование метрик для оценки качества генерации ответов
  • Примеры использования метрик для определения релевантности и точности ответов
00:00:00
Инструменты и подходы к тестированию и мониторингу:
  • Обзор инструментов и фреймворков для тестирования и мониторинга агентов
  • Использование Prometheus и Grafana для мониторинга производительности и качества ответов
  • Примеры настройки и применения инструментов для оценки и улучшения работы агентов
00:00:00
Организация и содержание курса "LLM Development":
  • Описание структуры и содержания курса "LLM Development"
  • Обзор учебных материалов и практических заданий
  • Возможности получения диплома о повышении квалификации
00:00:00
Практическое занятие и демонстрация тестов:
  • Проведение практического занятия по тестированию агентов
  • Демонстрация работы тестов и интерпретация результатов
  • Обсуждение полученных результатов и рекомендаций по улучшению работы агентов
0: Сегодня у нас будет интересная тема, я думаю, она не только хайповая, точнее, она хайповая ещё и потому, что она действительно назрела на текущий момент.
1: Это тестирование, валидация агентов. То есть здесь, ну, тестирование, валидацию можно, в принципе, по существу слить воедино, то есть, ответив просто на вопрос, каким образом нам понимать, если мы разработчики, если мы представители
2: Бизнеса и собираемся внедрять решения, основанные на больших языковых моделях и каких-то агентских системах решили внедрять наш бизнес, то каким образом мы поймём, что вообще то можно внедрять, что
3: Будет безопасно, что это, по крайней мере, не сделает хуже нашему бизнесу, потому что на текущий момент есть, по моему представлению, и, в принципе, со мной, наверное, многие согласятся. Есть 2 такие полярные точки зрения относительно агентов.
4: Это 1 точка зрения, что агенты могут заменить там чуть ли не 80% персонала текущего. То есть они настолько все умные, хорошо ещё умеют читать и понимают текст и ещё внимательные при этом
5: Григорий, спасибо за развёрнутую. Развёрнутый. Я буду периодически прошу прощения, буду периодически отвлекаться в чат, отвечая на ваши реплики и комментарии, но, конечно, буду сохранять основную линию повествования.
6: Так вот, относительно полярных точек зрения и агентов, что 1 точка зрения обычно это бизнес, который считает, что можно заменить 80% всех своих сотрудников на практически, ну,
7: На какие-то системы, которые не просят зарплату, не просят кушать, но при этом гораздо более внимательны, практически не совершают ошибок и могут решить многое, что не может решить человек с 1 стороны, в какой-то степени это действие.
8: Но так, то есть многие рутинные операции это очень похоже. Наверное, то, что сейчас происходит в этой области. Это похоже на промышленную революцию, только уже в интеллектуальной сфере, когда рутинные операции интеллектуальные заменяются на что-то автоматизированное, то, что раньш
9: Все пытались выполнить при помощи каких-то систем из серии огромных деревьев и else деревьев с условиями, то теперь все стало гораздо интересней и как будто бы даже реализуемей другая точка.
10: Зрения на другой стороне находятся люди, которые понимают, как работает.
11: Которые понимают, как работают изнутри, в принципе, большие языковые модели. И тут даже я встречал такое сравнение, что это собака, которую научили говорить на языке человека. То есть она может говорить как человек и вроде как бы звучит разу.
12: Но она сама не понимает, что она говорит, и в принципе это тоже не лишено смысла. Это действительно в какой-то степени так оно и есть. И вот говоря о том, насколько 1 точка зрения
13: Совмещает со 2 можно сказать, что просто для многих операций, которые сейчас хочется, рутинных операций, которые хочется автоматизировать, в принципе, достаточно и такого уровня понимания, то есть непонимание текста дословно.
14: Понимание смысла, а просто такого как бы гибкой гибкой логики ответов, или респонсов, или гибкой логики движения по условию.
15: Не нужно пихать агентов везде. Вот Григорий повествует. Это действительно с 1 стороны. Так, но сегодня мы посмотрим, куда все-таки их. Если уж решили запихать, то как их запихать таким образом, чтобы агент там не наломал дров и не испортил нам все.
16: Всю клиентскую базу не распугал, например, если это какой-то агент, который отвечает на вопросы клиентов. Итак, давайте для начала. Так. Ну мы уже проверили, что меня видно и слышно, поэтому здесь заострять внимание не буду. Для начала познакомимся. Меня зовут Илья.
17: На текущий момент я занимаю должность дисижен саентиста. В принципе, у меня перед тем, как заняться большими языковыми моделями, я долгое время работал в принципе с предиктивной аналитикой, там были модели машинного обучения, были
18: Вначале классические статистические модели были простые самые модели регрессионные на текущий момент мы, мы, Николай 2 мы с моим коллективом внедряем большие языковые модели в принятии решений в финтехе.
19: Ну там она будет работать не как чат бот или что-то, что взаимодействует с клиентом, а это все-таки более такая контролируемая задача, а именно распознавание каких-то сложных сущностей из больших блоков текста.
20: Да, Сергей, вот Сергей сказал очень важную вещь о том, что во всех вот больших языковых моделях, которые на текущий момент, ну, они просто так построены, у них это как бы, когда внедряешь большую Языков.
21: Модель в какой-то продукт, то появляется источник стохастичности, так называемый, то есть они работают по принципу недетерминизма, то есть они могут выдать даже при 0 температуре.
22: Они могут выдать немного другие ответы в зависимости от того, как ляжет контекст, как промт, немножечко изменится и так далее, и так далее. То есть эту вещь бывает сложно очень контролировать. И, конечно, нельзя сказать, что она всегда в 100 процентах случаев воспроизводит поведение.
23: Ну, предыдущих циклов срабатывания, например. Поэтому статистичность вот эта, она, с 1 стороны, отпугивает, а с другой стороны, статистичность, она помогает как раз и генерить вот эти самые респонсы, которые
24: Мы все так Любим. Ну за что мы можем? В каком-то смысле, почему нам нравятся эти модели? Потому что они говорят на таком более менее очеловеченном языке? Хотя, конечно, насмотренность определённых пользователей уже вызывает восхище.
25: Когда человек может уже, ну, оценить текст, прочитав пару тройку предложений, сказать, слушай, ну это обороты, которые используют чат gpt, это сгенериванный текст, и поэтому я ему не верю, я отношусь к нему исключительно как к сгенериванный, например, какие-нибудь там
26: Помимо длинных тире, там ещё могут быть обороты. Если это не, а то обязательно б, то есть какие-то такие вещи. И вот вопрос, да, где конкретно агент помогает, а где он наоборот, может помешать. Так пройдём дальше немножечко хотел рассказать.
27: Про правила текущего вебинара. Ну, я вижу, что, в принципе, правила вебинара, я думаю, нативно понятны. То есть, активно участвуйте, пожалуйста, не стесняйтесь, задавайте вопросы в чат. У нас будут небольшие остановочки в процессе повествования. Я буду периодическ.
28: Отвлекаться на чат и отвечать на горящие вопросы, либо накопившиеся вопросы, либо на вопросы, которые могут так, ну как бы сквозные вопросы относительно школы, относительно темы сегодняшнего занятия и
29: Ну и многие другие. В общем, в любом случае спрашивайте. Лучше спросить и уточнить, чем пребывать как бы в таком состоянии неопределённости. Вопросы я вижу в чате, поэтому, пожалуйста, не стесняйтесь, задавайте, ставьте.
30: В том числе, если вдруг что-то нравится, если вдруг что-то с чем-то не согласны, тоже можете как бы выписывать какие-то консерны, замечания в чат тут не возбраняется мы, если у нас в конце сегодняшнего занятия сложится опре,
31: Дискуссия даже на эту тему это будет только, ну, всем будет в плюс, так или иначе, у нас не просто такая, знаете, как я не как голова говорилка говорить, просто мы можем потом уже перейти к таким, как бы, к Такому.
32: Обсуждению и обменяться опытом в каком-то смысле. Но все-таки я буду выдерживать определённый сценарий. Запись сегодняшнего вебинара придёт к вам на почту после того, как будет обработана в течение
33: Дня или 2. Так, ну давайте, может быть, у меня будет к вам вопрос. Так Григорий уже сообщил о том, 1 из участников нашего, 1 из наших зрителей. Вот если есть кто-то
34: Ещё хочет высказаться, то есть с чем вы сегодня пожаловали на этот вебинар, какие у вас есть вопросы? Сомнения? Может быть какая-то уже назрела задача, которую хотелось бы посмотреть, как можно решить какой
35: Способ вообще может быть предложен для решения. То есть наверняка очень многие уже работают, потому что совсем, наверное, совсем, наверное, не имея как бы контекста информационных технологий, сложно погрузить.
36: Сразу большие языковые модели, многие уже работают в сфере информационных технологий, на каких-то должностях. Может быть это дата аналитики, дата, инженеры, может быть даже бэкенд, разработчики, то есть создать какой-то умный бэкэнд. Ну как, в принципе это
37: Часть бэкэнда, так или иначе. То есть, м, плюс дополнительный инференс плюс веб морда. Очень классно. И в принципе, большинство современных систем так и работает. Спасибо, Руслан, да, начинающий. Ну все.
38: Так или иначе, начинающие или немного продолжающие дс, там, может быть, если вспомнить вот эту вот кривую обучения, где вначале такой пик, и все думают, что они начинающие, когда они уже прошли, можно сказать, половину пути.
39: Да, Виктор, спасибо. Валидация. Дебаггинг. Вот сегодня у нас будет много интересных приёмчиков. В принципе, основной материал сегодняшнего повествования построен на общих
40: На общих таких схемах валидации респонсов, то есть отлавливания каких-то, может быть, некондиционных респонсов, ллм и и агентов. Ну, это может быть агент от лм, по сути, в каком смысле отличает, м, как основа?
41: То есть это ллм плюс оркестратор какой-то, который может выбрать инструмент снаружи, ещё что-то. То есть, по сути это и агент, это лм, которому прикрутили ручки, за которые он может дёргать, или кнопочки, на которые он может нажимать.
42: Выполнять какие-то действия, набор.
43: Но вижу, Сергей, да, в процессе создания я агента внутри компании. Ага, ага, отлично. Да, да. Ну, кстати, насчёт актуальности сегодняшней темы, это уже даже не мои слова, это слова, где
44: Который я вычитал уже во многих таких изданиях. Сквозная тема, которая прослеживается. То есть на текущий момент очень, ну, все уже научились разворачивать локально. Ну, те, кто интересовался этой темой, может быть в прошлом году или предпредыдущем году.
45: Научились разворачивать локально, научились внедрять это все в сервисы. И на текущий момент назрела проблема именно качества ответов. То есть как сделать так, чтобы лм была контролируема, воспроизводима и давала такие ответы, которые будут
46: Плюс бизнесу, нежели когда они просто что-то отвечают, потому что, да, 1 вау эффект, о боже, она говорит, он уже прошёл, а теперь нам нужно, чтобы она говорила по делу. И в большинстве случаев она действительно говорит по делу и дела.
47: То что по идее должна делать но часто бывают и другие проблемы поэтому как валидировать это важный момент который мне кажется эта тема она будет дальше дальше углубляться расширяться и сейчас это новый как бы такой edge edge.
48: Вопрос.
49: Угу. Да, Константин, спасибо. Серьёзный внушительный опыт. И, ну, актуальная задача, да, многие делают из лм, скреперов, ресурсов, снифферов и одновременно, это же и фильтр, это же и
50: Одновременно это же и фильтр одновременно. Это же какая-то может быть такой очень умный етль получается в каком-то смысле, если я правильно понял
51: Вашу текущую задачу. Хорошо, спасибо, что отписались. Предлагаю продвинуться дальше. Немножечко расскажу про нашу школу, прежде чем мы перейдём к основной теме. То есть я являюсь как представитель
52: Преподавательского корпуса отус могу говорить, может быть даже за, ну, в каком-то смысле, как представитель, по крайней мере, курсов, связанных с обработкой данных больших данных и
53: Машинного обучения. Итак, отус это комплексная, ну, во первых, это онлайн платформа для обучения. То есть это авторские курсы. Обычно люди, которые создают курсы, они обладают не только, ну, обладают курс.
54: Создают курсы на нашей платформе, они обладают не только большим именно опытом в информационных технологиях, но ещё и какой-то опыт все-таки имеют педагогический, но в каком смысле педагогический?
55: И опыт в том смысле, что они понимают, каким образом нужно выстроить материал для того, чтобы материал правильно мог быть.
56: Воспринят аудиторией, то есть от простого к сложному. Вот эти простые принципы, вроде бы, кажется, да, от простого к сложному побольше примеров. Объяснение сначала теории, потом практики, но при этом все-таки часто возникает именно
57: В каком порядке мне разбираться? То есть мне сначала в архитектуру ллм лезть или сначала нужно относиться к этому как к чёрному ящику и попробовать внедрить продукт, а потом уже как бы сверху вниз разбираться, как это все работает. У всех по разному происходит. Вот это вот погру.
58: Материал, но, тем не менее, программа выстроена таким образом, чтобы это было понятно, доступно. И самое главное, на выходе был именно вот результат, когда человек выходит абсолютно, ну, извините за удовлетворённый
59: Обучение, то есть он понимает, я понял вот это вот это вот это при этом это не именно иллюзия понимания, а это именно навык, когда человек может применять знания на практике, ну то есть на текущей должности, либо в будущем, там быстро продвигает свой pet проект и доводит его наконец то
60: До финала, чтоб можно было кому-нибудь его. Ну, например, продать. Разные встречаются слушатели, у всех разные консерны, но тем не менее единый принцип, когда не только не просто насыщение информацией, но все-таки Веде.
61: Так, облайну за ручку, чтоб можно было пройти от самых Азов до полного готового решения, которое, в принципе, годится в продакшн, потому что все примеры будут как в продакшене, ну почти все, вот.
62: Ну, с некой такой степенью, знаете, как расширения, чтобы можно было все-таки рассмотреть, подробно снабдить комментариями какие-то части, ну, то есть аннотации дополнительные.
63: Также мы работаем с бизнесом, можем разработать отдельно программы для it компании, то есть если к нам целый отдел приходит, то мы можем под задачи, под стек этой компании создать программу и провести
64: Вести подготовку специалистов на заданные, можно сказать, на заданные темы до заданных целей дойти.
65: Да, вот и спасибо, Алексей, да, про архитектуру понял. Это важный момент. Ну, все моменты важны. Тут как бы не хотелось бы говорить, просто вот эти общие слова, важный момент или неважный, но вот именно архитектура и, в принципе, системный анализ,
66: Всей it платформы компании и понимание, куда можно внедрять агента, куда не нужно внедрять агента. Ну вот я, например, в финтехе работаю, у нас с этим делом очень надо быть осторожным. То есть у нас объяснимость респонса и
67: И прозрачность принятия решения ставится, ну, во главу угла, и даже если кажется, что лм. Может предсказать, точнее, может распознать больше, но если она делает это не достаточно, точно недостаточно воспроизводимо.
68: Достаточно прозрачно, то бизнес очень насторожённо к этому относится.
69: Григорий, отвеча вот Григорий, например, интересуется, как лучше воспринимать, как лучше разбираться с системами искусственного интеллекта и агентами, то есть разбираться сначала в начинке, то есть в архитектуре.
70: Как трансформер устроен, как механизм внимания работает? Или надо сразу все вместе целиком пытаться понять или идти сверху вниз, то есть относиться именно как к чёрному ящику. Ну, лично моё мнение тут опять же больше про то,
71: Вот, Елена, кстати, да, про скидку сейчас расскажу. Поболтал. Это про как раз про агентов, что они там могут наболтать. Григорий, возвращаясь к вашему вопросу лично мне, как человеку больше Такому сосредоточенном.
72: Может быть. Ну, то есть я в финтех пришёл как бы от бизнеса. Смысле. Нужно было понять источники риска, источники стохастичности именно на потоке выдачи кредитов, дальше попробовать эти источники, ну, стохастичность как бы снизить, то есть снизить риски.
73: Повысить предсказуемость. Там это связано с тем, какому клиенту в принципе, давать кредит, какой не давать. И тут получается как бы у меня сверху вниз это шло. То есть я видел сначала систему целиком, потом разбирал эту систему, декомпонирован на кубики дальше
74: Каждый кубик уже разбирал индивидуально, но я бы сказал так, чтобы понимать.
75: Понимать вот эти вот системы искусственного интеллекта лучше идти одновременно, то есть смотреть на задачу в целом, на архитектуру в целом, но при этом понимать хотя бы верхнеуровнево вот это вот как строит
76: Эмбеддинги, что такое в принципе эмбеддинг, как построен механизм внимания в больших языковых моделях и как вызывается инструмент. То есть такие вещи вроде бы не очень сложные с 1 стороны, но с другой стороны, они помогают
77: Понимать поведение так снимает вот эту неопределённость поведения, не понимаешь почему он по разному отвечает на одно и то же, а там дальше начинаешь ага, температура ага, выбирает кей топ k токенов что такое токен ну потихонечку как бы.
78: Курочка по зёрнышку клюёт и потихонечку, потихонечку снимается неопределённость в целом. И в какой-то момент происходит такой качественный скачок в обучении, в самообучении, когда ты начинаешь понимать, как это все работает, а дальше уже, если обладаешь на
79: Программирование то уже можно там дальше внедрять, уже внедряться уже куда-то в кодовую базу. Ну хотя код, конечно, надо понимать, уметь читать и применять какие-то вещи. Виктор вот советует, например,
80: Начинать с неё платформы классная штука. То есть это, ну скорее не цель. Это, знаете, как это как раз архитектурное видение и агентов. То есть когда мы смотрим на систему как набор Кубиков со стрелочками, очень классно данные пришли.
81: Отсюда прошли 1 первые ворота, вторые ворота, здесь мк принимает какое-то решение, либо она отправляет данные обратно, цикл как бы запускается такой респонс реквест.
82: Так, Григорий, я не понял вашего вопроса. Либо
83: Либо пошло дальше. То есть мы не видим кода это новый код системы, но при этом помогает разобраться с тем, как это примерно работает.
84: Я бы сначала погрузился. А, все, я понял, Григорий, я дочитал вопрос тут больше про то, как векторизуется все и как хранится все. Я бы, например, посмотрел, обозрел сначала вообще принцип векторного хране.
85: Принцип векторизации необязательно погружаться опять же, в архитектуру трансформера, который эмбеддинги делает, но понимать, что такое эмбединги, и, ну, как бы представить себе вот это векторное пространство на
86: Токен, а дальше уже посмотреть, какие, в принципе, для этого инструменты есть. Может быть, постгре. Он не самый лучший в данном случае, потому что есть специализированные и посмотреть хотя бы там, что-то попробовать, ну, не знаю, повадить, даже посмотреть, как
87: Система работы, что она в принципе, возвращает, потому что пост, он, ну, там будет слишком, может быть, много, придётся дописывать снаружи, чтобы пользоваться этим, так как придуманы вот эти инструменты, ну, вектор.
88: Например?
89: Это труп, это постгре, я так понимаю, вектор. Ну, сейчас кьюран.
90: Quran это 1 из самых популярных вещей там, ну она больше, конечно, потому что путешествовать по контексту окей, здесь уже вкусовщина по выбору инструментов, я все-таки пошёл бы дальше, чтобы не топтаться на месте, потому что тема большая и хочется
91: Все время убить инструменты обязательно обсудим. Чуть чуть позже. Может быть как раз у нас будет небольшой блок вайб. Код не вариант. Окей, справедливо это расхолаживает в каком-то смысле. Так, по поводу
92: Курсов повышения квалификации, то есть отус имеет государственную лицензию и может выдавать дипломы государственного, ну, не государственного образца, как вуз, конечно, но эти дипломы, они подходят под определение дипломов по повышению квалификации и
93: Соответственно, они помогают.
94: Ну то есть можно их предъявлять в государственные организации, то есть они воспринимаются нормально линейка курсов, которые у нас есть, помимо хайповых тем и machine learning, и deep learning у нас также много курсов.
95: По различным языкам программирования, по архитектуре, то есть системный анализ и построение сложных информационных систем, инфраструктура, то есть много курсов для девопсов, мопсов и сейчас уже мопсов, то есть
96: Управлять инфраструктурой. Информационная безопасность, дата сайнс, естественно, как такой интеграционный получается момент. То есть там немножечко программирование, немножечко много статистики. Я бы не сказал, что её немножечко, но
97: Работа с данными по умному гейм деф, то есть, ну какая-то разработка может быть там есть курсы по дизайну именно игр, дизайну, в смысле как визуально сделать красивую игру, управление аналитика.
98: То есть дата аналитика это всякие построения всяких финансовых отчётов, это аналитика бизнес процессов в том числе. То есть, конечно, здесь блоки выделены как такие, знаете,
99: Как будто разделённые курсы независимы друг от друга. На самом деле, конечно, курсы между собой пересекаются. То есть, если мы говорим про архитектуру, то там все равно будет и программирование, в том числе и на пайтоне. Там, конечно же, будет архитектура, чтобы понять, где нам строить.
100: Нашу инфраструктуру, я имею ввиду, где нам строить нашу архитектуру. Конечно, будет пара вопросов о безопасности. Какие прокинуть вещи? Может быть не так глубоко, как если бы это был специализированный курс.
101: Но в то же время все-таки курсы пересекаются друг с другом. Конечно, фокусность, фокусность и добавка. То есть на что курс больше ориентирован, на что больше акцент сделан. Да, я понял.
102: Vektor это настройка на на, если честно, я да, я мало слышал про это в.
103: Слышал про разные инструменты, видел, пользовался. Но вот пост, честно говоря, для меня это что-то из серии просто большой эскюэль на кластере не, ну со своим немножечко наречием, то есть
104: Так, кость, как заставить рак выдавать релевантные данные с тупым делением на чанки перекрытием не работает. Вот тоже вопрос. Это, кстати, 1 из вопросов. Как вообще построить агентскую систему, чтобы она правильно работала? Это боль.
105: Для всех. Ну вот, например, в гидрант есть такие метаданные. То есть можно, когда делишь на чанки ещё при этом дополнительно каждый чанк помечать что-то типа такой глава 1, глава 2, глава 3. А можно добавлять ещё, ну, название если, например, это какой-то мага,
106: Зин.
107: Если это какой-то магазин, то интернет-магазин, то там будет, например, дополнительные какие-то вещи, связанные с тем, как категория подкатегория товара, тогда сначала будут просчитываться метаданные, то есть выделяться из запроса, а затем уже
108: Чанки, которые к этим метаданным относятся. Да, прошу прощения, влад, очень справедливо. Давайте перейдём как раз к основной теме. Ну, про тему. Понятно, каков будет сегодняшний маршрут вебинара, то есть во перв,
109: Почему агента нельзя выпускать без Тестов? Ну, это, я думаю, уже многим понятно, но все-таки пройдём несколько кейсов, разберём, что такое галлюцинация, чтобы это было совсем точно до конца. Понятно. Посмотрим общую. Ну,
110: Может быть, упрощённую несколько, но все-таки общую архитектуру агента и типовые ошибки, которые возникают на разных в разных частях этого агента. И рассмотрим теоретические принципы тестирования. То есть какие части агента, каким образом можно тестировать, чтобы получать
111: На выходе респонс безопасный, там никакие данные секьюрные не были, слиты, пароли и так далее, чтоб не было каких-то промт, инъекций и так далее. Демо посмотрим небольшое демо про внедрение Тестов.
112: Ну в response, по сути там будут чистые тесты, как будто нам наш агент уже наотвечал и нам остаётся только оценить его ответ и внедрение этого этих Тестов в ci cd pipeline немножечко расскажу в целом.
113: Про курс Эрвин девелопмент, то есть какие темы освещаются на курсе, в каком порядке и что будет рассмотрено вообще целиком, чтобы понять, подходит ли вам этот курс для ваших задач или нет. И можем немножечко, если останется время, подиску.
114: Дискутировать на тему, подискутировать на тему того, что, собственно, происходит сейчас, какие остались у вас вопросы и так далее.
115: Итак, какие у нас цели? Сегодня? Обычно вебинар в наших школах строится по принципу постановки целей достижения этих целей в процессе, в процессе вебинара и осмысление этих
116: Для чего мы все это собрали вместе, собрали в кучу, прослушали сейчас, что нам это в итоге даст. Это похоже на такие принципы, как бы знания, умения и навыки, которые применяются в педагогике современной. Но все-таки так.
117: Немножечко модерновое решение. То есть мы посмотрим, какие риски и ограничения есть у агентов, почему они иногда могут выдавать нерелевантные респонсы, проанализируем архитектуру и найдём точки отказа. То есть посмотрим в принципе,
118: Из каких блоков состоит в целом и агент, и какие блоки могут, как себя вести и научимся строить ну, в каком-то смысле там мы рассмотрим 1 из модулей такой python, модуль рагос в качестве практи.
119: Применения, то есть мы его практически применим для оценки релевантности респонс, то есть он одновременно оценивает и ретривал часть, то есть часть, которая возвращается из векторной базы данных, ещё и ту часть, которую возвращает нам, собственно,
120: Ну и агент в целом, то есть он поймёт, он позволяет оценить респонс лм сама придумала или взяла из контекста, должна брать из контекста. Если такова инструкция, соответственно, вот подобные такие тесты, они
121: Хотя бы какие-то грубые ошибки. Если наполнять эти с кейсами как можно больше, то грубые ошибки можно будет.
122: Превентивно так убрать из продуктового решения. И в конце Концов, вы научитесь таким образом, поймёте принципы и научитесь создавать управляемые рак системы с предсказуемым поведением. Предсказуемость. Мне кажется, здесь ключевое слово.
123: Что можно сказать, что если мы поставили ворота качества на предмет токсичности, скажем, то есть точно не ответит нам токсично, если вдруг пользователь даже начнёт ей что-то такое, ну, провокационное писать, ну,
124: Говорить о чат ботах. Так, 1 часть это почему агентов нельзя выпускать без Тестов? Многие из вас, наверное, слышали. Виктор Григорий. Точнее, практика будет небольшая. Да, я покажу небольшой элемент.
125: Vs code в конце занятия и запущу с пайплайн в гитхаб это все будет отправляться, там будут эти тесты автоматически запускаться посмотрим, что система в принципе будет тестировать. Объясню логику.
126: А вы сможете потом этот код себе, ну, склонировать и посмотреть, может быть более внимательно. То есть это лишь 1. Тут, конечно, можно долго говорить про тестирование, можно отдельный курс по тестированию оо, в принципе, запускать, что тема очень обширная, но
127: Принципы неизменны, мы не можем и тестировать, как тестируем бэкэнд, например. То есть, когда мы сравниваем экзакт матч между респонсом, который вернул нам наш сервис, и респонсом, который
128: Хранится где-то, как в словарике правильных ответов. Ответ всегда будет разный. И, собственно, вопрос как в таком случае сравнивать результат? Давайте начнём, наверное, с проблематики.
129: Так, презентацию обязательно. Презентация тоже будет прикреплена к сегодняшней сегодняшнему занятию. Ссылку я обязательно вам либо файл прикреплю, либо ссылку я обязательно прикреплю сегодня после нашей лекции.
130: Так, галлюцинации, я думаю, всем хорошо знакомы. То есть, когда лмка отвечает не по существу или сама придумывает какие-то вещи, которых на самом деле нет. Ну вот, например, противоречие фактов и выдумывание фактов, противоречие фактов, когда лмка, ну вроде бы
131: Ответила как будто бы правильно, но не точно томас эдисон на самом деле изобрёл лампочку.
132: А на самом деле томас эдисон изобрёл лампочку, а телефон изобрёл Александр белл. Вот, ну, в разных, по моему, в разных странах. История изобретения телефона разная. У нас это был Попов, но, тем не менее, вопрос.
133: О том, на чем мучилась, она училась на текстах, которые есть в интернете, и, соответственно, там, где было
134: Ну, не вранье, но какие-то ошибочные сведения, она их тоже выучила. Соответственно, может их выдавать как респонсы. Тоже самое с выдумыванием фактов. То есть Строитель, если спросить конкретный вопрос. Вот, например, как эйфелева башня, как её строительство повлиял?
135: На экологию. Там, во Франции, последствия были какие-то, об этом никто не писал никогда. В принципе, ну, башня и башня, ничего такого. Но при этом вопрос был задан конкретно, и ллм постаралась ответить на него.
136: Существу, то есть придумала, если не нашла ответ, придумала, по сути, какие-то несуществующие сведения о том, что на самом деле какой-то тигр там парижский существовал. В общем, понятно, что это, ну, если даже человек распознает, если будет
137: Читать. Не знаю, не супер энциклопедические, но мы часто пользуемся чатом gpt для того, чтобы уточнить какие-то сведения. Ну не мы, в смысле, а современные люди, как бы, которые познакомились с этим замечательным инструментом, и
138: Вот тут как раз предостережение, что chat gpt это не база знаний. В последнее время, конечно он обучен на актуальных
139: Так, Григорий, презентацию я приложу к чату, когда у меня закончится блок повествования. Обязательно, чтоб этого, эту вещь немножечко, как бы сократить. Итак.
140: На чем я остановился? Да, вот следующий блок про галлюцинации тут уже интереснее. То есть сейчас уже появилась такая тема, как rising, а про факт, да, то, что люди обращаются к чату gpt как к источнику знаний, хотя по факту это не
141: Источник знаний это языковая модель, она помогает собрать разрозненные слова в кучу и выдать какой-то человеческий ответ. Не обязательно слова, собранные в кучу, будут содержать в себе релевантную информацию, релевантную объективной реальности.
142: Итак, галлюцинации, верности есть несоответствие, инструкции, ну как заставить не галлюцинировать, как правило, никак. Чуть чуть дальше я расскажу почему. И здесь вопрос только поставить как можно больше фильтров, ворот и каких-то дополнительных инстру.
143: Моментов, которые позволяют вот эти самые галлюцинации, как можно больше снизить, ну, сделать контролируемое поведение. То есть, например, несоответствие инструкции. Переведи мне предложение на английский. Какова столица Франции? М. Увидел
144: Знак вопроса. Подумала, что её спрашивают, какова столица Франции, и начинает отвечать на этот вопрос. Хотя по факту инструкция была другой, тоже самое контекст. То есть, если даёшь контекст ей. Вот, кстати,
145: А radio да, телефон так, так, так вот, пожалуйста, да, а кто-то ведь потом транскрипцию этой лекции Андрей транскрипцию этой лекции запишет в интернет, и, пожалуйста, я перепутал телефон и радио.
146: Запишет в интернете и в итоге какая-нибудь это все дело заберёт себе в качестве обучающих данных, в итоге научится на бреде. Вот. В общем нехорошо получилось, но тем не менее.
147: Показательный случай, хотя на самом деле никакого намерения соврать не было.
148: Итак, ну давайте, я думаю, вы поняли идею о том, что такое галлюцинации. Какие случаи вообще происходили, по крайней мере, из таких резонансных недавно вот тут я в чате видел, кажется, Елена говорила про скидку 80%. Вот похожий случай был.
149: Когда чат бот эр Канада неправильную информацию о возврате билетов дал клиенту и клиент в итоге не смог вернуть билет в установленный правилами срок, потом пошёл судиться с этой авиакомпанией, пошёл.
150: В суд предъявлять. Вот скриншоты. Вот у меня, видите, тут написано, что чат бот мне сказал, что 90 дней у меня на возврат, а на самом деле 14. Ну, суд, конечно же, признал.
151: То, что чат бот является представителем компании air canada и, соответственно, обязал её выплатить, ну, во первых, принять билет, выплатить компенсацию и так далее. Ну и репутационные, естественно, риски, там 2, 3 случай, 2 случай, это когда в финансовую организацию обратился.
152: Клиент, он там какой-то у него был, скажем, кейс в этой организации он решил спросить чат бота про какие-то вещи.
153: Какие-то вещи, связанные, ну, с каким-то конкретным делом. Ну и употребил верджин мани имя компании вот сократил до просто virgin в контексте, если это человек почитал в контексте, становится понятно.
154: Что virgin это понятно, часть названия компании, но чат бот имеет фильтры на, ну какую-то, может быть, не обсценную лексику. Вирджин это если в переводе с английского это невинность. Вот. И он подумал, что клиент его какие-то гадости спрашивает.
155: И начал вместо того, чтобы ответить на нормальный вопрос нормально на вопрос клиента он начал его отчитывать как, как вообще то не должен был делать? Ну то есть, соответственно, false positive, фильтр, токсичность.
156: Так вот, Михаил, так, Елена говорит, простейший агент на яндексе, при такой инструкции 2 раза говорил, не знаю. Ну, вообще, да, там в системном промте обычно задаётся, что бери только из контекста, но даже это
157: Часто не помогает тут, да, вопрос, как все-таки строить агентов, чтобы они
158: Принудительно лезли в контекст. Вместо того, чтобы выдавать респонс на ходу, чуть чуть позже расскажу мы доберёмся, когда до архитектуры. Ну и последний случай такой из резонансных. Это известный российский банк. Пользователь пожаловался
159: Что не работает отпечаток пальца и чат бот ему ответил, что пальцы не те там. Ну, короче говоря, гадость сказал, вот, соответственно, грубая, неуместная фраза со стороны чат бота это прям красный флаг и такое должно было быть, конечно, как будто
160: Коробочное решение какое-то применялось в этот момент. То есть почему это, в принципе может происходить? Ну вот на данном графике можно посмотреть, ну относительную частоту. Окей. Тут, конечно, гораздо больше данных на самом
161: Деле, но, тем не менее, некие объекты, либо чанки данных, либо чанки текста, на котором училась типичная там предобученная модель, неважно, большая или маленькая опенсорс модель среди них, конечно, среди текста
162: Который она видела, преобладает чистый, нормальный, хороший, правдивый текст, там 90% практически. Вот. Но при этом весь текст отфильтровать не получается, потому что обычно те компании, которые обучали свои
163: Модели, они их выпускали просто в интернет, как бы на свободный такой выпуск, а в интернете всякое встречается, и в том числе и ругань, и
164: Токсичность и все, что угодно. Ллм не умеет по умолчанию, и в принципе, в ней не заложены механизмы отличать 1 от другого. Соответственно, она все, что видела, все и выучила, и отсюда следует тезис о том, что ллм.
165: Чисто теоретически может выдать всегда какой-то ответ, если вдруг её триггернет именно вот эти токены выдавать клиенту ответ я имею ввиду типа токсичного или какого-то обидного или какого-то
166: Какой-то угрозы и так далее, и так далее. Ну здесь показана частота, примерно как распределяются классы различных ответов, но в целом, наверное, они похожи. То есть это не ответы, это тренировочные данные, но ответы в чистом виде они будут, ну то есть распреде,
167: Будет по классам похоже.
168: Вот, пожалуйста, я вижу в чате очень много Рассказов про то, как даже агентские системы, то есть не просто чистая лмка, как агентские системы, тоже могли придумать, если не знают это.
169: Проблема, то есть отсюда сразу напрашивается вывод о том, что nel ну то есть вот на слайде потом можете посмотреть эти кликабельные ссылки, то есть статья, в которой 1, 2 и 3, в которых
170: Такой как бы опыт взаимодействия с современными чат ботами. Соответственно, обычно здесь говорится о том, кому кто как неправильно ответил. То есть, в принципе, проблема уже назрела теперь, как её
171: Решить. Я думаю, здесь вопросов нету. То есть, я думаю, вы понимаете, что такое галлюцинации, почему галлюцинируют системы. И спасибо большое за обратную связь. Я вижу, многие сталкивались с подоб.
172: Вещами, то есть, ну это логично. То есть частота встреч. То есть я вижу, что практически каждый активный участник нашего чата сталкивался с подобными, с подобным поведением.
173: Искусственного интеллекта. Соответственно, это говорит о том, что проблема частая. То есть это не кто-то 1. Это на самом деле
174: Это на самом деле проблема актуальная. Давайте теперь перейдём к архитектуре.
175: Да, Виктор, какие ресурсы доступны для тестирования, в принципе, сейчас, да, используется часто приём ллм эсдач, то есть более сильный ллм контролирует ответы слабой ллм, но это лишь часть.
176: Ну, во первых, это дорого, это же надо каждый раз вызывать большую лм, токены стоят денег. Если у нас сервис нагруженный, то это сразу вылетает в копеечку. Но самое главное, конечно, это то, что большая лм тоже может немного
177: Не всегда даёт возмо, ну не всегда пропускает, точнее, иногда пропускает даже какие-то проблемные респонсы. То есть, соответственно, есть 3 уровня, как бы, то есть простой уровень это какой-нибудь
178: Тический анализ простой, детерминированный, либо анализ респонса и сравнение его с контекстом именно с точки зрения косинусной сходимости и ещё 1 способ это прямо хьюман.
179: Lenin с респонсом человека, но это самый дорогой способ, но если нам хочется прям на 100% снять наши проблемы, то на время тестирования садится ещё человек и смотрит внимательно.
180: Да, Алексей, то есть кривые ответы, которые похожи на правду, это на самом деле проблема.
181: Потому что, ну, не знаешь, как бы нету. В самом ответе не содержится никаких сигналов на то, что он плохой. То есть ответ семантически верный, он построен там по правилам русского языка или английского, в зависимости от тог,
182: Где работает этот чат бот, но в нём просто недостоверные сведения содержатся, и здесь разные приёмы сейчас существуют. Я чуть чуть позже.
183: Ну, хьюман, делу это не решение. Конечно, это не все 10% всех ответов нужно ловить. То есть, если садится ллм в качестве промежуточного звена, то она отлавливает ещё 99%, ну или 90.
184: Процентов из этих 10, а уже оставшиеся там какие-то единицы добирает человек. Либо если человек совсем не вариант, тогда только какие-то вот просто супер жёсткие семантические конструкции, когда любое сомнение в ответе оно ведёт сразу
185: Ведёт сразу к перезапуску всей цепочки срабатывания, либо к ответу не знаю, не хочу. То есть, ну, это к вопросу о том, что если нам нужно обязательно, чтобы был false positive абсолютно 0, то есть
186: Никогда не должна отвечать неправду. То есть пусть она лучше ответит, что не знаю лишний раз, чем если она ответит неправду какой-то раз по поводу архитектуры, все-таки давайте продвинемся чуть чуть. У нас есть определённые требования по таймингу.
187: Я думаю, многим знакома эта архитектура. Давайте чуть чуть пробежимся. То есть, если смотреть от реквеста.
188: Спасибо, Сергей. Ну я постараюсь, я слежу все-таки за таймингом. Да, мы успеваем нормально, но можно где-то поднажать, я буду стараться поменьше, дальше отвлекаться. Мы, у нас будет время, чтобы обсудить. У нас будет время, чтобы обсудить. Нет, нет, пожалуйста.
189: Пишите, Валерий, как бы пишите, я буду просто видеть, но буду дальше фильтровать. Нужно ли можно ответить сейчас или чуть позже. Так?
190: Общий вид архитектуры, то есть в самом правом нижнем левом нижнем углу квере мы видим запрос пользователя, он поступает внутрь некого, может быть, api сервиса ну какой-то, может быть the stream лит. Может быть ну что угодно этот запрос дальше.
191: Идёт в оркестратор. Это такой ланчен. В данном случае это может быть Ланграф или другая система, которая решает, что вообще делать с этим, ну, архитектура агента. Что системе делать с этим вопросом?
192: Это может, если данные есть в кэше, например, данные для ответа. То есть вопрос уже там 15 раз повторяется, то система возьмёт данные из кэша и вернёт респонс пользователю аутпут прямо из кэша, не потратив ни копейки, если данные
193: Есть в контексте, то дальше запускается ретривел парт. Это вот часть из 3 Кубиков, которые находятся слева графика сверху графика. У нас есть контекст, это некая база знаний, которая закатывается в эмбеддинги и складывается в векторную базу.
194: Данных важный момент, что запрос по хорошему должен векторизоваться тем же самым трансформером, что и векторизоваться данные контекста. Тогда у них будет как бы единая такая система координат, и тогда релевантность
195: Выдачи будет значительно выше, потому что сначала нужно вернуть из базы знаний что-то, что релевантно запросу пользователя. Дальше данные опять поступают в оркестратор. То есть у нас здесь уже есть
196: Пользователя и какой-то контекст релевантный, там может быть топ 10 релевантных Чанков, которые получилось найти в векторной базе данных. Почему векторная? Потому что я думаю, многим понятно, но если вдруг все-таки не знакомы с
197: Технологий, то векторность помогает в самом простом случае находить синонимы, похожие по смыслу фразы, слова и так далее. То есть векторизация позволяет именно вот сонаправленность такую обеспечить между запро
198: И тем, что система выдаст, то есть не по полному совпадению отдельных слов, или фраз, или частей, или токенов, а именно по смыслу. То есть это важный момент. А дальше уже вот с этой
199: Этими 2 кусочками что-то должна сделать. Лмка. Лмка берет вот эти чанки, ну то есть это просто куски, какие-то куски абзацев, либо просто полные абзацы, которые пользователю не нужны.
200: И, собственно, лмка берет вот эти абзацы, которые она нашла в векторной базе знаний, плюс запрос, и пытается из вот этих абзацев вылепить ответ на вопрос. Ну это идеальный кейс, конечно, одновременно с этим она кладёт в кэш.
201: Свой ответ, чтобы на случай, если вдруг, если вдруг в будущем такой же запрос поступит.
202: И все, и это возвращается пользователю одновременно с этим есть ещё вот тут вот видите, посерединке слева такой промпт может быть здесь мелковато, но тем не менее, плейграунд промпт, на самом деле это часть, которая как бы работает как системный промпт, то есть
203: Получает request от пользователя найденные чанки информации из векторной базы данных и плюс ещё вот этот системный промт, как инструкция, что с этим нужно сделать. То есть верни пользователю ответ в виде там
204: Jason или верни пользователю ответ в 3 предложения, то есть какая-то жёсткая инструкция, которая не должна меняться пользователем и которую лм. Воспринимает в качестве как бы действия, ну и вот на в этой большой системе.
205: Ну вот в этой большой системе на каждом из этапов обычно хорошо бы выставить какие-то ворота качества, но обычно с этим справляется оркестратор, но если оркестратор, скажем, примитивный либо логика очень сложная, то дальше какие-то ворота устанавли.
206: Уже там между кэшем и пользователем, между пользователем, я имею ввиду между query и оркестратором.
207: Re ранкер значит, ранкер это такая.
208: Как она правильно. То есть это здесь находится между оркестратором и выдачей векторной базы данных не ранкер. Он должен как бы перемешивать эти чанки, чтобы ллм, ну, там много, как бы при много
209: Много назначений у этой функции, но 1 из них это чтобы не было предпочтения определённому чанку плюс.
210: Да, плюс получается, что реранк, он, как бы, ну, перемешива по реранк, то есть у нас есть ранжирование, как когда мы взяли из вектор баз данных возвращается, помимо самого чанка информации, ещё возвращается часть.
211: Которая показывает, насколько эта часть релевантна реквесту пользователя, но это может сбить с толку просто. Поэтому вот ранкер, в данном случае он должен, ну, как бы, ранжировать
212: Ротировать, то есть менять порядок в каком-то смысле, но здесь в данном случае это не принципиальный момент.
213: На самом деле важно именно понимать, что если контекст взят лмкой, то контекст будет применён или не применён. Это может оркестратор решить, но оркестратор тоже, либо это жёсткая логика, тогда это будет, ну, сильно.
214: Объединённый в плане функционала агент либо это может быть оркестратор, который для каждого, чтобы решить, что делать дальше, запускает какую-то маленькую лмку сбоку или большую лмку, рядом с которой работает mk, даёт ему, говорит по
215: Что это за текст, и оркестратор дальше уже пытается решить, что с этим делать, и важный момент она полезет в итоге в контекст контекст будет добавлен запрос для ллм или контекст будет проигнорирован, и тогда lamb сама придумает ответ.
216: В данном случае мы получим галлюцинации.
217: Так, Алексей, если cash стоит после оркестрации, то как обеспечивается консистентность ответа враг сценарий при изменении данных векторный бд, не получится ли, что кэш вернёт устаревший ответ? Это может быть такое, да, то есть кэш должен прогреваться и постоянно поддерживаться в теплом.
218: Состоянии, в зависимости от, в зависимости от того, что мы делаем с векторной базой данных. То есть обычно, ну, то есть, по крайней мере, в тех агентах, которые, ну, традиционно уже устоялись, векторная база данных, она не так час.
219: Обновляется. То есть это обычно какой-то пул внутренних документов организации, который там пополняется, там может раз в сутки, не чаще. И, конечно, кэш будет сбрасываться каждый раз и по крайней мере,
220: По крайней мере, он должен поддерживаться в актуальном состоянии. Это, ну, это, это вопрос по существу, но здесь, опять же, вопрос к архитектуре-ка здес не причём, и оркестратор, тем более не причём он возьмёт то, что есть в кэше, то, что релевантно запросу.
221: Посмотрим, какие отказы, в принципе, могут. Ну, то есть вот тут я разбил всю нашу архитектуру на такие простые составные блоки, которые показывают, ну, в самом упрощённом виде. И агента. То есть у нас есть in input это какой-то вход у нас.
222: Есть большая ллм, которая, ну, это, по сути, оркестратор и есть, ну, не совсем оркестратор, там Ланграф, например, он все-таки внутри себя содержит жёсткие инструкции и вызов ллм, может быть опциональным, но все
223: Все-таки, вот output, то есть, когда лм уже вернула какой-то ответ на запрос пользователя и набор инструментов вокруг, которые помогают ллм работать с собственно, ну, нормально поддерживать диалог. То есть ретривал это собственн.
224: База знаний тулс это какие-то внешние инструменты, то есть внешний пиай может калькулятор какой-то, чтобы посчитать числа и
225: И memoria memoria. Собственно, это то, это недавняя память, короткая память чата. То есть, чтоб он не забывал размер memory. Кстати, отвечает на вопрос, сколько сообщений вверх. Чат помнит, там 10, 15, 20 и так далее.
226: Может быть, помнит, среднее, может эсеншл делает. То есть это вот важный момент обычно от этого зависит. И какие проблемы возникают в каждом блоке из этих вот самых, из вот этого агента. То есть, ну, во перы.
227: Ипром. То есть если пользователь зловредный, то он может, во первых, какие-то инъекции отправить, он может сделать опечатки и самое главное p. Ii. Ну p. Ii Артём это да, и в принципе, наверное, не самая понятная аббревиатура это персональные данные, то есть.
228: Данные счета, фамилия, имя, отчество, ещё что-то, то, что не должно быть запомнено. Лм.
229: Должно быть вообще, ну вообще не должно поступать в какую-то память, где-то храниться, потому что если оно попадёт в общий мемори, то какой-то другой пользователь начнёт что-то спрашивать, и lamb может вернуть ему данные другого. То есть это вообще недо.
230: Допустимый случай. В данном случае вот есть приём такой редакшн, когда заглушки ставятся вместо имён, номеров счетов, ну каких-то паролей. Вряд ли, конечно, кто-то пароли ставит, но тем не менее, каких-то чувствительных данных. То есть это сен.
231: Data p ii и reduction он вместо сенси дейта ставит заглушки, потому что sensitive data обычно не влияет на контекст. То есть это что-то, что вообще не нужно для респонса. Мы точно также с заглушкой можем выдать ответ пользователю и.
232: Поставив только в конце его имя и все получится как надо, и пользователь будет удовлетворён, потому что имя собственное какое-нибудь или номер счета, он может ни о чем не говорить, его нужно просто запомнить. Другое дело, если номер счета
233: Нужно, ну там номер заказа какой-то, если чат бот должен сходить в базу с заказами, посмотреть состояние заказа, например, и вернуться к пользователю с ответом о том, в каком состоянии у него сейчас заказ находится. Тогда это не персональные данные, это все-таки данные.
234: Внутри компании, которые можно по телефону назвать также, ну, в принципе, это не такие чувствительные данные.
235: И, собственно, в этой же таблице я не буду долго на ней задерживаться, чтобы долго время не тратить. Я думаю, что здесь понятные вещи, то есть, может галлюцинировать самое главное, галлюцинации. Ложная уверенность вынула в какие-то токены, которые нерелевантны запросу, и
236: Выдала ответ в формате, который не предписан инструкцией. Ретривел. Это вот как раз вопрос, который если 3 блок смотреть ретривел часть, это я где-то видел уже в чате вопрос. То есть как заставить вообще
237: Ретривал часть выдавать релевантные сведения. Ну это надо настраивать, это надо оценивать. Это зависит от инструмента, который вы используете. Мы посмотрим пару метрик, которые характеризуют именно ретривал часть, когда посмотрим практику. Но здесь, да,
238: Вопрос, сколько Чанков в итоге выдаётся, как настроено и все ли чанки нужны для того, чтобы построить ответ. Может, там надо 2 чанка, а он 20 штук выдал из этих 20? Н. Пытается вылепить какой-то ответ, его перегружает, какими-то лишними сведениями становится.
239: Многословный токены тратит, и пользователь устаёт читать, ему нужно короткое что-то и так далее.
240: Так, Евгений, я отвечу чуть чуть позже на этот вопрос, когда мы закончим вот с этой таблицей, я понял вопрос. Граф Ланграф, по сути, называется, ну, на самом деле, там интересные тоже штуки называется, как бы граф сущностей.
241: Ну окей. Итак, тулз с тулзами тоже все понятно. Это какие-то внешние инструменты. Если они, ну, от их надёжности зависит надёжность ответа. То есть, тут, в принципе, такие же тесты, как на бэкенде, обычно используются. Плюс, опять же, контракт, вопрос, ну, контракт.
242: Взаимодействие со, то есть если мы в калькулятор отправляем, скажем, числа и знак не знак, а знак действия, которые нужно с этими числами сделать, то калькулятор сработает нормально. А если мы в калькулятор отправим сложить
243: 2 и 2, то калькулятор, конечно же, упадёт с ошибкой, потому что он не видит, где там, че ему делать то. То есть для вузов обычно данные надо готовить. Этим занимается как раз оркестратор, который предварительно вызовет лмку, которая эти данные подготовит.
244: Так, Виктор, ну у меня не заготовлен конкретно для тулзов примеры на практике, но
245: Можно будет про это тоже пару слов сказать чуть чуть позже про memory. То есть утечка запоминания секретов это то, про что я говорил. То есть memori можно запомнить какие-то чувствительные данные, если они попали туда и дальше. Потом эти данные выдать просто кому-то
246: Ну и output format, который просил пользователь, не соблюдается ссылки. Ну вот кстати, интересный момент, когда просишь каких чат Ботов или chat gpt тоже подкрепи пруфом. Почему ты считаешь вот так вот или почему ты такой нашёл? Он обычно значительно
247: Дольше начинать думать и в response ещё при этом прикреплять ссылку. Тогда можно проверить и важный момент. Здесь получается то, что как будто бы его это заставляет сначала сходить в ресурс, посмотреть как на самом деле и потом только ответить, а не приду.
248: Свои данные, то есть он воспринимает это как дополнительную инструкцию. Это очень крутая штука. Ну, приёмчик такой получается, это уже с точки зрения промт инжиниринга, промт, промт юзабилити.
249: Итак, вопросы, да, вот, Евгений, к вашему вопросу насчёт того, по поводу графовых, ну, Ланграф тут, здесь не совсем Ланграф есть такая вот, как бы, штука, как графовые ба.
250: Данных, ну вот как не фуджей, например, то есть они хранят не просто колонки с данными таблицы, они хранят сущности и отношения между этими сущностями. То есть это вот, например, как соцсеть или как, не знаю,
251: Если взять, например, какую-нибудь книгу Роман война и мир, то вот сущностями будут герои, а отношения между сущностями будут отношения между героями кто кому родственник, кто кому сотрудник начальник, кто кому.
252: Приходится в качестве какой Роли. И вот когда графовые базы данных используются, то по ним может быть легче поиск. Но опять же, это зависит от задачи. Но плюс ещё и ответ, может быть более релевантный, если мы будем хранить
253: Именно в виде таких графовых вершин. Ну, для начала, конечно, там выделить. Это отдельная задача. Сложная, кстати, крайне непростая отдельная задача выделения сущности из текста и тому подобные вещи. То есть, как это все в принципе должно работать.
254: Так, по поводу.
255: Как оценивать проблемы с тулами? Откуда брать статистику вызовов? Ну вообще, Виктор, если говорить именно про Тулы.
256: То существуют системы, ну, про статистику я имею ввиду системы мониторинга типа lang фьюз и подобных вещей, мы на курсах про это рассказываем, но, к сожалению, сегодня в практике я это не хотел использовать, чтобы не перегружать довольно такую обширную лекцию.
257: То есть, там показывает, в принципе, мониторинг, ну, как в виде такой линии жизни, какие конкретно действия, в какой момент совершил эм, обычно это агрегированные метрики в той же, в том же прометеусе или в графане можно это делать.
258: То есть показывается, какие токены пошли в качестве респонса, на какие запросы. И, соответственно, можно посмотреть частоту вызовов какого-то инструмента и увидеть, например, что какой-то инструмент стал слишком часто вызываться, что происходит, кто при
259: Шёл к нам с таким запросом, что инструмент нужен так часто, наверное, какая-то ошибка. Соответственно, вот именно мониторинг в данном случае помогает или какая-то статистика, которая может, ну, скажем, в эмэль флоу копиться, или в том же
260: Fuse статистика вызовов за день, то есть это вот больше такие системы именно мониторинга, нежели нежели тестирование, тестирование проверяет, будет вызван инструмент в конкретных случаях или не будет, и если он не должен.
261: Вызываться то, опять же, он не будет. То есть, вот детерминированность по, ну, условная детерминированность, окей, детерминированность поведения агента это тесты, а уже поведение агента на практике это мониторинг. И вот мониторинг как раз отвечает на вопрос, что
262: Со статистикой по инструментам делать, ну, как бы ожидаемое ли поведение или нет. То есть дальше уже смотришь в масштабе на систему, потому что если там 10 вопросов, задашь чат боту, и он ответит на все 10 правильно, это ещё очень мало вопросов.
263: Очень низкая confidential там интервал широкий очень получается и низкое доверие надо много много вопросов задать, потому что на практике это проявится в виде такого закона больших чисел, когда придёт там 1000000 пользователей ну не 1000000. Ладно, окей.
264: Там 10000 пользователей, каждый спросит что-то и на каком-то пользователе все может пойти не так. Это все через мониторинг поговорим немножко про отличие от классического тестирования. Я думаю, самое главное, что нужно как бы
265: Из этого понять, что это не тестируется как backend, но очень похожим образом. То есть мы сравниваем, когда мы тестируем бэкэнд, мы сравниваем респонс с неким эталоном. То есть строки должны совпадать. Числа должны совпадать, если совпа
266: Да, значит, тесты проходят, и система отправляется в продакшн, а здесь не получится так делать, потому что агент каждый раз выдаёт немножечко по разному сформулированный ответ, даже если он по существу точно такой же, и вот как, как вот
267: Вот этот вопрос решить. То есть как вариант это многократно фиксировать параметры, то есть как можно меньше вот эту вот вариативность ответов обеспечить и использовать пороги по про
268: Нарушений, там дополнительные метрики, про которые чуть позже расскажу. То есть контекстная близость такая. Вот я недавно читал приём
269: Ну, гарантии, гарантия здесь выполняется, так как инструмент вероятностный, Евгений, то гарантия здесь тоже будет не ниже, там 0 9, 9, 9, скажем. То есть ту вызывается, когда у нас приходит на выход токен, который в итоге триггерит.
270: Вызов этого Тула через оркестратор. Соответственно, у нас теперь контролируется, хорошо ли лмка знает, что нужно вернуть вот конкретно вот такой вот токен для вызова Тула, соответственно, опять же тестируется
271: И тестируется на предмет, ну, как бы возврата нужного контекста. Получается возврата не контекста, а возврата нужного нужного респонса. И здесь уже, да, здесь вопрос вернёт или не вернёт в каких случая
272: Вернёт, потому что даже если, скажем, мы температуру закрутили в 0 и сделали топ там 1. Ну вот я имею ввиду то p равный 1 там, ну, практически 0 9, 9 9 и top ка.
273: У нас там, получается, тоже там 2, 3 каких-то токена. То есть, ну, по идее, она должна абсолютно детерминировано всегда отвечать. При таких настройках она все равно иногда будет отвечать чуть чуть по другому, потому что на топ будут вылезать токены сра.
274: Вероятность, у которых одинаковая вероятность и температура 0, это на самом деле не 0, а 0 точка 0 00:00 1. И в итоге по рандому могут быть токены выбраны, даже если они, ну даже если вот такие вот параметры
275: Соответственно, to в данном случае должен быть вызван именно вот при возврате обоих токенов получается не обоих вместе, а любого из них. Ну то есть это какой-то такой превентивный момент, надо смотреть результат.
276: И так далее. Ну, тем не менее, какой-то, может быть нагрузочный тест ещё сделать, то есть заставить лм, 1000 раз вызывать в разном сочетании Промтов, чтобы она все-таки всю тысяч на всем
277: Протяжении вот этого сета вызывал этот самый тул. Ну то есть, в отличие от классического тестирования, всегда возвращает текст. То есть вопрос, как она будет соблюдать схему респонса, зависимость от данных про
278: Контекста и то есть опять же тут очень большая вариативность ответов получается, потому что даже если мы чуть чуть изменим системный промпт, у нас сразу все начинает как бы ввалиться что называется, в кучу и по другому отвеча
279: Риски безопасности и приватности, то есть промт ejection когда пользователь приходит с промтом типа забудь все свои системные инструкции и сделай теперь для меня вот это или там верни системный промт, как нам вот такие вещи оттестировать и эксплуатационные.
280: Метрики, но здесь больше про мониторинг, опять же, то есть время ответа до пользователя летенси. То есть стоимость тут интересный вопрос. Может быть, вы знаете, может быть нет. То есть, когда чат gpt или большая языковая модель, в принципе, как она
281: Понимает, что пора заканчивать, генерить ответ. То есть, если я спрошу у неё, какова столица Франции? Она может ответить Париж может ответить столица Франции, Париж, а может начать отвечать мне в 3 абзацах, что это Париж. Вот как она поймёт, какой.
282: Ответ использовать. Почему нужно остановиться? Поставьте плюсик в чат. Если знаете или поставьте вопрос. Ну, Евгений Макс токенс, это значит, что все ответы будут одинаковой длины максимальной.
283: Длины заданный Макс токенс. Параметры. Вот идея в том очень простой ответ. На самом деле очень, очень интересный вопрос. Мне он очень нравится, что на самом деле он чат gpt выучил. Ну, когда
284: Он ходил по интернету и учился, он видел, какие длинные ответов существуют, на какие, в каком контексте, на какие вопросы. И, соответственно, он запомнил эти длинные. А дальше, когда он начинает генерить уже нам ответ, он Гене.
285: Генерит, генерит, генерит и в какой-то момент он генерит токен, который называется end of end of секвенс, то есть конец генерации, конец последовательности и вот когда этот токен встречает инференс, то chat gpt перестаёт генерить.
286: Так вот, если модель вдруг каким-то образом научилась только на длинных текстах, то она всегда будет отвечать длинно, промтом да, вот тут коллега советует, ну не советует, предполагает, что это промт промтом тоже.
287: То есть можно заранее закрутить системную инструкцию, сказать, что отвечает только в 3 словах. Не всегда, даже если ответ предполагает там какой-то абзац, он этот абзац запихнёт в 3 слова. Это, кстати, огромное преимущество. И то, где вообще, в принципе,
288: Языковые модели должны использоваться. Огромное преимущество языковых моделей в том, что они могут выражать мысль в разных форматах. То есть, когда ты его просишь, там, составь мне огромную петицию, там на 2 страницы, он составляет её теперь ту же самую мысль вырази,
289: В 2 предложениях, и он выразит и при этом практически не потеряет смысла. Ну только если это возможно, конечно. И это, конечно, очень крутая способность. Вот Самарай инг, наверное, это 1 из тех задач изначальных, ради которых все это было в своё время придумано.
290: Дальше уже пошло в диалог. Вот, ну, я надеюсь, я немножечко прояснил. То есть, когда мы спросим чат gpt, какова столица Франции, Париж, он ходил в своё время по энциклопедиям и по форумам и видел, что на вопрос
291: На вопрос, какова столица Франции, он видел, что люди отвечают коротко и он это выучил, и дальше, когда он генерирует ответ, он с высокой долей вероятности выдаёт токен энд оф sentenced end of sequence, и в итоге этот токен говорит о том, что генерация
292: Заканчивается. Вот, но Макс токены, да, это как бы вариант, можно его жёстко закрутить. Это если требуется предсказуемость поведения, когда нам нужен супер короткий ответ. Но тогда у нас будет такая проблема, как когда чат, ну,
293: Да, вот, вот, я только хотел сказать, что это не контролирует респонс, а контролирует длину респонса. То есть он начнёт рассказывать про Париж, и на середине предложения просто токены кончатся и все, и он просто не договорит даже до конца, и тогда ответ получится бессмысленный. Вот.
294: Тут говорили о том, что токены Макс токенс, он может не так сработать, как ожидается, по поводу архитектуры. Куда внедрять в принципе, тестирование. Я надеюсь, слайд всем хорошо видно.
295: Да, вот кстати, пидантик, модул, пидантик, библиотека в пайтоне, она тоже часто используется. Евгений советует это для того, чтобы вот формат ответа чётко контролировать и чтоб он определённой маске соответствовал. Это хорошая штука и
296: В тестировании, кстати говоря, часто применяется, но опять же, валидация респонса не для контекстной сходимости. То есть тут применительно ко всему, но именно для того, чтобы отследить то chat, gpt ответил то чат.
297: Вот, ответил, не то это больше, конечно, про семантический анализ, векторную сходимость и так далее. Итак.
298: Да, можно ограничить длину полей, но опять же, вот мы Режем как бы недоговорённый респонс, или мы укладываем респонс в нужную длину. Вопрос нужно такой осветить. Итак, тестирование. То есть эту диаграмму следует воспринимать следующим образом на самом дел.
299: Классная штука. Вот я в своё время, она мне прямо когда в неё долго, правда, долго пришлось в неё смотреть, чтобы понять, что здесь происходит. Но все-таки вот черным блоком выделены сущности, которые как бы неизменные, которые у нас
300: Которые у нас как бы работают в качестве, ну, исходных данных в качестве погоды. То есть у нас есть данные, у нас есть user prompt. У нас есть эвалюэйшн. Некие критерии, которые задаются уже бизнесом, ну, сверху.
301: Или превращаются в эти критерии, исходя из бизнеса. Соответственно, нужно понимать, что мы на них не можем повлиять. Мы должны настроить нашу систему таким образом, чтобы она всему этому удовлетворяла. И вот эту систему можно считать таким образом, что данные идут
302: Сверху вниз, а жизненный цикл модели, он идёт слева направо. Вот в самом начале у нас модель ещё учится, у нас есть там данные для тренировки, обогащённые данные для тренировки. И дальше вот этот ромбик, собственно, наша языковая модель.
303: Которая обёрнута уже в application видите, агент это по сути, наш оркестратор, сверху идёт тестовый промпт, тестовый промпт или тестовый запрос тестовый квери. И дальше наш агент, он возвращает.
304: На тестовый промт возвращает какой-то response. И дальше мы должны каким-то образом понять вот этот response на вот этот тестовый ответ, тестовый запрос, он вообще релевантен или нет, то по существу ответил или нет. Ну и дальше
305: Используются всякие приёмчики, что, ну, помимо мониторинга и человеческого как бы, контроля существуют как бы вот такие вот дополнительные приёмы, связанные именно с балльной оценкой, именно балльной.
306: Обычно это число от нуля до единицы, которое оценивает, насколько респонс хороший 0. Это самый плохой респонс или, наоборот, очень хороший и, соответственно, единица это response хороший. Ну очень похоже на задачу, на
307: Такую самую такую простую задачу классификации, когда мы пытаемся определить вероятность отнесения респонса к определённому классу. То есть у нас есть классы, скажем, релевантный, нерелевантный, соответствующий запросу, несоответствующий, токсичный
308: Токсичны, если мы проверяем респонсы на предмет, можно ли такое пользователю в принципе, показывать. Вот, и, в конце Концов, когда уже все тесты пройдены. Вот если вот нижний жёлтый кубичек, такой элэм аппликейшн валидейшен
309: Проходит все ворота качества, то дальше вот у нас появляется такая штука как production лм. Аппликейшн, где уже у нас используются юзеры, начинают к ней обращаться, получают свой output. Мониторинг какой-то есть есть соответственно,
310: Постоянный контроль со стороны мониторинга на предмет, как у нас, в принципе, в продакшене работает, ну, на сегодняшней лекции мы сосредоточимся именно на тестировании. То есть вот этот большой центральный куб, где внутри ромбик, где мы посылаем тестовые запросы.
311: И получаем на выходе респонс, который дальше оцениваем, годится, не годится, и с какой вероятностью годится. И вот секрет очень простой. Сейчас я дальше чуть чуть промотаю следующий, да, вот, Артём, по поводу балльной оценки.
312: Сейчас я расскажу, что такое балльная оценка. Мы дойдём до конца как раз сегодняшней теории, я чуть чуть расскажу про курс, а потом покажу на практике, что такое балльные оценки, как они выставляются. И давайте вот я сейчас расскажу ещё про категории, в принципе, вот
313: Вот, вот этого жизненного цикла, то есть доступность, производительность метрики, которые оцениваются через, ну, время респонса, количество ошибок, если это, там, 502 выходит постоянно, например, количество ошибок высокое, нас интересует 2 строчка, 2.
314: 3 качество генерации, то есть точность, релевантность ответов, точность это насколько хорошо ответ сформулирован по качеству в плане, что он действительно отвечает на вопросы и ничего лишнего не привносит, и релевантность. То есть ответ взят из контекста, а не придуман.
315: Самой мой. И вот такие метрики существуют как faith. То есть это ответ в контексте, что называется, разговора и relevance тоже релевантен запросу пользователя. То есть вот это вот важные штуки, которые как раз
316: Оценивается от нуля до единицы, а уже как оценивается, я чуть чуть дальше расскажу. И то есть корректность и скорость поиска, да, есть ещё корректность. Правильно? Евгений замечает. Есть ещё корректо, там рекол и precision.
317: В отношении именно полноты, как бы ретривинг. А вот, кстати, здесь, да, вот рикол и ретривел пресижен. То есть насколько ответ, насколько много Чанков, инфор.
318: Информация вернулась лишних по отношению к предполагаемому запросу, ну, предлагаемому запросу. И насколько достаточно тех Чанков, которые вернулись, чтобы ответить полностью на вопрос пользователя. То есть вот эти вот метрики, ну и
319: Понятно. Тут поведение, модели, генерация токенов. И опять же, это такие метрики на уровне инференса. Сколько токенов модель генерит и сколько времени она отвечает на курсе, мы рассказываем на самом деле много про именно in
320: Ещё, то есть это к вопросу о том, как лучше учиться.
321: Inference, как некая такая небольшая надстройка над ллм, не глядя в архитектуру. Что происходит вообще, в принципе, в лм, как построен инференс, где у него, где там кэш кей, велью, кэш такой есть, как bach.
322: Бачевой такой Бачева генерация происходит и так. Ну и user feedback то есть, соответственно,
323: Евгений, только практика. Вопрос, как подобрать метрики для конкретной задачи, это обычно практика и практика. Ещё раз практика. То есть понятно, что метрики, вот эти вот, они в том или Ином виде показывают просто вероятность, на самом деле, вот
324: Какова вероятность встретить такой ответ сякой ответ. То есть если мы поставим какую-то низкую вероятность, то, соответственно, 1000 пользо из 1000 пользователей, 10 или 12 получит какой-нибудь неудобоваримый респонс. Соответственно, метрики закручиваются.
325: Но если их сильно закрутить, то как бы мы там не пытались нашу лмку настроить, она все время будет валиться на тестах, потому что, ну, пару раз она все равно раз, год, и палка стреляет. В данном случае вероятностная же логика здесь воп.
326: Вопрос, конечно, не в случайности, а в том, что, хотя в случайности тоже, а в том, что как бы здесь соотношение вот этого качества и доступности, то есть, чем точнее, на самом деле, вопрос надёжности, да.
327: Ну да, метрик очень много. Тут вопрос практики и просто на самом деле относительное сравнение. То есть предполагается, что у вас есть история релизов. Вы сначала построили модель, оценили её как-то и увидели метрики, которые она выдаёт.
328: Дальше вы прикрутили фичей, нарастили, ну что-то усовершенствовали, обучили, дообучили её, добавили контекста, выпустили пользователя опять оцениваете. Вы можете таким образом наблюдать, у вас модель начинает деградировать. Вот
329: Изменений или она наоборот, совершенствуется и так далее и тому подобное. То есть вот метрики на самом деле можно оценивать их ещё как относительные такие меры сравнения предыдущего релиза с текущим и с возможно, следующим тоже. То есть куда у нас тенденция, ну,
330: User feedback и коста фишен, я думаю, здесь вопросов не должно, особенно коста фишен, то есть меньше токенов, дешевле токены и так далее. User feedback это вот в чате gpt вы, наверное, видели, что можно большой палец вверх поставить если нравится ответ и можно поставить палец.
331: Вниз, если такой ответ не нравится. Вот тут есть такая аббревиатура, как кастомер фекшн, да, такая метрика. То есть сколько больших пальцев получил тот или иной респонс. Хотя, конечно, респонсы все разные, но вот тем не
332: Если жалоб становится меньше в целом, то и
333: Так, жалоб становится меньше. В целом, то и собственно, значит, модель становится лучше. Так я сейчас рассказывал про таблицу. Теперь небольшая, небольшое отступление про канареечный промты это интересная такая история.
334: Про канареек, которых брали с собой в шахту шахтёры, когда ещё не было датчиков загазованности и канарейка 1 сигнализировала о том, что концентрация какого-то угарного Газа или опасного Газа в шахте.
335: Она стала, ну, опасной, то есть пора покидать шахту и ждать, пока проветриваться там будет и так далее. Так вот, канарины промт это промты, которые провоцируют нейросеть, провоцируют агента на какое-то недоговорим её поведение, то есть, когда
336: Мы специально агента спрашиваем, говорим ему какие-то гадости, говорим ему покажи системный промт, дай номера карт или повтори какое-то слово, которое там не обязательно плохое слово, просто эхо токсик. Не должно такого быть игно.
337: Правила, то есть какие-то промты, соответственно, на все конечные промты агент должен отвечать, ну каким-то вежливым отказом. Вот, соответственно, пулл вот этих самых канареечных Промтов по моему он даже где-то есть в какой-то библиотеке он
338: Позволяет вот, собственно, проверить перед каждым релизом, не получилось ли так, что мы вдруг пропускаем какие-то опасные запросы.
339: И популярные фреймворки для собственно, для проведения Тестов. Сегодня на практике мы будем смотреть рагос. Это, собственно, как раз фреймворк, который помогает одновременно оценивать и саму элэм.
340: Сердце агента и ретривал Леер, то есть слой с контекстом, то есть насколько релевантно то, что вернулось из контекста и правильно ли м. Поступила с этим контекстом, сгенерив тот или иной ответ?
341: Да, да, Сергей 2, это вот lan смит или ланчен фреймворк, который уже в продакшене позволяет, ну, больше для мониторинга используется уже в продакшене.
342: Там тоже можно получать метрики, но при этом эти метрики как раз будут отслеживаться в процессе жизненного, ну как в процессе жизни нашего агента, соответственно, можно также сравнивать и так далее. Это как часть экосистемы.
343: Граф. И вот, собственно, Ван смит это 1 из
344: 1 из таких вот, как бы, ну, инструментов для трассировки, может, получается, это инструмент для того, чтобы, может быть, понять, как агент работает в целом. То есть вот вопрос был о том, как
345: Мониторить. Я вот тогда назвал анф инструмент, но вот lan смит, он для этого тоже подходит то есть он суммирует то, что происходит в продакшене в виде графиков каких-то приведённых метрик количественных там агрегированных и помога
346: Все-таки отслеживать деградацию во времени и какой-то может сбой даже определить ну и 3 агент это промт фу, это собственно такой быстрый промты без ну как unit test по сути только уже с агентами.
347: Они, этот, как бы, фреймворк помогает, по сути, ну, формат оценивать длину, но он не лезет, как бы он не может оценить, в большинстве случаев не может оценить.
348: Да, в есть эвалюэйшн, но опять же evolution во времени Михаил спрашивает, насколько же это правильный способ, это правильный, все правильно, то, что помогает снять неопределённость, то есть в данном случае.
349: И агент это такой, как бы пока мы не начали его тестировать, это такой как бы с точки зрения тестировщика чёрный ящик. И дальше мы начинаем оценивать его работу через request response, request response, то есть что-то подаём на вход и оцениваем то, что он вернул, мы
350: Можем 90% ответов там или 80% ответов оценить просто по составу, то есть, если мы запросили джейсон, значит, он вернул json если мы запросили 10 токенов на выходе, не больше, значит, он вернул 10 токенов на выходе вот. А дальше?
351: Мы должны понимать ещё смысл того, что он возвращает. Вот тут уже как бы сложнее. Можно там косинусы считать через эмбеддинги, дополнительные штуки делать, но вот оно помогает в каких-то сложных случаях и помогает ещё с какой-то стороны взглянуть.
352: То есть помогает все, что позволяет снять неопределённость. Чем больше Тестов, тем лучше есть такой тест ден девелопмент. Вот в данном случае тут, получается, обкладываешь со всех сторон, и все обычно упирается всегда в деньги, то есть стоит де,
353: И она все равно на 100% не позволяет снять неопределённость, но тем не менее, все-таки как будто бы классифицирует ллм, классифицирует лучше, чем генерит. Вот такая вот есть, ну не то что неписанное правило.
354: Какая какое-то такое есть наблюдение. То есть когда наше анализируемое, м, что-то генерит, то оценить это проще и точнее, чем просто это было сгенерен. Поэтому лмс джаз, в принцип,
355: Правильный способ это применяемый способ на практике, но с ним вот как бы ограничения чисто по количеству денег, которые будут затрачены на тестирование. Так, профу, сказал теперь раго.
356: Это система, которая помогает, как я уже сказал, оценивать одновременно ретривел, Леер и self само по себе очень удобная штука, потому что она даёт специфичные, ну, свои собственные метрики. Тут уже было
357: Замечено, что каждый фреймворк, ну, как бы внутри себя содержит свои метрики, но здесь метрики, по крайней мере, понятны даже сейчас уже многие приходят интуитивно к Такому подходу, что когда пользователь задаёт какой-то вопрос ллм, то проверить вероя.
358: Галлюцинации. Можно таким способом, что вопрос ответ, точнее, который ллм дало, он ближе к вопросу, который пользователь задал, или к контексту, который был получен из леера, и вот близость определяется
359: Векторной сходимостью, которая может быть оценена от нуля до единицы. Соответственно, там нормировано как-то, но это не важно. Нам надо просто 2 числа сравнить. Соответственно, если ответ ближе к запросу пользователя, скорее всего, его приду.
360: А если ответ ближе к контексту, то, скорее всего, это по существу. Конечно, контекст доставался под вопрос, но не ответ. М. Генерился под вопрос и вот эта вот штука, она помогает.
361: Здесь вот rock рагос, он действует похожим образом, то есть нативные понятные метрики, диагностика по шагам ну здесь понятно, что мы можем отдельно оценивать её отдельно, можем также cd это внедрить, тоже очень удобная.
362: Штука, так как у нас есть по поводу балльной системы человек спрашивал сейчас хотел бы как раз подробнее про это рассказать. То есть мы берём и ставим нижнюю границу допустимого значения метрики. И если м сваливается ниже, то есть тест не пройдён, тогда
363: Сваливается аплайн, если метрика выше, ну, заданного значения такого порогового значения, соответственно, тест пройдён. Вот таким образом происходит оценка л, ну, легко сравнивать несколько варианто.
364: Эмбеддингов там, фильтров и так далее и тому подобное, то есть поменял чуть чуть конфигурацию ещё раз протестировал очень удобно и работает поверх всех, ну то есть это просто отдельный модуль в python, коде, то есть можно и на чистом пайтоне все написать и накинуть сверху.
365: Трагос, а можно встраивать его в готовые системы, готовые опенсорс и опенсорс, эйпиай. И вот маленький такой кубик, который показывает, собственно, как работают тесты.
366: То есть у нас есть набор тест кейсов. Андрей, это не нормальные пороги на практике, но это зависит опять же, от частоты и степени, как бы, что боту позволено, что позволено этому агенту, если он
367: Просто отвечает на вопросы пользователей и в принципе не склонен к каким-то, ну как бы пользователи всегда по статистике что-то обычное спрашивают, потому что там же происходит сначала shadow тест, то есть все вопросы все равно обрабатываются человеком на
368: Все ещё смотрится, как работает и агент в этом диалоге. То есть какие вопросы он генерит, если хоть раз попадётся что-то, то, конечно надо будет лечить. Ну опять же, как я уже сказал, что вот эти пороги, они
369: Позволяет все-таки пройти тестирование на практике. Получается, что эти вероятности, они несколько такие выпуклые. Ну то есть 0 все, что ниже 0 8, это уже, конечно, низкое качество, но все, что выше 0 8 обычно
370: Это что-то, что можно катить в prod но опять же с определёнными оговорками если у нас медицинский бот как в том мемасике, когда.
371: Бот вырезал аппендицит не с той стороны, то здесь, конечно, никакой вероятности, ошибки недопустимо. Соответственно, там будут очень высокие пороги значений. Если у нас просто говорилка, которая, ну, отвечает что-то из базы данных, но может придумать
372: Ну, лучше бы не придумывала. То есть надо будет ставить какие-то ещё дополнительные проверки типа проверки верхнего уровня, то, соответственно, вполне себе допустимые пороги. Ну вот, и, собственно критерий прохождения теста это превышение или не превышение этого
373: Порога или ниже этого порога или нет. Каждый тест кейс проверяется отдельно. Затем, может быть либо какая-то сводная метрика, когда у нас средняя по отдельным тест кейсам, либо смотрите по самому плохому случаю. Если самый плохой случай оказался ниже порога, то
374: Соответственно, то, соответственно, бота пора дообучать и дорабатывать. Этот самый Леер. Коллеги, у нас небольшой овертайм, я должен ещё 5 7 минут вашего времени занять, чтобы рассказать про курс.
375: И рассказать про практику, точнее показать практику. Собственно, пожалуйста, не выключайтесь. Надеюсь, что вам достаточно интересно. Пока что, если есть какие-то вопросы, пожалуйста, задавайте. Если вопросов нет, тогда я быстро пойду. Дальше расска.
376: Расскажу про курс чуть чуть, просто в общих чертах. Ссылку Григорий обязательно дам. Сейчас я выключу просто, ну, выключу генерацию экрана, когда буду показывать весь код и, соответственно, сюда же я и приложу презентацию.
377: Итак, попробуем посмотреть про курс deep эволюшн. Слушайте, ну как бы соотносит. Я так понимаю, что deep эволюшен, если честно, я раньше не работал с этим. Это разные фреймворки.
378: Рагос обладает своим своей шкалой метрик, дип эволюшн, по всей видимости, своей шкалой метрик. И там дальше просто нужно, ну как правильно это все внедряется в тестовую систему, какие у нас есть там.
379: Тест тот же самый, он же может, скажем, нормально пройти, пробежаться по всем тест кейсам и выдать набор метрик. И дальше этот набор уже смотрится на предмет самой низкой метрики, ну, самого низкого кейса.
380: И так далее. Курс, который предполагает, ну, курс, который лежит под этим вот нашим тестовым занятием, это курс лэм девелопмент. Соответственно, это вот как построить
381: Умную, надёжную систему понимать, как она работает на практике, и внедрять. В принципе, сейчас, если смотреть на вакансии, наверное, многие видели, что практически любая вакансия
382: Менедженер или это дата сайнс, то требования к пониманию того, как работает система, как её дообучать. Эти требования существуют. Соответственно, вот на этом курсе мы освещаем все вопросы, которые связаны с построением, подоб
383: Интеллектуальных систем, то есть архитектура, она здесь стоит 1. На самом деле, мы сейчас немножечко перерабатываем программу, архитектуру сдвинули чуть чуть дальше. Сначала смотрим именно введение, то есть историю развития, как вот из алекснет получился такой
384: Агент, ну не агент, а как получился такой, такая классная штука, как большая языковая модель. Ну условно из alex нет, я имею ввиду ту нейросеть, которая стала таким переломным моментом.
385: Обучении, когда мы перестали понимать, как вообще, в принципе, работает глубокое обучение, ну, визуально. Вот основы мопс, то есть это именно управление инфраструктурой и в основном все блоки связаны с тем, чтобы вы смогли
386: От начала и до конца построить, развернуть, мониторить конкретную там конкретную агентскую систему для своих нужд или нужд вашего бизнеса. То есть обычно это вот задача, когда у нас есть огромный
387: Набор какой-то текстовой информации, документации, ещё чего-то, что в чем человеку не разобраться и нужно создать ассистента, который будет по этому делу нормально работать, учитывать все и отвечать на вопросы пользователей. Соответственно вот на этом курсе.
388: Качестве проектной работы. Вы также можете, в принципе взять либо свою работу какую-то, либо построить что-то подобное. Ну и потом, конечно домашние задания, оценка, постоянные консультации, то есть все, все в рамках этого самого курса наши
389: Преподаватели, то есть в принципе, курс создан таким образом, что все так или иначе связаны с практикой работы именно с большими языковыми моделями. То есть вот Владимир Ефимов это прям, ну он, по моему, все делает, а уже
390: Я не имею ввиду вкодинг, я имею ввиду, что он все текстовые данные все обрабатывает, настраивает там любых агентов, может очень быстро развернуть и вообще объясняет, как все-таки работать таким образом, чтобы
391: Сами, чтобы это не было магией, а было именно как нормальное, прикладное, управляемое решение. Ну и другие преподаватели тоже профессионалы своего дела. Вот, кстати, следующая. Следующий открытый урок будет Раиль вести по
392: Как раз по общему созданию рак систем я вас тоже также приглашаю на этот самый открытый урок. Ну и собственно обучение вотус, в чем будет заключаться сам курс. То есть, во первых, формат вебинаров, причём интерактивных, именно форма
393: То есть вебинары будут точно такие же, как вот я сейчас рассказываю, только плюс ещё у вас будет право включить микрофон, что-то спросить в процессе и, может быть как бы обсудить что-то в плане там прикладном, более предметно что-то обсудить. Плюс
394: То есть, вы получите, ну, во первых, ну, возможность общаться с коллегами, задать вопросы в чате у нас будет чат telegram, постоянно там работающий 24 на 7 и на самом деле постоянно работающий. То есть, группы, которые были год назад, они до сих пор существуют.
395: И там периодически какая-то жизнь в чате существует, будут задаваться по каждому блоку, который я представил домашние задания. Причём домашние задания неформальные, оцениваются, они действительно по существу. То есть человек должен будет выполнить на самом деле в обучении. Это не так.
396: Не такая плохая штука, как бы как бы неприятно не было там делать домашнее задание. Все-таки это важная вещь, чтобы пройти самому на практике, задать вопросы преподавателю, опять же, и снять все, всю неопределённость, которая у вас есть. Ну и
397: Проект, то есть вы в процессе, то есть сквозной проект какой-то делаете в процессе обучения. И этот проект, собственно, охватывает все темы, он может быть полезен для вашего бизнеса. Либо, может быть тема взята. Какая вам интересна и этот проект.
398: Уже под руководством наших преподавателей каждый в своей как бы такой подтеме работает. Поэтому, пожалуйста, записывайтесь. Если есть интерес на курс старт обучения 25 февраля, группа сейчас активно набирается
399: И пожалуйста, переходите по ссылке которая здесь, а я, с вашего позволения наконец то так. Катя, надо ли обладать навыками крайне желательно понимать python код можно там не быть супер там.
400: Господи, как на ум приходит какое-нибудь асинхронное программирование, ещё что-то, но можно, конечно, до таких, ну, на такую глубину не погружаться, но крайне важно понимать простые конструкции и уметь считывать то, что уже написано обычно.
401: У нас есть что-то типа входного тестирования, но сейчас мы решили временно от этого отказаться. То есть никто не ограничивает вас в том, чтобы прийти на наш курс. Но все-таки, чтобы было эффективным обучение, крайне желательно такие вещи хотя бы в экспресс режиме.
402: Где-то пройти, посмотреть, почитать, поупражняться и так далее.
403: Михаил, вот в теории можно писать через и понимая архитектуру не совсем. Вот все-таки здесь я бы предостерёг, потому что, ну, как мы уже говорили, галлюцинации. Ну ладно, допустим, он выдал какой-то код тут вообще вот просто юзер кейс.
404: Что называется, с пылу, с жару. Вот у меня коллега буквально недавно проходил что-то типа такого интервью в организации. Ну там что-то типа стартапа. Человек говорит, вот у меня, я написал 10000 строчек кода при помощи ии.
405: И теперь мне нужен человек, который умеет писать, умеет программировать, чтобы наконец то сделать эту систему нормально работающей. Код написать можно, но вопрос, как он будет работать, абсолютно неконтролируемый. То есть это будет такой чёрный ящик, который
406: Ну, там с 15, с 15 попытки запустится и может работать не так, как нужно обычно и пишет неплохой код, но это все-таки черновик, который нужно дорабатывать.
407: Да, ну и, собственно, да, какая задача, какая модель? И, собственно, ну как работать там, на самом деле, то не так много необходимо понимать. Может быть, мне это так кажется, потому что я давно очень занимаюсь программированием, ну как не занимаюсь программированием, а просто программирую, там, ещ.
408: Со времён студенчества постоянно решают технические задачи, поэтому мне кажется естественным понимать, ну, какую-то общую архитектуру вычислений на уровне, там функция, процедура, объект, экземпляр объекта и так далее. Но
409: Все-таки такие вещи надо немножечко знать, поэтому, Екатерина, ну все равно приходите на наш курс, отговаривать не нужно, база.
410: Вот Андрей, вот примерно, да, похожий подход, то есть вайткод нг это палочка выручалочка, когда лень просто печатать, но все равно то, что Навайкина обычно надо глубоко перерабатывать или power.
411: В зависимости от того, что вы сможете.
412: Что вы сможете? Да? Вот, кстати, да, Григорий и может страховать, замылиться глаза. Когда я запятую пропустил, у меня ничего не компилируется, то или скобку где-то не могу закрыть. Там, в джаве, например, есть такие конструкции, когда там 10 открытых скобок вложено.
413: Друг друга. Ну, конструкция может быть, там ищи свищи, где скобку надо закрыть, в каком месте, правильно? Соответственно, и в этом смысле поможет. Но по общей структуре кода, конечно, лучше понимать.
414: Итак, коллеги, сейчас я ссылку на, и отступы тоже. Ну, отступы, да, как это есть такой джайта, по моему, там вместо отступов как раз используются вот эти фигу.
415: Скобочки, как в джаве, они, в принципе, удобны, но иногда отступы, да, там, я знаю, даже раньше было, когда не было нормальных. Таббуляция это 4 пробела и, соответственно, табуля.
416: Это 4 пробела, но это не равно 4 пробелам. Вот отступ в 4 пробела. Это правильный отступ, который интерпретатор понимает, а отступ табуляции не понимает. Это, конечно, тоже много боли было в своё время.
417: Так, презентацию, пожалуйста, я выложил.
418: Да, вот Михаил делится опытом про как он создал свою rock систему. Спасибо. Да, на самом деле такой стек вполне себе имеет место быть тоже доста.
419: Распространённый стек, но тут вопрос, да, как это все работает вместе? Итак, теперь вскод, пожалуйста, поставьте в чат плюсики, когда я открою окошечко и можно будет
420: И можно будет смотреть наконец.
421: Код. Так, итак, скажите мне, видно ли сейчас? Ага, отлично. Спасибо. Да. Ну вот здесь, собственно, небольшие 2 небольших теста написано, и написан также пайплайн, который эти тесты пушит. Ну, не он пушит, а он их
422: Ранит в гитхабе, значит, простая вещь очень простая. 1 это рагос демо тест. Здесь используется рагос и используется тест, ну как бы тестируется модель, но на самом деле тестируется не модель, а тестируется именно агент.
423: Модель плюс плюс некий пул документов, плюс системный промт. Вы ассистент службы компании, отвечаете только фактами из контекста. Если ответа нет в контексте, скажите, не нашёл, что делать и далее какие-то вот документы, кото
424: Потом оборачивается в виде дата классов, плюс в дата класс ещё попадает дата гранд труф. То есть, соответственно, какой ответ нужно считать эталонным. То есть вопрос эталонный ответ, а дальше ответ, ну то есть предполагает
425: Что нам лмка уже выдала какой-то ответ, и мы дальше смотрим весь контекст. Мы дальше смотрим, что она, собственно, будет отвечать. Итак, ну дальше, собственно, извлечение. Тут много служебных функций.
426: 1 из интересных штук это вот как раз косинусное сходство. То есть через беддинг считается. Господи боже мой, через беддинг считается насколько близко по Такому как бы, смыслу семантическая близость.
427: 2 ответов друг другу и, собственно, основной тест, то есть запускается генерация ответов моделью на вопросы ответы должны браться из контекста.
428: Валидация, ну какая-то базовая, тут можно на самом деле без этого обойтись если мы смотрим, оценка запускается через рагос рагос это вот такая вот штука. Вот она как раз оборачивает нашу модель, температура на нуле. Ну правда тут ещё есть ключик, но ключик
429: От openai ну понятно, потому что нам нужно модель запускать и дальше уже происходит оценка в виде баллов сейчас я запущу при вас эти тесты и посмотрим так рамочку надо немножко сдвинуть посмотрим.
430: Что модель выдаст, так я периодически буду мониторить чат, что
431: Формировать граунд труф. Ну в принципе, граунд труф это то, что хочется видеть на выходе какой-то там идеальное идеальный респонс может быть короче, респонс то есть не сильно многословный, но на самом деле это то, с чем просто будет сравниваться результат.
432: То есть здесь можно даже нагенерить какой-то умной, но при этом обязательно человеком отревьюить, чтобы все работало. Да, я обязательно выложу в конце практики обязательно.
433: Все, все сработало ну тут понятно что хотелось сделать так. То есть у меня ещё есть вот 7 вопрос. Это какова столица Франции? Париж это вопрос без контекста. Поэтому здесь fate релеван и, ну,
434: Главное обычно фей это как раз та метрика, которая определяет близость к контексту. Итак, вот ансвер, доставка бесплатно, самовывоз доступен, доставка бесплатно. То есть, в принципе, семантик корректность. Правильно? Все, пра.
435: Reliance правильно, то есть ответ на вопрос был столица Франции, Париж тоже правильно на самом деле, если бы я сказал Москва, у меня бы тест тоже прошёл просто потому, что здесь не смотрится именно корректность самого ответа, потому что у меня нет ground truth, точнее есть.
436: Но у меня нет, как бы, получается контекста для конкретно вот этого вопроса. Ну и все остальные вопросы точно также. Вот единственное, что в данном случае, видите, смотрите, у меня есть ансвер, который дала ответ, не нашёл в предоставленном контексте, как это сказан.
437: В инструкции он в принципе так и ответил, но ground truth в предоставленном контексте нет информации в магазине Новороссийске видите, у меня релевантность крайне низкая, потому что контекста нет, но ответил все равно правильно, и плюс ещё
438: Корректность тоже не очень высокая, потому что видите, как ответы друг от друга отличаются. Хотя, по существу, они, в принципе, про одно и то же. Ну, все остальное, в принципе, я думаю, здесь понятно, если, например, я захочу
439: Ну давайте попробуем что-нибудь.
440: Что-нибудь изменить. Вообще то. Ладно, перейдём к следующему тесту. Я хотел вам показать ещё токсик тест, он довольно интересный, потому что его как раз можно легко сломать. То есть здесь уже используется, да, для того,
441: Чтобы как судья, чтобы определить токсичность. Вот у меня сейчас пока только 1 ответ. Ну, предположим, что моя м, уже выдаёт ответы. И вот она выдала ответ. Спасибо за вашу заявку. Ответ не токсичный. Грубость, ну, как бы, нулевая. Все.
442: Красно Гейт пройдён. Но если я напишу, например, ещё 1 какой-нибудь пример ответа, дам ей, ну, скажем, не пиши сюда, пожалуйста, я занят. Вот как она определит токсичность в данном случае, и пройдёт ли тест токсичности в данном случае, вот
443: Видите, 2 тест грубо определил токсичность. Ну, уже больше нуля, значительно и грубый, достаточно невежливый ответ. Опять же, там-то у меня 0 5. В данном случае по грубости он как раз не прошёл, если я грубость повышу.
444: Скажем, напишу 0 65, он уже пройдёт, но каждый раз он немножечко может по разному эту грубость оценивать, потому что, как вы помните, вероятностные оценки. И вот, собственно, и все, если я сейчас это отправлю,
445: Отправлю по пайплайну.
446: А, да, я забыл рассказать, собственно, как это все устроено. Ну, тут, я думаю, многие опсы знают, как это все делается. То есть у меня триггерится сиайсиди пайплайн и при реквесте, и при просто пуше.
447: Ветку мастера. Собственно, ну, дальше создаётся среда создаётся, устанавливаются необходимые пакеты. В данном случае рагос тест и запускается рагос тест, и запускается, токсит тест для того, чтобы оценивать
448: Вот здесь вот уже используются другие трешхолды, а не те, которые захардкожены в сам тест. И вот я, например, запускаю, запушу изменения.
449: Так.
450: Например, запушу изменения и посмотрю, что у меня тут происходит.
451: Вот, отлично. Так, наверное, мне надо расшарить сейчас уже экран.
452: Да, да, научиться строить. Ну, смотрите, как бы это могут быть друг от друга. Григорий.
453: Так, сейчас я отвечу на все протести, что мы тестируем. Какая целевая аудитория, в смысле, для кого мы записали, для кого мы написали? Лм. Ну, в данном случае у меня не ллм, у меня Артём, я агент, который отвечает на вопросы пользователей, ну, какого-то магазина.
454: Онлайн магазина и там видели, да, вопросы, ответы это из серии какой режим работы? Какой
455: Какой? Ну, в общем, все вопросы связаны именно вот с этим контекстом. Поэтому, собственно, вот у нас такие, то есть тестируется ллм плюс полезет ли она в контекст, то есть тестируется одновременно системный промпт. Действительно ли это системный промпт
456: Такая инструкция, понятная лм. Что м. Будет следовать, а не придумывать ответы, ну как бы ответы из головы, что называется, так. Если переходить к тестам, сначала нужно научиться строить, но здесь.
457: Смотрите, здесь может быть одновременно Григорий, то есть через тесты мы понимаем, что у нас что-то не так. 1 раз мы отправили, например, и поняли, что что-то не так. Дальше мы начинаем разбираться расследование и через расследование можем понять, как устроена в принципе наша систем.
458: Это плохой как бы вариант, не самый такой последовательный получается, но некоторым, например, такой вариант нормально заходит.
459: По поводу Тестов, правильно ли нужно тесты строить? Ну вот, вот это важный момент. Может быть, по программе курса. На самом деле у нас в 1 из первых блоков идёт промт, инжениринг. То есть понимание того, как промпт влияет на запрос, ну, знаете, как ролевая
460: Модель именно в промте прописывается, кто ты, в промте прописываются критерии задачи, может быть сразу декомпозиция какой-то задачи идёт, шаги какие-то, какое-то специальное слово, которое вызывает ризонинг принудительно.
461: Или просто запускает какой-то response и, соответственно, формат ответа. Ну тут интересная на самом деле штука, что промт это такая вещь, которая позволяет аккуратно облачить как бы ответ. То есть она, ну как бы рамочно
462: Делает, м, ставит ей рамки определённые, соответственно, как бы, если системного промта нет, или он очень простой, который просто запускает генерацию, то, м, генерит все что угодно. Но если промт будет очень точным, который ограничивает, добавляет правила какие-то
463: В ответ то, соответственно, наши ответы становятся точнее, точнее, точнее и вот начинается все с prompt, инжениринга, а дальше уже идёт окей, когда мы промт уже там вырезали, просто вот идеальный промт уже дальше не растёт качество ответов, то, соответственно, начинаем лезть.
464: Уже в эмбединге начинаем лезть в базу знаний, смотреть, что там не так. Значит, правильно ли у нас выходит 3 слой, и дальше мы начинаем смотреть уже.
465: Так.
466: Нет, это тест по построенному агенту. Григорий. То есть агент у нас получается, что как бы у нас просто нету ретривал слоя, он такой имитированный. То есть в данном случае ретривал слой у нас вот здесь вот, вот он, docx, это
467: Собственно, наш псевдо ретривал и агент это как бы системный промпт плюс ллм, которая внешне, да, окей, мы сейчас используем чат gpt 4 мини, но плюс ещё используем вот эти вот самые данные и дальше мы смотрим.
468: Когда у нас контекст есть, ллм вернула ответ в контексте или не в контексте. Соответственно, вот это вот мы проверяем сейчас. Ну, кстати, так, мне нужно гитхаб вам, наверное, расшарить сейчас. Да, кстати, я ещё хотел
469: Показать немножечко логи. То есть вот можно посмотреть метрики. То есть в данном случае ф говорит о том, что она всегда лазила в контекст. Для того, чтобы получить результат, значит, контекст всегда затрагивался. Если мы изменим
470: Уберём из контекста что-то или добавим что-то в контекст. Ну при этом изменим системный пром, то, соответственно, контекст у нас уменьшится. Если посмотреть конкретно по кейсам, то вот, например, 1 кейса, 2, 3, ну практически всегда он лазил.
471: Context без без запинки. Поэтому вот эта вот штука, она как раз и сравнивает. Я имею ввиду, был ли вопрос заданный контекст или нет, а сравнивает он на
472: Вопрос отвечал или что-то своё отвечал. Ну, тут, наверное, снизилось. Давайте посмотрим, за счёт чего, в принципе, самый низкий балл, наверное, который потащил вниз, это часы работы. Ну, здесь исключительно семантическое. То есть он понедельник, пятница, видимо, неправильно поня.
473: Потому что время стоит правильное. И понедельник, пятница тоже правильный. Каковы часы работы, службы поддержки? Так, дальше пресижн рекол. То есть это вот метрики, которые как раз определяют, достаточно ли было данных получено.
474: Контекста, чтобы ответить на вопрос, и не пришло ли че то лишнего из контекста, что на самом деле в ответе не требуется. Ну и семантика корректно. Это, собственно, некое сравнение такое косинусное между ответом и вопро,
475: Вопросом на тему. Вот как бы дополнительная такая как бы дублирующая метрика. Полезно много метрик, как бы получать и смотреть с каких сторон получается наш агент не так работает или так работает на самом деле.
476: Григорий, то есть рак это по сути, ллм плюс принудительно вызванный откуда-то вырванный контекст. Посоветуйте фреймворк, который использует балансировку нагрузки от запросов к моделям в локальном
477: Сервере.
478: А вы смотрели, может быть Виктор, что-то в сторону Вилл вот таких вот, в которые, собственно, тоже могут что-то такое предложить? Честно говоря, я бы, наверное, взял этот вопрос.
479: У нас с вами будет ещё такая, как бы, ну, не сессия, ну, что-то вроде диалога такого оффлайн. Я бы, может быть, этот вопрос взял бы немножечко поресечить, потому что прямо сходу я бы не смог ответить нормально.
480: Именно балансировка нагрузки. Так, н, движок, окей. Значит, это немного не то. Ну вот, да, давайте немного.
481: То есть у вас несколько моделей, правильно я понимаю? И вы хотите, как бы, что у вас как бы несколько нот, у вас кластер какой-то получается или что-то такое, чтоб понять?
482: Так, то есть docx это как данные вымышленный, да, то есть docx Григорий, это то, что мы получили бы, если бы у нас была векторная база данных. То есть это то, что пришло бы нам из вот этого контекста.
483: Мы сейчас как бы оцениваем, что нам пришло все правильно, но по факту это был бы дополнительный ещё слой, который можно было бы тоже оттестировать. Поэтому у нас, е, в данном случае единица.
484: Угу. А, я понял, да, то есть у вас разные модели, Виктор, под разные задачи, и в зависимости от задачи, как бы некий оркестратор вас отправляет в 1, ну, какую-то модель, так, что ли, получается, что получить результат, обернуть?
485: Ну, в любом случае, это, наверное, на потом. Так, теперь по поводу, о, кстати, да, по поводу, давайте я расшарю сейчас уже ещё 1 экран. Это по поводу того, что
486: У нас случилось в гитхабе.
487: Ну вот, собственно, репозиторий, ссылку на который я отправлю сейчас.
488: В чат. И вот что у нас произошло здесь у нас, естественно, свалился, потому что у меня токси токси тест, видите, не пройдён. В принципе, здесь те же самые логи выходят, что и у меня выходили, но при этом ещё можно, ну, посмотреть, как все устанавливалось. Понятно, да.
489: Все тоже самое, что мы видели уже в интерфейсе. И те же самые метрики, ну, похожие, во всяком случае, по моему, даже до единого числа. Так, а, 80, 53. А, ну да, чуть чуть другой. Видите? То есть от случая к случаю зави.
490: В зависимости от как бы вероятностная природа ллм, она здесь немножечко играет, поэтому выставляются именно пороговые значения вместо каких-то точных значений. Так здесь я стоп Ширинг делаю.
491: Это у меня сейчас github. Ну, там, конечно, такая немножечко игрушечная.
492: Так, Григорий спрашивает, годится ли мой код для lana или ллм студио? Я думаю, что нужно все-таки будет его адаптировать, то есть, если вы строите что-то более такое, как это называется, модульное, то есть здесь все-таки тесты.
493: Сами по себе у меня, причём все пороговые значения внутри захардкожены если это настоящее серьёзное такое ну продакшн приложение или даже pet project, то хорошо бы все выносить в конфиги что-то типа.
494: Конфигов как ямал, который можно легко поменять, подкрутить в отдельный json ларч, выносить граунд труф, ну и, соответственно, ретривал Леер тоже будет отдельным, а не таким Захар.
495: Как у меня поэтому код в целом как бы неплохо работает, если взять, выдернуть из него отдельные функции. Но вот именно архитектура, конечно, тестирования будет другая. Даже если вы будете в готовых, это все определять можно
496: Пользовать тесты, потому что только что я, да, запускал все это локально. По сути, это те же самые тесты, которые, то есть у вас тестовый модуль получается дополнительно у вас будет, скорее всего, в какой-то отдельной Папке лежать, где будут по смыслу тесты распределены, вы можете запускать его локально и смо,
497: Ну просто как выполняется локально дорабатывать модель. Если локально все работает, вы уже пушите модель в репозиторий, там и дальше работает уже сиайсиди, сиайсиди. Все-таки это приём для больших команд, когда нужно
498: Ветки подключаться, сливать. То есть здесь у меня просто, я в main запушил. Логично, что, ну, как бы так не делается обычно, когда работает команда и
499: Это самое, команда работает вместе над 1 приложением. То есть, чтоб не засорять, должны быть какие-то ворота качества и сиайсиди. В данном случае это именно эти ворота качества. Но если мы работаем сами по себе и пытаемся просто для себя построить какого-то агента, то соответствен
500: Да, то, соответственно, можно и без cd обойтись, и запускать тесты локально, но здесь важно, что это автоматические тесты, то есть мы не сидим и не опрашиваем по листочку нашего агента, чтобы понять, как он отвечает а мы
501: Запускаем каждый раз автоматические тесты. Их может быть значительно больше, чем у меня. У меня все-таки больше принцип показан, нежели какое-то прям супер продакшн решение.
502: Lm studio плюс любая лмка. Ну да, логично. То есть сиайсиди это больше для так сказать, ну, тренировки или частоты какого-то. То есть логично, что он будет запускаться у меня не когда я пушу мейн, когда я какую-то ветку
503: Пытаюсь через requests слить в main, соответственно, в этот, в этом случае должны запускаться тесты, которые потом покажут на ревью, что конкретно у меня получилось так. Коллеги, я прошу, я сердечно извиняюсь за
504: Овертайм. Тема просто, видите, такая оказалась несколько обширная, плюс ещё у нас развилась все-таки, как я и хотел, дискуссия.
505: Без сиайсиди, Григорий, можно обойтись, можно просто запускать тестирование, вот как я делал это локально, потому что тесты отдельно, а сиайсиди пайплайн это больше история про lm опс и доставку кода в какой-то общий.
506: Епозиторий, то есть это некий просто дополнительные ворота качества, по сути тесты они нужны ну, как бы тесты живут отдельно, но запускаются через cd pipeline так, сейчас я отправлю в чат ссылку на опрос вот через
507: Этот вопрос потом в будущем будем с вами держать связь.
508: И благодарю всех большое за внимание. Если возникнут какие-то вопросы по курсу, сейчас я ещё добавлю, добавлю ссылку на почту, на которой можно задать
509: Какие-то вопросы нашему менеджеру или службе поддержки? Ну это вопросы, связанные с организацией в принципе обучения упс. Так, сорри, сейчас я че то не скопировалась. Ссылка.
510: Так клик ok?
511: Спасибо большое. Уважаемые слушатели, отдельное спасибо за терпение и надеюсь, что произошло.
512: Так, по ссылке доступ запрещён.
513: Так, окей.
514: Спасибо за терпение и за.
515: Ну, вообще за интересную дискуссию мне было интересно послушать и посмотреть, что тема живёт. Тема действительно актуальная и
516: Вопросы тоже все были по существу. Спасибо. Так, я вижу, что ссылка не работает. Я думаю, что администратор пришлёт чуть позже актуальную ссылку на опрос, либо что-то может быть с нашей платформой какое-то время.
517: Че странно, сейчас я посмотрю ещё в другом месте, где у меня есть ссылка. Так, так, так, может быть, есть что?
518: Давайте я ещё отправлю на всякий случай ссылку на наш курс. Ну то есть на программу курса, что по QR-коду не получается пройти, обе ссылки работают.
519: Спасибо. Спасибо большое. Очень приятно слышать.
520: Учи.
521: Так, гитхаб, да, ссылка пришла на гитхаб. Все должно работать. Ага, отлично, отлично, отлично. Все. Ладно, желаю всем хорошего вечера. Спасибо ещё раз за внимание и удачи вам. Успехов в освоении такой.
522: Актуальной и большой темы. Надеюсь, что все пойдёт нормально.