0: Всем привет. Рад приветствовать вас на последней части 2 модуля нашего мини курса под названием полная история семейства gpt. Меня все ещё зовут котёнков Игорь. И сегодня мы с вами поговорим про такую тему, как масштабирование моделей или скеллинг. Мы попытаемся ответить на вопрос, что это такое и что именно мы будем
1: Масштабировать и как затем мы посмотрим на разные графики, которые постараются меня и вас убедить в том, что трансформеры масштабируются лучше, чем другие модели, и за счёт чего это происходит затем мы рассмотрим вопрос, как оценить оптимум нашего масштабирования, не разорившись при этом на gpu, потому что это дело не
2: Совсем простое, затронем противоречивую тему, отвечая на вопрос правда ли что меньше лучше и самый последний слайд будет посвящён очень очень горячему вопросу чего же бояться в openai итак давайте начинать если вы откроете статью GPT-3 и заглянете.
3: И в самый конец, где выражают благодарности разным людям, то вы увидите, что отдельная благодарность выражается ильесу скверу, снисту компании openai там было написано, что он был защитником идеи масштабирования моделей, а именно дженнера лайклихуд молосс, коим наши модели gpt явля.
4: Мы оптимизируем лайклихуд, они генерируют. Ну и это модели по определению, поскольку в предыдущих лекциях мы чуть чуть иногда заглядывали в будущее и смотрели на модели, которые ещё не появились в момент разбираемых тем, то мы уже видели, что большие модели сходят
5: К более низким значениям ллоса, а значит, лучше сжимают и, как мы верим, лучше моделируют наши данные и обладают лучшей предсказательной способностью в целом на уровне интуиции. Понятно, почему так может происходить, но эта идея, она была с нами не всегда. Иногда её приходилось защищать. Многие люди были уверены.
6: То масштабирование моделей ни к чему не приведёт. И это в целом бесполезное занятие. Но Илья Суцкевер давно проталкивал идею, что вот как только мы достигнем того, что наши модели делают очень хорошим супервайз лернинг, как только мы сможем скармливать им огромнейшие корпуса неразмеченных данных, так сразу же начнёт иметь смысл.
7: Их масштабирование с последующим существенным улучшением качества помимо ильи суцкевера, есть человек по имени дарио амадей сейчас это CEO компании антропин, 1 из крупнейших конкурентов компании openai, но когда-то он занимал пост вице президента по исследованию.
8: И работал очень плотно с ильёй и он рассказывал в 1 из своих интервью, что буквально как только он начал работать в openai, он разговаривал с ильёй Суцкевер и 1 из вещей которую он ему рассказал это то, что модели это такие сущности, которые просто хотят учиться.
9: Нам нужно понять то, что они хотят учиться. И наша основная задача это убирать препятствия с их пути, и таким образом мы будем облегчать им задачу обучения, что будет приводить нас к лучшим результатам. И дари Мадей говорит, что это для него в некотором смысле было озарением. Он понял эту
10: Концепцию и в течение нескольких следующих лет работал над ней, и это вылилось в работу по масштабированию моделей. Сама оригинальная статья, которую мы сейчас будем разбирать, называющаяся скеллинг Клоус фор нью ленгвич моделс она вышла позже в GPT-3, однако абсолютно точно известно, что
11: Наработки из неё были использованы при масштабировании GPT-3. Окей. Мы хотим постараться убрать препятствия на пути обучения моделей, какие вообще препятствия бывают и что мы можем попытаться убирать. Давайте попробуем следующее. Мы будем фиксировать размер.
12: Нашей модели и инициализируем её 1 раз и больше не будем менять, будем не зацикливаться на количестве данных, которые мы предоставляем модели и будем отпускать её учиться, сколь ей хочется, и будем замерять её качество или значение функции потерь на разных отсечках компьютер, то есть на разных
13: Отсечках количество вычислительных мощностей, которые мы в эту модель вкладываем. И если мы посмотрим на график, то каждая голубая ниточка, которая здесь есть, это 1 отдельная модель, 1 отдельный тренинг ран и визуализация тестового лосса этой модели.
14: Что они начинают как бы выстраиваться в 1 прямую, изображённую чёрной линией с маленьким горбиком. Но это не особо важно, но при этом, чем больше вычислительных мощностей мы вбухиваем в модель, даже несмотря на то, что размер модели не меняется. Поскольку мы доливаем новые данные, то модель
15: Улучшается тоже самое. Можем сделать немножко в другом сетапе. Мы все ещё фиксируем размер модели, а теперь мы будем предоставлять достаточное количество мощностей, но при этом менять размер данных и обучать до выхода на плато. И в какой-то момент понятно, что начнётся переобучение
16: Потому что мы ограничиваем размер датасета и мы просто берём лучшее значение лосса, которое у нас получилось. И если мы визуализируем это, то у нас получится опять же, очень, очень прямая линия на графике отношения размера датасета, на котором обучается модель к ллосу и последний
17: Этап, который хочется изучить, это когда мы фиксируем количество мощностей, то есть некоторый бюджет, который мы выделяем на обучение, предоставляем достаточное количество данных, то есть опять же не запариваемся по поводу того, сколько текстовых последовательностей наша модель увидит суммарно и меняем количество параметров. И мы
18: Опять же, если отрисуем график, увидим, что есть некоторая прямая линия, которая, ну, буквально, идеально ложится на чёрную. Зафиченных из этого графика можно вынести несколько инсайтов. Инсайд 1. Если вы вбухиваете больше ресурсов в вашу модель, она становится лучше.
19: Более того, прямые линии как будто бы намекают на то, что, во первых, мы можем это попытаться предсказывать, а во вторых, как будто бы есть некоторая зависимость, которую мы не знаем, но, по крайней мере, можем наблюдать на основе эмпирических исследований. Ну, хорошо, кажется, путь вперёд найден. Мы можем взять любую модель, сделать.
20: Большое количество параметров, большое количество данных, бухать в неё большое количество вычислительных мощностей, получить хорошую модель. Но понятно, что мы хотим масштабировать модель, которая масштабируется лучше всего, потому что если мы возьмём очень, очень глупую сеть, сколько бы параметров мы в неё не вбухивали, сколько бы вычислительных мощностей не давали, она
21: Вполне возможно, что будет сходиться к какому-то неоптимальному минимуму, и тем самым все ресурсы будут просто впустую выкинуты. Мы же хотим масштабировать самую лучшую вещь. Поэтому 1, что делается в исследовании опен ай, это сравнивается масштабирование трансформерах и лс.
22: Немножко в разных сэтапах меняют количество слоёв у lstm, меняют количество параметров у обеих моделей и отрисовывают график функции потерь на тестовой выборке при обучении модели до сходимости, и видно, что функция трансформера, она лежит как бы под Функ.
23: Под линией лстм. Таким образом, если мы берём модели одинакового размера и тренируем их без всяких ограничений, то трансформеры в среднем себя показывают лучше даже не в среднем, а на всем нашем интервале, который был рассмотрен в работе вне зависимости от того, какие мы берём лстм 2
24: Слойную, четырехслойную или, наоборот, однослойную все равно это сохраняется и оказывается правдивым. Более того, даже если мы берём больший трансформер, то этот закон, он все ещё сохраняется. И у нас есть основания полагать, что мы можем брать модель ещё больше, ещё больше.
25: Таким образом, доходя до размеров GPT-3 и продолжать улучшение продолжать улучшение нашей функции потерь на новом тестовом датасете, а значит, улучшение сжимания данных и идентификации паттернов. Обратите внимание, какая причина указывается на этом графике, почему?
26: Трансформер работает лучше. Здесь написано импрув тьюс оф лонг контекст, или по простому, улучшенное использование длинных контекстов. И вправду в прошлых лекциях я это отмечал несколько раз, что трансформеры работают с контекстом лучше. Трансформеры работают более эффективно. Бла бла бла и теперь
27: Теперь можно посмотреть наконец то на график и в моём понимании это 1 из самых важных графиков в nlp и применительно к трансформерам вообще, который я, честно говоря, практически не видел никогда ни в уроках, ни в лекциях, ни в презентациях, что сделали господа из openai, они взяли модели одинакового размера лстм трансформеры.
28: Обучали их и смотрели назначение тестовой функции потерь тестового лосса по токенам в зависимости от индекса их позиции. У нас здесь есть модели на 400000 параметров, на 2 3000000 параметров и на 200 300000000 параметров. По современным меркам, конечно, смешно, но
29: Самое главное, что суть передаёт, это не просто какой-то артефакт исследования, это то, что в целом более менее логично, что мы опять же уже упоминали. И давайте посмотрим, что же здесь получается. Мы видим, что после какого-то количества токенов, например, после 10, 20 может быть
30: 30 трансформер всегда показывает себя лучше, то есть значение функции потерь на более поздних индексах в рамках 1 последовательности значение функции потерь оно будет ниже. То есть это означает, что трансформер лучше использует этот контекст, и chem Бо.
31: Больше контекста мы берём тем больше и больше разрыв относительно тем больше наш выигрыш, потому что такого выигрыша не наблюдается, например, на первых 10 токенах. И это 1 из самых старых и при этом изученных проблем, что в рекуррентных нейронных сетях, кой лстм является, они выходят
32: В некотором смысле на плато, на около 100 токенов существуют разные изменения адаптации, иерархические лстм, но в целом это все равно архитектурное ограничение. В трансформере же такого архитектурного ограничения нет, когда мы обрабатываем 1000 токен, десятитысячный токен,
33: Если мы делаем фул селф аттеншн, то все равно этот токен посмотрит на все предыдущие. Это заложено в дизайн алгоритма сел аттеншена не может быть такого, что мы какие-то токены начинаем пропускать. Если наша модель учится хорошо, то модель абсолютно точно начнёт обраща
34: Внимание на необходимые важные для неё токены, а значит, лучше моделировать последовательности и достигать более низких значений ллоса. И обратите внимание, что если мы будем смотреть на самые большие трансформеры, самая нижняя голубая линия, то это даже не выходит на плато. То есть мы можем продолжат
35: Увеличивать контекст, продолжать увеличивать параметры и будем добиваться все лучших и лучших результатов. Давайте посмотрим на следующий график. В целом. Здесь изображено тоже самое за вычетом того, что сравнивается не lstm и трансформер, а берётся только трансформер разных размеров. Если
36: Фиолетовая моделька очень маленькая, если более Светлый, ближе к жёлтому. Модель большая. И также здесь фитится специальные линии, которые пытаются проксимианские ние модели и значение функции потерь от индекса токена в текстовой последовательности в тестовой выборке, что опять же говорит,
37: О том, что мы можем это значение попытаться предсказывать, оно уж очень хорошо ложится на штрихованные прямые, и при этом большие модели ищут паттерны гораздо эффективнее, потому что даже при той же длине контекста значение функции потерь для больших моделей, для жёлтых моделей оно ниже.
38: Как видно по графику, также отсюда видно, что модели быстрее улучшают предсказания на ранних токенах. То есть у нас касательная к этой кривой очень сильно наклонена у первых токенов. То есть мы существенно увеличиваем с каждым новым токеном количество понимания, которое извлекает модель из контекст.
39: А значит уменьшаем значение функции потерь. И как только мы переходим к длинному контексту, там изменение уже не такое существенное. Ещё очень интересно рассмотреть процесс тренировки моделей, если мы возьмём gpt 2 слэш 3 light, модель на 774000000 параметро.
40: И будем её обучать. 10 в 5 степени Шагов будем отрисовывать лос потокено. Так же, как мы это делали в предыдущие разы, то видно, что модель сначала изучает локальные, а затем уже глобальные зависимости в контексте. Ну почему это верно по этому графику? Потому что фиолетовые линии гораздо
41: Раньше начинают выходить на плато и при этом не продолжают улучшаться со временем, в то время как токены с Тысячных позиций жёлтые самые в самом низу, в правом нижнем углу, они как будто бы ещё не вышли на плато и чуть чуть будут улучшаться. Иными словами, если мы зафиксируем номер шага.
42: Например, 1010 в 3 и посмотрим на значение функции потерь, то у токенов с индексом около 10 функция потерь будет около 5, а токены с индексом около 1000. То есть в самом конце нашего окна будут иметь уже значение лосса около 4 и даже, возможно, ниже.
43: Окей, посмотрев на эти графики, господа из openai начали задумываться, а что вообще мы попытаемся искать, то есть мы можем масштабировать трансформер в более менее предсказуемой манере мы понимаем, что есть, вероятно, какой-то закон масштабирования или по крайней мере какая-то зависимость того, какие ресурсы, какую
44: Данные, мы даём нашу модель и что получаем на выходе. Ну и также посмотрели на графики, которые показывают, почему трансформер лучше лст. И если мы будем задаваться вопросом масштабирования моделей, то очень хорошо бы симулировать ситуацию, в которой такая проблема возникает, как
45: Происходит обычно. У вас есть некоторый бюджет на обучение моделей. Скажем, вы точно знаете, что на ближайшие 2 недели кластер свободен и выделен для вашей команды, и в кластере суммарно существует эркарт. Тогда это позволяет оценить вам суммарную мощность вашего кластера, например, в петафлопс.
46: Или в любой другой мере, которая вам будет удобно. Но дальше для точности расчётов мы будем использовать петафлопс дни. После этого вы задаётесь вопросом, а как используете ресурсы мне обучить лучшую модель за это время с учётом всех ограничений, которые у меня есть логичный вопрос.
47: Вопрос, который возникает, а что же такое лучшая модель? Предлагается следующая формулировка. Давайте мы будем искать модель с наименьшим значением лосса, потому что множество исследований показывают, что значение энтропии у модели очень сильно коррелирует с качеством модели на практически любых татастан от
48: Диалоговых до задачи языкового моделирования. И, как мы уже успели посмотреть на 1 из самых первых слайдов, наша функция потерь эль зависит и от размера датасета д, и от размера модели н. Поэтому, по сути, мы решаем следующую задачу. Учи
49: Учитывая фиксированный бюджет флоп, каков оптимальный размер модели и количество обучающих токенов. Иными словами, можете представить такую ситуацию? Мы можем взять огромнейшую модель и за счёт этого за 2 недели, например, сделать только 100 Шагов оптимизации. Тогда
50: Модель очень плохо сойдётся, она будет недообученная. С другой стороны, мы можем взять очень маленькую модельку, которую можно будет запихнуть в телефон и скорбим ей огромное количество данных. Но при этом, скорее всего, её мощности не хватит для того, чтобы запомнить все эти данные, обобщиться, выявить паттерны.
51: И после этого делать хорошие предсказания. И нам бы хотелось найти какой-то баланс. И, по сути, тот баланс, который мы ищем, это значение размера, модели, количества параметров. Н, это размер датасета в токенах д и задача, которую мы решаем, это мы ищем.
52: Минимум значения функции потерь, моделируемой от параметров нд, такие, что суммарные флопы от этих нд будут равняться вашему суммарному компьютур си, который мы оценили в самом самом начале, умножая количество видеокарточек на количество дней, на
53: Производительность 1 видеокарточки в 1 день. И эмпирически было выявлено, что количество flops, которое нам необходимо на обучение модель с размерами нд, оно приблизительно равняется 6 умножить на n, умножить на д. Где количество параметров а. Д. Количество токенов, которые наша модель увидит, или можно пере.
54: Писать немножко иначе 6 н умножить на б. С где б это размер бача, а с это количество Шагов, которые наша модель сделает. Ну понятно, что б умножить на с в данном случае равно д. Почему формула такая, какую можно получить здесь интуицию. Мы точно знаем, что наши большие языковые модели
55: Под капотом используют огромное количество матричных умножений. Буквально каждый линейный слой и в салатене, и в форварде, и в начале сети, и в конце сети. Это матричное умножение. И для того, чтобы на уровне железа осуществить операцию матричного умножения, нам необходимо сделать 2
56: Операции это умножение и непосредственно сложение. Если вы вспомните курс линейной алгебры, а также вспомните, как работает перемножение матриц, то для вас станет очевидным, почему мы сначала перемножаем элементы, а потом складываем несколько, чтобы получить 1 значение в финальной матрице или финальном векторе. Окей.
57: Значит, нам нужно сделать 2 операции. Это только форвард пас. Оценено, что бэквард пасс, который нам необходим для того, чтобы посчитать градиенты, после которого мы и будем делать шаг градиентного спуска. Он занимает в 2 раза больше ресурсов, поэтому получается, что у нас есть коэффициент 2 и есть
58: Коэффициент в 2 раза больше 2 складываем, получаем 6 умножаем на and потому что это все также умножается на количество параметров нашей сети и умножаем на д это количество токенов, которое нам необходимо будет пройти для того, чтобы получить финальную модель, которую мы пытаемся
59: И скеллинг, для которого мы пытаемся оценить. Здесь написано, что это равенство, приближённое. На самом деле, оно чуть чуть отличается примерно от 2 до 10% в зависимости от разных параметров. Но это очень хорошая прикидка, которую можно использовать на практике. И, надеюсь, я объяснил то, как
60: Мы её получаем почему на самом деле 6 нд. Почему там не 3, не 5, не 8, почему вообще появляется какая-то цифра давайте коротко пробежимся по основным выводам, которые были получены в ходе работы open eye, было выяснено, что качество модели, измеренное как значение лос функции.
61: Больше всего зависит от масштаба, то есть от количества параметров н, от количества вычислительных мощностей или компьютер си, и от размера датасета д и в Разумных пределах. Качество очень слабо зависит от других гиперпараметров. Ну какие это гиперпараметры, например, соотно.
62: Отношение размера фит форвард сети с размером эмбеддинга, который мы прокидываем между декодер блоками здесь, на левом графике, это хорошо проиллюстрировано. Берётся очень разные значения от единицы до 10. И в целом ухудшение значения функции потерь финальное.
63: Модели не превышает 2%. Да, кто-то может сказать, что это существенно и, наверное, он будет прав, но это те параметры, о которых сейчас можно не думать. Пока мы пытаемся смоделировать базовое поведение модели. 2 график показывает отношение высоты мо,
64: К ширине, то есть насколько нам нужно делать широкий эмбеддинг каждого отдельного слоя и сколько параметров, как следствие, будет в каждом слое и количество этих слоёв, потому что можно обучить тысячеро невую модель, и каждая из них будет очень узенький блок иметь. Либо мы будем брать очень широкие эмбеддинги очен
65: Большие блоки и их будет мало. И опять же видно, что когда мы изменяем значение от 10 до более чем 100 ухудшение буквально минорное. И при этом, если мы возьмём большую модель на полтора миллиарда, там ситуация ещё более оптимальна, поэтому тоже можно за это не
66: И примерно те же самые выводы применимы и к размерности 1 головы аттеншена. Движемся далее. Мы уже обсудили по графикам, что значение лосса следует предсказуемому поведению. Мы можем прям зафитить прямую или кривую в зависимости от того, на какой конкретно графи.
67: Вы смотрите и попытаться узнать. Если мы сделаем больше параметров при прочих равных, то какой лосс мы можем получить. И оказывается, что, во первых, это можно хорошо экстраполировать по малым моделям. То есть вы берете, обучаете большое количество маленьких моделек, делаете предсказание
68: Потом увеличиваете вашу модель на 2, на 3 порядка и оказывается что-то предсказание тестового волоса, которое у вас было, оно достаточно точное. При этом, что видно по графику, который здесь приложен, этот закон примерно сохраняется. Между всеми датасетами. Есть малень.
69: Отступы, то есть одни датасеты, моделируются чуть лучше, другие чуть хуже, но здесь замерялся тестовый лосс при обучении на датасете веб текст 2, то есть когда мы берём 1 большой репрезентативный корпус и тренируемся на нём для других датасетов.
70: В среднем будут верны те выводы по масштабированию, которые мы получим, плюс минус некоторый отступ, который нас на самом деле не очень сильно интересует, потому что нам куда важнее оценить темп, с которым мы будем уменьшать значение функции потерь, и, как мы уже видели, по графику сравнения с lstm трансформеры выигрываю.
71: Ещё 1 интересной Находкой является то, что большие модели обладают лучшим семпл офишен. То есть если мы покажем одно и то же количество данных маленькой модели и большой, то значение лос функции большой будет лучше. Это проиллюстрировано на графике здесь
72: Берутся очень маленькие модели по 1000 параметров. Очень большие 10, 9 параметров. И если мы, например, возьмём 10 9 токенов и проведём мысленно вертикальную линию, то видно, что значение лосса для большой модели жёлтой будет меньше 4, в то время как фиолетовый и даже голу
73: Любые модели, они остаются, ну, на уровне 6, может, чуть пониже. Поэтому разные независимые исследователи проводили эксперименты, где говорили, что если у вас очень ограничен бюджет на дообучение моделей, пожалуйста, используйте модели побольше, потому что вы сможете за то же количество данных получить результат полу,
74: Но понятно, что с большими моделями гораздо сложнее возиться, и 1 из последних графиков, на который хочется посмотреть и который на самом деле даёт достаточно неочевидный вывод. Это то, что эффективнее не учить модели до сходимости. То есть вам не нужно ждать, пока они
75: Выйдут на плато. Нам нужно поймать какую-то точку, в момент которой имеет смысл останавливать тренировку. Давайте посмотрим на примере. Пусть у нас есть некоторое зафиксированное значение компьюта. Я тут провёл красную вертикальную черту, и, как вы видите, мы пересекаем несколько Кривых обу.
76: Для разных моделей. И чем больше модель, тем к этому моменту потраченного компьюте модель имеет более низкий лос, то есть нам не имеет смысл брать фиолетовую модель, то есть самую, самую маленькую с количеством параметров около тыс.
77: И обучать её до сходимости, прям переобучать и говорить, да, вот она хорошо сошлась, вышла на плато полосу. Это будет неэффективно. Лучше взять модель из голубого сектора, то есть порядка 10 в 5 с каким-то коэффициентом. И когда вы её обучите, она сойдётся чуть получш.
78: Ну и тоже на самом деле верно и для правого хвоста этого графика просто там чуть более загрязнённая картинка для того, чтобы это проиллюстрировать, итого к каким выводам приходят авторы статьи из openai самый главный вывод это то, что каждый раз, когда мы увеличиваем размер модели в 8 r.
79: Нам нужно увеличивать это сет примерно в 5 раз, чтобы сохранять оптимальное соотношение и обучать вот эту вот самую оптимальную модель, которая, напомню, не обучается до сходимости, но при этом обладает лучшим значением лос функции при заданных вычислительных мощностях это работа в литературе.
80: Часто цитируется как Каплан эт оу она была выпущена в 2020 году, немногим после анонса GPT-3 и выпуска соответствующей статьи слева на слайде вы видите джерада каплана, 1 автора, собственно, чья фамилия фигурирует в референсе, который вставляют в литератур.
81: Ну, понятно, что работу он делал не 1, он работал с большим количеством специалистов, тут есть и алек ратфорд, который занимался разработкой gpt, и tom browne, 1 автор статьи про GPT-3 скотт грей, который отвечал за написание эффективных кода ядер, в том числе для некоторых из работ, которые мы уже разобрал.
82: И дарио модель со слайда, с которым вместе с ильёй кевером мы начали эту работу. И, как мы говорили в лекции про GPT-3, при размере 175 миллиардов параметров модель обучалась 300 миллиардов токенов. Видно, что это значение было взято за некоторые
83: И модели юрасик это слегка изменённая версия GPT-3 от независимой лаборатории. И модель Гофер, которая была обучена в рамках гуугл ресерч. В 2021 году они использовали примерно такое же значение. Есть модель лямда от гугла и по какой-то при
84: Несмотря на то, что она вышла позже имеет размер меньше, количество токенов в ней тоже существенно уменьшилось, ну и есть совсем какие-то гиганты вроде empty энджи на 530 миллиардов параметров, где используется ещё меньше токенов, то есть этот закон масштабирования моделей он соблюдается приблиз.
85: Действительно не до конца, но в целом видно какое влияние на индустрию он оказал, но дело в том что это все неправильно, ребята из openai ошиблись, они сделали неправильную оценку и из за этого несколько компаний потеряли десятки, если не сотни миллионов долларов, включая самих openai и это.
86: Ужасно. И 2 часть лекции будет посвящена исправлению выводов, к которым они пришли. Но перед тем, как мы перейдём ко 2 работе, я хочу сделать ключевой акцент на том, что практически все выводы, которые были показаны, они применимы, они сохраняются. То, что трансформер лучше
87: Чем lstm то, что трансформер хорошо обращает внимание на контекст. То, что он продолжает скелиться с увеличением индекса токена. В нашем контексте это все правдивые выводы, там могут быть слегка неправильные формулы пунктирных линий, задающих формулы масштабирования, но.
88: В целом те выводы, к которым пришли господа из openai, они правильны и со многими из этих выводов в индустрии на данный момент согласны кроме основного, во сколько раз нужно увеличивать размер модели при увеличении датасета или, наоборот, и основная статья, которая указывает на ошибки.
89: Точности и делают новые исследования. Это статья из дипмайнд. Они утверждают, что нам необходимо масштабировать размер модели и размер татастана ово. Если вы увеличиваете размер модели в 8 раз, татас увеличивается в 8 раз. Соответственно, у нас получается соотношение 1 к 1. Это
90: Статья вышла в 1 половине 2022 года, и в литературе она цитируется как хоффманн. Это в чем же, собственно, ошибка, где опена ошиблись они в своих экспериментах для практически всех моделей, зафиксировали количество токенов и на основе этого оценили параметры для
91: Learning rate шедулера напомню, что большинство трансформеров обучаются с касан лернинг рейт шедулером, который в качестве импута в качестве 1 из параметров требует количество Шагов, которые надо будет пройти, это как раз-таки размер детает в токенах делить на размер.
92: 1 бача. И что произойдёт, если вы неправильно это число зафиксируете? В исследовании дипмайнд проводится следующий эксперимент. Берётся некоторое количество токенов, на которые мы хотим тренироваться, и от этого оцениваются параметры для лернинг ей шедулера. Как это было
93: Описано в оригинальной статье, как это делать правильно. И затем это значение умножается на 1 и 1, на 1 25. То есть мы берём значение на 25% больше и так до 5. То есть в пике мы берём в 5 раз больше Шагов, чем мы реально сделаем. После этого обучаются
94: 6 моделей и отрисовывается функция их ллоса на графике, и если мы посмотрим на средний график, то видно, что некоторые линии, они идут как будто бы рука об руку, при этом все ещё самой лучшей. На мой взгляд, здесь остаётся линия
95: Ального, правильно настроенного шедулера. И самый правый график, который частично закрыт легендой, он обозначает значение функции потерь на другом датасете. На датасете c4 видно, что там кривые, чуть более гладкие, потому что оценка производилась сглаженная, но в целом выводы сохраняются даже между разным
96: И ошибка open eye была в том, что они зафиксировали количество токенов шедулер и параметры количества Шагов, на котором они будут обучаться, но при этом очень часто прерывали эксперименты посередине, предполагая, что оттуда можно экстраполировать и достроить.
97: Функции потерь. И если вы сделаете так, то вы получите переоценку вы получаете завышенный лос, как это видно здесь на графике и поэтому у них не получилось правильно оценить зависимость лосса размера, модели количества компьютера и размера датасета.
98: Если вы сделаете все правильно, то вы, собственно, вероятно, придёте к правильным результатам, что и сделали исследователи из дипмайнд. Также они ещё предложили несколько других способов, о которых мы поговорим через минуту. И 2 существенное отличие работы коллег из google заключается в том, что, во первых, они
99: Существенно больше моделей, и сами эти модели были в среднем больше. Самые большие достигали 16 миллиардов параметров. И теперь представьте, что в рамках этой работы было натренировано больше четырехста языковых моделей от 70000000 параметров до 16 миллиардов. Они трени
100: На датасетах от 5 до пятиста миллиардов токенов напомню GPT-3 видела 300 миллиардов токенов и как я сказал это было 400 моделей и все эти модели потом выкидываются, они просто помогают нам оценить закон масштабирования, но в защиту openai можно сказать что
101: Они делали этот ресерч на 2, возможно, даже на 2 с половиной года. Раньше было куда меньше мощностей, тем более не было веры в большие языковые модели, поэтому их эксперименты были более скромными, потому что, вероятно, у них было просто меньше ресурсов и меньше людей на то, чтобы это выделить. Все-таки тип майнд это организация куда крупнее че.
102: В 2020, да, и даже в 2024 году. Окей, давайте попробуем теперь разобраться, как именно коллеги из дипмайнд делали свои измерения и предсказания. Здесь у меня в заголовке написано шиншилла, и чуть позже станет понятно, почему я здесь так написал, что было
103: Сделано было выбрано 9 разных компьют баджет, то есть несколько наборов флопс, по которым как будто бы у нас есть доступ к Такому количеству вычислительных мощностей. И мы думаем, как их потратить. В рамках каждого бюджета были выбраны разные размеры моделей, и они были обучены с заданным бюджетом, то есть-ка
104: Раз выбирая разное количество токенов, потому что чем больше модель, тем меньше токенов мы пройдём и наоборот. И когда мы это отрисуем на нашем графике в зависимости от количества параметров и финальное значение функции потерь, мы видим, что у нас как бы получаются такие овраги или как будто бы бусинки.
105: На верёвочку. То есть в какой-то момент мы говорим, что если мы берём очень маленькие модели, они просто не способны даже при том, что они посмотрят на огромное количество данных, сойтись в хорошее значение функции потерь, а очень большие модели, они не успевают обучаться, а правда лежит где-то посередине.
106: То есть, если мы хотим получать лучшую модель, нужно брать что-то среднее между очень большими и очень маленькими моделями для этого компьютера. Давайте на этом графике для каждого нашего бюджета из 9 выделим точку с самым самым маленьким значением лос функции, поскольку это лучшая модель среди всех своих
107: Собратьев, висящих на 1 ниточке. И затем мы это визуализируем на 2 следующих графиках. На 1 из них указана зависимость количества параметров от флопсов, от количества мощностей, которые мы даём, а на 2 количество токенов от флопсов и невероятно
108: Мы опять наблюдаем прямую, по которой можно сделать предсказание и понять, какой размер модели и размер датасета. Нам необходимо было бы выбрать, если мы знаем наш заранее компьют баджет, что здесь ещё есть на графике интересного, что это за цифры 63 миллиарда и 1 и 4 триллиона оказыва?
109: И это можно было заметить на 1 из более ранних слайдов в рамках гугла была обучена модель под названием Гофер. В ней было 280 миллиардов параметров и 300 миллиардов токенов. Она видела во время своей тренировки вот её бюджет чуть меньше 10 в 24, если
110: Не изменяет исследователи дипант работая над данным исследованием по масштабированию модели и исправляя ошибки своих коллег из openai, они сказали давайте мы просто возьмём тот же самый бюджет, который был у модели Гофер, который потратили их коллеги из гугла и попро.
111: Пробуем понять, насколько большой должна была быть модель и насколько долго её надо было тренировать. И вот если мы поставим на эти графики значения флопсов, то мы увидим, что модель должна была быть примерно 63 миллиарда параметров, тренироваться на 1 и 4 триллиона токенов. То есть модель должна быть
112: Существенно меньше. И при этом тренироваться на существенно большем количестве данных. Да, сейчас мы с вами рассмотрели подход номер 2 из статьи про шеншила. Здесь он называется изза флопс проффайлс. И помимо этого в работе было представлено ещё 2 других анализа. Их мы разбирать не будем, но самое главное, что они
113: Примерно одинаковым коэффициентом. Здесь есть 2 колонки. Это коэффициент зависимости альфа, количество оптимальных параметров от нашей функции потерь и тоже самое применительно для размера датасета. И первые 2 метода они сошлись практически к 1 и тому же значению у них очень сильно пересекаются
114: Интервалы, a3 подход, он немножко выбивается из колеи, как бы указывая на то, что количество параметров должно масштабироваться чуть чуть медленнее, чем количество токенов, которые посмотрит модель во время тренировки. Но обратите внимание, что это очень разнится с тем, что было обнаружено.
115: В работе каплана из openai привет коллегам из калифорнии в то время как они говорили что нет количество параметров скелится не так же как размер датасета ну вот оказывается что ошибка собственно привела к неправильной оценке как мы с вами уже обсудили и на самом деле имеет смысл масштабировать 1 к 1 для того чтоб
116: Проверить свою гипотезу, что ребята из deep mine тоже ни в чем не ошиблись и не оплошали, делается 1 эксперимент берётся оценка по каплану и оценка по шеншиля. И получается, что если мы возьмём 10 21 флопс, то 1 метод Каплан из openai говорит, что
117: Модель должна иметь размер практически 5 миллиардов параметров, а модель димай должна иметь чуть меньше 3 миллиардов параметров и затем строятся кривые обучения для обеих этих моделей с одинаковых компьют баджет. Давайте посмотрим сначала на левый график. Здесь видно, что в пересчёте
118: Флопса голубая линия, то есть подход дипмайнд, даёт меньшее значение лосса, чем подход опен ай. И соответственно, в самом конце она тоже сходится к меньшему значению. Траинг лос. Справа мы видим, что предложенный подход, поскольку мы обучаем меньшую модель на большем количеств.
119: Данных, то она и потребует большее количество последовательностей текстовых, на которых будет обучаться. И при этом в пересчёте на единицу данных она сходится хуже, но при этом финальное значение функции потерь, которое мы получаем, оно лучше. А это, напомню, Ровно та задача, с которой мы начали, как нам
120: Используя некоторый бюджет вычислительный построить лучшую модель, у которой будет наименьшее значение функции потерь, и хоть по правому графику непонятно, выигрываем мы или проигрываем по левому, очевидно, что финальное значение функции потерь оно лучше, поэтому есть хорошие новости, есть.
121: Плохие новости. Хорошие новости. Нам нужно делать модельки поменьше. Плохие новости. Нам нужно существенно больше данных. Ну и сколько, собственно, нужно? Давайте посмотрим на следующую табличку из статьи шиншилла. Здесь перечислено несколько разных размеров.
122: Моделей указано оптимальное количество flops, которое на них необходимо потратить. Следующая колонка это соотношение количества флопс для этой модели к модели Гофер, оптимальное по google. Напомню аналог, который они тренировали в рамках своей работы, и количество токенов, которые должна посмотреть модель во время тренировк.
123: Тут цифры для 67 миллиардов параметров слегка отличаются от тех, что мы видели 2 графиками раньше, но это, грубо говоря, в пределах погрешности. Поскольку, как я сказал, использовалось, 3 метода взяли чуть чуть с запасом. То есть, если бы коллеги из google хотели обучить модель Гофер эффективно, то
124: Модель должна была быть в 4 раза меньше и при этом увидеть гораздо больше данных. Если же мы посмотрим на строчку, описывающую модель, опнай модель со 100 семидесятью пятью миллиардами параметров, то мы увидим, что, во первых, нужно существенно больше вычислительных мощностей, а во вторых, количество токенов просто какое т.
125: Сумасшедшая 3 и 7 триллиона токенов. Напомню оригинально она обучалась на трехста миллиардах. Разница более чем в 12 раз. Ну и чисто забавы ради. Давайте посмотрим, если мы хотим обучить модель на 1 триллион и это будет dance.
126: Only модель поскольку мы строим законы масштабирования именно для этого класса моделей, то количество токенов должно быть 21 триллион пока, честно говоря, даже не до конца понятно, где такие выборки собирать. Ну и чтобы быть не голословным, давайте вернёмся к GPT-3 колич.
127: Флопсов, которое было потрачено на тренировку, оно у вас написано справа. Это 3 * 10 в 23 степени. А количество флопсов, которое нужно было потратить согласно оптимальному закону масштабирования, чтобы модель получилась лучше, это 3,85 умножить на
128: 10, 24. То есть разница буквально на порядок. Ну или модель надо было сделать просто поменьше. И тогда ожидаемо она должна была бы быть получше, потому что она бы сошлась к меньшему значению функции потерь. А так ли вообще это, работает ли это на большом масштабе, этим же вопросом задаю.
129: Коллеги с дипмайнд и, собственно, получают в concept на большом масштабе. Это та самая модель шиншилла, которую я уже несколько раз упомянул, которая обучена с тем же самым вычислительным бюджетом, что и модель Гофер, она в 4 раза меньше. Параметры вы можете посмотреть на верхней табличке, ну и
130: Не будем в деталях разбирать все метрики, потому что они нам не интересны, ну и потому, что наш курс называется полная история модели open eye, мы просто затрагиваем тему масштабирования, поскольку она безумно важная и очень сильно влияет на индустрию, и она повлияла, в том числе на GPT-3, и не буду ходить долго вокруг да около.
131: Буквально по всем маркам, которые были опробованы, модель шиншилла была и лучше Гофер, и лучше GPT-3, и иногда даже лучше, чем модель на 530 миллиардов параметров, просто потому, что та была недообучена. А когда мы берём маленькую модельку и хоть мы не обучаем её до сходимости, мы все равно
132: Обучаемы до такой точки, в которой a model понимает гораздо лучше какие-то отдельные топики и задачи, чем её большие собратья, на которые был потрачен такой же вычислительный бюджет, но которые увидели существенно меньше данных, говоря иначе, все остальные модели можно назвать.
133: Она как раз идеально соотносит тренировку и свой размер. Ещё можно посмотреть на следующую визуализацию. Здесь маленькими точками синими отмечены все модели, которые тренировали господа из дипмайнд. Также все 3 закона масштабирования, которые они выводят, отражены здесь.
134: Разными цветными линиями, как я уже говорил, 1, 2 очень сильно похожи и они считаются оригинальными и истинными, и 3 предсказывает скеллинг чуть чуть хуже чем эти 2, но если мы будем сравнивать с работой каплана из openai, в которой была совершена ошибка, то видно что
135: То оценка очень сильно разнится, и складывалось ощущение, что большие модели можно будет обучать с меньшим количеством ресурсов, с меньшим количеством данных, и в целом все будет как будто бы клёво господа из дипмайнд просто камня от камня не оставили на этой гипотезе.
136: Они взяли модель, которая имеет столько же вычислительных мощностей, натренировали, никаких дополнительных приседаний не делали и получили гораздо лучше модель. И, как я уже подчеркнул, это будет модель поменьше, и поэтому она обладает большим количеством плюсов, её будет гораздо легче инференсить, то есть разворачивать.
137: Для того, чтобы кто-то ей пользовался и гораздо проще дообучать. Ну, сравните модель на 70 миллиардов параметров и на 280, естественно, чем больше х мощностей будет вкладываться в модели, тем больше эта разница будет становиться. Поэтому 1 из хороших новостей то, что при увеличении
138: Компьютер квадратично, мы всего лишь линейно увеличиваем размер модели, поэтому стоимость интеренса не будет так существенно расти. Плохая новость линейно также растёт и количество данных, которое нужно для допущения модели. И в какой-то момент мы рискуем столкнуться с проблемой.
139: Что данных может начать не хватать по некоторым причинам со слов господ из google, антропин, опен ай и других компаний скорее всего, этого не случится вероятно, они думают о синтетических данных и пытаются придумать какие-то способы обхода проблем или, возможно, улучшения.
140: Масштабирования. Но пока ничего в публичном поле не появлялось на момент подготовки этих лекций. Смотрите в будущих сериях, а мы переходим к последнему слайду, который озаглавлен. Чего боятся опен ай. 1 из интересных особенностей исследования дипмайнд. Было то, как я уже упомянул, что брались
141: Модели большего размера до 16 миллиардов параметров. И оказывается, что если мы будем брать предсказания нашего закона масштабирования с больших моделей, то там отличаются эти предсказания. Здесь, на графике вы видите множество Кривых, описывающих обучение модели. Опять же, чем
142: Тем больше размер модели и тем лучше. Значение лосса и 3 прямые линии голубая, Зелёная, красная. Они были получены как предсказание для 1 трети самых маленьких моделей, для средней трети и для самой большой трети соответственно для красной линии и вид.
143: Что у нас появляется некоторый хвостик на нашем законе масштабирования, он как бы загибается вверх, и тем самым предсказания, которые мы получаем по маленьким моделям или даже по средним они оптимистичные, то есть они говорят, что если мы вбухаем такое-то количество компьютер, вычислительных мощностей и gpu ресурсов.
144: То мы получим значение лосса ниже, чем это есть в реальности. То есть этот закон он все-таки не до конца и не максимально точно и не идеально описывает все, что мы с вами сегодня обсуждали. Но у нас, по крайней мере, есть интуиция, в какую сторону мы должны идти и в оригинале.
145: Статье дипмайнд про масштабирование моделей. Было указано, что они пока этот вопрос не исследуют и оставляют это на будущее. Ну потому что казалось, что куда уж обучать модели больше, чем 16 миллиардов для того, чтобы просто провести эксперимент, а потом их выкинуть на помойку. С другой стороны, как я только что сказал,
146: Как будто бы сложно уловить этот закон, он меняется от маленьких моделей к большим моделям, но когда мы дойдём до лекции про gpt 4, я уверен вас заинтересует информация от openai, что ж, давайте подводить итоги сегодняшней лекции мы выяснили, что масштабировать модели.
147: Нужно правильно. И самое главное, что это имеет смысл. В основном нам необходимо масштабировать размер модели и размер датасета. Остальные параметры в рамках наших исследований мы зафиксировали, и перед этим было показано, что их шатание в 1 или другую сторону на плюс минус порядо.
148: Оно не существенно влияет на значение функции потерь на плюс - 1 2. Может быть 3%, что идёт ни в какое сравнение с теми графиками, которые мы видели относительно скелинга по размеру модели датасета. 2, это то, что трансформеры более эффективно работают с контекстом. За счёт этого они
149: Сходятся к более оптимальным значениям функции потерь и уделывают лстмки. И про тех никто не помнит пока, пока 3 это то, что под скиллингом, что очень важно, мы подразумеваем наилучший лос. При заданном бюджете вычислений мы не
150: Говорили про какую-то оптимизацию другой метрики. То есть важно помнить, что все это говорится исключительно в контексте оптимизации 1 значения лосса, который, хоть и является репрезентативным на очень больших выборках, все ещё нельзя сказать, что это прям идеальное, прокси для ваших задач, но
151: Вполне хорошая точка для начала ключевой проблемой исследования опен ай было то, что они ошиблись с скедулером для лернинг рейта и поэтому сделали неправильную экстраполяцию, прерывая обучение в середине, а не дожидаясь окончания процесса обучения.
152: Также благодаря коллегам из дипмайнд мы выяснили, что оптимальное масштабирование, оно куда ближе к формуле 1 к 1 увеличиваешь в 2 раза, увеличивая модель в 2 раза, и, соответственно, количество вычислений увеличивается, при этом в 4 раза 2 * 2 обратите внимание, что здесь стоит оптима.
153: Звёздочка масштабирования. Все дело в том, что мы с вами поговорили, как мы минимизируем лос 1 модели после её обучения. Но это не совсем то, чего мы хотели в реальной жизни. Даже если мы обращаем внимание на los и говорим, что это хорошее прокси, потому что когда в
154: Берете вашу модель и начинаете её использовать где-то, то вы делаете огромнейшее количество инференсом. На всякий случай напомню, что при генерации каждого токена мы используем все параметры нашей сети.
155: Если у вас не какая-то fancy архитектура вроде микстуры экспертов, но об этом мы поговорим в будущем с другой стороны, возможно, если мы будем говорить, что у нас есть некоторый бюджет на вычисление во время тренировки, и потом мы эту модель будем применять, скажем, несколько миллионов или, быть может, даж.
156: Миллиардов раз нам имеет смысл взять модельку ещё поменьше, а при этом проучить её немного дольше. Тогда тренировочные флопсы будут израсходованы не так эффективно, потому что мы, грубо говоря, если вспомним бусы дипмайнд, мы немножечко нашу точку подви.
157: В 1 или другую сторону, в зависимости от того, отражается у меня видео или нет, влево или вправо, вспоминая оригинальный график. Но когда мы будем делать инференс, каждый сэкономленный 1000000 параметров будет существенно экономить нам количество вычислительных мощностей. Поэтому иногда имеет смысл сделать модельку поменьше, особенно если
158: Будете её очень активно использовать. Обычно оверхед по тренировочным флопсам находится в интервале 10:15 20%. То есть настолько больше вычислительных мощностей вам придётся потратить на неоптимальность тренировки, чтобы компенсировать оптимальность интенсивного использования модели в продакшене, ну или просто в очень активном
159: И самое главное, что стоит отсюда вынести, это то, что те ожидания, которые у нас были, та теория, под которую мы подвели, и то, что исследовали и в опа, и в дипмайнд, оно соответствует нашим ожиданиям. Меньшая модель реально работает лучше, если мы будем
160: Обучать её дольше. И модели на момент 2021 22 года они были существенно недообучены, поэтому этот вопрос надо было решать. Поэтому сейчас все по настоящему большие модели тренируются уже на триллионах токенов. Однако грустная новость в том, что, возможно, для очень больших моделей
161: Закон, он немножко отличается и все не так оптимистично. И быть может мы не сможем вообще сойтись до какого-то очень, очень приятного и низкого значения перплексия, но это уже тема для будущего исследования. Возможно в лекции под номером 187 мы с вами разберём этот вопрос.
162: А у меня на этом все мы закончили с вами 2 модуль и увидимся в следующей серии.