0: Так, ну скоро тогда начнём. Сейчас я тут пока параллельно пытаюсь сервер арендовать, чтобы у нас потом была возможность хоть какую-то минорную практику посмотреть. В целом понятно, что там про работу с лмкой можно и спокойно использоват.
1: Внешние айпишки, ну, например, какой-нибудь там open ai или че-нибудь российское типа дипси, какого-нибудь этого, ну, китайский дипси или российский типа гига чата. Вот. Но можно
2: Конечно же, арендовать тоже как вариант.
3: Так, давайте тогда как раз-таки, наверное, познакомимся. Да, это хорошо, что вы пишите информацию о себе. Вот это всегда очень полезно, особенно для меня, чтобы я мог потом понимать, кто у нас сегодня из
4: Аудитория и мог непосредственно вести занятия, скажем так, больше под ваш уровень знаний. Поэтому, если есть возможность, поделитесь и скажите, откуда вы и какой у вас стартовый бэкграунд, у нас сегодня такое довольно большое занятие, оно довольно объёмное, мы с ним посмотрим вообщ,
5: На все, как бы вот по верхам рассмотрим вообще всю сферу работы с лм моделями. Поговорим о том, как работать с мультимодальности, как работать с, ну что такое вообще агенты, как с ними взаимодействовать, что такое за модное слово мультиагентные
6: Системы. Поговорим с вами о рагах. Ну и даже в идеале попробуем с ними попрактиковаться. Ну, скажем так, поднимем на сервере свою собственную бесплатную, да, лмку. Это на самом деле доступно, да, для тех людей, кто не в курсе лмки, не все
7: Платный, не все афишки платные вы можете поднять самостоятельно на своём сервере, да, там, сервере компании и так далее, или своём личном, если у вас такая есть возможность лмку и с ней работать, да, то есть по локалхосту к ней обращаться, да, как вариант. То есть в целом это вполне реальная история, как раз-таки
8: Ровно этим мы сегодня и займёмся.
9: Угу. Так, ну супер. Давайте тогда постепенно начинать. Сейчас включу демонстрацию экрана.
10: Так, демонстрация. Сейчас, секундочку, это не то, это трансляция. Сейчас демонстрация должна быть во демонстрация экрана.
11: Сейчас она появится, как только появится, поставьте плюсик, чтобы я понимал, что наконец то она вам стала видна.
12: Так вроде как сейчас вижу минусики.
13: Сейчас подождём, может, появятся плюсики.
14: Wo вроде как я, по крайней мере, её вижу. Так что, наверное, и вы теперь тоже должны видеть во все плюсы. Есть это классно. Что ж, давайте тогда начинать.
15: Итак, сегодняшняя лекция посвящена теме. Что надо вообще, в принципе, знать про работу лм. Моделей. Ну, видно, слышно уже. Судя по всему, вы это поняли по презентации тоже. Надеюсь, все. Теперь её видно, кто я такой. Меня зовут Колесников Дмитрий, я являюсь синером.
16: Разработчиком в компании вайлдберрис, занимаюсь разработкой диплернинг модели в сфере модерации контента. Ну, модерация это, собственно, такая сфера, в которой мы, собственно, проверяем контент, публикующийся на платформе. Ну, собственно, всем прекрасно. Думаю, понятно, что на самом деле довольно
17: Большой объём данных публикуется продовский на любой платформе, не в том числе wildberries, любые другие тоже платформы. И мы как раз делаем так, чтобы вы, как итоговый пользователь, его не видели. Ну и, собственно, чтобы селлеры были в равных условиях. Ну, ранее занимался датасайнсом в
18: И промышленного промышленной истории, и делал проекты по видеоаналитике с лэмками. Тоже довольно часто работаю, и в рамках видеоаналитики активно участвовал, да, в разработках разных систем для сотрудников компании. Вот, и в том числе в рамках вайлдберрис,
19: По поводу отуса, это онлайн школа. У нас как раз сегодня открытый урок из программы отус. Как раз-таки мы сегодня говорим с вами про направление отуса, связанное с дсом. Там есть подраздел, связанный с а как раз-таки это вот оно отус имеет обязательную лицензию, ну и
20: Имеет большой набор курсов по разным вообще сферам деятельности. Вот мы сегодня говорим именно про дс, а именно курс, связанный элэм дривен девелопмент, собственно, по поводу обучения. Ну, у нас там будет в конце раздел как раз-таки, где я расскажу про то, как реализовано вообще
21: Концепт обучения в онлайн школе. То есть мы это в конце оставим. Конечно, конечно, этот модуль, кому будет интересно, тот послушает. Вот. Ну а так, в целом у нас вечерняя лекция как раз-таки 20:00. Это время, скажем так, по моему, московское, по которое обычно проходят все лекции, всегда есть запись.
22: Лекций. Ну и у вас, в отличие от сегодняшнего занятия, есть доступ к микрофону, так что можно в том числе общаться напрямую, задавая вопросы, прям смело перебивая спикеров. Так что это абсолютно норма и даже приветствуется, что нас сегодня ждёт в рамках именно
23: Лекция, которую мы сегодня слушаем, мы с ней поговорим про то, как работают лмки, как их обучают. Поговорим про мультимодальность, проговорим, как можно модель адаптировать под свою задачу. Понятно, что можно, конечно же, пойти и модель обучать, да, можно там взять и обучить.
24: Модель, но проблема в том, что model нас супер гигантская, она слишком большая, физически вы её обучить, скорее всего, не сможете. Ну только если вы там работаете в бигтех какой-то гигантской компании, у вас есть доступы там к кластерам из куча куча видеокарт, и тогда да, конечно же, можете обучать свою модель.
25: Ну и к тому же опять-таки, а если вот вы ограничены, вы не можете, не имеете железа, вы максимум можете купить там у какого-нибудь open ai токен, да, и работать с их апишкой а как тогда можно модель адаптировать под свою задачу? То есть все получается универсальная.
26: Модель chat gpt от open иай не может быть использована в вашем случае там да, для работы вашей компании там или для вашей какой-то интересной задачи на самом деле может, потому что почти вся история с работой, с лэмками находится не вокруг обучения модели обуча.
27: Ресерчеры, а уже практические инженеры умеют правильно работать с промтами. Там почти все хитрости вокруг Промтов. Там целая большая, большая история о том, как работать с промтами на разном, разном уровне сложности. Но почти все это история с промтами. Пром.
28: Если что, ну, для пояснения это как бы текстовый запрос, инпут, который мы кидаем в рамках модели, получая потом какой-то output. То есть ответ от модели. Ну, и также попробуем с вами попрактиковаться. Да, надеюсь, как раз к этому моменту у меня там уже стартанет сервак, мы, собственно, там его настроим.
29: Конфигурируем, то есть там будет много немножко devops части, мы там с вами драйвера поставим на видеокарту, там все запустим. Ну в общем, там будет довольно долгая история, потому что это ещё будет занимать некоторое время там по загрузке тех же самых там образов и так далее. Но
30: Думаю, тоже будет интересно увидеть, может быть узнать чуть подноготную, в том числе девопса. Ну и в конце поговорим про саму программу отпуск, да, и там будет как раз-таки возможность задать абсолютно любые, в том числе вопросы офтопик. То есть, если что, в рамках лекции я буду
31: Обращаться к вашим вопросам, смотреть их. Но если они будут, скажем так, далеки от того, о чем мы сейчас говорим с вами по теме, то они будут отправляться в раздел оффтопик. И вы потом в конце прям ещё раз мне отправите, я их ещё раз на все отвечу. Вообще постараюсь ни 1 вопрос не оставить, скажем так, неотвеченным.
32: Давайте посмотрю, все ли понятно. Поставьте плюсик, если все понятно.
33: По тому, что нас ждёт диплернинг Дель, это сфера да, скажем так, искусственного интеллекта как раз-таки про нейронные сети, то есть вообще в целом машинное обучение делится на 2 части классик машин лернинг и deep learning классик, машин, лернинг это.
34: История про там всякие банковые истории, про скоринги. Вот, а, д эль, это уже история про нейронки там в сфере компьютерного зрения, либо языковые модели, вот как-то, что мы сегодня с вами говорим по курсу, так, плюсики ваши вижу. Ну, значит,
35: Туда можем идти дальше.
36: Что ж, как вообще работают лм модели, на самом деле открою вам тайну, ваш текст и изображение. Вообще все, что есть вокруг вас, это цифры, ну, набор каких-то цифр и
37: Получается, что, например, изображение, да, вот давайте начнём с него. Это цифры. Как, как, откуда они появляются. Дело в том, что у нас, допустим, любая цветная фотография это 3 отдельные матрицы, матрица красного цвета, зелёного и синего ргб. Думаю, слышали и матрица. Почему? Потому что
38: В каждом пикселе есть значение. Вот, например, да, какой-то пиксель экрана, у него 3 числа, там по красный 8, там зелёный 15 и синий 14, на самом деле, там числа от нуля до 255. То есть 255 это прям очень яркий цве.
39: 0 это очень Тёмный, то бишь чёрный. Вот. И тем самым получается можно задать абсолютно любой цвет, как раз-таки просто задавая как бы интенсивность по красному, по зелёному и по синему. И так для каждого пикселя изображения. То есть чем больше пикселей на фотографии, да.
40: Чем больше качество фотки, тем как бы больше та самая матрица, которая там под капотом двигается с текстом. История похожая. Текст это набор тоже чисел. А как они появляются? Да, дело в том, что можно, например, текст побить на слова, ну,
41: Самый простой вариант и каждое слово Завикторина ь, то есть тем самым, например, слово ай, да, будет какой-то ему вектор, ну, вектор. То есть, ну, мы называем это вектором, чтобы было вам проще матрица, да, вот просто матрица из чисел какие-то числа, как видите, они там
42: В float value, да, то есть числа с плавающей точкой, там их какое-то количество. Ну например, давайте абстрактно каждое слово, это 512 чисел в матрице. И вот тогда получается, что каждому слову сопоставляется какой-то вектор, кото
43: Который как-то его объясняет мы не будем с вами углубляться глубоко в математику, я не буду сегодня в рамках лекции объяснять, как конкретно вот получаются такие вот трюки, что какое-то слово, равно какой-то вектор будем считать, что вот у нас уже есть, да, возможность
44: Любому слову сопоставить вектор это там с помощью сложной математики, с помощью как раз-таки логики языка можно научить, в том числе модель, формировать такие вектора ну как раз-таки по похожести, например u s i.
45: И я, да, имеет одинаковый смысл ну 2 разных языка, но так-то смысл тот же, поэтому у них вектора будут похожи там короче у похожих слов похожие вектора, то есть у какого-нибудь слова там, не знаю perfect бьютифул будут похожие вектора, ну просто потому, что похоже.
46: Да, идейная в словах вот такая вот логика лежит под капотом. На самом деле, вот я сказал фразу, что слово равно вектор, но вопрос такой, а оптимально ли подход, что слово равно вектор? Дело в том, что слов на самом деле
47: Безумное количество, просто нереальное. А если ещё мы вспомним, что в русском языке, да, ну и вообще в целом много Языков таких вот, не только русский, в котором при форме меняется само слово, там я бежал, бежала, бежали, то есть там
48: Даже слово вот убегали, убегала, они как бы похожие, но вообще другие слова, да, то есть буквы то суммарно другие. Поэтому если мы будем каждому слову давать вектор, то прикиньте, какой у нас размер будет этого словарика, да, вот нам нужно
49: Где-то держать словарь, в котором есть сопоставление некое слово и vektor, ну то есть матрица. И вот таким образом, чем больше у нас получается слов, тем больше нужно как бы иметь эту гигантский вот
50: Сопоставления очень трудно тогда, может быть нам все-таки не бить на слова, потому что в целом ещё есть такая проблема. А что если человек вобьёт какую-то неразбериху? Знаете, бывает так вот ударил по клавиатуре или отпечатку сделал? Ну мы же не сможем все
51: Чат в мире предусмотреть. Окей, давайте возьмём попроще вариант, попробуем с вами размер словаря уменьшить. Вот смотрите, это вот как раз схема, да, вот словарь, то есть самый максимальный размер словаря, это когда у нас world bass словарь, да, где у нас слова целиковые сопоставляются с ма.
52: А что, если сопоставлять буквы, ну, букв, на самом деле, в русском языке 33, там английский возьмём, там около 20 с чем-то, я не помню, может там 27 где-то, ну вот, собственно, там добавим все, все языки мира, там их не так уж много получится уникальных букв.
53: И классно супер. Получили с вами идеальную как бы ситуацию. У нас теперь получается буквы сопоставляются с векторами, любое слово можно побить на буквы. Да, и вот тем самым получается 1 слово фастер теперь стало вот уже большое количество
54: Букв, каждая буква векторизуется. Вот и того мы получили в качестве входа матрицу из матриц. Ну понятно, да, то есть любое предложение бьётся теперь тупо на буковки, и каждая буковка заменяется на вектор.
55: Но тут какая проблема? Мы то теряем логику, потому что на самом деле sam буква смысла не несёт, да, и довольно сложно, скажем так, потом обрабатывать все буквами, да к тому же там ещё потом чуть попозже мы поймём очень сложная вычислительная нагрузка, потому что прикиньте, мы 1 предложение
56: Там размером в 5 слов уже превратили на уровне просто как бы стартового преобразования в гигантское количество токенов. А вот теперь появляется такой некий термин токен. Думаю, вы слышали про него стопудово, когда вот говорили
57: Там, ну ещё в целом все увлекались историей про модели. Вот токен это как раз-таки сущность того, на что как бы бьётся текст. Тем самым, если токеном будет буква, то у нас получается после токенизации, да, то есть про
58: Исходного текста. В токены мы получим гигантское количество токенов. Каждый токен заменится на матрицу по словарику, и это получится супер большой объём данных куда лучше, скажем так, с точки зрения и количества.
59: Токенов, ну то есть это будет, скажем так, их будет не супер много, не прям как целиковые слова, но при этом, скажем так, их будет достаточно для того, чтобы какой-то смысл хранить это вот бить на какие-то вот такие вот грамматические конструкции, вот всем нам знакомые из школ.
60: Корень, приставка, суффикс. И вот на самом деле корень, да, вот слово fast. Видите, он и тут появился, и тут, то есть фастер и fastest, они как бы оба имеют одинаковую, да, комбинацию. И вот эти quick quick ест. Обратите внимание.
61: Quickest вот его конец, он идентичен, да, то есть его, как бы, грубо говоря, суффикс идентичен тем самым вот мы можем заменить на одинаковый токен вот эти числа снизу, это как бы номер токена в рамках словаря. То есть, представьте себе, от у нас есть словарь д,
62: Где мы написали слово и сопоставляем ему вектор. И вот тогда нам нужно вот этот гигантский словарь, как бы вот номер его в словаре слова, это вот тут и подписано. То есть это вот у нас есть какой-то словарик, это номер токена в нашем словарике, и вот ему сопоставляется
63: Какое-то слово ну какой-то вот сущность из нескольких букв и одновременно сопоставляется некий вектор можно посмотреть на примере давайте вот перейдём на на ссылочку сейчас она прогрузится надеюсь все откроется я вам покажу пример, как работает текущий
64: Модели в сфере как раз-таки лм это всевозможные модели типа из уровня. Сейчас давайте я закрою пока слайдов и давайте посмотрим.
65: Да, да, вот world to век хорошее замечание. Вот Иван написал это как раз-таки, ну, семейство, да, моделей, которое позволяет векторизовать слова. Ну, в данном случае, как видите, у нас уже не слова даже, это уже токены, токены, это там уже какие-то более сложные конструкции, но идейно похожи, значит,
66: Вот у нас получается возможность вводить какой-то текст. Давайте введём какой-то текст, напишем хай, ай, эм, Дима, взгляните, че по итогу получилось.
67: Мы вбили 4 слова, а по итогу это, это превращается вот в следующую конструкцию, в 5 токенов. То есть по итогу, видите, он, хай, отдельный токен. Ай, отдельный, м, отдельный токен, буква д, как отдельный токен, то есть видит,
68: Каждая буква тоже имеет свой токен, и ещё в конце имя ну вот так вот он схарактеристиками чем сложнее слово, тем больше ему токенов даётся, то есть dima ему не очевидно, да, поэтому как бы на него выдано 2 токена вместо 1 теперь давайте попробуем тоже самое, только на русском привет.
69: Я, Дима, обратите внимание, токенов намного больше, у нас всего 3 слова, но токенов 5. То есть, как бы в русском языке токенов всегда будет больше, чем в английском, потому что в целом язык, ну, менее интернета, поэтому
70: Чаще всего все слова бьются на несколько токенов. То есть, извините, вот слово я, например, да, оно, да, это 1 токен, но вот привет, да, такое довольно базовое популярное слово уже разбито на 2 токена. То есть пр. И привет, тут не нужно пытаться искать логику типа из русского языка, там корни, корни, приставка.
71: Суфиксов, это я вам так, для красивого словца, для объяснения привёл идею. Вот просто в целом вот такие вот токены имеются, скажем так, в рамках модели open, и она заменяет автоматом текст на получается
72: 5 отдельных матриц. То есть итого можно воспринимать текст. Привет, я Дима, на вход модели, как просто 5 матриц, каждая из которых там имеет какой-то фиксированный размер. Ну, собственно, которая в модели используется, например, каждая модель. Видите, вот итого токен
73: Я привет, имя прд. Вот видите, это вот их номер в словарике. И, конечно же, ему будет какой-то вектор сопоставлен. Все ли понятно вот по части векторизации, что такое токенизация? Векторизация, да, то есть что на самом деле происходит?
74: Так, микрофон поменялся, да, вот я как раз, спасибо, что сказали. Во, хорошо. Да, да, может быть. Вот я поэтому и предупредил, что если все, предупреждайте, спасибо, что сказали. Вот, значит, понятно.
75: Понятна идея про то, как мы получаем как бы из исходного текста набор токенов. Так, сейчас посмотрим, были какие-то вопросы или нет. Получается, что векторизуется именно токен, а не слово, да? Ну получается, что вектор сопоставлен.
76: Токену. То есть мы, получается, берём текст, бьём его на токены и потом заменяем токены на вектора. То есть сопоставление именно такого образа, чем вектор от токена отличается. Ну токены, смотрите, вектор это именно матрица из чисел
77: А токен это как бы, ну просто мы так называем какую-то единицу текстовую да, запись будет, вы её сможете увидеть, она, наверное на почту вам будет отправлена ещё она будет в vk видео на YouTube.
78: Векторизованный токен, эмбеддинг же, да, да. То есть матрица ещё мы называем его эмбединг вектор, это все одни и те же слова. То есть это, это синонимы. Вот, а токен это как бы, единица, именно стр формата, да, то есть там, пр, вот, пр, это токен.
79: А вектор, сопоставляющим это вот вектор эмбеддинг, как угодно называйте размерность вектора, это гиперпараметр, да, но, скажем так, вы берете зачастую готовые модельки, вряд ли вы там будете работать в ренди, который создаёт с нуля какую-то
80: Модель, да, поэтому вы уже как бы опираетесь на модель, которую вы взяли. То есть, например, там, у какого-нибудь open, a gpt, у него там размерность этого вектора, ну то бишь матрица там пусть будет. Ну, там, пишет Сергей.
81: 768, допустим, вот какой-нибудь другой модели, там дипси кр 1, например, может 512 размер, то есть это как бы от модели зависит, да, то есть вот этот вот размер вектора привязан как бы к модели, да, по сути это был Hiper.
82: Параметр, который использовали там ресерчеры создаваемые, которые создавали модель, ту, которую вы взяли за основу для своей задачи. То есть такой вот концепт.
83: Ну мы с вами как мы с вами как инженеры использующие эту технологию ну как бы уже да, заранее привязаны там, да, к тому, как работает модель на самом деле вам даже это знать не нужно, это само все происходит автоматом вы отправляете на вход txt получаете на выходе текст. То есть для вас это как бы, знаете во
84: Инструмент подали, текст получили текст, что там происходило по ходу. Ну это просто я вам так сегодня ради интереса, ну, ради доклада расскажу, да, но на самом деле даже понимать не сильно нужно. Просто нужно понимать, что на самом деле пришёл текст, его побили на токены, да, и потом обработали.
85: Почему я такой акцент на эти токены делаю. Дело в том, что вычислительная сложность определяется размером числа токенов, потому что, как вы понимаете, на вход приходит матрица, их будет столько, столько, сколько токенов. Тем самым, если вы
86: Подали. Пусть будет текст размером 1000 токенов, либо 5 токенов. Ну, сами понимаете, что 1000 токенов против 5. Это вот получается в гигантское количество раз больше, то есть и вычислительно сложнее будет. То есть для нейронки вычислительно сложно будет пропорции.
87: Нально числу токенов.
88: Смотрите, тензор, токен, вектор это все одни и те же слова. Вот поэтому там можно ещё 1000000 разных вариантов придумать на русском языке. Альтернатив это все 1 и тоже тензоры. Это тоже самое, что и матрица, что и vektor это все 1 и тоже. Поэтому
89: Те, кто спрашивали по поводу названий терминологии, используют любые варианты. Вот, да, часто слышал слово эмбеддинги. Да, векторы матрицы используют только для того, чтобы вам было проще и понятнее, потому что матрица что-то такое, что связано со школьной программой, кто-то точно такое слово.
90: Слышал остальные слова, как токен там, ой как тензер могут кого-то путать, поэтому не буду их стараться употреблять. Идём дальше.
91: И теперь открою для вас тайну. Не знаю, может, кто-то точно это слышал или знал. На самом деле нейронная сеть, то бишь там gpt элэм, любая ленгвич модал. На самом деле это всего лишь генератор следующего токена. Вот так это рабо.
92: Вот на самом деле модель не выдаёт текст сразу, если вы работали с какой-то лэмо, с какого-то сайта, ну давайте как пример, вот открою какую-нибудь лмку, интерфейс взаимодействия спросим. Привет, напиши.
93: Дурацкий долгий текст.
94: Нажимаем enter и посмотрите, как он отвечает. На самом деле то, как он сейчас будет мне отвечать. Это Ровно так, как и работает сама эмка. Смотрите, сейчас он долгое время обрабатывает мои входные токены. И смотрите сейчас видите, он че делает? Он пишет слово за словом, на самом деле не слово, если
95: Нибудь стоп, кадр сделаю, то он останавливается на каких-то там даже серединах слова. Он генерит токены, каждый раз генерит по 1 токену. Тем самым, по сути, я, сделав 1 запрос на модельку, получаю не 1 инференс, не 1 проход, а
96: Гигантское количество раз я могу там остановить либо дождаться, когда он рано или поздно сам перестанет мне что-то писать. И, скажем так, мы получим итоговую точку. То есть тем самым получается, что модель отвечает не 1 раз, а десятки, сотни, бывает даже 1000 раз.
97: Просто в рекурсивной форме каждый раз генеря по 1 токену, то есть генерит, он тоже токенами и обрабатывает токенами, и выдаёт на выходе там частички слов, ну либо там целиковые слова, если повезло. То есть итого вот так это на самом деле
98: Выглядит рекурсивная работа, подаётся на вход. Фраза once upon он выдаёт, э, потом мы подаём на вход нейронки ванс эпон э. Он выдаёт тайм. То есть каждый раз, по сути, он просто говорит, а какое самое вероятное следующее слово?
99: Ну, то есть, точнее, не слово, а токен. Ну, понятно, что идейно, да, это слово, поэтому давайте будем дальше с вами оперировать как будто бы словами, просто, чтобы вам было проще воспринимать информацию. То есть каждый раз просто он выдаёт самый вероятный токен, то есть, тем самым получа
100: Что модель это просто, знаете как попугай, который знает как бы какие-то готовые конструкции, просто знает, что о, вот мой хозяин часто говорил фразу типа попка дурак. И вот если слышал слово попка, сразу логично, что дальше идёт дурак, ну, например, да, или
101: Там какую-нибудь ещё конструкцию, то есть он просто знает, что должно идти, скорее всего, вероятно далее при условии уже написанного текста. Поэтому, по сути это просто как бы моделька, которая каждый раз предсказывает самое вероятное следующее слово.
102: При учёте всего того контекста, поданного на вход, то есть он читает гигантский текст на входе, то бишь входной промт. Мы ещё называем это промтом, и на основе этого промта выдаёт токен. Потом мы подсовываем токен и опять подаём это же на вход.
103: Опять токен опять подсунули, опять на вход, опять токен. И вот так вот он рекурсивно каждый раз там по 1 токену выдаёт. Тогда возникает вопрос для внимательных слушателей. А как тогда ему становиться? Вот смотрите, вот мы там, помните только что запустил
104: Наша моделька, че он там? O смотрите, он остановился до новых встреч. То есть все-таки, да, он рано или поздно, да, написал текст и завершил свою мысль. А как вот с точки зрения логики, реализовать эту вот завершённость? Ведь, по сути, мы только что с вами понял.
105: Что модель будет бесконечно генерить следующее слово. Как тогда ему закончить рано или поздно эту бесконечную генерацию? Есть ли идеи? Давайте посмотрим. Ну, может, то у вас уже
106: Да, тут смотри есть люди, которые, скажем так, имеют бэкграунд да, вот Иван например правильно написал есть такой токен энд оф месседж оо называется end of sentence то есть на самом деле помните, я говорил, что каждый раз он выбирает следующее самое вероятное слово, а что
107: Если среди этих там слов, которые он выбирает, будет специальное слово такой спешл, токен, специальный токен называется end of sentence, который, скажем так, если будет выбран, это равно закончить генерацию, то есть.
108: Выйдет из этой рекурсии, как только получит токен энд оф сентенс. То есть тем самым действительно прям при обучении нейронной сети всегда, скажем так, в конце какой-то законченной мысли, правильного ответа пишется. Ну, например, представьте ситуацию, у нас вопрос к там
109: Какая там какая армия там да, возвела там флаг над рейстагом там ответ там советская армия возвела там флаг над рейстагом точка и дальше пишется end of sentence то есть тем самым конец да правильный конец там да, при обучении нейронной сети там всегд.
110: Да, в конце поставлялся такой токен, и тем самым модель при обучении запомнила и поняла, что когда мысль окончена, ставь такой символ, и он поэтому, когда его выплёвывает, мы считаем, что, о, все, стоп, генерация завершена. Если вы, например, пишите нейронке, отвечай кратко.
111: Ну что вы тем самым сделали? Вы сделали так, что нейронка будет под капотом все время опираться на слово. Отвечай кратко и с большей вероятностью выкинет токен н сентенс. Ну, поэтому получается, что она действительно как будто бы быстрее завершит свою мысль. Как она понимает, что мысль
112: Закончена. Ну вот, по принципу обучения её долго об её обучали на примерах, да, с оконченными там, да, предложениями. И всегда подсовывали в конце сент. Так она и поняла, что когда мысль окончена, дальше идёт эндо сентенс, и поэтому он её
113: То есть это, это статистика математика, да, то есть просто по принципу то, что видел при обучении, да, на гигантском объёме данных такую закономерность и понял. Также он понял, что если кто-то говорит, отвечай кратко, то, наверное, нужно с большей вероятностью выдавать токен.
114: Пораньше, то есть не продолжать какую-то бессмысленную генерацию, а пораньше как бы стартануть. Я то есть тем самым, если скажу теперь кратко, это в 1 предложение. И смотрите, он сейчас скорее
115: Скорее всего напишет очень короткий текст, потому что быстрее сгенерит такой токен вот готово смотрите, закончил свою мысль, потому что там в конце идёт end of sentence конечно же есть вероятность, что вот помните только, что мой старый промт напиши дурацкий долгий текс.
116: Была вероятность, что он, этот токен бы никогда вообще не сгенерировал. Могла быть такая вероятность. Конечно же. Поэтому вам, как разработчикам, нужно предусмотреть, что должно быть ещё программное ограничение на рекурсию. То есть рекурсия должна рано или поздно сама стопнуться. Ну, например,
117: Там, как только написал, там, не знаю, 1000 токенов, 1001 уже генерить не нужно. Тем самым, скажем так, будет просто программное прерывание. Это важно, потому что если вы это не сделаете, ну, сами понимаете, у вас есть шанс того, что вы каким-то 1 дурацким запросом просто положите свой прод, он
118: Будет бесконечно генерить вам ответы. Ну и физически просто устанет, да, ваша модель и ваш сервак обрабатывать дурацкий 1 промт, который, скорее всего, ерунду пишет, да, есть механизмы пенальти.
119: Ну да, имеется ввиду про обучение. Ну, мы сегодня поговорим чуть про обучение вкратце. Мы сегодня, видите, у нас сегодня цель больше такая инженерная. Не, не про историю, связанную с обучением. Вот, но про обучение тоже чуть расскажу, скажу, как эти модели обучаются.
120: Да, можно ограничивать. Там есть ещё дополнительные всякие параметры, которые можно задавать в моделях, там, начиная от температуры и прочих историй. Ну, про это тоже чуть чуть поговорим. Итак.
121: Идём дальше. Значит, вот пример подан какой-то текст моделька, собственно, че то там обрабатывает, да, проходит через какие-то слои. Мы сильно сегодня лезть в архитектуру, теорию именно математики под капотом нейронки не будем. Главное
122: Что вот он выкинул токен. Ай, ответ. То есть, видите, он занимается переводом и в конце своей обработки выдал 1 слово i. Потом мы его подбрасываем, да, видите, перевес, аутпут, видите, прям прям вопрос. Подбрасываем ещё, уже написанный ответ, и он выдаёт слово м.
123: Потом m. Подбрасываем, получаем ответ. Э э. Подбрасываем опять-таки сюда. I am a. Он выдаёт слово student, подаём. Ай эм э стьюдент. Теперь и смотрите в конце он выдаст сейчас and of sentence опа энд оф сентенс видели во все.
124: Значит, готово. Выдаём ответ. Это final работы. Элэм модели. Обратите внимание, что каждый раз при генерации он на самом деле видит сам вопрос. То есть у него вопрос, в том числе вместе с текущим написанным ответом двигается. То есть всегда в модели, там есть и вопрос
125: И ответ. И тем самым получается, что каждый раз он отвечает, выдавая самый вероятный следующий токен с учётом уже написанного и как бы самого тз, то бишь промта входного, который мы дали на входе. Вот такая вот история теперь.
126: По поводу выбора токена. Ну тут нам придётся чуть чуть залезть прям под капот нейронок. Не знаю, какой у вас, ну, насколько у вас прям глубокий бэкграунд с обучением там других нейронных сетей. Ну, в общем, все нейронки на самом деле, ну, могут, как бы.
127: Есть 2 типа нейронок, ну и в целом вообще все модели машинного обучения делятся на 2 типа классификационные и регрессионные. И вот давайте вопрос на засыпку. Как вы думаете, это модель какая? Классификационная или регрессионная?
128: Презентация. Хороший вопрос, наверное, стоит написать вот, вот про презентацию, но не знаю, видео точно будет выложено. Если, если хотите, я могу попросить, чтобы вам положили архив помимо архива с кодом сегодняшним ещё и презентацию.
129: Хорошо, вижу плюсик. Регрессионная, значит, идея регрессионного. Если вспомним, что такое регрессионная модель, это модель, выдающая число на выходе, да, то есть она выдаёт число. А это ли мы делаем нейронкой? Вот что нейронка делает. Помните, я говорил фразу, она выби.
130: Riot токен, она на самом деле угадывает, да, угадывает токен. Но, смотрите, регрессия может выдать вам число, например, 15, запятая 3, 17, запятая 2. Ну то есть это, ну, это просто число, да, то есть она просто
131: Число, например, кредитный скоринг, да, там какой-то предсказывает число, там погоду предсказывает число, там цену акций. То есть не то, да, нам нужно именно выбрать из вариантов. То есть это классификация в чистом виде. То есть это классификация токенов. Откуда
132: Выбирает, он выбирает из словаря. Помните, я говорил, что у нас есть некий словарь, сущность такая, словарик, который как раз-таки он выбирает, а какой из этого словарика самый вероятный токен мне сейчас выбрать. То есть тем самым, по сути, он каждый раз делает классификацию на
133: Размер всего словаря, то есть он выбирает на каждом этапе из, например, 300000 вариантов слов. Ну вот я точно не помню, там, по моему, около трехста тысяч на сегодняшний день в моделях типа gpt вариантов, то есть всего токенов, которые есть
134: Da существует в природе, да, в этом словарике, там 300000 вариантов. И вот он среди них каждый раз выбирает тем самым, по сути, это как бы классификация на 3000 классов он выбирает самый вероятный ответ. Ну вот Ровно это и делает. То есть он, например, предсказывает, чт,
135: Вот, скорее всего, правильный ответ. Это вот 1300. Сколько там? 131903 токен. Вот такой вот он решил. Или, например, я считаю, что сейчас ответ это 27620.
136: Токен. Ну вот так вот решил моделька.
137: А почему же нет? Это чистая классификация. Можно сказать, что конкретно классификационная задача. То есть тут, тут, в этом плане моделька обучается, и там все, все с точки зрения лос функции, концепты, архитектурно все выглядит именно под задачу классификации, поэтому это cheese.
138: Это классификация. Вот вспоминая, как выглядит любая моделька по классификации у классификационных моделей на выходе столько нейронов, сколько классов. Ну, сейчас мы чуть чуть забегаем в математику, но там, в общем, такая идея, на самом деле, количество нейронов будет столько, сколько классо.
139: Поэтому в конце gpt модели стоит полносвязная часть сети, да, фулли коннектед, которая имеет там около 300000 нейронов. То есть, получается на выходе у нас 300000 нейронов и
140: Что тогда выдаёт моделька? Она выдаёт 300000 чисел. Ну то есть в целом вот что выдаёт нейронка на выходе она выдаёт 300000 чисел, называется мы ещё называем их логиты. То есть видите вот полносвязная часть в конце нейронки, да, full fully connected выдаёт количество чисел.
141: Размером в spice, то есть размером словарь, то есть 300000 будет чисел и там какие-то значения. Ну пусть будет там 0 1, 2, 3, 4, 5, какие-то такие то там числа это какие-то вообще флоуд велью. И что мы тогда делаем? Мы
142: Потом делаем операцию софтмакс. Это операция из математики, которая позволяет перевести вот эти вот непонятные числа, логиты в вероятности. И мы тем самым получаем на выходе здесь такую вот большую большую карту.
143: Вероятности того или иного токена. Ну давайте абстрактно мыслить, что там, ну там на самом деле, в долях, давайте в процентах. И вот тогда мы, мы дальше че делаем? Мы просто смотрим на вот это выходное значение и из 300000 выбираем. A
144: Берём максимальную вероятность, то есть выбираем такой токен, у которого наибольшее значение вероятности. Например, это пусть будет токен номер 5. Вот у токена номер 5, там пусть будет видно. Ну, абстрактно, видите, у него хай.
145: Value 5. То есть, тем самым 5%. Вероятность, что это должна быть буква эм. Ну вот, например, если это 5, 5%, оказалось самым большим числом из всех, то вывод мы выберем именно м, то есть каждый раз мы просто выбираем самый вероятный токен в прямом смысле этого слова. Мы полу
146: Получаем все вероятности всех токенов в словаре, а потом как бы просто выбираем аргмакс, максимально вероятное слово. Ну, токен, который можно было взять, тем самым будет выбран м на следующем итерация.
147: Опять он выдаст все вероятности, всех токенов, и мы выберем опять самый вероятный, тем самым как бы вот в прямом смысле слова, как в классификации мы выбираем самый вероятный
148: Так, типа калибровка, да, калибровка. Скоро все верно. Вот софт Макс, операция позволяет как бы перевести в парадигму вероятности, потому что исходная нейронка, ну, она не может выдавать вам именно
149: Так, чтобы в сумме они равнялись единице. Ну, логично, что она выдаёт какое-то число. Да, Иван правильно говорит случай при температуре 0. Сейчас я поясню про это. Я, я, я знаю, просто пока не хочу сильно всех путать. Пока давайте мы поймём идею, что можно взять.
150: Просто самый вероятный токен это как вариант. Опять-таки я не сказал, что это самый правильный и самый лучший вариант, но это как вариант, мы можем просто взять самый вероятный токен, тогда это вот будет 1 из вариантов выбора ответа. А теперь давайте
151: Пробуем кое-какой эксперимент. Смотрите, я сейчас напишу кое-что, пишу привет. Нажимаем enter, посмотрим, что мне ответит сейчас моделька. Давайте запомним привет. Улыбающийся знак. Как могу помочь? Хорошо запомнили? Давайте ещё раз напишем слово. Привет.
152: Итак, обратите внимание, я 2 раз пишу тот же самый запрос, и по логике, которую я только что вам чуть ранее описал, мы всегда выбираем самый вероятный токен. Получается, что при одинаковом вопросе всегда будет
153: Одинаковый ответ проверяем.
154: О, все верно, одинаковый ответ. Но я не остановлюсь на этом. Я ещё раз спрошу привет.
155: Опа, смотрите, как могу помочь тебе сегодня. Опа. Слово сегодня его же не было ранее. Да, помните, он писал, как могу помочь тебе? И на этом заканчивалось. А тут раз слово сегодня написал. А как он мог это сделать? Ведь по логике, которой я только что вам сказал, мы всегда выбираем аргмакс. Ну, мы физически не
156: Можем выбрать другой токен, а тут раз нам отвечает как-то по другому, если идеи
157: Там вот про температуру то Иван писал, да, тут секрет именно в какой-то температуре. Что это такое вообще сейчас, сейчас все попробую понять.
158: А зачем нужна именно вероятность, почему не хватает скоро для сортировки. А вот как раз-таки сейчас мы поймём, почему нужна вероятность, потому что смотрите, ну вы можете просто для аргмакс, для операции выбора максимального значения действительно нам не важна, не важно, перевод в проценты мы можем просто вы
159: Вот тупо значение аргмакса можно сделать Макс по любому массиву. Да, нам не нужно для этого вероятности.
160: Помнит аккаунт? Нет, на самом деле он не помнит аккаунт. Нет, тут не в этом. Идея квен не имеет памяти, а тут опять-таки, а, ну это ответ на вопрос про аккаунт. Да, тут опять-таки видели только что создавал новый чат. Это был новый чат, поэтому в новом чате абсолютно нету истории.
161: То есть, когда я создаю новый чат, он как бы обнуляет всю историю, это как бы независимые эксперименты. Если вы в рамках 1 чата общаетесь, да, это нечестно. А вот если, скажем так, создавать новый чат, это как бы обнуление истории, поэтому тут все было, как бы это был честный эксперимент, можно судить.
162: То реально ответы разные на один и тот же вопрос, да, 2, по вероятности пишет Андрей, скорее всего. А теперь давайте объясню, в чем идея. Помните, я сказал, что мы можем получить некую вероятность? И вот эту вероятность можно и
163: Использовать как вариант, вот как можно её использовать. А давайте мы как раз-таки выберем какое-то слово, согласно его вероятности. Давайте сейчас покажу пример.
164: Вот вам пример. Я, собственно, съел пиццу, пока она была, все ещё есть варианты. Видите, это ответ нейронки. Помните, нейронка выдаёт нам не просто ответ, да, а как бы вероятность ответа. И вот есть ход, вероят.
165: 80% Ворм, 5% кулинг там 0 0 5. То есть, видите, у каждого, по сути, токена есть своя вероятность. Просто там некоторые прям 00:00, там 10 минус 4 степени. То есть понятно, что там вообще низкая вероятность. А что если мы на самом
166: Деле будем выбирать не просто тупо аргмакс, мы не просто ход выберем, а мы выберем вот именно рандомно, взяв, согласно вероятности. То есть мы посмотрим на эти вероятности и такие, типа, давайте 80%, что мы выберем рандомно ход
167: И там 5%, что это будет worm, тем самым при большом количестве, да, повторных вопросов 1 и того же у меня есть шанс того, что будет слово warm выбрано не только ход с большой долей вероятности, там будет ход, но есть шанс на warm, мы Ровно это с вами и получил.
168: У нас вот здесь как раз, когда мы генерили ответы от лмки, слово сегодня появилось, скорее всего, как слово менее вероятное. Помните, там был вариант сразу вопрос поставить. Как могу помочь тебе вопрос. А вот
169: Раз и у него появилось слово сегодня это просто из за того, что веро, ну, с какой-то долей там случайной вероятности сегодня тоже был хорошим вариантом. Обратите внимание в этом и весь прикол, так как у нас моделька имеет 300000 вариантов для выбора супер
170: Много, да, у него супер большой вариант для выбора нету однозначно правильного ответа. Да, это в целом, думаю, логично в русском языке, да и в любом языке мира нету однозначно правильной формулировки. Одно и то же можно объяснить миллиардами других слов. Поэтому сказать, что аргмакс это правильная.
171: Стратегия это неправда. Аргмакс не совсем правильная стратегия, в том, в том числе рандомный выбор слов. Согласно вероятности, конкретной выданной моделью. Это тоже очень хороший вариант. В целом мы так, например, и работаем. Если модель даже случайно выберет какую-то ерунду, поверь,
172: Она выживет. Знаете, это яркий пример. Вы как школьник, вышли к доске, вам какой-то вопрос, спросила учительница, вы какую-то ерунду сморозили, а потом выкручиваетесь. Вы же выкрутитесь. Вот нейронка так же делает. Она, может, случайно, чисто из за рандома, там с маленькой вероятностью какую-то ерунду сказать, а потом быстро вык.
173: К тому же, опять-таки, она, помните, даже даже не совсем слово, она токен выдаёт, поэтому вероятность выкрутиться у неё довольно быстро появится. Понятно ли? Объяснил. Поставьте плюсик, если понятно вот про концепт семплирования, почему у нас разные ответы появляются, там есть
174: Такой термин, как температура, температура, короче, это такой, скажем, доп. Параметр. Его используют разработчики. Он позволяет, короче, чуть чуть играться с вероятностями. Дело в том, что можно вероятности чуть подкорректировать, сделать так, чтобы, например, с большей вероятностью
175: Менее выгодные слова брались. То есть это, короче, мы сильно в математику лезть не будем, но если температуру выкрутить побольше этот параметр, да, там сделать большое число температуры, то мы тем самым как бы разрешим модели с большей вероятностью брать менее выгодные токены.
176: То есть она будет чаще выкручиваться. Это популя, это хороший вариант стратегии, особенно когда цель сгенерировать какой-то интересный контент или как-то вот знаете, вот обойти антиплагиат, да, вы хотите, чтобы модель как-то, ну, придумывала, интересно, вот, то есть выдавала
177: Что-то более красивое, когда вы работаете с готовыми модельками, да, вот типа вот как сейчас queen через интерфейс, у меня тут нет возможности как-то с ним красиво и правильно играться. Когда вы работаете через апишку, там можно вот в апишку, вы можете вкинуть доп параметры. Вот 1 из параметров это температура, он задаёт
178: Как бы возможность это вот разнообразие ответа, да, Иван правильно говорит. Увеличивается ещё вероятность галлюцинации. Вот что такое галлюцинация. Давайте термин такой тоже введём, чтоб было понятно. Моделька может случайно сгенерировать чепуху. Ну, как мы поняли, да, вероятность как бы есть того, что он
179: Каком-то этапе сгенерирует полный бред. И вот чем больше температура, тем больше шансов, что этот бред будет появляться по дороге его рассказа. И если мы хотим какой-то очень достоверный, правильный ответ, то для нас это риск, риск того, что модель начнёт просто сочиняя
180: Особенно, когда у нас вопрос какой-то по терминологии, например, назови дату, там, не знаю, окончания 2 мировой войны, а он тебе рандомно выбрал не 9 мая, а не знаю, 15. И ты такой, и дальше начинает выкручиваться, не знаю, вот в ситуацию он
181: 15. В этом месте, где нужно было сказать 9 и дальше начинает просто выдумывать все, что угодно, чтобы, типа, аргументировать, что там, я не знаю, 15 человек решили, что это 8, но на самом деле большинство думает, что, короче, будет выкручивание, это не совсем то, что нам надо. Поэтому, конечно же, таких случа
182: Важно ставить температуру поменьше. Например, 0 0. Это когда он, когда он будет брать аргмакс, то есть аргмакс будет браться там при нуле, например.
183: Ну да, да, да. Ну вот пример как раз-таки рассказывает про сюжет варкрафта, да, ну то есть можно все, что угодно, любую ерунду, вероятность выкрутиться. Почему дипси при, а, да, китайский язык, вот именно поэтом.
184: Появляется, потому что он случайно берет китайский символ, потом такой, так, я какую-то фигню сказал, на китайском пора че то выкрутиться. Ну то есть, да, это на самом деле, это яркий пример, как раз-таки галлюцинации за счёт рандомного семплирования там и так далее с температурой около нуля на самом деле.
185: Больше шансов, что у вас будет на 1 языке, без перехода на другой по дороге. Вот думаю, теперь стало вам понятнее. Эти вот приколы, которые появляются у моделей, откуда они появляются, это чисто. Вот случайно он вкинул слово, потом выкручивается. Итак, идём дальше, значит,
186: Мы поняли, как выбираются слова, пора перейти там как бы к пониманию, как модели вообще обучаются, да, вот мы с вами модели обучать не будем, мы берём готовое, но само собой, как бы, когда ты что-то используешь готовое, но нужно понимать, как оно работает. И в целом вообще, я считаю, что
187: Любой человек, кто работает с ленками, должен понимать хотя бы базу того, как они работают под капотом. Вот я не прошу понимать там глубину математики, операции, трансформации внутри там архитектуры, но хотя бы понимать общую идею, как обучали, стоит.
188: Значит, как обучить модель? Ну вот, собственно, пример следующий. У нас есть правильные текста. Мы собираем куча куча правильных текстов, и мы заставляем модель отвечать. Также вот вам пример a robot маст правильный ответ.
189: Ой, да, робот должен подчиняться. Ну, например, да, вот наш текст робот должен подчиняться, а модель выдаёт фразу, модель должна типа робот должен типа, уничтожать. И мы, собственно, смотрим и вычисляем ошибку. Ну так же, как все остальные нейронки обучают.
190: Мы вычисляем ошибку, отличие от слова абей, да, типа насколько сильно он ошибся, вычисляем и обновляем веса модели так, чтобы правильный ответ был обей. То есть каждый раз он, как бы, видите, генерит тлеющий токен, то есть тем самым по факту можем в любом месте предложения отрезать. И вот
191: Слово предсказать. И вот так его обучают. То есть в целом примеров для обучения моделей семейства ллм, просто безграничное количество. Берете весь интернет, это миллиарды, миллиарды текстов, может быть, даже триллиарды, и тем более, там квинтиллионы, наверное, предложений. Я, да,
192: Даже не могу предложить представить, сколько там предложений есть в интернете и в любом предложении в рандомном месте. Берете посередине и предсказываете следующее слово. Вот Ровно так обучают модели на 1 этапе просто тупо скармливают весь интернет у вас, вы, имея большое количество вычислительной там
193: Мощей, да, можете обучить просто model, качественно продолжать текст, то есть на 1 этапе модель учат на 1 конкретную задачу. Просто хорошо продолжать текст. Там не стоит задачи правильно продолжать, просто хорошо на этом
194: Этапе он просто понимает смысл слов, смысл Языков, он как раз-таки на этом этапе научится быть мультиязычным, потому что он прочитает кучу статей, научится на всех языках продолжать слова, конечно же, на английском лучше просто потому, что английского текста было больше.
195: При обучении, следовательно, он лучше знает его. Ну, русский, он тоже, как вы, наверное, видели, неплохо справляется и красиво пишет, без ошибок в грамматике. То есть грамматику тоже, это он учит на 1 этапе, просто увидев бесконечно гигантское количество слов, ну, типа предложений.
196: Составленных учится как бы также идентично, правильно продолжать согласно тому, что написано. И вот это долгий, долгий 1 этап обучения модели, его ещё называют претрейнинг. То есть это стартовое такое вот предварительное обучение просто на всем корпусе без
197: Конкретные задачи, само собой, в таком этапе обучения участвует вообще все. Вот просто рандомно. Весь интернет в мире. Давайте будем честны. Весь, не весь интернет хорошо и правильно написан. Не везде люди пишут качественно, с правильной грамматикой, не везде.
198: Люди там не матерятся и далеко не везде написаны правдивые факты, там иногда это просто чепуха. Если мы какой-нибудь реддит там, да, спарсим или, не знаю, сайт анекдотов, ну, у нас велика вероятность, что модель как бы вообще неправильно поймёт закономер.
199: Там в каких-то фактах мировой истории и так далее. Тем самым получается модель просто в целом по принципу большинства, а будем честны в интернете большинства контента все-таки нормальной грамматикой без мата научится говорить хорошо, просто по принципу Большин.
200: Но вот правильно, вопрос сомнительный, скорее всего, нет, поэтому нужен ещё дальнейший этап. Модельку обучили на всем интернете, а теперь уже следующий этап называется супервайт файнтюнинг, на нём обучают под конкретную задачу, на самом деле.
201: Обучает её либо на какую-то конкретную задачу, типа, например, там, на кодинг, там тем самым модель становится хороша в программировании или там хороша в математике. То есть в этом случае уже для обучения используются конкретные задачки и правильные отвалидированные ответы. Тут уже не
202: Просто кидают рандомный мусор из интернета, а берут вот реально правильные ответы и вопросы. Это уже целая сложная задача для разработчиков собрать такой датасет, в котором будет куча, куча примеров, притом правильно проверенных людьми. И вот на этом обуча,
203: Это целая тайна, покрытая мраком, куча компаний, которая вот там, open ai, там, не знаю, Алибаба, например, queen, да, который я использую, или там какой-нибудь Дисик, или вот российский GigaChat, они все очень сильно скрывают свои датасеты, потому чт,
204: На самом деле для них секретно это вот этот вот датасет, тот самый, который супервайз файнтюнинг, потому что именно от его качества зависит качество модели, то насколько она будет правильно оперировать фактами, уметь хорошо писать код без ошибок, потому что
205: Понимаете, да, если вы обучите на всем гитхабе всех людей на свете, я вас уверяю, модель будет просто ерунду делать, да, потому что большинство, конечно, github репозиториев это написано джунами, а никак не сеньорами. Так что нужно, как бы, в том числе, там, для обучения моделей по кодингу, там, сеньоров, скажем так.
206: Валидировать. Вот думаю, понятна идея, то есть тем самым модель становится реально шарящей за сферу
207: Тут же как раз-таки всякие факты и так далее. И вот теперь переходим к последнему этапу. Вот он на самом деле есть почти во всех моделях. Ну там за исключением 1 модели, по крайней мере, которая об этом особо любит понтоваться. Это модель грок, думаю.
208: Glock, по моему, грок называется от компании этого Илона маска. У неё прикол в том, что она вот обучена только на первых 2 этапах. Без 3. Я думаю, все хорошо знают, что эта модель токсичная. Ну, по крайней мере, она, ну,
209: Не особо умеет фильтровать свой базар. Назовём это так, из за чего это происходит. А дело в том, что модель как бы становится фактичной, она знает факты, она там, ну, её обучили на большом корпусе, там ответов правильных и так далее, но её
210: Не научили, как бы аспектам толерантности, не обучили её аспектам человеческого поведения. Мы, как люди, на самом деле ждём от модели не просто фактично правильный ответ. Мы хотим такой ответ, чтоб
211: Нам он нравился. Ну, например, чтобы в вопросе по кодингу нам, не знаю, вот код писался полноценно. Прикиньте, как будет неприятно, когда ответ будет правильный, но там, знаете, код будет прям вперемешку. То есть, типа, сначала берём, это, там, значит, половина строчки кода, потом опять какой-то текст на русском, опять половина строчки.
212: То есть, короче, мы хотели бы увидеть структурно код отдельно, потом отдельно объяснение кода или комментарии, чтоб в коде появлялись. В общем, у нас есть какие-то свои личные хотелки того, что мы считаем красивый, хороший ответ. Нам приятно, когда модель нам
213: Это важный аспект. Кстати, модельки вообще очень сильно льстят. Я думаю, вы замечали, когда он говорит, да, вы, вы правы. Абсолютно хорошо подмеченный вопрос. Да, это абсолютно верно. То есть это аспект того, что нравится людям. И вот это учится на 3 этапе.
214: Как бы делается моделька как бы с таким неким абстрактным эмоциональным интеллектом. Вот это как бы подражание поведению человека как раз-таки в данном случае. Видите это foreign learning это обучение с подкреплением по сути моделька начинает
215: Уже работать в продакшене, ну там либо с асессорами. И люди просто говорят, лайк, не лайк, дизлайк, лайк, дизлайк, лайк, дизлайк. И тем самым просто на ответах люди, людей, моделька, доп, дообучается, пытается делать так, чтобы отвечать с большей вероятностью на
216: Лайк, она как бы, ну, её цель отвечать так, чтобы скорее мне поставили лайк, чем дизлайк. То есть видите, у неё цель немножко меняется. Она исходно на 1 этапе стала просто знать мир и понимать язык. На 2 этапе поняла факты, а теперь ещё пытается помимо знания,
217: Фактов научиться отвечать так, чтобы угодить тому, кто спросил. И вот это как раз-таки аспект очень важный, особенно в вопросах там, да, БИК тех компаний, которые пытаются сделать такие модельки, чтобы они никого не ранили, чтобы случайно моделька не призвала кого-то
218: Сделай там, типа роскомнадзор и так далее. Понятно. Ставьте плюсики, если понятно про все 3 этапа обучения моделей. Так промтами же можно. Сейчас тоже обсудим этот аспект. Промтами можно, да, действительно, но не всегда все можно в пром залить, вы не сможете целиком.
219: Правильный тз на поведение описать в промте, потому что это слишком сложная конструкция, как бы из рубрики не говори об этом, не говори о том, не упоминай там, не знаю, слово на н, на английском там не упоминай это, ну это очень сложно физически все это
220: Prompt закинуть. И тогда вы просто напомню, у вас нейронка при работе оперирует большим текстом, который подан на вход. И если вы ещё этот текст раздуете гигантским тз на то, каким ты должен быть толерантным, хорошим, приятным. Ну вы
221: Тем самым просто забьёте кучу токенов и сделаете бесполезные вычисления. То есть чувак спросил привет, а вместо этого у него там под капотом помимо слова привет, ещё и куча куча полотна текста, будь не токсичным, будь хорошим и так далее. Ну вы просто жрёте ресурсы впустую, может
222: Слышали такую прикольную тему, что компания какая-то, по моему, на жалуется, что люди говорят спасибо моделям. Почему жалуется? Потому что, ну, слово отправка вопроса. Спасибо. На самом деле, автоматом запускает гигантскую отправку бесконечного текста, там, тз, которое помимо
223: Спасибо. Прилетает и тем самым вы только что сказали привет модели, а я потратил там, ну, нормально так, количество запросов, вычислений, мощи на серваках.
224: А грок говорит, что он проходил, да, этап. Ну, я где слышал, что где-то слышал, что они говорят, что не проходил, но опять-таки не факт, что вам сам грок не врёт. Вот. Но че то, по моему, такую слышал тему, что вот они вот хвастаются, что у них самая такая правильная модель, потому что её никто не обучал. Нравится.
225: Людям, она, типа, ну, скажем так, честная, ну вот, по крайней мере, этим хвастались в своё время, может сейчас они уже пофиксили и все-таки прошли этот этап. Ну, в общем, такой аспект, а можно обучить модель быть злой. Да, конечно, если вот вы на этом этапе будете лайкать
226: Скажем так, плохие ответы, то это и будет, да, как бы двигать модель к тому, чтобы быть плохой. Вы сами, кстати, тоже в этом участвуете. Просто не так, может сильно замечали. У вас иногда модель говорит, вам нравится ваш ответ? Вот это как раз в этот момент вы становитесь участником обучения последнего этапа, но
227: Обычно, конечно же, это делают специальные люди, специальные асессоры. Компания нанимает целый штат, который просто тупо сидят с ботом, общаются на разные темы и тупо лайк, дизлайк, лайк, дизлайк. Ну там на самом деле разные подходы есть. Можно аб тесты делать, когда он, типа выбирает между 2 ответами, типа даёт 1 ответ и друго.
228: И вы выбираете, какой вам больше понравился тоже как вариант. То есть есть разные подходы к, ну, главная цель это собрать датасет на как бы, ручную валидацию, типа нравится людям такое или не нравится.
229: Запись, как минимум вы точно её найдёте. Ну, у меня, например, на YouTube канале можете найти по моему имени фамилию. Я там в разделе сообщество точно дам знать и скину ссылку на ту, на этот запись. Вот как минимум на вк в сообществе отус точно.
230: Будет. То есть, в общем, много мест, где она точно появится. Поэтому даже если на почту не придёт, я вам надеюсь, подсказал, где искать.
231: Так, но промтами, да, это было правильное там замечание, что можно в целом, промтами тоже, да, как бы, дать тз, большое, это тоже в целом вариант сделать модель, как бы, более, там, например, доброй, да, игнори, ну, без этого последнего этапа. Ну, кстати, вот на самом
232: Деле, вот эти вот все истории, там, например, с тем, что модель какие-то темы не отвечает, политические, да, там, например, дипси не отвечает на какие-то вопросы. Это как раз-таки аспект последнего этапа. То есть на последнем этапе модель, например, сказали, что ты там, не знаю, за коммунизм, против капитализма. Я так abstract
233: Ну, то есть это как раз-таки вот пример, на котором этапе, да, показывали в целом, возможно, это ещё было и на предыдущем, то есть в целом, могли в качестве примеров, там, да, правильных ответов давать какие-то специальные. То есть, видите, тут вопрос ещё, где именно это было, ну, это точн.
234: Не 1 этап, то есть это либо 2, либо 3. Вот на этих этапах, скорее всего, подсовывали ему правильные ответы, чтобы он, скажем так, например, игнорировал вопросы политические там, да, и так далее.
235: Что ж, думаю, это понятно. Ну, конечно же, есть там всякие хитрости, как можно обойти всякие такие моменты. То есть, ну, это как раз-таки целая гонка вооружений. То есть вот как раз-таки люди фродеры, да, занимаются фродом, пытаются обмануть нейронку, заставить её отвечать. Так-ка,
236: Они хотят, а задача там этих разработчиков, скажем так, дообучить модель на примерах, опять-таки, там, например, с помощью инфорсмента, чтобы она не отвечала на такие провокационные аспекты. Идём далее.
237: Архитектура моделей. Ну тут мы не будем с вами подробно говорить, это, я думаю, найдёте кучу материалов по математике в интернете. На самом деле все модели gpt это расшифровка дженерал претрейн трансформер, поэтому это модели семейства трансформер, это такая, такое Семей.
238: Моделей архитектурных, которые под капотом в процессе своего обучения учатся строить некую матрицу, называемая аттеншен. Видите, вот аттеншн это специальная как раз-таки матрица, которая позволяет как бы
239: Найти закономерность между словами. Вот идейно там примерно вот так он к каждому слову сопоставляет другие слова и понимает, какие слова, с какими связаны. То есть прям при обучении моделька учится понимать, какие слова, с какими связаны, почему это
240: Важно. Ну, например, слово ключ в русском языке особо ничего не значит, пока не дашь контекст, гаечный ключ, скрипичный ключ, родниковый ключ это все ключи, да, хотя, по сути, абсолютно разные идейно вещи. И вот как раз-таки благодаря механизму аттеншена
241: Моделька находит закономерности и понимает, что гаечный ключ это как бы нерушимая конструкция. Они связаны идейно ключ и гаечный имеют прямую взаимосвязь. То есть не я и гаечный. Например, я купил гаечный ключ, там не, я связан с гаечным.
242: А ключ связан с гаечным, а я связан со словом купил, то есть вот это вот как раз-таки то, что понимает моделька под капотом за счёт своих там операций математических, она строит такие вот матрицы взаимосвязи, называется attention, ну то есть по другому внимание, да, если на русский язык
243: Переводить. Вот такая вот, вот так это выглядит. То есть он там определённые операции матемаческие троит, троит такую некую матрицу. Как раз-таки селф аттеншн, когда он смотрит, как слово с каким словом связано, и тем самым понимает язык. Вот мы лезть в математику не будем. Нам просто главное понимать, что все благодар.
244: Внимание. Так что да, спасибо, скажем так, за внимание этому алгоритму.
245: Давайте тогда ваши вопросы посмотрим, что у вас накопилось.
246: Между токенами, да, я тут говорил словами, чтобы было понятнее, да, идея, что там гаечный, скрипичный и так далее. Но на самом деле токенами, конечно же, потому что он оперирует токенами, поэтому везде там идёт взаимосвязь между токенами, то есть матрица токен от токенов. Так, а как он математику учится?
247: Ну вот есть примеры, например, какие-то задачки по математике и правильный ответ, собственно, вот, и учится, как бы отвечать правильно, согласно примеру. То есть в целом тут вопрос сбора датасета. Вы можете написать примеры, правильные ответы и вот обучать так, чтобы он генерил правильные ответы. Согласно примерам, можно
248: Например, ещё как вариант генерить гипотезу размышления. То есть берём какую-то теорему из математики, да, там, какой-нибудь, там, не знаю, или определение термина предел, там для любого эпсилон существует. Эн, да, вот стопаем по дороге, и дальше он должен продолжить текст. Ну то есть, вот, пожалуйста, обучайте.
249: Таким образом, то есть на любую задачу он может делать
250: Multi говость, а имеется ввиду типа про текущие модели, типа которых внутри есть разные типа возможность накинуть на разные типа attention разные мультилеер слои.
251: Ну, это уже больше, мы лезем в математику, это уже больше на курсе, наверное, будет рассказано, да, то есть я как бы, не хочу сильно в математику погружаться. Ну да, действительно, там под разные Зада, в целом, модельки там под капотом сами учатся ещё и уметь в разные сферы работать, потому что, конечно же,
252: Находить внимание, да, то есть аттеншен в рамках предложения, там про кулинарию и attention в рамках какой-нибудь теоремы из математики это немножко разные вещи, поэтому да, в целом там есть всякие свои тонкости внутри архитектуры, в архитектуре трансформер.
253: Энкодер слева подаётся исходный пром, а в decoder только red во вопрос от валентины довольно хороший там смотрите, я покажу сейчас поясню, я тут показал вот такую вот схему это вот трансформер да такой вот вид.
254: Который сегодня выглядят все модели семейства gpt. Ранее, чуть ранее модели выглядели чуть иначе. Если вы в интернете напишите в поиске, например, статью транс, напишем трансформер архитектура, трансформер.
255: Архитектура. И вот картиночки, которые вы тут увидите, они будут чуть отличаться, у них будет как бы пострашнее выглядеть, там будет, смотрите, 2 части, вот левая часть и правая. 1 называется энкодер, другая декодер. Вот.
256: 1 типа работает только с входным запросом, другая работает уже с написанным ответом. И такая идея была, она довольно активно развивалась до сих пор. Есть пару компаний, которые поддерживают именно такую парадигму, то есть модель, когда у которой есть и энкодер, и декодер. Но на сегодняшний день почти
257: Все модели перешли чисто на декодернет тектуру. То есть они убрали энкодер вовсе, потому что он занимает место большого преимущества, не даёт. В целом получается, что приходит на вход нейронки. Теперь у нас нету отдельно энкодер и декодер есть только декодер. Мы сразу подаём вопрос там какой
258: Какой-нибудь слэш ответ. То есть получается, что у вас всегда в вопросе фигурирует и вопрос, и ответ. То есть у вас входной промт состоит из вопроса и текущее написанного текста, который добавляется каждый раз. Поэтому вот как бы в чем идея. Понятно.
259: Объяснил. Ну то есть вот тут вопрос был конкретно про историю с так, а как работает диффузия? Диффузия это уже другая сфера, это генеративные модели по компьютерному зрению, диффузионные это немножко другая история. А про мультихед аттеншен был вопрос, да, ну это как бы
260: Идея, что можно несколько аттеншен одновременно строить, это уже мы лезем в математику. Я хочу сегодня постараться, чтобы все поняли, поэтому не будем прям сильно туда влезать. Так может ли модель переобучиться в рамках живого диалога с пользователем? Нет, именно прям в процессе
261: Диалога нет, но ваши диалоги, конечно же, сохраняются, а потом используются для того, чтобы дообучаться, но уже потом используется. То есть не прям во время диалога, во время диалога она не учится, она как бы обучена, она живёт как бы без выхода там в интернет, короче, она просто, ну,
262: Просто модель, которая принимает на вход txt, выдаёт текст от того, что там она не может по дороге обучиться это слишком вычислительно дорого было бы к тому же на вашем диалоге учиться почему вдруг ваш диалог хороший вдруг ваш диалог токсичный, поэтому они собирают большой объём данных, а потом?
263: Там на новые итерации модели обучаются. Поэтому, конечно же, да, недаром все модели стараются давать бесплатные, там какие-нибудь инструменты, им выгодно, что вы с ними общаетесь. Вы когда общаетесь с каким-нибудь, пусть будет дипси ом, вы помогаете компании Дисик новую модель сделать и так далее.
264: Там каждый как бы они на этом обучаются это однозначно, поэтому будьте осторожны никакие там секретные данные, там какие-нибудь api, ключи какие-нибудь там, не знаю, пароли, логины, модели сообщать не стоит, все-таки ваш диалог видят. Так.
265: Курс больше про deploy обучение, рак файнтюнинг. Нет, у нас как раз-таки мало математики. То есть, я, ну, на, на курсе будет 1 модуль, конечно, посвященны математике с бъяснение того, как работает, но по большей части это будет именно про то, что у нас сегодня будет по лекция. То есть про именно использование, про тузы там, да, про то,
266: Как реализовывать там диплои, выстраивать там какие-то агентные истории и так далее. То есть больше про это. Ну да, конечно, математика тоже будет однозначно куда без неё. Так, про генеративный. Ии, давайте тогда вопросы о топике говорил в конце просто
267: Сохраните, запомните их, потому что иначе мы просто, я физически не успею материал вам рассказать, какой большой, сколько большой контекст может использовать модель. Сегодня модель может уже гигантский контекст, там порядка, по моему, уже 32000 токенов можно передать. То есть это, грубо говоря, по
268: Ну, там около, около 10000 слов, то есть, 250000 токенов. Оо, то есть, итого это, ну, грубо говоря, если в среднем 1 слово, это, там, 3, 3 токена, да, там, 2, 3 токена. Ну, вот, и счи.
269: То есть как дофига можно очень много слов передать в контекст, но учтите, чем больше контекст, тем вычислительно сложнее операция, да, то есть просто модели трудно будет просчитывать все это. То есть долго будете ждать. Плюс ко всему есть шанс того, что при большом контексте модель может просто не за
270: Заметить что-то, ну то есть знаете, вот это как искать в большом Сагу сена иголку. Если у вас какой-то контекст важный, он очень занимает мало места по меркам всего контекста, то он может просто не заметить его такая же человеческая ошибка, как в целом, ну,
271: Im такая же ошибки, такие же ошибки как людям подвластны. Поэтому, конечно же, есть там ресерч о том, что большой большой контекст вреден просто потому, что модель теряет что-то, особенно теряет сильно что-то по центру. То есть в начале и в конце она хорошо помнит материал, а по центру может чутка че то за
272: Быть. Это особенно проявляется, когда у вас почти заполненный контекст, когда контекст у вас там на уровне нескольких тысяч, там, или 10000, ну это ни о чем. Это вообще легко. Так, идём дальше.
273: Значит, архитектуру мы с вами обсудили, поговорим про мультимодальность. На самом деле, на сегодняшний день модели уже стали мультимодальными. Такое крутое слово, что это значит? Давайте обсудим мультимодальность означает, что они могут работать не только лишь сходным объектом в виде текста. У него может быть, например,
274: Входной объект, изображение или, например, аудио в целом модели сегодняшний день уже начинают это хорошо поддерживать с изображениями. Так вообще как по мне все уже очень даже хорошо, как это обучается на самом деле концепт в том, что помимо всего
275: Вот такие вот задачки, например, есть какая-то вот какой-то вопрос, какая-то фотография и ответ правильный. Вот правильный ответ будет yes. Видите, опять помните, в конце так говорил каждый раз модель предсказывает следующий токен. И поэтому у нас есть точно правильный ответ. Мы, если
276: Заполним контекст вопросом из the tv on плюс добавим в контекст фотографию, то правильный ответ будет однозначно ес вот эта фотка если будет в контексте, то ответ будет no. И вот так вот модель учат, то есть, по сути заставляют модельку хорошо шарить за контекст.
277: Это будет, ну, это, короче, такой краткая схема, как это выглядит, да, то есть на самом деле, видите, у нас текст подаётся на вход, да, то есть бьётся на превращается в эмбеддинги. Помните? Ну то есть по другому токенизатор, оо, есть у вас происходит превращение в вектора там слов, то есть
278: Он бьётся на токены и каждый токен превращается в некий вектор того, мы получили кучу векторов, ну какое-то абстрактное количество. И фотка тоже проходя через специальные какие-то слои. Ну про это я сейчас сильно не буду объяснять. В целом есть даже у меня открытый урок какой-то можете поискать с моим участием там
279: Типа Колесников Дмитрий, че-нибудь типа мультимодальные лм, там я про это рассказываю поподробнее, как это работает. То есть можно получить в целом вектора от непосредственно фотографии и мы прям подмешиваем просто фотки текста и фотки изображении вектора изображений.
280: Вектора изображения и текста как бы соединяются и проходят вместе через модель и того он как бы понимает одновременно и фотку, и текст. То есть для него теперь это совокупная сущность. Вот такая вот идея. Тем самым можно вопросы по фотографии. Ну, думаю, примеры, ну, видели мы
281: Хотите, можно, могу показать. То есть вот можно какую-нибудь фотку подгрузить сюда? Давайте, не знаю, вот, вот прям как фотография хорошая. Давайте вот её сохранить, изображение, как и давайте эту фотку прям в модельку закинем и посмотрим вообще, шарит ли она че то.
282: Подлагало, я нажал сохранить, а вот сохранить готово. Сохранили. Давайте прям вот сюда теперь в контекст закинем, значит, подкидываю сюда, так и спрошу. Так.
283: Сейчас такая архитектура актуальна.
284: Или уже отказываются от энкодера. Ну, как бы, просто вопрос, как бы, если просто так, так спросить, непонятно вообще о чем. Но так я подкинул фотографию модели именно g.
285: Архитектура, вот он смотрит отличный вопрос. Ты привёл фотографию из статьи аттеншн изо юнит. Это правда, это была фотография из этой статьи 2017 года, то есть довольно древняя, да, актуальна, но не везде, не для всех задач. Ну, понятно, что я так и говорил. Актуальная, да, как раз называется энкодер декодер архитек.
286: Вот, но вот, например, серия gpt имеется только декодер, нету инкодера, да, например, lana, также декодер, они архитектура, мистраль квен. Вот, например, видите, а вот инкодер, декодер, это как раз-таки т. 5 бард. Ну видите, вы, наверное, эти модел
287: Редко слышали про них. То есть они есть, конечно же, но они не очень популярны. То есть большинство моделей чисто декодер. Видите, как получилось? Он ответил не только с учётом как бы, вопроса самого, да, потому что просто вопрос, давайте вот ради, ради прикола, давайте спрошу этот вопрос без фотографии, я думаю.
288: Не поймёт вообще, о чем идёт речь. Такой вопрос, скорее всего, архитектуры сетей в контексте. 25 год. Видите, какая-то пошла отдельная история, да, в целом он, он понял, что идея тут, скорее всего, про трансформер, но, видите, он отвечает общее, то есть
289: Не ссылаясь на конкретно именно данную статью. Так все ли понятно? Вы используете ризонинг? Да, иногда использую для программирования. Но это долго, просто ризонинг модели это модели, которые чуть чуть
290: Дольше отвечают. Ну даже не чуть чуть намного дольше. Сергей, хороший вопрос задал про ризонинг. Давайте поясню, в чем идея. На самом деле некоторые модели на сегодняшний день умеют не только отвечать сразу, а ещё некоторое время генерят, как бы, и думают, типа, типа создают впечатление.
291: Думанья, то есть модель не сразу начинает отвечать, прям генеря токены. Сначала тратит какую-то часть токенов на подумать, начинается какой-то процесс размышления, потом опять-таки рано или поздно он прекращается и идёт уже ответ итоговый. По сути, это происходит все на уровне
292: Работа с промтом, сами понимаете, у вас тратится безумное количество токенов. Это очень вычислительно сложно. Это к тому же долго, вот это оправдано исключительно когда у вас, ну я не знаю. И вот прям задача, где нужна очень высокая точность ответов, там, например, какой-то медицинский, искусственный
293: Например, там, да, либо работа с программированием, где это довольно полезно, но я лично не фанат ризонинг, но такая история есть модели, думаю, такие видели. То есть, вот, например, даже у того же самого квена, с которым я работаю, можно нажать кнопочку мышления и
294: Давайте какой-нибудь, типа уточни, не знаю, давай кратко расскажи. Вот смотрите, он сейчас перед началом ответа, сейчас не знаю, он будет тут писать, например, дипси точно. А вот, думаю, смотрите, видите че, происходи.
295: Он сейчас генерит уже ответ, но, по сути, я его пока не вижу, потому что это как бы процесс мышления. Видите, он как бы сам собой размышляет, и в какой-то момент, когда он закончит, видите, он сейчас 80, у него бюджет, да, выделено 81081 1000 токенов на подумать. И вот видите, мысль завершена, и вот
296: Ответ кратко.
297: А ведь код не исчез, но его используют там где-то есть в целом Давид неплохо ответил, как-то так, это вот вам пример про ризонинг, то есть это прям, то есть специально обучают модель, у которой ещё есть как бы сущность не только сразу ответа, а ещё как бы пред этап. То есть он сначала помните,
298: У него в декодере подаётся вопрос, потом идёт там smash какой-нибудь идёт раздел размышление, потом слэш, ответ. То есть тем самым сначала генерирует размышления перед тем, как начать отвечать.
299: Такс.
300: На pytorch насколько они соврешения по сравнению с теми же lstm я имею ввиду и модели pytorch, но лстм это тоже модель тоже может быть на торче не очень честно говоря понял вопрос. Возможно использовать структуру на
301: Трансформеры для решения задач классификации данных. А вы в том плане, типа, для более для задач каких-то своих, конечно же, можно, например, работаю в вайлдберрисе, мы обучаем модели по модерации контента. Вот, и в модерации контента. Мы понимаем, есть ли на фотках нарушения или не
302: У меня для фото для аналитики фотографии используются модели трансформеры, да, то есть модель архитектуры transformer, просто она решает задачу не классификации на 300000 токенов, да, а классифицирует там, ну, на ответ 1 0.
303: Ну, то есть, грубо говоря, бинарная классификация, но концептуально модель архитектурно похожа.
304: Так, окей, да, модель может очень долго думать. Видите, у него там есть, у него есть, у него есть ограничение чисто вот этот, как его по принципу максимум токенов, он может хоть 81000 токенов потратить на бесполезные размышления, чтобы потом в конце сказать нет
305: Окей, давайте пойдём дальше, значит.
306: Ну вот пример, да, то есть можно изображение подавать на вход, можно подавать мульти имидж, то есть много фоток за раз на вход можно подавать видео видео. По сути это набор фотографий, да, если так смотреть идейно, да, то есть видео это набор кадров, бьём видео на кадры и подаём кадры как бы, н штук на вход и тем,
307: Там как бы он будет обрабатывать видео, но идейно на самом деле под капотом это очень похоже на чуть выше, да, вот multi имидж, когда много фоток. То есть поэтому для него просто он просто забьёт куча контекста кадрами из видосика. Дальше поговорим.
308: Аудио модальность с ней короче, на самом деле тут вопрос спорный, я лично считаю, что почти все, ну и так на самом деле есть почти все модели с аудиомод тью, это не совсем прямо аудиомод льность, интегрированная в lm, зачастую это внешняя обёртка, создающая.
309: Впечатление аудио модальности, че имеется ввиду, вы на самом деле выстраиваете концепт из большого количества моделей, а именно 3 штук. То есть отдельно есть модель, которая принимает на вход текст и аудио, да, то есть че то наговариваете и она переводит
310: Вот как раз аср модель, например там да, из популярных моделей на это поприще это какой-нибудь этот виспер от openai, вот он переводит аудио в текст, то есть тем самым по сути он генерит текст из вашего спича.
311: Который вы наговорили, а потом подаёт в лмку. Лмка отвечает текстом. И дальше есть специальная модель типа ттс. Там их тоже большое количество разных вариантов. Честно говоря, про них я не так много могу вам подсказать. С этим не особо часто работал, она позволяет из из текста генерить речь. Думаю, такие модели вы тоже
312: Видели, которые могут из текста как бы сгенерировать искусственную синтетическую речь. Вот, например, яндекс Алиса как раз-таки, да, отвечает вам как бы сгенерированным голосом. Вот согласно тексту, который был написан там lm кой от алисы. То есть это примерно так работает. То есть, видите, у нас как бы, появля,
313: У нас нету по сути какой-то аудиомод льности отдельно, она по сути сделана через просто proxy. У нас есть прокси превращение аудио в текст, отдельная моделька, а потом из текста в аудио. Тут ещё тут надо понимать, что при работе с голосовым помощником пока вы че то
314: Долго, долго, долго говорите. Модель не должна ждать вам в идеале, пока вы че то говорите, уже время начинать заниматься асером, то есть уже переводить в текст, потому что если вы это, ну потому что иначе это будет очень долго, потому что прикиньт,
315: Вот, вы там, не знаю, минуту наговорили, голосовое, нажали, и потом долго все будет обрабатываться. В идеале уже пока вы говорите, чтобы начиналась обработка, как минимум происходила там транскрибация текста аудио, а потом дальше текст будет частями подаваться через лмку и уже будет какой-то
316: Стартовый ответ генерится, то есть тем самым, как бы в идеале вот этот процесс сделать более менее плавным, чтобы Алиса, та же самая колонка, отвечала вам практически моментально, как только вы закончили, чтобы вот время до ответа было там сокращённо вот это вот тот, как подходы, которые используют
317: Иногда бывает такая история. Бывает 2 модели, например, убирают модель, связанную с транскрибацией текста, аудио. То есть сразу подают, делают, короче, специально, короче, в не есть прям модуль, который делает латентное представление, то есть, по сути,
318: То есть, помните, как говорил токенизацию, когда мы заменяем на некие вектора, то есть матрицы, эмбеддинги, да, это все одно и то же заменяем аудио. Вот в чем преимущество такого подхода. Ну, преимущество, что вы тогда сможете понять, например, тембр, потому что если вы просто наговариваете у ва
319: Koncept. Что у вас есть модель, переводящая из аудио в текст, то моделька вообще не в курсе, какой у вас тембр речи, какой у вас примерный возраст, какой у вас пол? Она это не знает. Да, вы ещё там звоните, там, не знаю, с наездом или вы, наоборот, очень по-дружески общаетесь. Вот.
320: Это может понять моделька при условии, что у неё вот сразу же, скажем так, представление латентное, вот именно для лмки, то есть нету перевода в текст. Такой популярный подход в целом. Его сейчас тоже иногда используют. Если вы видите, что ваша моделька, каким т.
321: Чудом понимает че то о вас и может на ваше аудио сказать, что вы мужчина или женщина и понимает там про вашему тембру и так далее, то это значит, что, скорее всего, модель такого толка. Ну и 3 тип это вот редко встречающийся. Ну, я так услышал на конференции, там, по моему, МТС, та внедряе,
322: Вот, когда у вас сразу же, скажем так, 1 модель, то есть лмка принимает аудио и выдаёт сразу аудио, ну это че то довольно сложное. Чаще всего, конечно, встречается концепт, когда у вас моделька выдаёт текст. И все же потом у вас есть генератор как бы непосредственно
323: Аудио, согласно написанному тексту, примерно так.
324: Все ли понятно про писать плюс, если все понятно про модальности?
325: Так в этом смысле иероглифы это слово или кар?
326: Ой, про иероглифы я вам честно не подскажу, но мне кажется, мне тоже кажется, что все-таки их ограниченное количество. Я не думаю, что иероглифов бесконечное количество, поэтому, скорее всего, все иероглифы залиты в токены по 1 иероглифу на токен. Ну, мне так кажется, вот это прям точно вопрос.
327: Подскажу, не увлекался историей на русском языке стопудово. Есть все токены на все буквы русского языка и плюс какие-то вот комбинации, да, там из как по несколько букв в 1 токене.
328: А в лм можно подать эмбеддинги, ну, лм, и работает эмбедингам, просто она автоматом их формирует, да, на основе вашего текста или фотографии и так далее. Поэтому, что значит подать? Ну, подать можно, если вы хотите пропустить этап, связанный с как бы, таким
329: Зации текста. И у вас уже есть эмбеддинги каким-то чудом, то почему бы и нет. Ну только зачем? Не очень, честно говоря, понял ваш вопрос. Но, да, оперирует он эмбедингам. То есть нигде там буквы не гонятся, нигде. Строка string не
330: По модели. Угу.
331: Итак, где брать модели? Ну понятно что я думаю не открою собственно глаза на эти вещи вы знаете что есть понятие опенсорс ну есть короче платные модели проприетарные, а есть опенсорс модели, проприетарные модели из известных, это само собой, от openai, от компании.
332: Гигантское количество моделей. Ну, все их, думаю, знают, из проприетарных, тоже популярных. Там есть у гугла свои модели, там, у теслы, короче, куча компаний делают свои проприетарные модели, там, perplexity, например.
333: А вот есть ещё, в том числе модели опенсорсные, то есть те, которые доступны всем бесплатно. Пожалуйста, бери качай и используй. Вот, собственно, для этого есть классная платформа хакинг фейс. Сейчас давайте откроем, собственно, на этой платформе представлено гигантское количество опенсорсных бесплатных моделей, которы
334: Можно заюзать. Вот, например, из популярных дипси р 1, думаю, все про неё слышали. Она не просто так обрушила фондовый рынок сша, потому что она бесплатная. То есть, прикиньте, типа, там пока опен Ия, безумные бабки, там получает на, на том, что
335: Покупают у них эту модельку, дипси выкладывает модель бесплатно, притом она по уровню по качеству не хуже. То есть вот также от компании мета есть тоже свои модельки. Вот lana тоже бесплатные, ну то есть можно их спокойно взять. Вот например открываете модельк.
336: Да, вот на этом сайте можете её прям скачать, но, конечно же, вопрос, как вы её запустите, это большой вопрос, потому что давайте будем честны. У вас моделька 685 миллиардов параметров. Это очень много. Ну, давайте, чтобы понимали, насколько много посчитаем всегда.
337: Всегда, короче, прикольная эта тема. Многие люди удивляются, когда узнают, сколько нужно денег, чтобы просто модель запустить, даже если она бесплатная, даже если она опенсорсная, сколько нужно физически, да, купить там железо, чтоб просто модельку стартануть. Итак.
338: Че то у меня, да, калькулятор, конечно, это очень тяжёлое приложение. Понимаю, мой компьютер не может переживать, а во все переживал. Давайте посчитаем. Значит у нас с вами 685 миллиардов параметров.
339: То бишь весов модели. Итак, значит, пишем 685 миллиардов. Значит, это у нас миллионов сейчас 685, это миллионов, это миллиардов, да, сейчас вроде вроде ничего не путаю, да?
340: Это миллиарды.
341: Секунду. Вот так. Значит это будет 1000 1000000.
342: Миллиард нет, я слишком много взял вот так вот, вроде ничего не напутал это вот миллиарды, и у нас каждый параметр б ф 16, то есть бэ ф 16 это по другому что это значит, что каждый, каждое число занимает 16 bit.
343: То бишь по другому. 2 байта. Ну, напомню, 2 байта, значит, умножаем на количество байт на 2. Итого вот столько у нас байт делим на 1024, получаем килобайты, делим на 1024, получаем мегабайты.
344: И делим на 1024, получаем гигабайты. Итого мы получили 1275 гигабайт. Теперь вопрос на засыпку, как вы думаете? Но это много вообще сколько нужно видеокарт, чтобы запустить такую модель? Вот давайте вспомним, сколько
345: У нас вообще в целом, в 1 видюхе примерно памяти, я пока в это время загуглю. Значит, допустим, популярные популярные на рынке аш 200, да, это вот видеокарты семейства аш 200.
346: Вот они 141 гигабайт и 1500000 2 получается с половиной 1000000 стоит 141 гигабайт. Итого получается можно поделить на 141 гигабайт.
347: И это нужно нам таких 9 штук. Ну, умножаем на 2, 2, запятая, 4000000. Ой, блин, короче, это я сейчас нужно на 100 поделить. Сорри. 18 видеокарт. Ой, 18. Это че, тупанул 18000000, да, то есть это
348: Чисто только инвестиция на просто запуск модели. Я уже молчу о том, что помимо модели нужно ещё хранить в памяти сами токены, да, то есть мы же должны прогонять через модель как бы операции. Поэтому, помимо хранения
349: Памяти самих весов мы должны ещё хранить. И как бы вот эти вот контекст, который гоняется. Поэтому это тоже важно. Ещё плюс иногда в памяти расходуется место под кв. Кв. Кэш. Те, кто там больше шарит, есть ещё кэширование специальное, оно позволяет увеличивать пропуск
350: Способность. Ну то есть это на самом деле нужно ещё на 2 умножить количество видеокарт, чтобы просто моделька заработала. Это очень дорого. Что такое параметры? Вес это есть веса нейронов, то есть это каждый нейрон имеет вес, да, то есть это число от нуля.
351: Такое число в формате флоуд велью 16 bit, занимающее, да, то есть флоуд число, и таких у моделей куча миллиардов параметров мы сегодня с вами, я надеюсь, вы готовы будете досидеть до конца.
352: Поднимем модельку размером порядка 7 миллиардов параметров. Такую модельку вполне можно поднять на видеокарте размером 20. Ну я вот арендовал 24 гигабайта, сейчас покажу. Вот я на селектеле арендовал 16
353: Гигабайт рама, 150 гигабайтов памяти. И вот у меня rtx 40 90, это 24 гигабайта. Вот. То есть я вот такую модель арендовал такой сервер сегодня прям прям перед занятием и вот на таком сервере мы с вами поднимем модельку на 7.
354: Миллиардов. В целом, можно, наверное, даже в такую модельку. Ну, я думаю, тут даже 32 можно попробовать. Или 14 миллиардов параметров, я думаю, тоже тоже хватит. Ну, короче, тут количество параметров для такой модели, чтоб хватило, будет измеряться там, ну, типа, в миллиардах, но это будет не деся.
355: Миллиардов, ну там, скажем так, от силы 14 миллиардов. Это прям максимум, опять-таки на сайте хаггинфейс. Вы можете прям модельки искать, вот пишите какой-нибудь queen, да, вот опять-таки это опенсорсные модели. И вот там у них есть, например, queen 3, да, вот вышла моделька.
356: Давно квн 3 8 миллиардов параметров видите, у неё есть буква the all the el значит что она ещё поддерживает вижил модель, то есть получается, что она поддерживает не только типа текст, а ещё и фотографии, то есть это мультимодальная моделька, так что вот в целом прикольно, то есть она можно
357: И на неё можно кидать ещё и фотки видео. Вот, и она опенсорсная, вполне неплохая. Но 8 миллиардов, конечно, маловато. Вот тут моделька, которая сейчас с ней общаюсь. Вот Макс, тут сложно, конечно, узнать, но у неё, скорее всего, видите, вот 235 миллиардов, то есть все
358: Тут количество параметров модели 235 миллиардов, та, которая я вам предлагаю, у неё 8 миллиардов, то есть она, конечно, намного хуже, то есть она будет явно намного слабее, нежели модели там с сотнями миллиардов. Вот.
359: Ещё видите, у некоторых моделей есть подпись инструкт. Инструкт означает, что модель, которая не просто продолжает текст, а ещё и умеет работать с инструкциями. То есть в целом эта моделька более пригодна для создания систем типа рагов агентных моделей.
360: И так далее. Про это мы сегодня тоже поговорим. У нас, видите, довольно объёмная лекция. Сразу предупреждаю, что она будет длиться. Думаю, около 2 часов, может даже больше.
361: Сколько стоит такой сервер? Ну, мы только что посчитали, что это будет куча миллионов, да, то есть вам нужно более 8 видеокарт аж 200, а каждая видеокарта по 2500000. А ещё главный вопрос, где её купить, когда у нас все под санкциями.
362: Так, а именно на селектеле. А, ну это я не купил, я арендовал, вот тут можно нажимайте, типа, создать сервер и можно как бы арендовать любой сервер на некоторое время, потом, после окончания, когда он будет не нужен, можно выключить. Ну то есть это делается довольно не сложн.
363: Че то у них подлагивает система вот ну вот тут видите задаёте параметры, там например убунта сервак мне нужен gpu указываете какой видите вот есть разные а 2040 90 то есть тут можно вообще любой можно вот видите, можно h 200 арендовать, помните ту самую, которую говорил вот можн.
364: Её взять. Смотрите, сколько будет стоить в месяц. Мне нужно всего лишь то отвесить 458000 на такой сервер. Ну, понятно, что это не мой уровень. Вот я только что вот такой вот арендовал, ну вот он в месяц будет стоить 64000. Ну, мне столько не нужно. Я сегодня арендовал на odi.
365: День, поэтому, ну, 2000 я могу позволить себе как-то так. То есть, ну, цены, да, кусачьи, конечно, видеокарты стоят дорого. Если у вас нет своей и придётся арендовать, то аренда довольно недешёвое удовольствие. Это правда, так, за месяц, да, такие
366: Там суммы Куш 16 гигабайт озу запускается на а ну окей ну супер. Значит можно и в целом поменьше модельку. Так, давайте тогда дальше. Значит, на чем мы остановились? Мы с вами остановились на том, где брать модели.
367: Но, думаю, с этим мы это понятно. Тут важно, че ещё акцентировать внимание, что помимо того, где их брать, это хакинг фейс, там много разных моделей на разный виде размер, да, то есть там есть модели гигантские, которые супер мощные модельки поменьше, которые можно свою собственную видеокарту вместить, да, и более деше,
368: Где их хостить? Модели можно хостить через сервис. Например, инференс сервер элэм вм. Называется вот эта буква в вэлм инференс сервер. Это, короче, специальный такой инструмент. Docker docker, например, контейнер, в котором можно любую модель.
369: Пусть там вообще кайфово, там асинхронные апи, можно асинхронно нагружать, вот он там делает автобачи короче, там много разных оптимизаций под капотом, там есть k велью кэш. В общем, ну это то, что по курсу проходится, то есть это всевозможные оптимизации и так далее, которые
370: Позволяет моделям работать быстро. Вот, имея там сложность не о, от n квадрата, а о, от n. Ну, то есть это все там всякие истории про оптимизации. И вот влм прям из коробки, даже ничего знать понимать не нужно. Просто вот указали модельку, передали название её из face, и он её поднимет, короче,
371: Прям все легко. Мы сегодня посмотрим, поднимем. Я надеюсь, мы это сделаем. Вот по поводу сравнения моделей. Короче, тут нужно тоже понимать, что модельки лэнки надо как-то сравнивать друг с другом, оценивать, какая круче, какая хуже. И тут для этого используются разные подходы.
372: Есть 2 подхода. 1, это бенчмарки, то бишь некие, ну, грубо говоря, датасеты, на которых замеряют качество, но они не очень, ну, в чем, в чем идея? Ну, например, у вас есть вопрос, там, типа, ну, абстрактно какой день началась?
373: 1 мировая война и правильный ответ должен быть там 1 сентября, 39. И если нейронка отвечает другой ответ, то это неправильный ответ. И вот так вот. Короче, просто замеряют количество правильных ответов и по итогу оценивают модель по метрикам типа там, какой у него, грубо говоря, экрус.
374: Так далее. То есть обычные метрики, задачи классификации. И вот для этого есть вот лидерборды. Вот можете открыть, сейчас он прогрузится и там можно посмотреть по разным метрикам, там их очень много. Мы опять-таки сегодня в рамках этой лекции объяснять вам, матема,
375: И как вычислять эти метрики не буду. Вот, но в целом это проверка на правильность ответа. Но проблема в том, что правильность ответа не означает качество ответа, да, то есть мы, как люди, все-таки выбираем бота по принципу того,
376: В том числе, как он нам, не знаю, как он нам угождает, как on качественно отвечает мне, мне, не знаю, нравится его структура ответа, что ответ не какой-то там сумбурный, а структурированный. В общем, есть какие-то человеческие, да, критерии понимания. Хороший.
377: Плохая модель и вот для таких историй вот сейчас загружается
378: Так, а че это сейчас проверю. Мне, возможно, сейчас загружает не ту ссылку, а не лидерборд, да, не, вроде верно.
379: Так, и давайте пока ещё вот это открою 2 ссылку вот это 1 концерт, да то есть по метрикам оцениться вот как раз-таки это вот загружается сейчас как раз история по метрикам как раз-таки видите, на в разделе спейсес там есть вот это вот open в этот
380: Влм лидерборд. Вот тут можно посмотреть сейчас не знаю, че это он подлагивает. Может может дело, что у нас там опять закрыли доступы. Н, а. Нет, открывается. Но долго. В общем, там можно увидеть прям метрики и тип.
381: Модель и какие метрики она выбивает. И просто понять, например, если вам нужна модель по математике, вот, пожалуйста, пример. Вот вам нужна какая-нибудь модель, да, и вот вы такие, типа, хочу модель, которая там, я не знаю, превосходное качество имеет по какому-нибудь там, вот, эмм, бэнч, да, это, например, по математике. И вот смотрите, там какая
382: Нибудь какая-нибудь там, кто там 1 место занимает, открываете, вот можете слева посмотреть, видите, вот допустим, какая-то вот gpt 5, да, вот её 6 место какой-нибудь эта вот модель и так далее. Тут иногда бывают какие-то вообще нуные модели, потому что это какие-то модели специально обученные под эту задачу.
383: Например, задачу хорошо по математике отвечать. И поэтому тут надо ловить какие-то вообще прям, ну реально, ноунеймы, я вот не знаю эту модель, но они там выбивают какие-то рейтинги, но в целом их неактивно используют. А вот оценить именно качество ответов, неправильность.
384: Качество можно на другом лидерборде называется арена лидерборд элэм арена что такое lm арена это, по сути, компетишн соревнование среди моделей идея такая, что это как бы некое аб тестирование.
385: Смотрите, вот давайте нажмём старт войтинг, я сейчас открою эту ссылочку и попробуем просто ради интереса. Если сейчас прогрузится, поучаствовать в этом баттле, значит, я пишу вопрос, когда
386: Когда началась 2 мировая, да, должно быть получается сентябрь. Давайте проверим и сейчас смотрите, че происходит. У нас есть ассистент, а ассистент бэ, то есть берётся 2 рандомные модели, абсолютно random.
387: Ну, я не знаю, какие. И они отвечают. Обе на вопрос. Ну, в целом, отвечают обе, правильно. Видите, разница, да, этот уже закончил отвечать, этот отвечает, какие-то факты приносит. Я потом дальше вот читаю их ответы и решаю, какой мне больше нравится. Видите, вот есть вариант ничья. Обе плохие, обе хорошие.
388: Я такой, ну давай, не знаю, мне вот больше нравится, вот тут слишком как-то много текста. Мне в целом левый вариант нравится больше. И вот я только что принял участие в лидерборде, я как-то оценил модель, и она какой-то там рейтинг заняла, то есть по сути, это, ну типа, соревнование из рубрики аб Тестов, в котором
389: Побежать какие-то модели и там можно смотреть какие лучшие модели. И вот давайте откроем лидерборд как раз интересно на самом деле я больше все-таки этому лидерборду верю нежели лидерборду по метрикам потому что я не могу быть уверен, что люди не обучились под метрики. Прикол в том что лидерборд по метрикам он же-ка
390: Работает. Эти метрики можно, ну, как бы случайно выиграть, да, просто чисто случайно. Либо 2 вариант можно во время трейна, при обучении подавать эти, эти прям примерчики из итогового теста, и он просто выучит ответы, это как бы
391: Не очень честно, нельзя, в общем, верить сильно в эти рейтинги. А вот тут как раз-таки честное голосование людей, как бы, да, анонимное между моделями. Видите, первые места по тексту джимини занимает. Да, взгляните, вот это вот все платное, платное, платное, платная модель и вот 1 бесплатная.
392: Модель, которая тут будет, вот она, queen 5, квэн 3 max привью видите, вот 1 бесплатная модель в этом списке как раз-таки вот я только что с ней общался видите, вот квн 3. Макс, это как раз-таки, ну, бесплатная модель, она доступна, в том числе на хединг фейсе, можно её
393: Найти, закачать. Вот. И она, как видите, тут имеется. Так что вот по изображению, например, да, с vision задачками по компьютерному зрению. То есть, ну, с возможностью понимать ещё изображение. То есть мультимодальная история. И вот мультимодальных моделей, опять-таки, 1 мест.
394: Скорее всего, будет модели семейства квен, и чтоб понимали вообще, если вы в какой-нибудь компании работаете, то у вас, скорее всего, queen используются, я мало знаю компаний, которые применяют другие модели. Почти у всех опенсорсные, это квены. Вот queen. И смотрите, вот она как раз-таки лучшая модель по изображению это queen.
395: 3 в эль 235 б. Взгляните у неё, видите, у неё лицензия apache 2 0 в то время как у остальных видите, пропитанная вот проприетарная, проприетарная видите, почти весь лидерборд занимает проприетарные модели, и вот там первые, которые вот выбиваются с другой лицензией бесплат.
396: Это вот от Алибаба квены. Вот. То есть в целом почти весь, видите, лидерборд, реально это платные модели. Вот какая-то бесплатная моделька, да, с m it лицензией. В общем, можете тут смотреть, выбирать модели по вашим задачам. Ну, я чаще всего рекомендую квены, так.
397: Т. Банк, кстати, тоже queen funny. Ну да, да, я говорю, почти все компании в ввб тоже, так что это не секрет, я думаю, что у всех квены так.
398: Про квантизацию пару слов услышать. Ну да, есть всякие способы, скажем так, модели сделать более быстрыми, чтобы они работали быстрее. Как вариант. 1 это дистилляция. 2, это квантизация. Оба подхода вполне имеют место быть квантизация. В чем идея. Вот.
399: Представьте себе, у вас есть, есть вес у нейронки какой-то, там, помните, у нас пусть будет миллиард их равный 1, запятая, 2, 5, 7, 3, 2, 8, 9, 9, 9, там, 4, 5, 3. Ну, например, мы же можем округлить, если мы округлим его, например, ну там, не знаю, до 2.
400: Это же, по сути, конечно, качество чуть заруинят, но зато это сильно выиграет в хранении весов. То есть веса будут храниться. Ну, короче, нужно будет меньше памяти занимать для хранения нейронки. Это 1 плюс и 2 это быстрота.
401: Чем конечно же квантизацию если мы понижаем да, там например с фп 32 переходим там на int 8 и так далее, то будет быстрее просто работать то есть это вопрос выигрыша в вычислениях и в хранении, то есть требования на размер памяти джипи, так что да.
402: Квантизация это, да, согласен, это не просто округление, но опять-таки я сегодня стараюсь не лезть в глубину. Вот более хитрая история с перемножением, это правда, но идейно, да, и концептуально смысл действительно похож на округление, то есть
403: Именно идейно. Вот надеюсь смог донести. Ну, ф. П 32 в p 16 это больше похоже реально на округление чем-то. Вот. А если в инт 8 переводить, то да, там более интересная история, потому что сделать там из чисел
404: Вокруг нуля, числа, вокруг инт 8. Это уже немножко другая история. Это уже нужно специально математические операции делать, да? Так все ли эти плюсики ели? Все понятно. Пока по тому, что рассказал. Если какие-то вопросы накопились, давайте прям узнайте сейчас их, потому что мы сейчас переходим к самом
405: Мне кажется интересной части. Мы переходим с вами к тому. А как сделать модель шарящей за вашу сферу? Потому что пока что мы с вами говорим про готовые какие-то модельки там, да, Пронт, все понятно. А как сделать так, чтобы модель отвечала на вопросы о вашей компании при этом, чтобы мы её не обучали и без
406: Лоры, да? Ну, конечно, можно лоры сделать. Вот, но не все компании могут себе это позволить. Не у всех есть такие датасеты, чтобы обучать модель. То есть мы сейчас говорим, будем говорить в рамках дальнейшей части про то, как можно обойтись без обучения и сделать модель, хорошо шарящую за вашу компанию, ну или там за какие-то
407: Интересные аспекты, короче, как по итогу модели юзать, например, rock, да, вот там будет про рагги, сейчас история про агенты и так далее. Супер. Так, давайте тогда пойдём туда.
408: Итак, как делать модель специфическую под свою задачу? Ну, собственно, тут есть 2 подхода, это файнтюнинг. То есть, помните, да, модель сначала предобученная, потом её обучают на шарение за какой-то, за какие-то факты, потом её шарят за какие-то, за вот поведенческую
409: Историю, да, форсмен. И потом мы доходим до следующего этапа, специализируем модель под нас. Обычно вот из на опенсорсе можно найти готовые модельки как раз-таки вот которые обучены первыми 3 этапами. А последние это как раз наша задача, это адаптация модели. И тут есть 2 варианта. 1
410: Тюнинг, например, да, там, т, банк тот же самый, там есть другие компании, там, авито, ну, в целом много кто идут в эту историю, то есть, пытаются модель дообучить под свою задачу, то есть, берут какую-то модельку за основу, её, как бы, тюнят на своих данных. Тем самым моделька становится прям ша.
411: За данной конкретной компании, но это вариант не для всех, скажем так, это вариант для гигантов рынка, потому что у них есть ресурсы, чтобы позволить себе это обучать. И есть датасеты гигантского размера. У вас они вряд ли есть, поэтому чаще всего в этой истории прибегают к другим.
412: Вариантом, а это in context лернинг, то есть история с историей, история с контекстом. То есть мы по сути играемся не с весами веса будут те же. Мы будем играться с промтами, то есть будем как-то контекст модели менять, чтобы она стала шарящей за нашу
413: Компанию. Вот в целом у файнтюнинга тоже есть свои там, специализации, свои решения, например, там, да, вот варианты, типа lora, да, это вариант как раз-таки лорен, adaptations, оо, история про обучение моделей, но, скажем так, хитрая, там обучается.
414: Специальные матрицы. Вот, и есть ещё full файнтюнинг, это когда целиком модель обучаем. Это когда у нас супер много данных, это уже компании, там уровня Сбербанка, уровня, там, каких-нибудь яндекса и так далее. Лора в целом. Иногда я встречал, да, то есть компании лоры обучают, но мы с вами
415: Поговорим про более простые истории, это prompting и рагги, давайте про них поговорим, начнём с prompting, но думаю про него вы скорее всего тоже слышали. Ну так прям быстренько пробегусь, не буду углубляться, у меня тут нет цели, вам это промт инженеров из вас делать. Вот, и к тому же.
416: Какую-то прям, не знаю как по мне очень очевидную вещь говорить. Вот поэтому мне кажется тут все очевидно. Ну давайте пробежимся значит понятно, чем чётче формулировка вопроса, тем лучше в идеале добавлять больше информации, больше фактов в вопрос, чтобы лучше был ответ само
417: Собой не стоит перебирать с контекстом. Если вы даёте супер много лишней информации, эту модель можно запутать. Если наоборот даёте слишком мало информации, модель может не понять то, что надо. Вот используйте примеры. То есть, если вы, например, что-то решаете, прям приведите пример, например, там, не знаю, типа
418: У вас какая-то сложная задачка и нужно там, чтобы ответ был в виде какого-нибудь джейсона. Приведите какой-нибудь пример. Типа вот при таких данных ответ такой. Скажи, что будет, если я сдам такие данные, ну то есть примеры помогают, разделение задач не решайте 1 моделью миллиард.
419: Если у вас, не знаю, там задачка типа, типа, ответить на вопрос, сколько лет там, там, короче, вот помните, общался с моделькой, я задавал 1 вопрос, я не задавал 200, но есть люди, которые любят задавать по миллиард вопросов в 1 модели. Ну, это не очень стратегия. Лучше все-таки отдельными воп.
420: Вопросами задавать в модель. Вот проверка уточнения, вот, и ограничение объёма информации. Ну, думаю, тут логичный аспект. Мы с вами, знаете, кое че не обсудили, о котором мне кажется очень важным сказать. Это как работают чаты. Вы, наверное, заметили вот в рамках чата
421: Что я, когда общаюсь с ним, вот только что пообщался с моделью, я могу вот только что говорил про инкодер, декодеру, архитектуру, да, вот только что было про этот диалог. Давайте сейчас у него спрошу вопрос, а зачем?
422: Вообще это все надо. Ну я не знаю, я просто абстрактно вот вопрос, а зачем вообще это все надо? Не имеет никакого отношения. Пока что к вопросу, о чем мы общались ранее, но при этом давайте посмотрим, о чем он думает. И он такой декодер онли откуда?
423: Вот откуда модель знает, что я. Это имелось ввиду продолжение беседы про инкодер декодер. То есть получается у него помимо прилетевшего вопроса на вход плюс контекста из рубрики ты чат бот, который не материшься, который добрый, душевный.
424: Приятный, просто супер вообще классный. Ещё как-то оказалась информация о истории переписки. И в этом и смысл чата. То есть чат же как бы, да, он поддерживает, по сути, переписку. А вот в чем секрет? Дело в том, что помимо прилетевшего
425: Вопроса вот этого он ещё подкинул. Вот, вот это вот все тут есть разные подходы. 1 методика. Берём просто контрол ц контрол в всей переписки и просто подкидываем её типа в запрос. Помимо вопроса текущего. Такой есть подход бывает.
426: Ход, когда идёт сначала задача, он берет целиком всю историю переписки, прогоняет специальный промт из рубрики суммаризировать и кратко в 1 предложении, о чем была переписка. А потом дальше идёт мой вопрос. Тоже вариант. Видите, тут 2 инференса, мы прогоняем сначала инференс по перефразу.
427: А потом уже 2 инференс прогон модели уже с моим вопросом, тем самым, как бы у него, видите, в контексте сразу подмешан мой вопрос. Вот в этом идея. То есть, помните, когда я нажимаю клавишу новый чат, это он тем самым обновляет историю переписки, то есть теперь он не будет лишнюю информацию подкидыват.
428: Я вам рекомендую, когда вы меняете тему диалога, нажимайте всегда новый чат, потому что иначе это просто вы бесполезно токены, тратите на поддержание сюжета, которого уже вам не важен. Поэтому важная история. Новый чат создавайте при новом смысле. Вот это такой
429: Такая идея, то есть просто подкидывается, по сути, просто тупо контрол ц контрол в весь текст. И теперь понимаете, в чем прикол. Когда я пишу слово, я так никогда не делал. Конечно, я впервые поблагодарю его. Я только что сделал максимальный бред. Мне сейчас запрос, смотрите, давайте посмотрим, че он пишет.
430: За предыдущий ответ нужно ответить кратко и дружелюбно спрашивал про актуальность энкодер декодер. Видите, он только что подкинул запрос, ещё кучу информации про всю переписку. А я просто хотел слово спасибо. Видите? В конце, пожалуйста. Видите, он ответил как бы, но при этом
431: Как это вообще было бесполезно трата ресурсов gpu на мой ответ. Так что учтите данный факт по сути поддержание переписки это в прямом смысле слова подкидывание в запрос ещё куча бесполезной лишней информации, которую вы не видите так поставь.
432: Понятно ли про про эту историю? Тут передаётся именно, собственно, в раздел контекста, то есть в раздел пронта, то есть прям в промт подкидывается переписка. Ну тут разные подходы можно подкинуть. Та
433: 5 последних сообщений можно всю переписку можно перефразировать, переписку в кратко и подкинуть. Ну то есть в любом случае там как-то переписка прям в промт подкидывается, потому что моделька нужно понимать, модель это просто сущность. Подали на неё вопрос, получили ответ, там нет нигде в модели аспекта памяти.
434: Ну, то есть модель сама ничего не помнит, она просто генерирует 1 токен. Будем честны. Модель вообще в каждый момент времени даёт 1 токен. Она вообще не знает, типа ничего. Она просто знает, какой сказать следующий токен, поэтому все фокусы происходят на уровне Промтов, то есть на уровне
435: Входного текста, который прилетает, помимо того, что вы подали как запрос. И вот сейчас будем мы тоже говорить с вами о техниках именно того, как ваш вопрос пользователя модернизировать, чтобы сделать из него конфетку. То есть это все будет история с работом рабо.
436: С контекстом так возвращаемся. Так, значит, я только что потерял. А вот он, значит, по поводу prompting вот базовый промти г. Просто какой-то вопрос, типа там, не знаю, вопрос по матема.
437: Типа ответ какой-то будет можно сделать пример это хороший подход называется как раз-таки фью шот подход то есть несколько примеров по и few shot prompting подаём какую-то абстрактную задачку и говорим правильный ответ тут.
438: 11. А теперь вот реши такую задачку. Понятно, что важно, чтобы эти задачки были как-то связаны идейно, например, знаете, не знаю, какой-нибудь по математике какую-нибудь решаете книжку, да, у вас там задачки похожие, там, не знаю, в 1 случае про яблоки, в другом случае, там про ананасы, типа, у Пети было
439: У Кати там 8 сколько суммарно. Вот, конечно же, пример, приведённый с правильным ответом, даст больше шансов на ответ на новый вопрос. Это вот фьют проминг реально апает качество. Рекомендую. Но есть ещё более интересная история. Это енот промти г, это
440: Короче, когда вы, помимо ответа, вы помните, кинули ответ 11, мы ещщще вкидываем доп. Текст, как бы прям пошаговое описание, как мыслить, тем самым модель лучше понимает идею, как вообще происходило мышление, и будет как бы повторять
441: И вот чуть чуть ранее, как он отвечал, просто peter описал ответ the энсер из twenty seventh ну окей, к тому же, помните, есть такая тема, что есть доля вероятности, что он выберет рандомный токен если у вас ещё вы там, например, поставили температуру не нулевую, то он мог выбрать.
442: Вместо 27 рандомно, не знаю, 28 просто рандомно. То есть он мог вообще, он мог реально знать, он мог быть на самом деле, уверен, если мы посмотрели бы правду, оказалось бы, что у токена 27, вероятность 90%. Ну просто так случайно получилось, что у токена 20
443: Чуть вероятность 5%, и именно она сработала. И в итоге вот вам выдал ответ неверный, короче, риск. Вот. Ну и поэтому вот эта технология, да, там, от, ну, улучшает эту историю, обычно правильный ответ имеет
444: Очень высокую вероятность. Вот. Плюс ко всему, видите, в ответе генерится ещё и поток мыслей. Тоже интересно. Как раз-таки эта история, сот промти легла в основу моделей с thinking, да, то есть модели с размышлением. То есть, так, как оказалось, ну,
445: В целом это стал известный факт, что если модели модель размышляет перед ответом, то тогда она лучше отвечает. Поэтому сделали такую тему, что ризонинг модели с ризонингом. Кстати, лайфхак, можете написать такую фразу перед ответом хорошенько.
446: Подумай или типа поразмышляй перед тем, как дать ответ. Вот эта вот просто простая фраза раз и резко увеличивает качество ответа. Так что вот такой вот тоже хитрый трюк. Как можно улучшить качество ответа? Если просто сказать, чтобы он поразмышлял в целом это идея с ризонингом, то ест
447: Либо ризонинг включаете, либо пишите вот такую вот секретную фразу. Так, ну, думаю, с этим было все просто. Тут, наверное, вряд ли че можно комментировать про это, про историю с промти гом. Тут просто чисто можно продать целый курс по промти инженирингу, там, я не знаю, за
448: Долларов. Приходите ко мне на курс, расскажу вам, как писать красивые пронты ну, мне кажется это все ерунда полная. К тому же сейчас постепенно модели развиваются и постепенно уже не нужно быть хорошим Пронт. Инженером сейчас, на сегодняшний день такие модели сильные, что можно вообще с ними просто как с быдлом общаться. Ну real.
449: Они могут понимать даже вообще без, с очень ограниченным контекстом. Я иногда, ну, прям реально, очень неподробно объясняю задачу, и он правильно отвечает, даже по кодингу её просто скидываю ему какие-то части кода без какого-то пояснения, и он нормально продолжает, пишет нормально код, поэтому
450: Все эти техники с prompt, инженирингом, мне кажется, постепенно будут устаревать. А вот сейчас то, что мы сейчас к чему дошли, вот, да, то есть тема про рак, вот это вот прям актуально и прикольно. Итак, давайте, собственно, к этому перейдём.
451: Возникает такой вопрос, а как сделать так, чтобы ваша модель знала что-то о вашей компании? Вот я, например, не знаю, спрашиваю у модельки какой-нибудь вопрос из рубрики, а кто там у нас бухгалтер типа света, на ком она этаже работает? В каком кабинете? Откуда модели это знать? А что?
452: Если мы имеем базу данных о нашей компании, ну, не знаю, там, пдфки, какие-нибудь world, документы, ну, куча всякой там, маркдаун, документации. Ну, в целом, я думаю, документация везде есть в любой сфере, но если нет, то её можно составить, пойти, заставить людей там, да, техписов, напи.
453: Писать документацию к какому-то инструменту, например, там, к к госуслугам подробно, прям как пользоваться настройками, как пользоваться там, не знаю, как стдр оформить, как это сделать. Короче, все прям, прям куча куча документов. А теперь какой концепт, когда
454: Mk, получается, будет работать, она будет перед тем, как дать ответ.
455: Скажем так, принимать на вход кое-чего ещё мы, смотрите сама, м, как вы помните, просто тупо инструмент подали, текст, получили текст, поэтому должен быть отдельный инструмент. Называется ретривер, да, по другому извлекатель, который сходит и сделает запрос.
456: К нашей базе данных компании и найдёт релевантные несколько статей. Ну, например, вы спросили, где работает света бухгалтер. Он пойдёт в базу данных компании, да? Вот знаете, как этот, как яндекс, поиск сходит и посмотрит. А где там
457: Статья, которая больше всего подходит про вашу светлану. И он такой, о, Светлана бухгалтер, да, там какая-нибудь 1 статья, там свещая информация про Свету. И вот он, короче, собрал там, не знаю, 2, 3, может сколько угодно документов и подсунул прям запрос. И тем самым у вас выглядит вопрос следующим.
458: Где работает света бухгалтер и дальше идёт фраза, отвечая на вопрос, опирайся на следующую представленную информацию двоеточие и там дальше идут какие-то вот прям вставленные текстовые блоки с вытащенные из документов компании и тем самым лмка полу.
459: Учила квери и плюс текста тем самым отвечая, она отвечает теперь с учётом контекста дополнительного, которого физически не знала сама лмка, откуда ей знать, кто такая света и где она сидит, а теперь она знает, потому что отвечает, исходя из этой вот секретной фразы, опираясь.
460: На данные статьи, понятно ли, идейно это вот прям простая вот схема, ну, для понимания, да, вот, концепта Ровно так работают, например, Госуслуги, да, там спрашиваешь вопрос, как мне оформить стдр, а он такой, типа, да, сейчас тебе подскажем. И пошёл, берет какие-то
461: Статьи, скорее всего, из документации, да, и пошёл подкидывать мне их прям запрос. И тем самым отвечая, прям реально отвечает на мой вопрос, как надо. А хотя откуда ему было знать, что такое стдр, где их брать, тем более куда тыкать на Госуслугах. Ну все просто из документации. В этом как concept называется рак.
462: Агумент дженерейшен, то есть инфорсмент по другому ретривал ретривал аугмент дженерейшен, то есть расшифровываю слова ретривал как бы извлечение аугмент это аугументации, то есть добавление, то есть как бы извлекли, добавил
463: Generation, то есть извлечённая, добавленная генерация, если так прям попытаться перевести на русский язык, идейно, Ровно так работает. Ну вот какой-то абстрактный пример. То есть как это выглядит? Смотрите, вот, вот. User, он вопрос спросил вот его
464: Вопрос, ну мы не будем переводить его, че то там про man спросил какой-то вопрос. Дальше что мы делаем? Он идёт в базу данных, это векторная база данных и находит релевантные документы, подсовывает, собственно, эти релевантные документы. Вот он, видите, чанк, вот какой-то вот.
465: Документ 1, 2, 3. Мы ещё называем это чанками. То есть, ну, какие-то вот там, не знаю, абзацы, несколько абзацев, ну, чанки подсовывает, их прям в промт прогоняет уже вот такой вопрос. Смотрите, вот итоговое, что видит элэма, то есть элэма теперь видит, вопрос подсунул
466: Вопрос и дальше плиз энсер эбаут квешенс бейст он the following information и дальше подсовывает чанки тем самым получается что действительно в вопросе получается ещё есть дополнительные чанки и ответ. Видите вот пример с рагом и без ну тут чтоб понимали 1 ответ правил.
467: Другой ответ неправильный. Ну вот такая идея. Видите, пользователь видит, получается, ответ не исходного вопроса, а исходного вопроса с добавлением доп. Информации в виде Чанков из документов. Тут, наверное, возникает у вас вопрос, а вот как этот поиск осуществлять? Вот, ну, нам нужно найти релевантный доку.
468: Менты, это правда, значит, нужно как-то его найти. Значит, нужно че то с ними сделать. И тут нам нужно кое че понять. Есть специальные модели, ну их довольно много. Это модели типа типа семейства берт, ну и из популярных, например, е, 5 модель мультилингва. Мне во
469: Такая нравится мультиязычная на всех языках работает вот это модели по векторизации текста. То есть можно любой текст подать на вход и векторизовать, то есть получить, по сути, матрицу. Помните, я говорил, что мы с вами можем делать матрицу из
470: Токенов, да, каждый токен заменяется на матрицу, а нам в идеале 1 матрицу, которая характеризует смысл вопроса, ну там вопроса либо абзаца. И вот Ровно есть такие модели, которые позволяют прогнать текст и получить 1 универсальную хорошую матрицу и положить
471: Базу данных, векторную. Специально есть такие, такая сущность, векторная база данных, которая как раз хранит вектора, то бишь, ну то бишь матрицы. Вот мы, мы берём с вами целую базу данных нашей компании. Ну пусть будет компания рога и копыта всю базу векторизуем, ну то есть
472: Бьём сначала на какие-то чанки, ну например, там бьём по абзацам все наши, всю нашу документацию. Тут целая там есть теория, разные подходы по биению на чанки. Это тоже, сами понимаете, целый ресерч по разному побьёте на чанки могут быть проблемы. Вот, потому что бьются они как бы как независимые сущ.
473: Бьёте на чанки, каждый чанк векторизует и кладёте в базу данных есть разные подходы. Можно перед тем, как побить на чанке, ещё сделать какое-то обобщение. То есть можно нейронки натравить, потому что прикиньте, вот у вас есть ситуация какой-то абзац, вытащенный из контекста. Вот просто
474: Абстрактная ситуация, реальный кейс с медициной, описание какого-то лекарства и вот там, не знаю, описание какого-нибудь лекарства, пусть будет там нурофен и 1 абзац, там прям написано нурафен имеет такие-то противопоказания, потом ещё идёт следующий абзац инструкция по
475: Мнению и вот как бы если я просто возьму, вырежу из контекста фразу инструкция по применению, то нигде не будет понятно, что это векторно, идейно связано с нурофеном это просто будет, ну, абзац про применение там
476: Если слово нурофен нигде не было, не встречалось в рамках текста, то как потом по векторному поиску найти, что это было про нурафен вообще, это просто было про применение, но никак не про нурофен, поэтому можно в целом использовать подходы, когда элемка как бы дополняет чанки там, да, добавляет к ним.
477: Какую-то доп. Информацию, например, ну пример у вас было просто инструкция по применению, а он потом переписывает, пишет инструкция по применению препарата нурофен. Вот уже как бы добавил просто пару слов в рамках того же самого чанка, но зато теперь, уже после векторизации, это буде
478: Более качественный вектор, вполне хороший подход, его часто используют. То есть, ну, как бы, дополнение контекста, информации каждого чанка. Потом мы все это прогоняем, векторизуем и кладём в векторную базу данных по итогу, как это все работает. Векторная база данных. Ну и в целом это концепт векторизации делает, та,
479: Что похожие текста имеют похожий вектор. То есть, скорее всего, все, все текста, связанные с нурафеном, будет где-то лежать рядом текста про финибут в отдельном месте текста, про какой-нибудь там гексарал в отдельном месте, то есть все там, да, вот в идеале векторно, они будут лежать
480: Вот близко, либо далеко друг от друга. И поэтому, когда мы спрашиваем какой-то вопрос, например, вопрос такой, а как применять мне нурофен? У меня болит голова. Хорошо. Вопрос принимаем. Че мы дальше делаем? Мы, собственно, можем просто векторизовать. Воп.
481: Вопрос и посмотреть по базе данных. А какие самые похожие близкие чанки? То есть мы, по сути, через вот эту нейронку текстовый инкодер прогоняем не только все чанки на этапе векторизации, да, задачи, а ещё и сам вопрос, то есть во
482: Вопрос тоже проходит через эту модель, получается его вектор. А потом мы ищем среди уже ответов. То есть вот такая 1 стадия, 1 стадия. Берём кучу пдфок, делаем из них там текстовые документы, бьём на чанки, то есть бьём как бы на там абзацы, неважно дополняем чанки, че угодно с ними делаем.
483: Есть разные техники. Сильно в это лезть не будем, а потом конвертируем это все в эмбеддинги. То есть вектора получаем, да, вот матрицы эти матрицы после прогона через нейронку складываем в векторную базу данных. Есть разные векторные базы данных. Это большой список популя.
484: На самом деле, на сегодняшний день это милвус и квадрат. Вот, наверное, вот они самые популярные из из простых решений, которые часто встречают, это позес вектор, там есть такая, но он работает медленно, намного медленнее, чем квадрат и милвус. Вот, наверное, они самые популярные на рынке.
485: В вопросе опенсорса, да, доступного биг тех компаниях. И вот тем самым мы получаем такой концепт. Смотрите, это вот слева часть, это то, что происходит. Дата препарейшн это то, что происходит ещё до создания, да, до запуска в production, тут
486: Че мы делаем? Берём датку, извлекаем чанки, да, вот. И векторизуем, кладём в базу данных. А есть этап инференса. То есть использование уже на проде, как это выглядит? Приходит. User, он спрашивает какой-то вопрос, мы его
487: Pros также векторизуем, как мы викторизованными, получаем эмбеддинг, то есть по другому вектор да матрица из текста, лезем в базу данных и находим там, не знаю, топ 5 самых близких текстов и прям.
488: Просто подкидываем эту релевантную информацию в наш запрос. Тем самым по итогу будет вопрос, плюс релевантные файлы подаём на элэму. То есть элэма, как видите, она вообще, она сама не может. Это же не инструмент. Элэма просто тупо приняла текст, выдала текст, и она выдаёт ответ уже теперь, с учётом контекста, тут на са.
489: Деле ещё иногда встречается дополнительная история. Помимо ретривел даты, ещё есть реранк р, не везде он встречается, но это предпочтительный подход. В чем идея? Вы на уровне эмбеддингов, например, находите топ 100, то есть пусть будет он извлекает 100 лучших
490: Чанков 100 лучших, самых близких абзацев, но на самом деле, в идеале, потом среди этих 100 ещё раз как бы перемешать в правильном порядке, согласно лучшей подходимости, потому что нам в идеале, помните, я говорил, заполнять весь, как его
491: Весь контекст не очень. Чем больше вы заполните контента, тем хуже модели, поэтому тоже как бы переби ну делать супер много документов, подкидывать запрос не очень, поэтому специально ставят дополнительную модель, которая вот берет релевантный, пусть будет 100 documento.
492: Из бдшки и их потом как бы пересортируют в парадигме полезности. Вот специальная моделька есть раннеры, вот можете потом тоже посмотреть, они вот как раз позволяют перемешать, перевзвесить, отсортировать и потом уже подать на лмк.
493: Тем самым мы получаем превосходное качество за счёт того, что у нас поданы там пусть будет реально 3 лучших не просто вот там все на свете, а вот 3 лучших, а не, а не там 100. Вот такая история. Все ли понятно про рак? Давайте посмотрим ваши вопросы по рагу.
494: Так.
495: Толковым алгоритмом. Гибридный поиск ранкер. Далее сейчас вот про реранк как раз-таки я сказал, да, типа реранк это нормальная тема, какие есть решения? Рак из коробки. Ну, по моему, what н, 8. Н, я слышал, там, ну, есть, понятно, есть готовые инструменты.
496: Позволяющие все это делать, вот, которые там, знаете, типа с ui интерфейсом, вот, типа, and 8, and из популярных. Но чаще всего все пишут своё. То есть вот в тех компаниях я никогда не встречал, чтобы кто-то, знаете, там прям использовал готовые, типа опенсорс, инструменты для
497: Создание всего этого. Чаще всего у всех есть свои кастомные написанные истории. Вот я писал свой собственный рак, потому что мне было важно контроль, мне было важно знать, что я вот все логирую каждый этап, точно знаю, какие чанки я взял, знаю, как работает реранк, понимаю, как, как отличается реранк и его там, как меня
498: Сортировка после ранкинга. То есть если мне все это важно, я хочу это за этим контролировать, там логировать, куда-то складывать, то я сам должен все это реализовывать. Вот есть готовые, либо на питоне, которые помогают с работой, с лмками, например, это лан.
499: Chain. Вот можете посмотреть в ланчен много чего есть. Ну, в рамках курса тоже по ланчен, конечно же, будет лекция. Так находится косинусное расстояние. Это правда, да, то есть действительно вектора сравниваются косинусным образом.
500: Вот без учёта длины вектора, ну да, то есть вектора все нормируются и считается между ними косинусное расстояние. Ну это вот чуть чуть углубляясь внутрь. Действительно, вот понимание близости, это косинусное расстояние, то есть меряется косинус между
501: И находятся какие ближе, какие дальше? Ну просто понимаете, что это похоже чем-то на нейрон. Да, это правда, чем-то похоже, но грубо, да, так получается, если использовать автоматизацию рак.
502: Получается, разные бдшки будут использоваться. Не понял. Получается, если в сервисе условно используется автоматизация и раг, но для рага обычно используют векторные базы данных, потому что они просто быстрее занимаются поиском по вектора.
503: То есть это особый вид баз данных, которые хороши для векторного поиска, да, то есть поиска векторов есть базы данных. О, на самом деле в компаниях обычно миллионы баз данных разных, да, есть no sql эскьюэль базы данных, да, вот, то есть там, у кого.
504: Я не знаю, мне кажется, я не могу вспомнить 1 компанию, которая живёт на 1 базе данных. У всех куча есть, там, посгря, кликхаус, там какие-то куча носкл разных баз данных, векторные базы данных, то есть под разные кейсы, свои бдшки, вот под это, да, берут именно векторные, то есть
505: Сказал можно path грю использовать, но нежелательно то есть можно да, посгря в целом универсально под все, но посгря медленно будет работать по меркам там других других баз данных.
506: То есть промт уходит на его место приходит рак, ну то есть уходит, ну, у вас все равно остаётся история, там сначала будет какой-то системный промт, какой-то промт из рубрики, ты добрый помощник, который там, не знаю, работает, не знаю, пишет фразу, типа, ты работаешь в Сбербанк.
507: Ты хороший помощник, который отвечает людям, типа не токсично, а дальше ответь на следующий вопрос. Двоеточие. Дальше подкидывается вопрос, потом дальше для ответа на вопрос опирайся на факты и дальше подкидываются факты из рагга. То есть тем самым как бы промт просто
508: К старому промту добавились ещё контент из рагга, так как можно влиять на матическое разбиение на чанки ну это как раз-таки этап уже первичный, поэтому в целом тут уже целый ресерч можете делать, это же не real time. История это история как бы до, да, вы заранее как бы это дела.
509: И чем, в чем преимущество? А главное, которое нужно описать, в чем его преимущество по сравнению с обучением модели собственной. Потому что вы имеете полный контроль. Вы точно знаете, что было подкинуто. Если вы хорошо подготовили базу данных, то её можно актуально обновлять. Вы можете вот сегодня базу данных обновить, и у вас уже завтр
510: Моделька будет отвечать Ровно согласно этим данным. То есть, например, у вас че то очень срочно резко меняется, там, не знаю, обновляется приложение каждую неделю, но логично, что вам нельзя обучать модели, обучать свои, там именно лоры файнтюнить, потому что моделька, ну, у вас меняется.
511: Приложение постоянно. И вы вот стоило вам учить модельку, вы че то поменяли, пусть будет и у вас уже неправильно отвечает модель, потому что она не знает обновление, например, модель не знает, какая сегодня погода в Махачкале. Но если у вас есть рак, который ходит, например, там, да, какую-нибудь базу данных, в которой лежит эта
512: Информация. Ну, то он, конечно же, это сможет сказать. То есть, вот, ну, в этом преимущество готово. Интересно, интересно писать своё. Ну да, да, да, это я понял. Это про другой вопрос. Так.
513: Векторизаторы файнтюнят предметной области. Ну, честно говоря, я встречал обычно, ну, я не файнтюнил, я не могу сказать за всех, наверное, все-таки файнтюнят, мне кажется. Вот. Но чаще всего берут готовые. Есть также, опять-таки, хакинг фейс вам в помощь, да, есть куча готовых векторизаторов.
514: Вот я, например, рекомендую.
515: Е, 5, вот инфлот, мультилингв, её 5, вот это викторизацию, текстовый мультилингвальных языках, вообще офигенное решение. Ну, наверное, лучше на рынке на сегодняшний день. Ну, по, крайне, не знаю, может, не сложно говорить на сегодняшний день. Ну, короче, я его использую вот так лучше, лучше так.
516: Формулирую так.
517: Chuck это кусочек.
518: Ну да, ну то есть кусочек данных чанки, да, по другому, как бы там абзацами ещё, чтоб было понятно. Чаще всего это про абзацы эмписи, эмсипи и рак. Это не тоже самое, про это будет позже. Это про агента эмсипи, это немножко другая история. Так, про
519: Так подойдёт эскьюэль алхимия. Смотрите, эскьюэль, алхимия это что, это, по сути надстройка над всеми базами данных? Я не помню, мы есть ли в sql алхимия готовые утилиты по работе с так, с именно.
520: С векторными базами данных возможно но я сомневаюсь мне кажется по моему скл алхимия больше именно про эскьюэль то есть там вопросы будут именно эскюэль формата векторные базы данных они не эскюэль это же новые Эскель базы данных поэтому они работают не на эскьюэль там нету типа select.
521: То есть там другой синтаксис. Вот. Поэтому я думаю, вряд ли, скорее всего, вряд ли, но я, то есть алхимия, это все-таки не база данных, да, это, это как бы библиотека поверх базы данных всех эскьюэль.
522: Да, это правильно, Кирилл пишет фантюнинг для языка, либо для специальных областей. Вот. Но при этом зачастую после фантюнинг ещё используют рак, да, то есть это тоже нормальная тема. Там какой-нибудь банк, хоть и обучает свою модель, они потом все равно рагги используют. То есть нет такого, что там кто-то их не
523: Поверьте мне, все, все, все их стараются использовать, потому что это единственный вариант поддерживать актуальную актуальное хранилище информации, потому что иначе вы тогда сильно привязаны к версии. То есть, прикиньте, у вас ситуация, хотите какое-то обновление на проде сделать, и вы понимаете, что, ой, блин, сейчас мы сделаем обновление, а у на
524: Наш, я не знаю, чат бот поддержки ещё не знает. Мы же ведь не обучали новый раз эллу под это обновление. Ну бред же, да, конечно, обучать каждый раз модельку при новом обновлении. Ну, единственный вариант, просто добавьте новую статейку или удалите старую, замените её просто как бы.
525: Ну, все, что нужно сделать, просто как бы, за, ну, поменять информацию векторной бдшки и все. Моделька та же самая лмка остаётся прежняя, меняется просто как бы, хранилище.
526: Так как сейчас я вспомню расшифровку, могу точно не подсказать. Я лично как не использовал. Вот есть ещё
527: Generation н почитать будет поподробнее, улучшает за счёт Графов знаний. Вот это графовые. Я понял. Это я тоже сейчас расскажу как я понял, это имеется ввиду. Короче, графовые рагги. Смотрите в чем отли.
528: Вот, помните, вот хорошо. Такой пример про, ну, допустим, медикаменты у вас есть, например, какой-нибудь, ну, там, финибут, да, и у этого лекарства должно быть показания к применению должно быть. Че там ещё? Противопоказания.
529: Должны быть, ну короче, должны быть какие-то вот такие вот сущности и с рагом проблема, если мы побьём на чанки там, да, вот по абзацам, если мы ещё не сделаем вот эту вот историю с перефразированием Чанков, то он никогда потом не сопоставит, как там
530: Финибут связан, что это именно его инструкция по применению, да, его противопоказания, а не других лекарств. То есть тут только, видите, ну, велик шанс, риск того, что он может неправильный чанк взять, да, то есть, например, не его случайно перепутает и чужой
531: Прикиньте, ситуация, я пишу вопрос. Скажи мне показания по применению, там, не знаю, какого-нибудь нурофена нажал энтер, а он мне в итоге подсовывает в качестве промта чанки из показаний по применению. Я не знаю, какого-нибудь антидепрессанта.
532: Не знаю, какого-нибудь. И я в итоге такой читаю, думаю, нифига себе. Ну типа, ну вообще жесть какие показа. Типа, получается, что если у меня голова болит, я обязательно должен ещё иметь какие-то, не знаю, расстройства. Ну, то есть, понимаете, ситуацию, да, что просто не тот чанк.
533: Кинулся, потому что, ну просто по векторной близости, как бы слово показания по применению очень сильно спровоцировало вытаскивание какого-то другого контекста, поэтому нужно как-то связать идейно, что вот это вот показание по применению связано именно
534: Там, не знаю, с антидепрессантом или это вот с нурофеном, то есть нужна какая-то вот графовая взаимосвязь и вот для этого используется иногда, ну то есть это тоже хороший подход и в целом он даже он считается более тяжёлый, но очень даже особенно в таких случаях сложных, применительный
535: Это использование графовой, графового хранилища, да, вот, ну, Айрат, да, именно об этом, наверное, имел ввиду, да, как это про это же, да, вот это хранилище у вас графовое, в котором у вас как бы, есть прям узлы графа. То есть, если, например, сущность там, не знаю, нурафен, вот.
536: Его граф, веть графа показания по применению и там лежат все его показания. Есть ещё какой-нибудь узел, там, я не знаю, противопоказания. То есть, видите, у нас теперь как бы все сущности лежат вот по, по, в узлах графа и поиск теперь осуществляется по графу. Тем самым, например, вы когда спрашиваете че-нибудь в вопрос,
537: Как применять мне там нурафен? Он сначала пойдёт, найдёт главный узел нурафен, потом пойдёт по его, короче, будет идти вот именно парадигме его узлов и из за этого с большей вероятностью подсунет правильные чанки. Это, по сути, как бы история по вытягиванию Чанков, да, то есть
538: Можно вытягивать именно векторно, можно вот исходя из там узлов графа, ну то есть это просто разные парадигмы вот 1 и того же. Вот графовый рак работает хорошо, есть ещё прикольная парадигма, это лайт граф лайт рак, вот лайт рак и
539: Это, короче, история про то, что можно комбинировать 2 случая. То есть граф слишком тяжело. Вот. Но если как бы скомбинировать, одновременно использовать и то и другое. Вот подсовывая и какие-то там парочку узлов графа и одновременно парочку Чанков из векторного
540: То есть шанс, что все будет вообще круто. Вот. То есть, ну, видите, это, это разные парадигмы, кстати, плюсики, если понятно, про про графа в Ирак, да, это, конечно, сложная история. Вот, но она такая есть и применяется, вижу плюсики, да.
541: У нас круто, у нас 79 человек, я помню, нас было 100 постепенно, короче, люди отваливаются на разных этапе по сложности контента. Вот. Ну, надеюсь, вам хотя бы вам интересно. Вот если плюсик, если вам интересно, а то мало ли вдруг я вас сильно
542: Утруждаю, вот не вижу плюсики. Классно все тогда, тогда идём дальше, тогда я не буду прям сильно ускоряться, что задержимся. Надеюсь, ничего страшного. Потом все остальные посмотрят записи. Вот, надеюсь, запись будет сделана так, про графовую модель, их применение, графовую модель.
543: Имеется, в как, как устроены графы. Ну, это, знаете, слишком уже advanced. Я, наверное, прям туда лезть не буду. Вот. Поэтому это, да, это уже, это уже слишком хард для того, чтобы все это прям в рамках, то для этого есть курс, поэтому
544: Там, надеюсь, все это расскажут. Так, давайте идём дальше, переходим к следующей теме. Самой хайповой, мне кажется, ну, не знаю, ну прям про неё вообще все просто твердят. Агенты, агенты, агенты. Что это такое вообще, кто эти, кто эти агенты вообще такие на са.
545: На самом деле агенты это как бы, это парадигма того, что у нас теперь элэма становится гонцом, она теперь уже сама, как бы она не живёт 1. То есть у нас не просто концепт взаимодействия.
546: В парадигме типа вопрос ответ, там максимум подкинь ему контекст в виде рагга а ещё появляется прослойка дополнительная, это тузы, инструменты, к которым он может обращаться. Представьте себе ситуацию. Я ему говорю, типа подскажи мне, я хочу полететь отдохнуть во Франции.
547: Какие есть самые выгодные рейсы на завтра? Вот я вас спросил такой вопрос рейс на завтра во Францию лмка никак не ответит на этот вопрос сама ну она может, конечно, пойти в rock, да. Вот rock сходить но опять-таки, а че в раге лежит информация про завтрашний день? Ну нет, конечно.
548: Просто обычные документы, актуальные компании. Ну то есть там вряд ли есть информация о погоде на сегодня. Ну то есть каких-то таких вот прям актуальных данных там нету, он не может пойти какой-нибудь запрос там к базе данных сделать. Ну, откуда он сделает? Это отдельная сущность, а вот мы можем описать какие-то тузы, то есть сделать
549: Например, инструмент. Ну, например, можем сделать эскьюэль там, да, типа запускатор, да, у нас, короче, есть возможность запускать любой эскьюэль, и есть документация по базе данных о перелётах, и тогда че можно
550: Спрашиваю вопрос, типа, скажи, а есть ли билеты на завтра в Париж? И он че делает? Он, короче, по сути, моделька. Мы спросили вопрос у лмки лмка дальше как бы зная в контексте, что ты моделька не просто абы какая.
551: Ты ещё имеешь право сходить в инструмент базы данных. Ты можешь сделать запрос эскьюэль в базу данных, если че, в этой базе данных вот такая есть таблица, такие, то есть, не знаю, столбцы, если считаешь нужным и полезным.
552: Что тебе нужно сходить в эту базу данных? Сходи. И он такой. Он понимает, что я не могу ответить сейчас на вопрос юзера, и поэтому он генерирует не ответ сразу юзеру, а генерирует эскьюэль. Запрос не юзеру. User эскьюэль запрос не увидел.
553: Он сам под капотом сгенерировал эскьюэль вопрос запрос какой-то и выдал наружу, и дальше какой-то отдельный инструмент хватает этот эскьюэль запрос и прогоняет его через бдшку, получает ответ и подкидывает его обратно в лмку элэма.
554: Теперь уже видит в контексте я задала такой вопрос, получила такой ответ. Так хватит ли мне информации, чтобы дать ответ пользователю? Если хватит, то я говорю, да, смотри, завтра есть Париж, билет там, типа, в такое-то время. То есть, понимаете, идея, да, то есть получается,
555: Сама элемка никуда не ходит, она, она не может, она ж просто тупо текст, текст да, генерит текст. Но она теперь ещё, помимо всего знает, что ты не просто абы какая-то нейронка, живущая в вакууме. У тебя есть возможность делать что-то, например, ты можешь запусти, если хочешь, напиши код на питоне, я его запущу, и ты
556: Видишь че выведет консоль круто я например не знаю ты имеешь доступ к возможности запускать эскьюэль скрипты классно ты например можешь не знаю стучаться по апишке ты можешь сделать api запрос на я не знаю какую-то портал.
557: С прогнозом погоды, что если ты хочешь это сделать, пожалуйста, сделай только тогда передай мне информацию о типа json json в такой-то форме, в которой будет там, я не знаю, город, запятая, время и вот, собственно лэнка.
558: Понимает, что о, город есть Париж, есть, так, не знаю, время, поэтому обращаюсь к пользователю. Подскажи мне, а во сколько ты хочешь? Он говорит, в 16:00. Хочу знать погоду. Он такой, окей. Дальше он понимает, что все, ему хватает информации, и он, собственно,
559: Даёт. Джейсон отправил дальше. Собственно, отдельный инструмент хватает этот ответ, да, то есть строку, которую выкинула элэма и прогоняет через апишку апишку, возвращает ответ и подкидывает опять в промт. Теперь промпт выглядит так, ты, типа, там сервис, который узнал,
560: Это, это, это там, типа, сделал запрос апишку. Вот такой ответ тебе вернулось, если считаешь нужным, дай ответ юзеру, и ты такой, типа mk понимает, что, а, да, мне информации хватает, пора давать ответ и даёт ответ, типа, там завтра в 16:00, в Париже погода такая-то, то есть по
561: Получается, сама эленка остаётся опять-таки инструментом, который живёт в оффлайне, она не видит интернет, она ничего не она просто отвечает текст на текст, но она как бы как мозги. Знаете, это как мы. Вот я, например, не могу сказать вам, какая погода завтра в Париже, но я, получив от вас вопрос, какая погода в Париже, мой
562: Мозг поймёт, что мне, скорее всего, нужно сходить на сайт прогноза погоды, посмотреть, а потом как бы обработать информацию и выдать вам нормальный ответ. Вот Ровно теперь этим коммюникейшн леером, да, средой становится лэлэка, она теперь как бы
563: Посредник между юзером и доступными тузами для его работы. Получается, что она может сходить взять датку из апишки, запустить какой-то код на питоне, какой-нибудь там, в том числе сделать какой-то поиск в интернете. Вот как раз яркий пример, да.
564: Можно какой-нибудь сделать вопрос? Яркий пример perplexity. Думаю слышали такую? Это моделька, которая можно ходить в интернет. И вы че то спросили у неё, он пошёл, реально сходил в интернет, там че то карту посмотрел, ещё че то сделал. То есть сама элемка это не делает, это делает сторонний
565: Тузы, которым, о которых знает существование лмм. То есть по сути, лмка имеет гигантский пром, там просто нереально гигантский промт. Там помимо вопроса вашего ееще подкидывается, что ты лмка, которая может использовать такие-то тулзы, ты
566: Можешь узнать прогноз погоды, можешь запускать код на питоне, можешь запускать там, не знаю, информацию, ну, типа эскэль запросы. Вот, и, помимо всего, идёт ещё большая большая документация к этим инструментам. Типа, если хочешь сделать эскэль запрос,
567: То вот такие, то есть столбцы такие, то есть строки там и так далее. Если ты хочешь сделать, запустить питон, то Выдай ответ такой-то форме. Если ты хочешь запустить, не знаю, апишку, то апишки вот такие-то такие то параметры Выдай в виде джейсона, то есть там гигантский просто гиган.
568: Размера, даже нереально себе представить, какого размера там промт дополнительный, который есть у агента, понятно ли, примерно, примерно, да, навскидку, в чем отличие агентов, да, там врагов и так далее. То есть это про
569: То как бы мозги, которые могут генерить что-то помимо сразу ответа юзеру, то есть они могут под капотом ещё че то там дополнительное делать, генеря, какие-то дополнительные ответы промежуточные.
570: Вот сейчас про это поговорим, про алису, я могу прям конкретно рассказать, потому что у меня есть знакомые, которые как раз разрабатывают яндекс нейро. Вот, да, короче, значит, по поводу, значит, того, что мы говорили про агентов, значит,
571: Получается, что в целом есть вот по поводу рага рак тоже, может быть агентный. Вот есть такая фраза, агентный рак, может такое слышали? Ну, не знаю, по крайней мере, теперь точно слышали агентный рак это, короче, рак по выбору. То есть вы можете к рагу как бы сходить, а може
572: Не сходить к рагу. Вот, то есть получается, рак теперь становится тоже опциональным. То есть, если до этого помните, у нас был концепт, что всегда мы идём в rock, идём искать лучшие чанки, то если мы напишем, что ты агент, который, если понимаешь, что не можешь ответить на вопросы самостоятельно и своих общих знаний о мире, сходи.
573: И в этот ты можешь попросить переформулировать вопрос так, чтобы я его отправил на rock поиск. То есть, понимаете, в этом прикол. То есть теперь получается, у вас не всегда модель идёт за рагом. Вот на примере той же самой алисы Алиса.
574: Иногда отвечать на свои собственные соображения. А когда, например, понимает, что вопрос, ну реально такой, на который она сама просто из головы не выдумает, то она может как бы сформировать вопрос к а к рагу. Вот. И тем самым только у неё вообще классно, она будет идти не в векторную базу данных, да.
575: А куда пойдёт просто в яндекс, она может тупо сделать запрос в яндекс. То есть тем самым она как бы вызывает инструмент, да, вытягивает, там, не знаю, топ 5, пусть будет статей первых по вопросу. И прям целиком контрол ц контрол в текст подкидывает. То есть, например, я вот помните про k.
576: Спросил, вот я могу назвать Алиса, да, и вот он сейчас, вот видите, ты там видел только что было некоторое, некоторое время, вот процесс поиска, вот там видите, че идёт, что такое, как сейчас гляну, что можно найти по этому вопросу в интернете. Видите, это как раз-таки диалог, по сути, агент
577: То есть агент, да, мы его спросили, он мог как бы сам ответить из своих знаний, но он понял, что он пойдёт в интернет. Постараюсь собрать самую интересную информацию. Здесь к месту будет картинка. Угу. Поищу, видите, пишет схема работы фреймворка. Как, вот какой вопрос он задал только что к
578: Браузеру. Я спросил просто как, а он ещё и переформулировал его так, чтоб было выгодно, че то там подкинул, потом все это в пром, тем самым теперь у него обогащённая информация, дополнительная с кучей контента. И вот пошёл ответ, видите, тут даже прям ссылочки в интернет, потому что, ну, он само собой сделал вопрос.
579: И у него теперь эти все статьи были подкинуты в контекст, и вот как бы, че прикольно у него получилось. Ну, выглядит довольно классно. Может давайте дальше продолжим с ним чат по этой теме? Вот как видите, это по сути, агент, да, который мог обращаться, да, там к инструменту.
580: Под названием поиск, то есть он просто сделал как бы запрос схемы работы фреймворка, как, а уже дальше не сама лмка, элемка не может случаться в интернет, она же, она же вообще в оффлайне, этот просто вопрос был сам послан. Далее получен ответ подкинут в промт и тем самым получилось так, что
581: Модель ответила на запрос все ли понятно идейно про то, как это работает что-то про противоречие в знаниях модели с инфой и raga. Хороший вопрос. Как раз-таки, как это излечить вариант агентный рак, если вы пони,
582: Если, собственно, у вас агентный рак, то рак, как бы по желанию, он не обязательно, он не обязательно будет. То есть он может не идти к рагу. Если он может ответить сам из своих знаний, то он сделает ответ сам. Ну, например, ситуация. Я спрошу, если у меня там, не знаю, база данных про эйнштейна, ну, ну, например, не знаю, история жизни.
583: Эйнштейна большая база данных рак, а я спросил, вопрос о том, не знаю, в каком году была война. Ну, сами понимаете, что бесполезно идти за базой данных эйнштейна, да, поэтому можно прям написать в агенте, типа, если ты понимаешь, что вопрос, ну, как бы, не связан с этой темой, то
584: Не иди враг, а если связан, то лучше сходи, возьми дополнительные документы. То есть, по сути, это вот так вот предолевает я. И, конечно же, он будет обращать внимание на контент из рагга больше, чем на свои общие знания, потому что прям там в промте будет написано, типа забудь все, что знал, опирайся на факты.
585: Ну, то есть можно так написать, и тогда вообще у вас модель, ну, не будет ничего сочинять, она будет брать только лишь контент, взятый из рагга. Понятно я объяснил?
586: Так, есть агент для исключения галлюцинаций модели. Ну, самый вариант, лучший для исключения галлюцинаций. Это рак, наверное, единственный, наверное, вариант, который позволяет исключить галлюцинации.
587: Темы, да, ну, как раз-таки, поэтому лучше в таких случаях. Ну, да, в таких случаях есть ещё вариант поставить, как бы, зерошеллу. Есть модель. Короче, первично будет вопрос следующий. Проверь на токсичность вопрос, кстати, это хорошая популярная история, когда у вас перед ответом на вопрос, сначала проверяя
588: Является токсичность вопроса, то есть какой-нибудь, не знаю, каверзный вопрос там политического, особенно характера. Лучше сначала спросить у модельки типа, а считается ли этот вопрос каверзный, является ли он, я не знаю, там токсичный, если он является токсичным. Опа, ну тогда, значит, не отвечаем и
589: Либо там, не знаю, короче, просто напишут, что сорри, на это не отвечаю. То есть тоже, как вариант, это перестраховки от всевозможных попыток модельку обидеть, да, там, типа, как-то её, собственно, испортить, кстати, по
590: Модели, да, качество ответов есть такая тема, как lm джадж. Это тоже подход. Когда лмка стоит уже после ответа модели, проверяя её качество. Тем самым, как бы моделька выдаёт некую метрику. Это полезно, потому что нужно как-то понимать на проде. А вот сейчас, ну, вообще хорошо, плохо работают модельки. Вы же запустили это
591: И вообще не контрлирует у вас там пользователи как-то общаются си будет 1000000 пользователя яндекс но как понять, что вообще хорошо и плохо все идёт единственный вариант вот lm её, то есть он какбы перепроверяет ответ. Eleni из рубрики хороший ли ответ? Типа полно полный ли ответ, типа.
592: Достоверный, контекстно связанный с вопросом. Ну, то есть выглядит так, контрол ц, вопрос итоговый ответ, например, от агента. И он смотрит. А вообще, типа, полноценный ли ответ, хороший ли он? То есть, отвечает на такие вопросы, и там, например, оценивает там по шкале от нуля до 10. И тем самым можно, н,
593: Абстрактно считать некую онлайн метрику, да, работы вашей системы. То есть он будет в рилтайме, как бы после ещё каждого ответа как-то сам себя оценивать довольно полезно. Это особенно в агентах, потому что помните, в агентах ещё проблема. У него там много итераций. Он там пошёл, подумал, пошёл, сходил.
594: Туда сходил, сюда, пока он это все делал. Мог там, не знаю, вообще просто херней какой-то заниматься. Поэтому классно как раз-таки итоговый ответ от агента оценивать через м, этот джадж, чтоб понимать вообще, а туда ли он мыслил в ту ли сторону. Он вообще думал, поставьте плюсик, если понятно про it.
595: Историю про то час сейчас обсудим чуть. Угу. Ну вот, то есть в целом это прям, прям такая история, джадж, почти везде. Ну, стараются, по крайней мере, юзать. Я вам тоже рекомендую. Так, ну вот.
596: Как раз рош её подходы, да, то есть, когда у вас из рубрики оцени, типа, скажи да, либо нет, то есть Ерош, когда, типа, да, либо нет, просим модель сказать, да нет, типа токсичный или вопрос, типа, не знаю, является ли он противоречивым или самая популярная ещё история, проверка из рубрики, а является ли этот вопрос инжектом.
597: Ну, есть такая история, как попытка модели заинжектить, когда вы че-нибудь такое не знаю. Пишите у модельки из рубрики, не знаю, сделай drop датабейс какое-нибудь такое на самом деле, если у него есть утилита по запуску эскьюэль, то прикиньте,
598: Че произойдёт? У вас дропнется база данных. Вот он попросил, он такой, ну лааадно, пожалуйста, типа агент возьмёт, там че-нибудь сделает. Сейчас популярная история, когда пытается всякие агентные системы заруинить таким образом, там где-то всякие, какие-то ли
599: Инъекции, сделать че-нибудь ещё. Короче, попросить его сделать незаконное. В общем, каким-то образом попытаться это сделать. 1 вариант, да, можно не давать права. Собственно, можно сделать так, чтобы не было у него прав на удаление, например, сделать. Так что если ты видишь там слово drop,
600: В рамках эль промта, то сразу же, короче, кэнсел, да, можно вариант ещё, помимо всего и прочего, там добавлять от проверки, да, то есть перед непосредственно вопросом проверять на все это популярная история.
601: Да, вот пытается какой-нибудь питон скрипт запустить, который с багом или который специально, скажем так, не знаю, там подвиснет все, например, там, знаете, с популярная история. Ой, помоги мне написать код. Вот ещё запусти, пожалуйста, его, который я не
602: Знаю, типа русская рулетка, которая возьмёт и там, типа рн, минус рф, там, типа, и вообще все, все на серваке удалит, если он его реально запустит. Понятно, что зачастую, конечно, все эти Туз, экзекьютор, да, все тузы, они запускаются в отдельном контейнере, в отдельном окружении, поэтому там не зна,
603: Даже если он, не знаю, возьмёт и все заревит, да, там все удалит, но он не удалит все, он на самом деле, просто там своё маленькое абстрактное окружение этого докерное, ну вот его его кильнет. Ну и че? Ну то есть в целом есть куча разных предохранений, да.
604: Начиная от прав ограничений в правах ограни, создание типа виртуального экзекьютора, кода и так далее. Да, подтверждение в том числе, да, это правда. Вот по поводу агентов есть концепты. 1 из них популярный, это реакт, ну,
605: Популярный концепт. Реакт, собственно, по сути, как бы идея в том, что вы каждый раз на каждом этапе работы агента. Помните, агент, это же долгая беседа, там с разными тузами, там сходи туда, сходи сюда и так далее. Он каждый раз перепроверяет, а я уже готов сделать ответ или не готов. Вот, то ест.
606: Он каждый раз, как бы после каждой отработки туза запрашивается автоматом вопрос, то есть там прям подкидывается пром, вопрос, типа, подумать на текущий момент времени, готов ли ты ответить юзеру? И он тем самым размышляет, нет, я пока ещё не готов, ведь, мне кажется, пока ещё информации недостаточно. Мне, наверное, нужно пойт.
607: Ещё раз к юзеру и уточнить у него это, либо он говорит, типа, не знаю, да, я уже все готов, пора отвечать юзеру, и тогда все. Дальше. Следующий этап. Это будет генерация ответа, который увидит пользователь. То есть пользователь увидит только последнюю переписку, а по дороге он там сам с собой как бы общался долгое время. Вот, и как бы реакция
608: Как раз идея о том, что он благодаря вот этим постоянным самоправа иям, да, вот этим самоизучению понимает, дальше ли ему идти по этот агентам или заканчивать, конечно же, агент, если будет долго, долго, долго там общаться, да, ходить там, что-то узнавать, доузнавать, он может уйти в бесконечный цикл, поэтому цикл нужн.
609: Прерывать и поэтому всегда ставят какое-то ограничение пусть будет там time аут типа на ответ, либо там из рубрики 5 6, там Тузов вызывай не более на вопрос. Ну то есть сами понимаете там количество просто жрания джипи ресурсов просто нереальное. У вас может быть вопрос был плёвый, а он там не зна,
610: Ходит сам с собой, думает, общается 1000000 запросов на эскюэль, делает все, висит, все ждёт. А вопрос был клёвый. Вот. Поэтому, конечно же, в этом плане нужно стопать, прерывать все это. И когда ты прерываешь, хотя бы нужно сделать такую тему, типа, ну стоп, ну когда он делает прерывание, можно скинуть такой запро.
611: Типа, Выдай кратко хотя бы. А че ты к этому моменту узнал? Потому что просто тупо прерывание ответ, error, пользователя явно расстроит, а ответ хоть какой-то, уже, хоть что-то. Поэтому можно в целом в конце, когда ты пришёл к моменту прерывания, сказать ему, слушай, этот суммаризировать бы узнала сейчас.
612: На данный момент времени хотя бы то-то Выдай, пожалуйста. Ну а то как-то не круто, что ты вообще ничего выдать не можешь этим самым он хотя бы что-то выдаст. Это уже хорошо, лучше, чем ничего. Да, как бы мы выбираем между вариантом просто отрубания по таймауту. Вот в целом такая история по поводу работы с
613: Агентами важно ещё сказать, что агенты помните часто вы должны там в качестве какого-то промежуточного этапа он генерит, пусть будет json и вообще в целом это популярная тема генерации джейсонов, потому что он будет создавать например до апишки да, вот он должен это сделат.
614: Формат конкретный джейсона для апишки, потому что если будет неправильно подан, то все упадёт. Поэтому тут важная история. Нужно обвеситься. Пайдентик валидациями, да, то есть пайдентик валидейшен проходит специально. То есть проверяет, что действительно он правильно сгенерировал. Джейсон, если неправильно сгенерировал
615: То выдаёт ему ответ, типа error, да, вот прям выдаёт ответ прям, то есть проходит поти валидации, а результат валидации кидается опять в промт, опять агент его смотрит, и такой, типа, а, блин, да, походу я неправильно написал. Джису нужно переписать. И, короче, сам себя может поправлять. В целом, тут такая же истор.
616: Есть ещё function, calling, это прям специально модельки обучаются на задачу генерации джейсонов. То есть не просто как бы пишет текст, а генерит именно джейсоны, потому что это важно для особенно вызова функций для работы с агентами. Вот там вообще все живёт.
617: Ну, логично, потому что это апишки, это взаимодействие по http. Вот примерно так. Теперь поговорим вкратце про мультиагентную систему. Последний такой момент агенты не имеют возможности, в отличие
618: От обычных реализаций выдать 500. Ошибка 500, которая нам привычна, да, вот ошибка какая-то, какая-то фигня пошла по дороге, по дороге. Она возможна в рамках обычного кодинга, да, реализации без агентов. Когда у вас агенты то там даже при полной ерунде, даже при, при неправильном ответе.
619: От базы данных, я не знаю. Неправильном, неправильном ответе от какой-нибудь апишки он не туда постучался, какую-то фигню полную узнал. Он не поймёт, что он фигню узнал. Он будет продолжать думать с учётом полученной фигни, и поэтому эта фигня может постепенно галлюцинация напиватся, напиваться в итге ответ будет полная. Ерунд.
620: Поэтому важный аспект переходить к истории с агентами можно только тогда, когда вы, ну прям реально понимаете, что он необходим. И иначе никак. Если ты не можешь сам написать вот прям код, реализующий логику, которую, которая нужна пользователю, то только тогда нужно лезть в агенты, иначе.
621: Ну, это просто, короче, трата токенов, трата джипи ресурсов, которая может привести к тому, что ты даже, ну, короче, ты не сможешь это контролировать, поэтому вот lm джадж это прям база, потому что, ну, никак иначе не проверить, что вообще на самом деле была какая-то ошибка по дороге, такж.
622: Логирование каждого этапа, каждого этапа беседы с тузами, каждого этапа реакта, да, вот этого как бы обдумывания модели текущего состояния дел. Все должно логироваться вообще все. Только это единственный вариант сделать так, чтоб
623: Потом можно было разобрать вообще, почему в итоге пользователь получил какую-то фигню и на каком этапе это все произошло. Поэтому работа с агентами пишите обязательно пишите логирование и все это круто классно. Складывайте так.
624: Ну вот как раз-таки, думаю, общая идея с этим понятна. Да, конечно, у есть свои камни, но это просто лучше, чем ничего, да, когда вообще нет никакой проверки, никакой валидации в целом. Вот. Но просто хотя бы можно понять, что если у вас там, не знаю,
625: Считает, что ответ фигня полная ерунда, то, наверное, надо посмотреть эти вопросы. И вот конкретно эти вопросы там по дебагу пройти, да, посмотреть по его логам, понять, на каком этапе, скорее всего, все пошло через 1 место. Например, понять, что там, не знаю, эскьюэль экзекьютор неправильно выдал, или
626: Я не знаю, возможно поменять Промтова, описание Тузов. То есть понятно. Вы же тузы написали сами, да, типа, вы, ты там, не знаю, ленка, имеющая доступ к базе данных, которые там есть, такие-то таблицы. Возможно, лучше, лучше. Надо поподробнее написать тз и описание таблиц потом.
627: Потому что модель не понимает и пишет неправильные промты. Вот тогда он может там синтезировать вообще неправильные таблицы, потом будут у вас какие-то ошибки, потому что он сам сочинил имя таблицы, ты ему сказал, типа, у тебя есть такие таблицы, а он взял и придумал новую таблицу. Ну он же может, да, взял, апи.
628: А какой-нибудь select from и какая-то таблица которой просто нету и вообще и все время 500 ошибка а он он знаешь он берет не знаю вот он же будет там дитё в рекурсивной форме пытаться исправиться и будет опять какую-то фигню опять читать ещё 1 новую таблицу ещё 1 несуществующую таблицу и тем
629: Там, короче, потом идёт просто бесконечная рекурсия, в которой рано или поздно просто по таймауту умрёт. Ну то есть это тоже, это все, это все риски, они есть, и про них нужно помнить, конечно же. Вот. То есть агенты это сложная история, но она на хайпе сейчас, потому что, ну, потому что прикольно, да, тип
630: У вас модель вообще, думает, сама ходит вот как человек, да, ты дал задачку какому-нибудь джуну. Джун пошёл, почитал там документацию, пошёл, сходил туда, сделал запрос сюда и вот пошёл, пришёл к тебе там, да, кледу с ответом. Ну вот, короче, это примерно и есть, лм, да, в том,
631: Случае, джун это тот самый, м, инструмент, который ходит и делает разные действия. Его мозг заменяется, да, температура обычно должна быть вообще на нуле у агентов в идеале 0. Ну да, да, типа прям ближе к нулю, потому что ему в идеале не врать, не
632: Циклит ну, опять-таки, если у вас, кажется он не зациклится почему? Потому что, скорее всего каждый раз будет подкидываться запрос ну, например, он неправильно задал, сделал какую-то схему да, пайдентик схему сделал неправильную, да, то есть выдал json правильно, в неправильной форме пайдентик.
633: Дал ошибку, и эта ошибка прям подкинется в запрос, и тем самым как бы следующий, следующий прогон нейронки уже будет с другим как бы входным промтом уже будет больше, поэтому он вряд ли зациклится, потому что каждый раз у него разные промты. То есть контекст обновляется, да, то есть не будет зацикливания, он был бы
634: Было бы зацикливание, если был бы тот же вопрос, но там зачастую подкидывается, да, как бы ответ от текущего там слоя. Вот, и мы переходим к Такому сложной фразе. Мультиагентная система во мультиагентная вообще, прям капец, сложно, значит,
635: Че там про мультиагентную систему нужно знать, да, это roy из агентов, в чем идея, давайте сейчас я открою paint, нарисую, когда, зачем, почему это нужно. То есть мы сейчас поняли, что 1 агент это уже сложно. Зачем мультиагентные? А тут как раз-таки на вопрос.
636: Именно потому, что 1 агент, это сложно. Прикиньте, когда у вас куча инструментов, когда у вас, не знаю, есть инструмент по стучанию в базу данных, да, например. То есть, например, вот есть инструмент по бд, и там у вас куча описаний всех таблиц, да, вот есть бд, история есть.
637: Не знаю, история по какой-нибудь api календаря, календаря, чтоб посмотреть там, не знаю, события. И вот есть, короче, главная модель это типа main модель главная именно в неё. Мы задаём вопрос там, не знаю, вопрос типа из рубрики подскажи.
638: Че там у меня по собранию на завтра, типа там какой-нибудь вопросик. Вот мы спросили, типа, какое собрание на завтра оно прилетело в main, и там типа сказано, типа ты мультиагентная система, ты можешь перенаправить свой вопрос на нужного агента у тебя
639: Есть агент, который шарит за апишки к календарю, 1 агент, который шарит за апишки, там, я не знаю, к сервису идентификаций апишки к сервису, там пусть будет чего-то ещё, какой-нибудь целый специальный сервис по работе с базами данных, в которых есть информация о компании и так далее.
640: То есть тем самым получается у него промт на самом деле не супер гигантский в нём не описано все там не описано там нету подробной туториала как json слать на api сервиса ну нет, там просто сказано у тебя есть возможность перенаправить куда-то вопрос, тем самым его промт поменьше будет да он как не знаю.
641: Пусть будет 10000 токенов, да, всего лишь не 200, а там 10000, и вот он понял, что а пора сюда спросить, и он обращается как бы к другому агенту на самом деле зачастую это та же самая элэма помните, у нас, лэм, зачастую 1 elle 1.
642: 1 единая, но просто у неё разный промт. У этого промт будет вот с подробным туториалом о том, что у тебя есть, у этого будет та же самая эмка, но у неё будет prompt такой типа привет, ты обратился в типа, в модельку, шарящую за epic?
643: Календаря если ты хочешь y апи календаря есть методы, метод там обновления, метод узнать информацию по дате метод такой-то метод такой, то чтобы вызвать этот метод, нужен json такой-то формы джейсон такой-то формы. То есть понятна, да, идея. То есть идея в том, что получается
644: Мы в мейне теперь не описываем все о всех, мы как бы просто говорим ему что есть service апи календаря, а уже дальше он как бы ещё раз повторно этот же вопрос свой продублирует вот сюда, в аппе календаря как бы.
645: Он просто вызовет ещё 1 раз запрос, но теперь уже с документацией по апишке календаря это просто возможность как бы не засорять ваш гигантский промт просто всем, всем, всем, всем, тем самым видите мультиагентность, как бы делегируем задачи. Главное.
646: Source просто распределяет нас на как бы переводит нас на ещё 1 запрос, но уже к более нужному сервису. Вот понятна ли идея? Давайте вот вопросы по идее, с мультиагентность понятно ли? Вот для чего поставьте плюсик, если понятно для чего.
647: Что вот мы иногда упираемся просто в то, что у нас супер много надо контента держать. Особенно, прикиньте, документация по всем апишкам. Ну это ж треш, да, документация по всем. Апи написать. Ну это же, это же, ну, просто нереально. А ещё если у нас там 50 сервисов, да, и каждому свои апишки, ну, это просто
648: Невозможно. Поэтому, да, по факту это у вас есть как бы шлюз, переправляющий вас на специальную как бы эмку. На самом деле это не другая элемка, это та же эллка, просто с другим промтом. Поэтому сейчас многие думают, что это мультиагентная система, это когда у вас много лмок. Нет, у вас зачастую 1 элэм.
649: Просто много шаблонных Промтов, и он как бы промт меняет, он не модель меняет. Вот это важно запомнить. Прям запишите эту мысль. Да, иногда бывает, где какие-то компании, которые используют много разных моделей, да, и там, типа, специально модель, шарящая за математику, модель, шарящая за
650: И так далее. И пере прям на другую модель. С другими весами отправляется запрос, но чаще всего нет. Чаще всего это 1 модель гигант, которая просто как бы с разными входными промтами, с разными там. И тут, короче, вот во что мы упираемся.
651: Ну да, да. Узкоспецифические модели. Такая тема есть, но вот, например, яндекса, у них как раз такая тема. То есть у них там есть какой-нибудь вопрос, знаете, чисто ради прикола спрошу. У него вот здесь какой-нибудь, знаешь, типа, посчитай.
652: Посчитай корень, не знаю, 2 икс равный, блин. Ну ладно, ну я думаю, он поймёт. Вот смотрите, вот только что отработала модель. Видите, это модель не та же самая, которая с поиском, видите? Смотрите.
653: У него даже никакого рага особо не было. То есть это он вызвал только что понял, что вопрос связан с математикой и поэтому вызвал специальную модельку, которая шарит за матешу. И вот, собственно, ответил на вопрос. И то, видите, есть вариант как раз-таки этот от, помните, инфорсмент, обучение, лайк, дизлайк, потом они будут
654: Там до обучивать эту модельку. То есть это вот пример агента, да, который как бы понял, что мне сейчас нужно именно специальную модель специализированную вызвать. То есть тут даже не в промте игра, тут игра в моделях, так, та, та там, переходя дальше.
655: Ну и контекст тоже, да, скорее всего, там, возможно, разные. Так, ну, контексты, то есть по другому промты входные, и мы переход пришли к последнему этапу. Н, скорее всего, блин, я прям быстро покажу идейно. Я хотел сегодня, конечно, вам практику прям показать, но я просто физически, у нас уже 3 часа почти что будет, поэтому.
656: Как-то овер много, я уже сам устал и думаю, вам уже поздно. Поэтому, ну так просто я вам покажу типа пример, как это делается. Но без, наверное, прям настройки сервака. Значит слишком долго. Че тут главное, про мультиагентную систему показать, что есть такая тема, как эмсипи, помните?
657: Показал вам, что, например, у вас есть какой-то main main модель, да, которая приняла ваш запрос, главный мастер. И вот main может перенаправить, например, там на сервисы, связанные с google календарём.
658: Да, и вот, допустим, google календарь. И вот прикол в том, что вот как раз-таки промт для google календаря можно написать самому, да, вот пойти прям заколебаться, изучить полностью их апишку, открыть их сваггер, может, вы знаете, такой инструмент это документация по апишкам и полностью переписать
659: На язык эмки, чтобы лэлэка знала, как стучаться, че делать и так далее. Какие у него есть методы, какие у него, как отправляются запросы, как все выглядит. Короче, можно прям заколебаться конкретно, а можно взять готовые
660: Доку почти все на сегодняшний день компании предоставляют, помимо сваггера, да, вот есть swagger, да, мы такой, знаете, инструмент, это инструмент, короче, документации к их апишкам. Вот там это дока для разрабов, да, это как вот разработчику реализо.
661: Взаимодействие. И вот есть такая же история, это mcp.
662: Это по сути, как раз-таки протокол, да, то есть это, видите, последнее слово п, это протокол, то есть это протокол как бы как сваггер, да, то есть документации к pronta для лэнки, то есть тем самым теперь нам просто нужно вызвать main, поймёт, что
663: Это обращение к google календарю и обратиться к его эмсипи, то есть обратиться к его как бы инструменту, который там все знает полностью, о сущности календаря, оо его апишках, оо его, короче, там всего, всего, всего. В общем, это возможность, как бы нам не париться и не
664: Писать для готовых больших там компаниий сервисов самому документацию к апишкам, пригодную для, для лемки. По сути, это вот, чтоб понимали, это реально в прямом смысле слова, практически готовые структурные промты, которые вам даёт другая компания. Вот вместе со своим сервисом, это
665: Уже выгодно, потому что круто теперь получается вы чаще стучитесь на их афишки, там возможно деньги какие-то платите ну и в целом репутационно прикольно и так можно найти эмсипи сервис для гитхаба там, да, который позволяет по апишкам, там, не знаю, какие-то вещи с гитхабом делать, эмсипи сервис, там, не знаю, для mc.
666: Scp сервер для какого-нибудь ещё, ещё, ещё короче, для всех известных там компаний есть свои эмсипи сервера, это по сути даст возможность вам вот эти вот вторичные слои, да, то есть там мультиагент системы не делать самому отдать их на откуп.
667: Готовых эмсипи серверов. Вот понятна ли идея, что такое mcp, я не буду прям сильно глубоко это объяснять. Вот, да, для волта есть, да, например, чтобы какие-нибудь там вытягивать истории из него, какие-нибудь пароли и так далее. То есть, по сути,
668: Cp вот это.