У меня наверно доклад будет чуть более не знаю прикладной условно То чем сейчас прямо заняты наше ГПУ и чем кажется что интересно будет менее философский Чуть более про то какие методы нам интересны что мы исследуем Вот но для начала я просто расскажу как В целом у нас примерно работает отдел исследования вот там на примере дву лет последних чем мы занимаемся Какие предпосылки для этого например году было понятно что моде станут и вот все там как-то пытались их дистиллировать всё такое было очень популярные там всякие дилбер дил гпт Для всех это было Вау неожиданно что модельки которые поменьше могут неплохо работать вот и Мы понимали это и мы очень много смотрели в те методы которые позволяют нам там не знаю какие-то большие модельки либо как-то уменьшить либо заставить их Работать быстрее и в конце концов мы вот ликовали Ю alber на Несе и вроде как типа не знаю В целом Может быть она до прода где-то и доехала А в двадцать третьем году пожалуй там появилось много интересных идей например вот те же й Space модели которые там работали за линейное время а не за квадратичное как Attention в трансформерах и нам показалось это интересно тогда ещё там у как раз рока Вот Вышла вот эта статья что нам очень важно уметь копировать информацию с предыдущих токенов на текущие чтобы появлялось способности Конга и собственно Вот такая комбинация мы долго об этом думали и вот придумали модель называется rebas тоже опубликовали сейчас на эле который будет в августе мы поедем туда презентовать статью и в целом Вот только примерно сейчас там к нам Ребята из r& приходят и говорят Давайте там тоже Подумаем в эту сторону Как нам не знаю уменьшить косты на inf каких-то больших моделей Можем ли мы использовать для этого всякие модели которые работают за линейное время и вот те направления которыми мы сейчас занимаемся Да их примерно не знаю Три больших это наверное аймен Ну потому что я думаю понятно что абсолютно все чест это копает там очень много чего ещё можно придумать открыть и в целом довольно простые вещи ещё и работают Оказывается там А есть механический interpretability ээ Ну собственно Вот Даня про это рассказывал это в основном работа антро если кто-то там не читал Вот и у них есть такой сайт transform ccs вот у них там много таких тредо они прямо в формате сайта статьи выпускают очень интересно обязательно почитайте Вот но я сейчас буду рассказывать больше про тре направле условный ринг наверно может быть не самое лучшее название но в целом примерно отражает то что мы делаем собственно про что речь Понятное дело что вот у нас есть какая-то не знаю языковая модель но она часто не очень хорошо отвечает на какие-то вопросы достаточно глупые на которые человек хорошо отвечает вот у нас есть такой вот гэп неожиданный что вроде бы как там моделька по Метрика Она хорошая Там быстро Пит текст но при этом делат что-то странное и мы понимаем что рити время наме ею теорему доказать наверно нам нужно нам в целом неважно чтобы у нас каждый токен один токен в секунду генерировать мы можем пожертвовать временем для того чтобы решить какую-то определённую очень сложную задачу которая может принести нам в будущем какие-то понятные бенефиты и в целом есть это пространство когда довольно простые вещи которые там другие не заметили Могут просто взять заработать там проверили внезапно Да действительно хорошо вот но начнём немножко Вот прям с примера такого есть датасет называется В общем это да уже немножко говорил про математику но в целом вот действительно Трансформеры как таковы они очень плохо умею читать изза этого всегда был такой огромный п между тем восьмиклассник решает зада по математи Как делать языковая модель вот такой дасе да как я уже сказал просто Обычная математика у нас есть вот в контексте не знаю там один пример просто какая-то задача простая э и на неё ответ и потом мы подаём какую-то задачу которую мы хотим решить и вот она там модель нам генерирует какой-то апу какой-то ответ и как правило Ну очевидно она генерирует неправильный ответ вопрос что с этим делать Да вот там не знаю буквально 2 года назад Модели там типа gbt третий Там палма они решали Вот примерно вот так эту задачу идея В чём Давайте возьмём и добавим просто как бы дополнительный шаг помимо того что модель просто будет генерировать ответ пусть она будет ещё генерировать рассуждение и мы просто в контекст этой модели подадим примеры в котором будут помимо самих ответов просто да там ответ 11 какой-то этап промежуточного то как модель пришла к этому ответу и соответственно модель сама по себе она уже будет копировать поведение того что было у неё в контексте И она тоже начнёт нам генерировать какие-то ответы и внезапно окажется что качество таких ответов будет сильно лучше Вот примерно по схеме это можно представить вот так вот да мы не просто там из синего кружка генерируем зелёный а у нас есть какие-то ещё промежуточные шаги Кроме того что мы можем ещё сделать можем генерировать ту несколько х ветвей и не знаю там выбирать Например если у нас ответст число то выбирать какое-то среднее из всех чисел которые было сгенерировано если ответ повторился два раза то мы берм тот ответ который чаще всего повторялся и вот с помощью вроде бы как простого трюка Да мы вообще никак не меняли модели ничего не обучали почти не использу просто вшку стучались вот например он начинает работать там кратно лучше лучше чем и наверно такая статья была така языковый модели которая у нас есть и в целом Ну что-то делать в этом направлении и из последнего чего там выходило это ure of agents когда мы берём несколько моделей там в примере три модели и мы вот эти вот промежуточные шаги подаём каждый раз Всем моделям Ну там несколько раз проделываем и они на основе там своего ответа и ответа двух других моделей генерируют следующие а и в конце мы там выбираем последней моделью какой-то ответ и внезапно это там Сой результат там помоему 98% решает Вот эту вот математику какую-то при том что она сделана полностью из моделей но тут есть минусы Да что мы используем очень много компьютера но при этом кажется что иногда некоторые задачи это Окей вроде бы прикольно но вот кажется что не очень здорово то что мы во время обучения никак не учитываем вот эти вот факты что мы будем каким-то образом ить их и заставлять делать условно больше вычислений да то есть на есть-то по факту что мы делаем Это мы просто тратим больше флап сов на то чтобы модель в конце концов сгенерировал нам ответ А и тут кажется что в целом два варианта куда мы можем идти вот у нас есть модель архитектура условно это высота и ширина всё очень просто то есть мы можем там каким-то образом не знаю больше её крутить либо увеличивать число токенов которые мы подаём в inp или там модель нам генерирует начнём вот с ширины расскажу про про два метода которые нам кажутся интересным по-моему про два сечас посмотрю точно Вот пример допустим модель нам что-то генерирует не знаю основные характеристики жабы и обезьяны и тут мы поняли что мы чтото не то написали мы стёрли и написали там жабы и гадюки Теперь гораздо лучше по факту что мы сделали модель нам сгенерировал довольно много условно экшенов да то есть тех токенов которые она сделала сгенерировано характеристики обезьяны и короче постави Уно нажа ноп чтобы стереть щее словом ись а то что мы видим это вот то что внизу то есть по факту как бы тот котором Мы оказались он вот такой и Суть в том что было бы наверно интересно да если там знаю зайдём ка и моделька когда понимает что что-то не то начинает генерить она сама чтото стирает и начина генерировать по новой Вот такая идея прикольна была статья про это да Вот есть какой-то Граф и она вот как-то по нему ходит вот статья называется Дальше она не сильно завелась комьюнити но в целом идея сама по себе прикольная Просто там математика оказалась немножко сложно и в целом Пока точно не придумали как это использовать но нам кажется это интересно А дальше у нас там не знаю пример про математику опять же то есть мы как люди не знаю когда мы там просто пишем промежуточные вычисление мы больше времени тратим на то что там после знака равно думаю что написать да Как мы можем это сделать в языковых моделях Мы можем поставить какие-нибудь специальные пау токены которые по факту ничего не будут делать но как бы дадут время нашей модели подумать то есть Таким образом мы немножко решим ту проблему Что языковые модели когда генерируют какой-то текст они по факту тратят примерно одинаковое количество времени на каждый токен то есть для нас вроде бы ничего не изменится мы эти па токены в интерфейсе самом кабуд не увидим но при этом то как бы не знаю я уже сказал да внутри языковых моделей есть это вот такая вот Матрица каж с каждым токеном если мы посмотрим на их размеры там которые были если мы не вставляем Пауке и на те которые когда мы вставляем Паке мы увидим что у нас гораздо больше вычислений происходит то есть формально как бы опять Мы заставляем модель использовать больше псов на решение нашей задачи и внезапно Да вот статья была про эти Паке вроде бы простой метод но вот если мы просто во время обучения будем подсовывать в ндо момент паны и каким образом обучать а потом на иренс некоторые места когда мы знаем что там чуть больше вычислений нужно будем подставлять пау токены внезапно качество становится сильно лучше но там есть проблема Да мы эти пауки не учимся генерировать то есть всё ещё есть какая-то неэффективность что если мы как-нибудь придумаем какой-то метод который позволяет языковой моде помимо того что про мы там ставим после знака равно пау токены три штуки самой модели ориентироваться там сколько е нужно пау токенов ставить или Ну в целом как бы научим моль понимать Сколько времени нужно для того чтобы сгенерировать следующий токен то кажется что это вообще будет ну прорыв кажется что прикольно вот шириной вроде бы закончили да то есть по токенам как расширять псы мы разобрались Давайте теперь поговорим про то как условно динамически увеличивает число слоёв в модели Ну собственно всё началось там с работы ещё на рнн ещё там до не знаю по-моему 2017 года эта статья в целом Трансформеры уже были но вот а статья не про это в общем рыноки как работает мы там на вход подаём inp потом э прокручиваем его через слой потом снова как бы добавляем его в инпут нашей модели и так делаем много раз вот и статья про то что давайте во-первых там увеличим число ки а во-вторых заставим вот это вот число n Давайте его попробуем обучить То есть у нас к нам приходит пример мы по этому примеру каким-то образом стараемся понять сколько нам слоёв нужно прокрутить и потом уже выдаём Out Вот и оказывается Вот надписи Не пытайтесь просчитать Я просто две стрелочки покажу первый Вывод что чем больше сложность примера то модель реально учится больше как бы думать Вот условно там по - это то число слоёв которое оно пропустила в итоге и мы видим что чем сложность больше у нас есть корреляция Да как бы у нас с лева направо всё выше и выше становится линии в зависимости от сложности и второй который можно сделать это то что чем больше вычисление модель дела тем лучше качест в целом это не удивительно но суть в том этой работы что они именно обучали вот это вот число слоёв которое нужно иде сама прини рение томко рар Ну кажется что можем первая статья кото расскажу Решала может быть немножко нереалистично зада обычно трансфор для этого не используют она там Решала линейную регрессию и вот если мы там по инту наше по и будем восстанавливать там и Ну просто которые линейно друг от друга зависит то обычно рар будет выглядеть примерно так да мы там берём наш ипу для нашего линейной регрессии то есть оно как там в слоях зашито Если же мы берём один слой и повторяем его несколько раз то это можно сравнить с некоторым градиентным спуском да то есть мы во-первых можем если мы знаем что там качество после де тра Нас устраивает то мы можем не делать больше вычислений или в общем како такого рода штуки делать то есть динамически там решать Например если нам нужно большая точность можем эту же модель использовать делать Просто больше число итераций вот оказывается таким что Вот красная линия на самом деле это как раз вот этот вот луп трансформер который делает одни и те же слои и по иреку у нас ошибка и мы видим что она на самом деле сильно лучше чем там трансформер который голубая линия по примерам идёт по иконк примера который мы у неё подаём а более того число данных которое нам нужно для обучения такой модели правда на регрессию Я говорю но ещё раз кажется что можно это каким-то образом переместить на языковое моделирование оказывается что он более да efficient то есть Нам нужно меньше данных чтобы добиться лучшего качества по по нашей задаче чем обычного Трансформера Но вот тут вот например видно некоторая неэффективность Да когда мы пропускаем один и тот же слой Трансформера несколько раз в целом мы применяем примерно одну и ту же функцию для наших инпутов вот Можем ли мы каким-то образом разнообразить те функции которые мы применяем при этом не увеличивая число параметров Давайте попробуем там использовать мо of Expert Я думаю примерно все слышали как он устроен но суть в том что там пропускать через att потом у нас есть какой-то роутер роутер решает Куда нам собственно роти наши наши токены то есть есть там у нас какой-то зелёный токен он там наме решает что его нужно зать на эксперта о эксперта 2 Эксперт 3 не трогать при этом у нас этив метро таким жено вот будем неко раз потно может динамически решать Куда нам роти и таким образом мы как бы используя один и тот же слой на самом деле будем применять различные функции из-за того что мы каждый раз будем разные веса модели задействовать вот ну собственно это не то чтобы моя идея но вот ээ ребята которые это имплементировать они показали что внезапно такая архитектура работает сильно лучше по который нужно обучать то есть мы можем использовать меньше текстов для обучения при этом добиться лучшей плекси качества и в целом там оказывается что на даст задача да О тоже лучше перфор но в целом как правило он коррелирует с тем что мы видим настриме вот Казалось бы вроде бы не слишком сложная идея но вот можно заставить её работать но вот нас конкретно сечас довольно много сегодня утром ещё поставил эксперименты нам интересно Можем ли мы таким образом заставить модель вот допустим на обучение мы там использовали не знаю 12 слоёв Можем ли мы каким-то образом сделать так что на иренс мы будем использовать вот 24 раза прокручивать вот этот вот слой с mixture of experts но при этом мы будем добиваться лучшего качества то есть мы будем использовать больше флап сов во время инфе чем было на трене во время фор паса и Ну кажется что довольно интересная тема а для нас Возможно скоро поделимся какими-то результатами вот ну два QR кода уже наверное классических Первое - это про мнение про мой доклад а второе - это ссылка на жёлтый А где мы делимся обычно новостями не знаю всякими анонсами можете подписаться и там что-нибудь до будет всегда интересного про нашу команду И не только Да на этом примерно всё а