Тонкая настройка нейросети Bloom | Юрий Виноградов

Поговорим об одном из простых подходов по развертыванию и использованию современных нейронных сетей.
Рассмотрим небольшую открытую предварительно обученную языковую модель.
И попробуем ее дообучить стихотворному жанру на русском языке

Расшифровка видео

0:00
й на компьютер
0:46
Так ну что Приветствую всех в этом зале всех кто подключился онлайн У нас
0:51
сегодня ожидается очень-очень интересный доклад от Юрия Виноградова сотрудника код мастер стула на тему тонкая
0:58
настройка цвете Я думаю только немногие слышали на данный момент о не City blom но
1:05
собственно о ней он нам сегодня и расскажет спонсором сегодняшней встречи является компания код мастер стула и наш
1:12
информационный партнёр Тульский государственный университет и к нам ещё
1:18
должны были подключиться ребята из сообщества Фокс девс Саранск вы здесь
1:23
ребят Да всем привет Спасибо что мы участвуем в данной
1:31
встрече также в этот раз мы решили подключиться
1:37
онлайн и хотелось бы отметить спонсоров тоже организаторов данной встречи и
1:42
нашего сообщества это компании cms Мордовия Heads and Hands а также агентство инновационного развития Вот то
1:51
есть мы здесь Всем привет Так и мне кажется ещ должны были
1:56
подключиться у нас ребята из а нет не изма из алиси сообщество
2:03
здесь есть кто-то нет наверное ещё в процессе
2:09
подключения Ну ладно В любом случае мы начнём доклад они присоединятся позже
2:15
Юрий Спасибо так Итак всем Здравствуйте Сегодня я
2:25
продолжу как бы возьму эстафетную палочку у Нова который начал серию
2:31
докладов у нас по промт инжинирингу на чат gpt я пойду э немножко в другом
2:40
плане в свой доклад А я расскажу Вообще про а немножечко расскажу про нейронные
2:46
сети и а попробую построить конкретный пример а решения маленькой Ну достаточно
2:55
простой задачки использовать современный инструментарий Итак Давайте приступим
3:01
А какой план у нас будет мы поговорим сначала пройдём небольшую экскурсию
3:08
вообще про нейронные сети кото в которым мы сейчас пришли кратко рассмотрим
3:14
инструментарий который мы можем использовать а выберем одну из моделей которые сейчас
3:22
есть на рынке и дальше её посмотрим Может ли Сможет ли она решить
3:28
поставленную нами задачу и в дальнейшем её дооб учим для того чтобы она более
3:34
эффективно Решала данную задачу ну и рассмотрим вообще в общем В общих чертах какие есть
3:43
дальнейшие шаги вашего развития в данном направлении
3:48
А на слайдах будут QR коды QR коды ведут на в основном на либо статьи
3:55
либо курсы которые мне особенно понравились в интернете по данным тематикам так как
4:03
материалов сейчас великое множество но хороших докладчиков очень мало поэтому
4:09
QR коды на то что я вам рекомендую посмотреть для изучения более глубокого
4:15
изучения данного вопроса Итак начнём с новостной ленты мы постоянно открываем
4:21
новостную ленту постоянно видим кучи сообщений открываются новые каналы
4:28
нейронные искуственный интеллект все эти Понятия у нас крутятся что из них что по сути дела Это
4:36
всё об одном и том же просто это маркетинговые ходы в своё время в начале
4:43
был маркетинговый ход искусственный интеллект Он не взлетел
4:49
его решили переименовать в машин Learning машинное обучение в машинном
4:55
обучении уже были определённые шаги были вложены большие деньги ноша были большие
5:00
будем так говорить его опять ре Бренди до deeping глубокого обучения и уже в
5:07
глубоком обучении начались уже такой хороший хороший прорыв А сейчас мы больше смотрим про
5:14
более узкую часть вот этого вот ленга – это большие языковые модели или
5:21
по-другому М А В принципе LM – это маленький
5:27
небольшой подкласс задач который который решает Ну в принципе вы знакомы
5:33
сеча gpt уже знакомы с другими например
5:40
нейросетью от Мета это Лама и другими сетями которые сейчас на слуху все они в
5:49
принципе являются большими языковыми [музыка] моделями данные моде решат болье зада
6:00
сумаро ваш текст то есть уменьшить из Большого текста выделить сущность и
6:05
выдать вам информацию могут генерировать
6:12
текст задачи машинного перевода сейчас также переведена уже с
6:18
помощью то есть в принципиально плюс различные чаты это
6:29
от ВС это решает одна и та же
6:36
сеть принципиально данные сети можно разделить на две категории То есть
6:44
существует у нас ча gpt есть есть
6:50
грок и другие сети это закрытые те сети про которые мы знам обм
6:59
обучались мы не можем взять их веса и попробовать у себя на локальной
7:04
машине в противовес к ним появилось большое число открытых моделей открытая
7:11
например Лама Мистраль Falcon blom Бер
7:16
Куна Яндекс LM это открытые модели В чём их открытость во-первых мы знаем их
7:24
архитектуру и второе мы можем выкачать из сети весовые коэффициенты
7:31
данные сети для своих нужд локально Что такое весовые коэффициенты
7:37
я про них несколько раз уже говорил или веса по сути дела нейронные сети – это
7:43
Матрица это набор матриц в с особыми коэффициентами специально
7:51
подобными коэффициентами в процессе обуче И вот именно в сложность даже вде
8:00
которые подобрали если мы имеем такую большую базу коэффициентов мы загружаем эти матрицы и используем для своих нужд
8:08
А почему вообще зародилась вот э вот бум
8:13
именно больших языковых моделей Всё дело в том что в 2018 году Google
8:20
опубликовала один очень интересный документ она опубликовала архитектуру так называемого
8:26
Трансформера это модель в котором у нас есть энкодеры и декодеры плюс
8:35
маленькая промежуточное звено – это Матрица att Матрица
8:42
внимания по сути дела Это модель состоящее из вот этих трёх
8:48
блоков и вот это позволило если её построить достаточно большого размера
8:55
данной матрицы а определённым образом обучить то
9:01
данная сеть может решать широкий класс задач Вот как раз на базе Трансформера
9:08
сейчас решаются практически все задачи машинного обучения сейчас на трансформер
9:14
переводят практически всё то есть и тот же
9:19
самый gpt и тот же самый Мистраль и тот же Салама это ВС трансформер в принципе
9:26
генерация картинок распознавание образов Также сейчас переводит потихоньку на
9:32
Трансформера но мы поговорим именно про тексты так как это немножко более
9:37
простая задача но перед этим поговорим об ещё одном понятии которое тоже вы встречаете
9:44
в документации это что значит предварительно обученная
9:50
сеть То есть все модели которые мы можем найти в интернете обули модель на
9:55
Большом ле тек ноем классическое обучение – это обучение с
10:02
учителем Когда у нас есть какие-то данные и какой-то ответ Мы
10:08
скармливали в данном случае Ну предположим матрице какой-то Вектор значений получаем результат и сравниваем
10:15
его с ответом с точки зрения и в зависимости от того сошёлся ответ не
10:22
сошёлся мы подстраивает модели с помощью там обратного распространения
10:29
как раз здесь используется производные и так далее математика математику в данном
10:35
случае затрагивать не будем смотрим про то что у нас именно нужен учитель то
10:41
есть у нас Нужен ответ что но в интернете мы не имеем ответа У нас есть
10:47
большое число тексто Каким образом поступает в данном случае оказывается существуют две методики самые
10:56
распростра предсказания когда мы берм какую-то
11:02
последовательность слов Ну в данном случае если
11:09
А какая-то у нас есть последовательность слов и мы по этой последовательности
11:15
пытаемся предсказать следующее слово так как последовательность мы знаем мы модели например сливаем первые два слова
11:22
и просим её предсказать третье и в зависимости от того предсказала Она правильно неправильно
11:30
коэффициент и потихоньку выстраиваем всю цепочку Таким образом мы получается
11:37
скармливать большое число текстов не имея учителя то есть мы можем скармливать модели громадное число
11:46
текстов это первая модель обучения вторая модель обучения так называемая mas
11:52
модель когда часть вот этих слов в тексте мы скармливать
12:01
слово и пытаемся по этому тексту заставить модель предсказать это слово
12:07
дополнить этот текст И на основании этого опять же получаем обычную модель с учителем
12:14
А и оказывается что если прогонять терабайты текстов то ваша
12:21
модель обучится понимать вот эти вот структуры и обу доста хо ще слово по сути дела
12:31
трансформер – это предсказание постоянное предсказание следующего слова что в этой последовательности будет
12:38
следующее слово а более детально Если вы хотите изучить то вот есть QR код на
12:46
видео где детально рассказывается как обучается что обучается и как построен
12:51
трансформер То есть как у него построены энкодеры как построены декодеры этом пому
12:59
и дого Мы пойм немножко дальше нам достаточно знания о том что
13:06
мы можем подать определённый текст на вход и
13:12
модель без ответов чисто текст и модель попытается его ему обучиться данному
13:18
стилю изложения мы вот это воспользуемся при в нашей модели
13:25
обу чем пти и прочие коммерческие продукты
13:32
что кроме вот этого pret Train у него есть ещё несколько этапов А до обучения
13:39
уже на меньших данных и уже с конкретно с людьми А на этом застрять пока внимани не
13:46
будем Итак что я захотел сделать я в
13:52
принципе решил построить задачу следующее насколько хорошо наши современные модели генерируют стихи
14:01
Почему я взял стихотворный стиль потому что мы все в школе учили стихи читали
14:09
стихи по крайней мере Мы представляем как стих выглядит как выглядит хороший стих Как выглядит плохой Стик
14:16
согласованный и так далее мы можем его прочитать Ну и в принципе тут приведены примеры если
14:22
попросить систему написать стихи в Пушкина
14:29
первым словам Как вы видите у Chat gpt что-то получается у
14:38
Мета ламы Ну более-менее Причём я взял самую последнюю
14:44
ama 3 8b который сейчас в открытом виде уже есть попробовал у неё попробовал
14:51
вариант blom blom – это ещё одна Нейро сеет сейчас про неё поговорим Она в
14:57
принципе стихи не умеет писать она пишет сплошной
15:03
текст вот Давайте попробуем на такой простой задачки
15:08
решить взять открытую небольшую открытую росет её до обучить чтобы она начала
15:17
писать хотя бы в стиле Пушкина Итак что из себя представляет
15:24
Блум это большое сообщество уны
15:30
создать тоже на базе Трансформера свою открытую
15:35
сетку предварительно обученную А в чём проблема предварительного обучения Я не
15:42
сказал всё Дело в том что когда мы
15:48
скармливание гигабайты а то и больше текстов нам
15:53
нужны процессоры Прим их много
15:59
случае вот здесь показано что для обучения данной сетки использовало
16:05
384 ГПУ а со с 80 гигабайтами на борту у
16:11
каждого То есть это громадные ресурсы и обучалось эта сетка если я не
16:18
ошибаюсь порядка месяца то есть это громадные ресурсы громадные затра и
16:25
могут позволить только в принципе бо грантами либо очень большие
16:31
корпорации Почему мы встречаем все вот эти вот открытые
16:37
нейронные сети от очень крупных компаний от той же самой
16:42
метан Если не ошибаюсь это Арабские Эмираты и эти модели
16:49
единичные потому что цена предварительного обучения очень
17:00
представлены Какие есть варианты данной модели представленны в сети ВС дело в ЧМ
17:06
что вот тут есть такое параметры 560 1b
17:11
3 что это означает миллиардов
17:17
параметров 1 это 1 млрд
17:23
параметров 16 это 2ги
17:28
памяти Вам необходимо для загрузки данной модели для загрузки 7b соответственно 14 Гб
17:36
а и желательно её загрузить в ГПУ память вашего вашей системы иначе будет просто
17:45
медленно вот здесь предоставлено на чём вот эта вот моделька обучалась обучалась она на
17:53
громадном числе языков Почему я выбрал blom потому что это многоязычная система
17:58
она в том числе обучалась на русском пусть немножко но обучалась а а так в
18:04
принципе она обучалась на кодовой базе она обучалась на арабских языках Ну и
18:10
большая часть у неё Понятно английского 30% контента это на английском языке Но
18:15
есть другие языки Значит будем надеяться что она нам подойдёт
18:21
А следующий следующий этап который вам придётся решать это
18:28
на В какой среде и на каких использую какой инструментарий Вы будете
18:35
использовать для решения данной задачи а современные подходы в принципе самый
18:41
быстрый самый хороший c+ + или ust в принципе все
18:47
модели мощные написаны на c+ Plus Проблема в том что писать на c+ п Все вы
18:53
знаете тяжело и долго и ша что вы
18:59
ошибётесь а тем более используя процессоры ГПУ вообще тяжело
19:04
Аа поэтому практически больше 90% рынка
19:12
использует Python А раньше был Ещё язык R были другие технологии сейчас Python
19:19
вытеснил практически всё и все статьи которые вы будете читать в интернете это Python
19:25
А и по библиотекам лидерство Сейчас занимает пай точ потому что он наиболее
19:32
простая библиотека для решения данных задач был Ещё ранее НФ от Google
19:40
Но он был достаточно низкоуровневый и сложным поэтому они прикрутили сверху
19:46
ещё керос он стал легче и он практически стал таким
19:51
же как точ выл позже инх
19:59
поэтому сейчас рынок захвачен парм то есть ВС что вы будете встречать
20:06
это да сейчас появляются ещё другие языки
20:11
Google пытается писать но пока он ещё такой сыроватый но
20:19
вы уже можете его использовать и есть ещё один этой
20:29
что этот язык больше для встраиваемой техники используя мо можно взять
20:37
что-нибудь на микроконтроллеры загнать какую-то модель
20:43
поэтому Мы остановимся именно на Python плю pch Но кроме этого мы воспользуемся
20:51
ещё одной интересной вею воспользуемся библиотекой
20:59
от HF Дело в том
21:04
что есть определённые число ресурсов Где
21:09
располагаются модели достаточно мало вот H Face это целая структура сайт с сайтом
21:17
с со своим репозиторием как модели с Весами так библиотек так и обучающего
21:23
материала То есть это такой бой громадный комба м позволит достаточно легко войти
21:32
в данную сферу поэтому мы воспользуемся этой библиотекой Да и не только
21:37
ей по сути дела На
21:43
есть сами модели веса этих моделей есть датасеты то есть те данные с помощью
21:50
которых мы можем обучать модели Там же есть у вас открыты репозиторий аналогичны
21:58
открыть для себя репозиторий и хранить и свои модели и свои наработки в данной системе там есть как
22:07
раз библиотека в принципе хорошо описана библиотека Transformers
22:13
accelerate для эффективного использования как раз ГПУ и ещё одна
22:18
библиотека ФТ про которую чуть позже которая позволит нам достаточно
22:25
эффективно добу Нау модель библиотеки есть на сайте и мало того есть
22:32
прекрасная документация по ним с примерами использования
22:37
А теперь будем решать следующую задачу то есть мы решили На чём мы будем писать
22:45
вопрос Где это всё запускать как я сказал уже модели достаточно большие то
22:51
есть некоторые Модели там несколько гиба некоторые Модели там 15 а то и ги
22:59
занимает запустить её на локальном компьютере достаточно проблематично но
23:06
возможно при наличии видеокарты но к сожалению
23:13
стартом вот Как коллеги рекомендовали у нас в компании что Старт возможен
23:19
начиная с rtx 3060 с 12 гигами на борту
23:24
почему с этой тут Важно даже не сам процессор а именно 12
23:33
ГБ то есть памяти на видеокарте чтобы можно было загрузить
23:39
всю модель видеопамять и использовать куда ядра для решения наших задач
23:48
А желательно в данном случае если у вас есть такая или лучше видеокарта
23:54
желательно использовать унту так какм просто механизм установки
24:00
дополнительно пакетов и в принципе все зависимости они больше рассчитаны на убу Но если у вас уже
24:07
установлено Windows то Я рекомендую использовать
24:12
vsl и через виртуализацию прекрасно подключается данная видеокарта
24:18
используются все ресурсы таким образом например на домашнем компьютере Я использовал именно
24:23
связку СН но потребуется поставить ку довсе драйверы отдельно
24:29
поставить па torch отдельно поставить jp ноб jpb – это в
24:37
принципе очень тоже хороший инструмент для визуализации питонов
24:44
ского кода в виде маленьких блоков То есть это в принципе веб-приложение в
24:51
котором вы пишете маленькие кусочки кода и можете запускать каждый из этих кубиков
24:59
и это очень удобно с точки зрения отладки программы не надо каждый раз
25:04
перезапускать код весь достаточно перезапускать маленький блок и визуально
25:10
смотреть на результаты Итак Это первый вариант второй вариант – это
25:17
аренда какой-нибудь платформы виртуальной которой вы также
25:22
можете взять одну из видеокарт либо несколько видеокарт в аренду Но вопрос в том что э
25:32
ценник у неё мягко сказать в месяц будет 23.000 на самой простой видеокарте
25:39
а благо данной видеокарты даётся посекундно Но для обучения нормальной
25:46
модели вам потребуется хотя бы на сутки то есть рассчитывайте что цена обучения
25:52
например в сутки у вас будет в районе 1.000 руб а то и больше
26:01
в принципе для того чтобы не покупать rtx например 4090 или какой-нибудь а со
26:10
это в принципе как вариант выхода из положения если вам действительно надо дооб учить большую модель И вам нужно
26:17
много виртуальной памяти а но Я рекомендую пойти другим ТМ самым
26:23
бесплатным есть gole сути дела бесплатная среда выполнения от
26:32
Google в которой вы кроме всего прочего имея всего-навсего аккаунт
26:37
Google можете открыть себе как раз вот этот тер ноутбук Ну
26:46
там и в ней получить на определённое время пу процессор Т4 с
26:53
15 на борту плюс там будет диск иы
27:00
и единственное ограничение у данной системы Что дадут вам Её сессию где-то
27:06
по-моему часа наче но за 4 часа через 4 часа вам Придётся подождать чуть-чуть и
27:13
опять открыть сессию опять продолжить свои исследования для исследования 4 часа вполне достаточно чтобы провести
27:20
хоть какую-то промежуточную работу и попробовать дооб свою модель по шагам
27:26
этом можно сделать Итак если вы загружаете колаб то
27:32
вы попадаете вот в такую среду где можете спокойно Вот в ячейках писать свой
27:37
код и его исполнять тут же у вас есть возможность до устанавливать различные
27:45
библиотеки через Pip Install Здесь вы можете подключать их загружать различные
27:53
модели многобайт никаких ограничений на трафик я не обнаружил То есть я
27:59
выкачивали туда Лама там 7b она нормально выкачивает все там 14 ГБ они
28:07
выкачивают без проблем и достаточно быстро и а единственное что необходимо
28:14
сменить среду выполнения цпу на ГПУ вот тут ГПУ Т4 и в принципе вот она ссылка и
28:22
у вас прямой доступ в ко а отлично У нас есть среда у нас есть На
28:31
чём мы будем писать нам необходима сама модель А как я сказал мы идём на H and
28:36
Face А на h& Face есть громадное число моделей есть прекрасный механизм поиска
28:43
которым вы можете подобрать как раз варианты Что вам надо Какая именно
28:49
модель вам нужна На каком языке а Каких размеров и так далее И вот нам
28:56
выкидывается окно где мы видим например модель blom
29:02
А мы можем провалиться внутрь модели blom найти там например для примера
29:08
модель возьмём blom 3B то есть 3 млрд
29:14
параметров и в принципе видим обычный наш репозиторий в котором есть несколько
29:20
файлов есть вот это вот P torch Beam это как раз у нас
29:26
а сами веса нашей модели вот тут они
29:32
в 3B значит 3 млрд Т 16 то есть по 2
29:38
байта Так мы и видим 6 Гб вот у нас Файлик 6 Гб а второй Файлик – это то же
29:46
самые веса но в другом формате не в бинарном а в защищённом векторном
29:52
формате в безопасном так называемой у каких-то моделей такой есть
30:00
у кого-то нету вот из интересного что в этом репозитории лежит это Файлик
30:13
конфига что
30:18
так у нас как раз информа
30:28
моде Вот вот этот вот как раз маленький параметр
30:33
позволяя нашему нашей библиотеки трансформер понять что за веса мы
30:39
выкатываем то есть он берёт Отсюда название модели трансформер – это в
30:45
принципе набор целая библиотека различных моделей от различных
30:52
компаний от Блума от отф и так далее файлы он их просто
30:59
подключает Согласно вот этому названию и смотрит по дополнительным параметрам
31:06
сколько у нас в каких слоях есть элементов он выстраивает просто модель
31:12
нашу выстраивает загружает данные и таким образом мы можем использовать Да
31:17
данный файл Итак загрузка модели тут достаточно просто нам
31:24
необходимо подключить только библиотеку torch и Трансформер дальше мы
31:31
берём из Трансформера а
31:36
casm это вот как раз casm – это модель в котором мы обучали предсказание То есть
31:43
когда мы предсказываем следующее слово Почему у неё такое и название мы как раз вот здесь про неё и
31:52
видели это же имя вот оно связано как раз
31:58
тем модум который мы использовали здесь мы его подключаем подключаем В каком
32:03
виде мы его будем грузить и ещё грузим дополнительно
32:11
Азер про тайзер поговорим в самом конце это нам необходимый механизм для
32:17
преобразования наших слов Вектор цифр если вкратце
32:23
и после вот такого небольшого кода в принципе мы можем пользоваться моделью всё А если вы в имени модели скажете вот
32:33
это полное имя Что произойдёт при запуске трансформер сам подключится к
32:40
гнф скачает все эти необходимые ему а бинарник загрузит их внутрь памяти и
32:49
мало того а постарается разместить так как мы дей Map сказали авто постарается
32:55
их разместить у вас в ГПУ Таким образом мы можем уже сразу
33:02
пользоваться данной моделью но используя Понятно па то есть мы можем задать
33:09
промт запустить его загнать его в тайзер и предсказать результат то есть
33:17
сгенерировать результат то есть мы подав вот эту последовательность на вход потом
33:23
многократно запрашиваем генератор модели и получаем по слову предсказание
33:29
следующего слова А как мы
33:36
видели блумом реализация нас не совсем устраивает она не такая интересная То
33:42
есть она не знает стиль Пушкина А мы хотим именно в стиле Пушкина сделать
33:48
Поэтому в таком случае мы можем доо обучить модель до обучения модели
33:55
возможно через несколько различных путей а то что говорил Павел промт
34:01
инжинирингом вот с промт инжинирингом можно воспользоваться например чат gpt
34:06
именно там я и использовал дополнительные слова что я хочу в стиле Пушкина но чат gpt – это большая модель
34:12
а Блум у нас достаточно маленькая она не понимает такого промт инжиниринга для
34:19
неё это сложно поэтому этот вариант от метае тюнинг фл тюнинг – это когда мы
34:26
просто берём модель и до обучаем нашими данными всю модель но в таком случае у
34:32
нас громадная Матрица Куча перемножении и время займёт
34:37
Ну несколько недель на домашнем компьютере тоже мягко сказать не
34:43
устраивает этот вариант есть ещё технология рак но она
34:49
также больше она относится к пром и в данном случае она нам не поможет
34:55
единственный вариант который Нас устраивает это тюн Что из себя представляет
35:03
тюнинг по сути дела появились статьи о том
35:08
что можно использовать не тюнинг не полное обучение а взять заморозить нашу
35:17
весовую модель с Весами а рядом построить ещ
35:23
дополнительно две матрицы Ну несколько матриц буде
35:28
и вот их как раз обучать причём это не полноценная Матрица Вот такая же как эта
35:35
А это хитрым образом построена Матрица из столбца на строчку то есть ну Мы
35:41
помним что столбец при умножени столбца на строчку можно получить полноценную
35:47
матрицу она будет Э понятно что урезанная уменьшенная но
35:53
по сути дела Это та же самая Матрица с меньшим числом
36:01
коэффициентов но как показали эксперименты что вот использование вот
36:07
такой дополнительной матрицы сложенной с основной матрицей даёт в принципе
36:12
прекрасный результат и этот результат практически такой же как мы бы обучали
36:19
Вот эту вот всю матрицу весов Но в данном случае мы
36:24
обучаем в принципе очень сильно уреза матрицу причём Ну вот здесь показаны единичный
36:31
этот столбец на единичную строку реально это у нас вот это не единичка а L то
36:38
есть число тут может быть 4 16 элементов но опять же 16 элементов и здесь 16
36:45
элементов на полную длину у нас выигрыш где-то на маленьких матрицах будет там
36:52
это 10% от вот этого числа а на больших матрицах это будет
36:58
от размера матрицы то есть мы о обучаем о матрицы обучаем по сути дела А
37:05
получаем результат такой же как мы хотели бы вот тут ещё также как раз рассмотрен
37:13
вариант Что происходит с фул тренингом А вот что у нас происходит с Файн
37:20
тюнингом А вот данный метод Файн тюнинга называется Лора
37:27
а вот здесь мы видим как видите снежинку
37:32
замороженная Матрица то есть веса заморожены нам надо загрузить нашу модель и плюс добавить к этой модели
37:42
ещё две небольшие матрицы которые будут ещё перемножать и наши наш запрос вот
37:49
эти наши иксы которые подаём мы на вход мы умножаем и на эту матрицу и на эту матрицу получаем два результата
37:55
складываем их получаем итоговый результат таким образом А когда мы
38:02
сверил с нужным результатом Мы возвращаемся и меняем коэффициенты
38:07
только вот этих двух маленьких матриц вот это нас не интересует Таким образом
38:13
у нас процесс обучения Ну минимум в 100 раз увеличивается
38:23
скорость Так теперь рассмотрим вообще сам
38:30
если вот так вот в деталях и очень грубо выбор модели Ну мы выбрали
38:36
БМ подготовка датасета – Это те данные которые которыми мы будем обучать нашу
38:42
систему мы дальше мы загружаем модель и тайзер далее мы модифицируем нашу модель
38:51
добавляя слои после этого задам
38:58
обучение обучаем и дальше верифицируемость
39:04
и возвращаемся ещё один круг
39:09
э обучения Ну и в промежутке мы можем сохра сохранять промежуточный
39:15
результат по сути дела Это классическая модель как обучения так и Файн тюнинга
39:20
Файн тюнинг тут только вот в этом маленьком шаге добавление дополнительных матриц
39:28
Мы обо всём поговорили мы не поговорили про очень важный момент
39:34
данные это ещё один момент почему я выбрал именно стихотворный
39:39
стиль потому что на хафей я в принципе нашёл несколько
39:47
датасеты на части Тихов Пушкина то есть по сути
39:52
дела На хагенс есть громадное число данных
39:58
подготовка данных Наверное это самый сложный процесс вообще в машинном обучении и он как говорят специалисты
40:05
занимает львиную долю всего процесса то есть найти данные подготовить данные
40:11
загрузить данные а очистить данные от всяких примесей и
40:17
так далее Это сложный процесс поэтому я пошёл по простому пути я скачал гото
40:23
готовый датасет со стихами Пушкина уже разбитый мало того он у меня был разбит
40:29
уже на Трейдинг и тест части это тоже важный момент Зачем разбивают вообще
40:34
датасет на части одним Мы одной частью мы тренируем модель второй часть мы
40:42
верифицируемость
40:57
всё сделали Мы пробега по тестовой части и смотрим
41:02
А причём это третья часть она абсолютно те данные которые никогда не видела наша
41:09
модель на ней мы как раз проверяем насколько наша модель вообще хороша в отличие от других моделей
41:16
а Но в данном случае нас последняя часть
41:21
тестирования не волнует мы проверим просто слова умозрительно
41:28
плюс механизм сравнения моделей – это вообще сложная тематика отдельные датасеты это
41:36
вообще целая отдельная тема Итак что нам потребуется в принципе нам нужна будет
41:43
библиотека и всего-навсего одна команда где мы указываем какой Как
41:49
название вот этого датасета то также скачается игом
41:57
каждый из этих дасе это тоже репозиторий просто с текстовым файлом либо с форматом J либо с форматом CSV неважно в
42:05
принципе все они лежат на гн фейсе именно в отдельных репозитория вот
42:10
название репозитория Можете зайти и посмотреть как они выглядят вот в данном случае для
42:16
стихов Пушкин а датасет просто построчно разбитые стихотворение
42:26
Пушкина Вот он у меня показано как он загружается И вот она разбивка внутри
42:33
датасета то есть разбивка на й и тест в принципе обычный питонов ский формат
42:43
разбиения и хранение информации Итак А что мы делаем Теперь
42:52
мы в принципе я делаю всё то же самое что было предложено ра Я загружаю мою
42:59
модель единственное что я делаю я загружаю её в 8 бит то есть урезанный
43:04
формат меня в принципе это устраивает загружать не FL 16 а FL
43:13
8 загружаем загружаем модель загружаем
43:20
тайзер и теперь нам надо сделать Второй шаг модификация то есть добавление Лора
43:27
мы используем библиотеку pft а в данном случае lora config и Get pft
43:34
Model и а добавляем вот такой вот маленький
43:39
кусочек к нашей матрице то есть вот вот этот маленькая
43:44
добавок нашей большой системе Трансформера а Сначала мы конфигурируется
43:57
а что там R16 в данном случае там 16
44:03
элементов будет какие слои мы это добавим Какую модель обучения мы
44:10
используем вот эти вот как раз параметры которые нам нужны были из файла config
44:16
чтобы нам понимать Какую модель мы используем здесь они вот как раз используются
44:21
стандартные и дальше вся загрузка модели это что наша модель рано моде модель мы
44:29
передаём ей модель и передаём вот эти коэффициенты всё в принципе внедрение
44:35
Лоры внутрь нашей модели происходит по одной команде
44:41
А что у нас изменится в самой модели А если вывести на печать слои нашей нашего
44:50
Трансформера то вот такой он был у нас доллары и вотт
44:58
блока которые нам добавила как раз ра после
45:03
преобразования добавили вот эти дополнительные слои вот он 384 элемента
45:08
на 16 то есть маленькая Матрица А в данном случае вторая Матрица 16 на 384 элемента
45:17
всё вот мы добавили дополнительные слои перем с
45:28
нашего рассказа это само обучение нам
45:34
потребуется описание в определённой структуре наших шагов
45:40
обучения это так называемый тре arg это также модуль из
45:47
Трансформера в котором мы указываем
45:54
Сколько у нас всего шагов степ в данном случае как считается число шагов а число
46:02
шагов у нас в датасете Ну почти больше 12.000 строк
46:10
строчек мы указали в том что мы
46:16
будем gradient accumulation Step то есть э пересчитывать коэффициенты Каждый
46:22
четвёртый шаг И вот здесь в данном параметре мы показали что
46:27
надо запустить четыре строчки в баче
46:33
обучить после потом пересчитать коэффициенты соответственно 12 там
46:39
делённое Ну там чуть больше 12 дено на
46:44
4 ой так не я прошу прощения не 12000
46:50
там с чем-то 197 поему у на
46:55
получается ли на 4 получается Вот как раз почти 5000 шагом 4930 вот сюда записываем Сколько шагов у
47:04
нас будет в эпоху Эпоха – это означает полностью пройти все наши данные вот у
47:10
нас есть там 19.000 строк Все мы их хотим загнать
47:16
в нашу модель и подстроить наши коэффициенты пройдя по всем этим данным
47:22
это как раз прот одна Эпоха Мыза трен аргумент как раз одну
47:28
эпоху и далее воспользуемся ещё вот одной библиотекой ТЛ
47:35
это трейнинг это обучение как раз используя ло то есть данный модуль
47:43
используется для того чтоб обучать не всю модель а только лору модель то есть
47:50
данные механизм как раз заморозит у нас основ коэффициент основной модели и
47:56
будет обучать только нашу матрицу Лоры в принципе тоже достаточно будем
48:02
так говорить справочная информация которую можно найти Единственное что сюда подаётся из интересного мы передаём
48:10
В данный метод наш датасет Train и наш датасет тест то есть мы говорим в каких
48:17
столбцах у нас Трей и тест Ну и плюс мы в нашем датасете определённым образом
48:24
назвали аа назвали столбец с данными столбец
48:33
данными у нас как раз называется вот dataset Text F – это текст то есть это
48:40
название столбца Всё теперь А наша
48:45
обучающая программа знает где у неё модель у неё есть данные она знает какие
48:52
тестовые Какие тренинговые данные и знает какой столбец брать Ну и Сколько
48:57
шагов делать поэтому следующим шагом всего-навсего
49:02
А на чертеже У меня целый квадратик на это выделен это обучение здесь это
49:10
всего-навсего одна строчка мы запускаем процесс обучения всё Теперь можно
49:16
спокойно выдохнуть и пойти попить кофе а поесть поспать и посмотреть
49:22
сериал потому что одна Эпоха обучения занимает больше 5 часов Если на
49:30
видеокарте rtx 3060 то есть 20.000 шагов
49:39
на одну эпоху это вот у меня заняло
49:44
545 по времени
49:49
соответственно процессе после того как я что-то посчитал я делаю
49:59
модель Это сохранить данные в данном случае сохраняется не вся модель а
50:05
сохраняется только Лора Матрица то есть они маленькие они сохраняются на диск всё
50:11
После этого мы можем продолжить обучение с данного шага То есть мы можем выключить компьютер перезагрузить и так
50:19
далее а возобновить уже загрузив эти данные и сказать что начать обучение
50:26
следующий шаг с данного шага вот
50:33
а таким образом я про провёл шесть эпох
50:38
а каждый при выполнении вот этой эпохи вот здесь кроме шага вот тут степ
50:45
показывается есть ещё Train loss это вот как
50:51
раз проверка насколько А у нас будет сходиться наше
50:57
предсказание вот эти коэффициенты потихоньку должны сходиться то есть они должны уменьшаться Если они у
51:04
вас либо не уменьшается либо начинает расти значит вот где-то вы
51:09
развалились в данном случае мы следим за потихоньку он уменьшается Когда у вас
51:18
При следующей эпохе Это уменьшение становится безумно мае ну я думаю что на этом эта можно Останови
51:26
достаточно такой отдельный процесс про него лучше почитать
51:32
это много магии Вот но Давайте теперь перейдём к тому А что же у нас
51:39
получилось а в данном случае результатов громадных
51:45
у меня не получилось прямо таких выдающихся а но я взял промт короткие так как
51:54
длинные Промт он не хотел для длинных промто предсказывать
52:01
дальше последователь поэтому я в принципе взял короткие промт из одного-двух слов и
52:09
попытался на них построить предложение вот после первой эпохи можете посмотреть
52:14
после Второй эпохи после третьей эпохи уже после третьей эпохи начинается более-менее
52:20
нормальное предсказание хотя бы одной строчки там пойдём мой друг
52:28
пойдём но порой тут есть
52:34
и достаточно большие провалы В некоторых
52:39
случаях он не захотел предсказывать следующие слова либо это слово предсказывал как
52:45
запятая вот а в ряде случаев он
52:52
уже тоже у него сносило
52:58
мозг и я попробовал ещё один вариант Ну вот можете посмотреть на шестую эпоху
53:04
после чего я решил просто остановиться дальше уже не проходить Потому что от пятой мягко сказать уже разницы никакой
53:11
ничего нового и более длинной последовательности он вырабатывать не смог Но я попробовал ему тоже самое дать
53:19
на английском языке и оказалось что он предсказывает гораздо боль Прим
53:29
о ЧМ можно делать вывод о том что Блум всё-таки так как она была предсказана
53:35
предварительно на английском языке то она лучше его
53:42
генерирует видимо русского языка было достаточно мало Ну в принципе можем
53:48
подвести как бы промежуточные итоги что здесь Какие могут быть
53:53
проблемы в том что у получилось нормального стихотворного
53:59
произведения в том что скорее всего модель была не совсем правильно
54:05
выбрано надо выбирать не Блум а что-то предварительно хорошо обученной на русском языке чтобы ей не пришлось учить
54:11
дополнительно русский язык а вторая вещь – Это механизм
54:20
именно возможно параметры оптимизации те параметры которые я указывал
54:27
в размере матрицы Лора в размерах самой исходной матрицы может
54:33
быть надо побольше было А ещё один вариант это сам датасет как
54:39
вы видели я учил на очень коротких строках то есть они очень короткие
54:44
возможно надо было брать строки подлиннее то есть четверостишье но для этого надо было бы
54:51
тогда дробить текст на четверостишье вносить дополнительные
54:58
символы которые бы разбивали его на четверостишье и так далее немножко Более
55:05
сложный процесс так и ещё одно влияние это сам токини Дело в том
55:14
что танито Блум вообще что это
55:23
такое по сути дела Это словар содержит короткие
55:29
слова это короткое слово он преобразует в
55:35
число Дело в том что вот эти
55:40
числа как он вообще формируется этот Тани затор то есть берётся все слова
55:46
которые находятся Ну в большом объёме текста ранжируются и в нём выделяются
55:54
самые распространённые слова а потом менее распространённый потом он
56:00
начинает делить на маленькие блоки и вот Чем более
56:05
Аа редкий блок тем он дальше по этому словарю то
56:10
есть цельное слово попадается в конце словаря Вот именно целое но целое английское слово а для русского языка
56:19
практически всё вот здесь я как раз попробовал низар загрузить попробовал э
56:26
преобразовать русский текст вот английский текст преобразовывать Hello world преобразовывать в токены мы
56:33
получаем два токена то есть каждое слово в английском
56:38
языке преобразовывается в слово в русском языке духовный жажду тамим
56:47
преобразовывается в принципе по буквам только некоторые из словосочетаний
56:54
превращаются в две две-три буквы всё остальное по
57:00
буквенно то есть по сути дела Когда вы предсказывает русский текст вы
57:05
предсказывает следующую букву Не слово а букву буква за буквой буква за буквой
57:11
поэтому возможно Для таких систем лучше сделать
57:19
танизаки русские слова но для этого модель должна быть уже с таким таки
57:30
поэтому я поискал по интернету и нашёл очень интересный
57:35
проект это модель построенная на трансформере на очень маленьком
57:43
трансформере если мы вспоминаем что я строил на луме 3B 3 млрд параметров то это построено на
57:52
35мл параметрах всего-навсего то есть очень моде но эта модель была полностью
57:59
обучена на русском языке изначально То есть у неё трейн был на русском языке и
58:05
мало того на стихах в том числе там стихи песни и так далее Как долго обучалось не знаю потому
58:13
что автор не сказал Он сказал что у него были ресурсы на то чтобы её
58:19
обучить но достаточно большие ресурсы и вот он е обучил и вот можете посмотреть
58:26
выделены те кусочки по которым Я попытался построить предложение то есть Я тоже
58:32
взял короткие кусочки и попросил его в стиле Пушкина достроить Ну в ле стихов будем так говорить в стиле Пушкина он не
58:39
совсем понимает он просто пишет Стихи и видите он вполне себе нормальные стихи
58:45
уже может писать А что нам Это говорит о том
58:52
что разме модет так важен важнее данные по которым мы её
59:00
обучаем либо добу то есть в процессе добу мы можем в принципе получить
59:05
гораздо лучшие результаты но нужны Ну достаточно долгие эксперименты Ну и
59:12
удачи А смотрите в принципе на этом можно было
59:19
бы закончить но я хочу сделать шажок дальше
59:26
вообще с теми знаниями которые мы сейчас получили сделать Я предлагаю в принципе можно
59:34
загрузить любую например сейчас вас больше интересует например
59:39
кодовая база генерация кодовой базы используя те же механизмы загрузки модели Вы можете взять коды Lama взять
59:46
эту модель из henf загрузить её и попытаться что-нибудь там предсказать
59:53
вот взять кодла загрузить её точно также если есть
59:58
видеокарта видеокарту если нет можно воспользоваться колам и по небольшому
1:00:05
запросу вы в принципе можете сгенерировать какой-то программный код на том же самом пайне пожалуйста он Гене
1:00:12
его никаких проблем нету это сделать можно достаточно
1:00:28
я е использовал пока только загруженную
1:00:34
модель потому что они требуют ещё дополнительно соглашения отме либо уже
1:00:41
найти за юную модель которую вы можете спокойно взять у того же самого фейса загрузить и
1:00:49
попробовать в ней Какая модель вам больше понравится для конкретной задачи
1:00:56
что делать тут есть одна маленькая проблема а некоторые модели например есть код
1:01:03
Лама 13b 13b – это 13 млрд параметров даже в
1:01:09
формате 2 байта – это 26 Гб
1:01:14
а в коллабе у нас 15 Гб на видеокарте считайте 12 ГБ не влазит Ну просто не
1:01:23
влазит она что можно с этим
1:01:28
сделать оказывается есть механизм квантования это когда вы берёте место там FL 32
1:01:38
используете Т 16 между 16 Вы можете использовать FL 8 FL 8 – это очень
1:01:44
интересные две конструкции Где у вас действительные вещественные части они в
1:01:50
разном соотношении используются но по сути дела Это как бы
1:01:57
Вы из 16 делаете Во Да с небольшим с небольшим
1:02:03
изменением но всё же но есть там ещё вариант и8 а есть вариант четырёх битный
1:02:11
Когда вы сло 16 делаете то есть из 16 бит делаете 4 бита
1:02:17
а вроде бы работать нежно но оказывается работает Иста работает эфв
1:02:26
пример как бы квантования на изображение это вот хороший пример что вы
1:02:32
получите оригинальное изображение а вот с использованием квантования Да
1:02:38
изображение хуже но оно хорошо читается и в принципе Оно такое же вы его
1:02:45
прекрасно читаете и вот тут вот показан как бы пример что мы можем использ
1:02:51
квантование четное загрузить мы можем и алпак
1:02:58
спокойно загрузить 13b но в принципе нам доступны уже 13b модели которые мы можем
1:03:04
загрузить либо использовать там например семи битные модели для того чтобы в ещё
1:03:10
меньше видеокарты запихнуть либо Аа использовать
1:03:16
дальнейшее дооб есть так называемый механизм Q lora это как раз квантованных
1:03:26
модель с квантования на 4 бита вы загружаете эту модель морози её А дальше
1:03:34
добу ете вашей матрице Лора в полноценном варианте а потом уже всё это соединяет
1:03:41
вместе и в принципе этот механизм работает то есть Вполне себе рабочий
1:03:48
механизм А и ещ один последний шаг это технология рак
1:03:56
про неё Говорить не будем единственный тут вариант я хотел поделиться ссылкой и ещё одной библиотекой L Chain А что это
1:04:05
за библиотека это вот когда вы всё сделали и захотели предположим вылить
1:04:11
это на Продакшен и показать кому-то то проще всего воспользоваться Вот как раз
1:04:17
библиотекой L Chain которая позволит ту же вами подготовленную предварительно
1:04:23
обученную и так далее модель грузить уже на сервера и использовать Вот именно те
1:04:30
механизмы которые здесь есть тут достаточно много дополнительных механизмов есть загрузки обработки
1:04:36
данных выдачи результатов а что вам позволит не писать все эти механизмы
1:04:43
руками а просто воспользоваться инструментарием L Chain у неё также есть там на сайте достаточно всеобъемлющей
1:04:51
документации с примерами кода на этом
1:04:58
всё присоединяйтесь к нашему сообществу Вот только QR коды нашего сообщества
1:05:04
нашей группы Спасибо большое
1:05:10
Юрий имы на тепер наверно да мы переходим к вопросам сегодня за вопрос У
1:05:17
нас очень классная книжка от Эндрю тра грокаем глубокое обучение соответственно
1:05:22
тот кто задаст лучший вопрос получит такую Ну что Кто первый кто
1:05:36
смелый так нас стесняются Пока люди в зале Я попробую не не стесняться в этом
1:05:44
случае задать вопрос Юрий вот считается меня слышно
1:05:49
Дада ВС хорош считается что Нейро
1:05:56
за зада классификации это классификаторы и только всего вот где
1:06:02
она там где решается задача классификации Когда вы говорите о числах
1:06:08
О матрицах вот О всём этом
1:06:14
хозяйстве или это неправда они
1:06:19
[музыка] решают часть это задача именно
1:06:27
классификации выбора и так далее Это конечно можно возвращаться к варианту
1:06:34
самого Трансформера и рассматривать его а по по сути дела последний его
1:06:43
слой последний слой linear и Soft Мак вот эти слои рассматривайте да говорить
1:06:50
что по сути дела у нас частично задача классификации решается
1:06:57
а ну в принципе может быть
1:07:03
но а что это нам даёт с точки зрения
1:07:08
практического решения я бы сказал что с точки зрения практиками которыми мы
1:07:14
здесь являемся для нас эта задача скорее предсказани
1:07:20
следующего слоя в последовательности не более того и вот от этого наверно надо
1:07:27
с точки зрения Уго и можно рассматривать по разным но это не совсем мо моя
1:07:34
направленность в этом я Спорить не буду Ну Вы ответили в общем-то Да в
1:07:39
трансформере как раз это задача наиболее детально прорабатывается но можно
1:07:46
представить здесь Так что вот даже Казалось бы
1:07:52
елит и во даёт ответ который неотличим
1:07:58
по смыслу от человеческого Хотя вот в ваших примерах стихи были всё-таки без окончаний правильных то есть Она
1:08:05
довольно грубо это сделала но мы знаем что сети обученные на русскоязычном
1:08:11
материале генерирует вполне грамотный синтаксический текст то есть там
1:08:17
правильно все окончания род формы и так далее Вот но задача классификации
1:08:23
во-первых есть всегда это и вот когда сеть нам генерирует слова
1:08:30
она на самом деле определяет наиболее вероятное слово тире класс из миллионов
1:08:38
этих классов которые она уже знает и Поэтому хотя мы видим такую вещь которую
1:08:43
никак не признаешь как задачу классификации на самом деле она там срабатывает то есть одно
1:08:54
слово до этого сгенерировано он их тоже учитывает и потом пересчитывает вот эту
1:09:01
вероятность то есть выскакивает наиболее вероятные слово А все они все слова
1:09:07
языка можно сказать даже так ранжированы по соответствующим вероятностям
1:09:12
появления вот так что Вы ответили на мой вопрос и я вот уточнил
1:09:18
спасибо С за вопрос Ну я тут дополню маленький
1:09:26
кусочек Как раз пока микрофон переходит по поводу слов вообще этот Я
1:09:34
читал немного по поводу генерации стихов генерация стихов вообще тема достаточно
1:09:39
сложная а там и и вот эта стилистика и ям и ритм и
1:09:47
мало того ещё ударение вот в моде как раз вот э 35
1:09:53
[музыка] просто у автора смотрел у него были приведены примеры где ещ расставляет в
1:10:01
том числе и ударени что очень важно для стихов чтобы оно прочитала более-менее
1:10:08
звучно это тоже такая интересная задача современные поэты не очень-то
1:10:16
жалуют рифму некоторые поэтому я думаю с этих
1:10:24
вре РП там и подобные вот направления тоже вполне
1:10:30
поддержит спасибо очень хороший ваш доклад он именно практический и его можно считать такой инструкцией по Ну
1:10:38
студентам например как начать работать чёткую такую тактику Ну в
1:10:45
принципе это и задумывалось именно как первый шаг для того чтобы кто-то мог именно пойти по тем же самым шагам и
1:10:52
выполнить очень похожую работу исключительно под себя да
1:10:57
спасибо так вопрос
1:11:11
СБО Ага Юрий Спасибо за доклад было действительно интересно хотел уточнить
1:11:16
такой момент я просто игрался вот ну с той же ламой например антром и у них есть такой параметр Как
1:11:24
температура который позволяет варьировать свободу поведения свободу
1:11:29
действий того что делает Не росет а ты не пробовал ну как бы тоже как мне
1:11:38
просто показалось о примеру твоих стихов и особенно после того как ты показал вот
1:11:43
разбитие на токены то сеть была прямо как бы сильно зажата и вставляла ну кусочки кусочки А типа дать ей больше
1:11:50
воли и может быть она бы родила что-то более прогрессивное у Да спасибо за
1:11:58
вопрос Наверно с температурой я начал
1:12:03
разбираться немножко позже чем уже доо обучил эту систему Вот и Наверное это вот будет
1:12:11
следующим шагом по поводу того чтобы попробовать действительно с различными температурами и так
1:12:18
далее но в моём случае Я всё-таки склонен
1:12:24
считать что у меня не совсем удачный датасет то
1:12:30
есть слишком он короткий я обучал его на слишком коротких последовательностях И
1:12:36
вот дай ему там хотя бы четверостишья возможно будет результат получше ну и
1:12:41
плюс да возможно дать ему температуры тоже побольше и варианты я с
1:12:47
температурой играл как раз в модели Вот как раз а сейчас
1:12:55
вернусь
1:13:01
вот од секунду вот в этой модели как раз я играл с температурой и вот температура
1:13:08
очень сильно влияла на то какие стихи он пишет
1:13:15
а некоторые последовательно были действительно хорошие некоторые если отпустить температуру побольше
1:13:22
Ну начиналась уже такая разбивка в стилистике менялась очень сильная то
1:13:28
есть поддержать с помощью температуры а значение слов как бы хорошо получается
1:13:35
а появляются новые слова но получается что либо окончание либо сам смысл
1:13:43
становится очень неустойчивой тоже так то есть
1:13:49
повышение Извините приводит к расширению словаря новые слова
1:13:55
появляются То есть у него вариантов больше она разброс больше идёт и новые
1:14:02
слова Да но они получаются не совсем согласованы и поэтому получается не очень красиво а я тут про один момент
1:14:11
упустил в докладе не стал рассказывать дело в чём что А почему выбраны ещё были
1:14:17
стихии тут есть ещё один подводный камень дело в ЧМ что оценивать качество
1:14:24
большой о сложно
1:14:31
поэтому для этого существует целая куча методик в том числе другие какие-то
1:14:38
датасеты которые мы скармливание модели и получаем результат и по тому насколько
1:14:44
она близко предсказала результат к нашему текущему мы считаем насколько она
1:14:50
качественная но в случае хов воз можность сделать Ну и будет не
1:14:57
совсем корректно Что значит предсказало слово нас больше волнует в стихах смысл
1:15:02
Поэтому был выбран именно стихи где Мы это можем предсказать сами и не э
1:15:09
дополнительно тратить время на то чтобы выбирать какие-то модели и методики оценки качества
1:15:17
модели ещё вопросы
1:15:34
а Спасибо большое действительно хороший доклад Если честно у меня вопросов по
1:15:41
большому счёту Нет мне потому что сейчас я немного в этой теме и всё понятно
1:15:47
А вот предыдущему температуре хотел добавить что вс-таки интересно вс-таки
1:15:54
ги е параметры Это топ и топпи они влияют
1:16:00
на те слова которые будут наиболее вероятно выбранные вот
1:16:06
а а что я хотел бы спросить мне на самом деле
1:16:15
сейчас мы сейчас заняты вот ну планируем сделать тюнинг на
1:16:22
кодовой базе Да может быть те какие-то рекомендации по созданию датасета для
1:16:32
тюнинга модели которая будет генерировать
1:16:38
код А по поводу По поводу вот этого шага Он
1:16:46
интересный Я тоже хотел бы немного позаниматься данной Темой она
1:16:52
данная задача немного сложнее немного сложнее В каком плане во-первых
1:16:57
мы можем взять Ну понятно что за основу например Мы можем взять коде Лама
1:17:03
которая уже
1:17:14
натренировать это попробовать код Лама заставить например промтент
1:17:22
промтис модели и
1:17:28
в кроме всего прочего можно сделать пойти двумя путями
1:17:35
Можно конечно дооб Буча модель А можно сделать более простой механизм это
1:17:40
раговка а он на чём он основан То есть у нас
1:17:46
есть какие-то данные нашей компании которые мы как раз из которых будем
1:17:51
делать определённые выделим а какой-то датасет где у нас будет
1:17:58
а описание плюс какая-то часть кода и вот этот вот часть кода А мы из описания
1:18:06
части кода можем сделать там эмбеддинг и на основе этих эмдин гов мы их можем
1:18:12
положить в базу данных вот тут векторная база данных Вот как раз chin как раз этим и занимается у него очень хорошая
1:18:19
статья по рак здесь а он складывает это всё в нашу базу
1:18:26
и в процессе того как человек пишет что мне необходимо
1:18:33
сделать то-то мы можем пропускать то что он пишет короткое это сообщение сначала
1:18:39
через мку для того чтобы сгенерировать из вот этого сообщения более полное
1:18:45
сообщение дополнить его дополнительными данными после этого Превращаем его в Дин
1:18:52
и идём в векторную базу данных и Сравни текущими значениями которые у нас есть в
1:18:58
базе данных находим максимально близкие значения вытаскиваем оттуда данные по
1:19:04
вот этим значениям и уже закидываем весь
1:19:11
этот все все эти данные плюс запрос пользователя плюс то что мы нашли в
1:19:18
большую модель язы
1:19:25
в нашу сторону вот использование рак – это наверное самый простой способ получить
1:19:33
более-менее качественную картину потому что как я посмотрел на до
1:19:39
оббурдон
1:19:54
очень хорошим специалистом и понимать что там И как либо вам
1:20:03
повезёт поэтому А вот механизм рак – это наверное самый простой механизм Прямо
1:20:09
вкатиться туда и попробовать А вот потом уже можно попытаться эту модельку нашу
1:20:14
ещё дооб учить с помощью каком-нибудь Лора доо обучить и посмотреть насколько
1:20:21
хорошо Мы е доум чтобы она понимала именно наш язык
1:20:26
программирования предположим а по которому мы учим либо тем методикам
1:20:32
которые мы учим и возможно использовать ещё какие-то дополнительные методики обучения Но это ещё более сложные
1:20:40
процессы потому что
1:20:45
А обучение с подкреплением А я нашёл
1:20:51
замечательную лекцию где выпускник фесте говорит что обучение с
1:20:57
подкреплением – это целый курс на фесте причём не самый простой То есть это
1:21:03
большой объём знаний и умений которые у вас должны быть чтобы сделать обучение с
1:21:10
подкреплением это Это достаточно сложный процесс а а вот рак это простой способ
1:21:17
вкатиться с минимальным объёмом знаний в данной тематике и получить
1:21:22
хороший результат сразу на на старте как-то
1:21:30
так спасибо Юр Есть ещё вопросы из чата
1:21:35
А почему обычные модели в большинстве своём создают тексты с высокой степенью
1:21:42
оригинальности но при этом эти тексты легко идентифицируются как результат
1:21:48
работы искусственного интеллекта
1:21:58
Да воп Вопрос такой вопрос интересный
1:22:04
А у меня сразу вопрос на вопрос хочется задать А кем
1:22:10
определяются высокой вероятностью А мне кажется что в данном случае
1:22:16
а в ответ на этот вопрос будет следующий
1:22:21
а а по сути дела чем на самом
1:22:28
деле является нейронная сеть по сути дела Это архиватор высокой
1:22:35
плотности Мы в него загрузили громадные объёмы данных из которых
1:22:41
он вычленить
1:22:54
высокой степени плотности если это архивация высокой степени плотности и мы
1:23:00
подаём на него текст который был сгенерирован такой же
1:23:06
моделью то по сути дела Мы предскажет наиболее вероятно именно эту
1:23:12
последовательность поэтому архива поэтому данная модель и
1:23:19
говорит о том что другая модель сгенерирована в принципе также
1:23:25
теми же принципами и опять же алгоритм один и тот же скорее всего и то и то был
1:23:31
трансформером поэтому трансформер понимает что такое трансформер поэтому действительно
1:23:38
наверное так оно и есть Если рассуждать именно так можно мне
1:23:45
добавить Да пожалуйста ну во-первых подобные тексты распознаются
1:23:51
как искусственные отн на 100% более того начало вот этой Революции оно
1:23:57
относится видно к середине д вго года когда Open выставила модель таким
1:24:04
образом что там был создан виртуальный пользователь в сети который написал некий текст такой философско
1:24:11
исторический и его начали обсуждать значит в сообществе и только
1:24:18
там бы
1:24:24
Ази отве дополнять и так далее То есть все признали его естественным только
1:24:30
один член при начал сомневаться его сразу забанили вот это вот история
1:24:36
известная и буквально сегодня закончился так называемый колмогоровский семинар в
1:24:43
Высшей школе экономики он в день рождения Колмогорова 25 апреля все
1:24:54
на самом деле он заложил некоторые основы вот о них можно отдельно как-то поговорить поэтому семинар называется
1:25:00
сгор вот там как раз была был доклад Где предлагалось строить Вот эти верификатор
1:25:07
то есть проверять текст искусственный он или не искусственный то есть естественный или сгенерированный ботами
1:25:14
или сетью и эти верификатор работают там 60% там 50 и меньше даже то есть отнюдь
1:25:22
не 100 то есть на самом деле проблема есть и на 100% Никогда этот текст не
1:25:30
распознаётся Ну ясно что он может быть сделан грубо более или менее качественно
1:25:35
Но вот тот первый шаг который Open сделал в д втом году Он был очень такой
1:25:43
значительный и тогда вот ну на несколько сотен это люди сейча этим занимаются
1:25:50
тоже компьютерные программы а не люди которые распознают искусственный или естественный но проблема всё равно
1:25:59
есть собственно вот такая
1:26:10
ситуация так у нас ещё продолжение Юрий Можно я добавлю прямо в продолжение
1:26:17
этого смотрите боевые моделини продолжают
1:26:22
ужа информа и теперь будет ВС больше появляться
1:26:28
доступных источниках в основном в интернете информации сгенерировано большими языковыми
1:26:33
моделями они будут учиться сами по себе и понять Ну через пару лет то что
1:26:39
написал И доказать что оно естественно или нет это будет прям
1:26:44
прям как минимум очень сложно вот
1:26:50
Спасибо да возможно правда последнее время а если смотреть по последним
1:26:56
тенденциям то сейчас есть одно из направление
1:27:02
интересное что качество данных Что важнее даже не тот объём который мы
1:27:09
подаём этих данных а то качество данных которое мы подадим на модель и можно
1:27:14
данных подать меньше а получить результат лучше но в принципе у меня в работе как раз это и получилось что
1:27:22
маленькая модель которая была предварительно обучена чисто на русском она лучше вот прямо реально лучше чем
1:27:29
той которую я там до обучал и ещё один вопрос э чу-чуть
1:27:38
Отойду от темы я не понял зачем нужен Safe tenser то есть от чего он защищает
1:27:47
а имеется в виду вот здесь сейчас
1:27:54
вот этот или нет нет до этого
1:28:03
где сечас сейчас сейчас сейчас чуть раньше
1:28:09
вроде там где хаб был вот это
1:28:17
всё вот здесь нет ещё раньше вот
1:28:24
попозже вот тут
1:28:31
вот а вот это
1:28:37
это каком формате у вас модель сохраняется Дело в том что по
1:28:44
сути дела Вот этот бинарник – это просто набор чисел в матри кото просто
1:28:50
последовательность оден которы просто загружаются Матрица
1:28:56
А И вот Бин – это первоначальный вариант
1:29:02
хранение матриц питонов ский насколько если я не ошибаюсь сильно А вот SA и в
1:29:10
него можно каким-то образом вклинились
1:29:24
вообще расширение бинарник выглядит как небезопасное то решили
1:29:30
перейти на структуру которая однозначно будет безопасна для среды то есть вот SA
1:29:36
ters она не не позволяет туда передать куски кода в вашу модель Это чисто веса
1:29:43
которые просто загрузится в модель этот этот механизм является безопасным для
1:29:50
системы для всяких
1:29:55
ИК который этот
1:30:06
ко не скажу вот более глубоко Я копать не стал
1:30:11
просто если Вы посмотрите иногда вот эти вот модели есть в бинарка есть есть ещ в
1:30:20
третьей структуре тоже есть е какая-то структура в кото можно сохранять модели и в некоторых репозитория вы
1:30:28
увидите трёхкратно используемые одни и те же модели Просто в разных форматах
1:30:34
вот поэтому качая ткн она в принципе
1:30:40
качается для домашнего использования лучше использовать Клон полностью склонить репозиторий к себе на домашний
1:30:47
компьютер но учтите что он скопируют ещё всю структуру три раза эту матрицу то есть
1:30:54
вместо там 26 ГБ вы выкате там 70 Да 70 с копейками
1:31:02
гиб вот есть такая проблема но потом в принципе их можно удалить из репозитории
1:31:10
и использовать он загрузит то что будет дело в том что
1:31:15
формер он смотрит на модель и загружает всё что там есть неважно какой из них
1:31:22
есть Видно у него есть Я так
1:31:29
понимаю у нас есть ещё один вопрос в чате а как вы считаете Юр если стоит задача
1:31:37
генерации кода на языке программирования не из шорт листа по текстовому запросу
1:31:43
на русском языке Стоит ли взять модель которая обученная на коде и доо обучить
1:31:50
понимать русский или взять модель которая уже знает русский и до обучить
1:31:55
писать её код Я бы пошёл в принципе по пути
1:32:04
использования цепочки моделей А что вам мешает использовать одну
1:32:11
модель которая у вас преобразует ваш русский текст в
1:32:16
английский и мало того дополняет его наиболее употреби словами которые вы
1:32:23
подите в следующую модель которая обучена у вас хорошо писать код но на
1:32:29
английском языке то есть вы используете связку из двух моделей и таким образом я
1:32:35
думаю у вас получится лучший результат чем добу текущую русскому языку а потому
1:32:43
что до обучения русскому языку вы упирается опять
1:32:49
а в тайзер Вот именно в тот словарь который у вас
1:32:57
есть Да его там можно каким-то образом расширять Но это
1:33:02
дополнительные трудозатраты и дополнительные там свои проблемы которые
1:33:08
могут быть но в принципе можно ещё насколько
1:33:13
стопроцентно не уверен но по-моему можно увеличить словарь то есть размер словаря
1:33:19
но увеличение размера словаря – это дополнительные затраты и дополнительное время и не факт что у вас будет хорошо и
1:33:27
корректно работать модель после этого ну первой моделью может быть словарь
1:33:36
линва той моделью которой русский переводит в
1:33:41
английский вполне пото что задание на
1:33:47
программирования на английском языке они не бог весть что с точки зрения сложности текста
1:33:54
ограниченный Круг лексики и грамматически там всё просто поэтому
1:34:00
либо сам программист а программист обязан знать английский язык это раз вот
1:34:06
либо уж с помощью Лин всё можно
1:34:12
сделать Ну но я бы предпочёл всё-таки цепочку
1:34:24
У вас есть Какую модель вы хотите построить платную или бесплатную если бесплатную
1:34:30
то в принципе можно сделать цепочку А если вы ваша задача У вас есть
1:34:36
финансирование то большие языковые модели имеют открытые А и вы можете использовать это
1:34:43
открытые а для просто а запросов сначала в одну модель потом во вторую модель и
1:34:49
соответственно платить за данные токены возможно кстати будет э дешевле потому
1:34:56
что число токенов в русской модели гораздо больше А в английской меньше и Возможно
1:35:04
даже у вас будет выигрыш по финал
1:35:10
всё ещё вопросы что будут ещё у нас
1:35:16
вопросы в зале нет в чате Нет ну что тогда вручаю Юрию книгу Выбирай тоже У
1:35:23
нас сего будет победителем получит
1:35:30
Так ну мне на самом деле понравилось два вопроса
1:35:35
А по поводу был первый интересный вопросы предложения по поводу поднятия
1:35:42
температур Вот и второй Понятно В этот и я думаю это
1:35:50
будет справедливо так как второй вопрос от профессора он очень интересный очень
1:35:57
дополняющий но я думаю данная книга больше поможет
1:36:03
на разработчикам именно в практическом плане а не в теоретическом полностью
1:36:10
согласен полностью
1:36:18
выходи Спасибо
1:36:26
поздравляем спасибо Ну что всем спасибо большое что
1:36:33
присутствовали на нашем докладе Давайте поблагодарим юри Ещё раз аплодисментами
1:36:38
спасибо большое Юра присоединяйтесь к нашим
1:36:44
сообществам и будем рады
1:36:52
видеть Спасибо всем за вопросы если хотите выступить с докладом ссылки
1:36:57
скинула пожалуйста обращайтесь мы всё организуем Спасибо что были с нами Всем
1:37:11
пока Давайте сфоткаемся у нас так давно не было обще фотки

Поделиться: