Только что OpenAI GPT-4 снова был открыт инсайдерами отрасли!
К ним относятся очень конкретные параметры и информация, такая как архитектура GPT-4, инфраструктура обучения и логического вывода, объем параметров, набор обучающих данных, номер токена, стоимость и состав экспертов (MoE).
В частности, за различными проектами, как весит OpenAI. И как преодолеть самое большое узкое место в выводе большой модели.
От кого пришло такое тяжелое откровение?
Авторами статьи являются два сотрудника SemiAnalysis, Дилан Патель и Джеральд Вонг.
Стоит отметить, что Дилан Патель также был одним из авторов утечки внутренних документов Google («У нас нет рва, как и у OpenAI»), которая ранее вызвала бурю негодования в отрасли.
Генеральный директор DeepMind Хассабис недавно подтвердил подлинность просочившихся документов от инженеров Google в интервью зарубежному изданию The Verge.
Видно, что у Дилана Пателя есть специальные каналы, что делает сегодняшнее откровение немного более достоверным.
Ли Чжифэй, генеральный директор Going Out to Ask, также выступил с речью.
Многие компании могут производить GPT-4
По мнению автора экстренной новостной статьи, причина, по которой OpenAI не открыт, не в том, чтобы гарантировать, что люди не будут уничтожены ИИ, а в том, что вещи, которые они создают, воспроизводимы.
Он даже предсказывает, что в будущем все крупные интернет-компании или стартапы в области искусственного интеллекта в Китае и США смогут построить модель, аналогичную GPT-4 или даже превосходящую ее.
Но он также признал, что GPT-4 — великий шедевр OpenAI. Он сочетает в себе гениальный дизайн инженера, сложную структуру и различные гениальные инженерные компромиссы.
Самый прочный ров OpenAI заключается в том, что у них есть отзывы от реальных пользователей, лучшие инженерные таланты в отрасли и постоянное лидирующее положение, обеспечиваемое преимуществом первопроходца.
Каркас модели
Во-первых, автор, опубликовавший новость, считает, что GPT-4 содержит в общей сложности 1,8 триллиона параметров в 120 слоях, а GPT-3 — всего около 175 миллиардов параметров.
Другими словами, масштаб GPT-4 более чем в 10 раз больше, чем у GPT-3.
Ранее в Интернете было сказано, что параметр GPT-4 составляет 1 трлн, что кажется заниженным из реальной ситуации.
Чтобы сохранить разумную стоимость, OpenAI использует модель MoE для строительства.
В частности, GPT-4 имеет 16 экспертных моделей с примерно 111 миллиардами параметров на каждого эксперта MLP. Среди них две экспертные модели используются для прямого распространения.
Хотя в литературе много дискуссий о продвинутых алгоритмах выбора экспертов, на которых указывает каждый токен, говорят, что алгоритм, используемый OpenAI для GPT-4, на самом деле очень прост.
Кроме того, в модели около 55 миллиардов параметров, которые используются для разделения механизма внимания.
В каждом рассуждении о прямом распространении (генерировании токена) GPT-4 нужно использовать только около 280 миллиардов параметров и 560TFLOP.
Это резко контрастирует со многими чисто плотными моделями, которые требуют около 1,8 триллиона параметров и 3700 TFLOP на прямой проход.
Состав набора данных
OpenAI обучил GPT-4 с 13 триллионами токенов.
Этот набор данных не только содержит 13 триллионов токенов, но, поскольку качественных токенов нет, этот набор данных также содержит много эпох.
Внутри Scale AI и набора данных также включены миллионы строк данных для тонкой настройки инструкций.
Однако автор разоблачения сказал, что они не нашли много информации по этим данным RLHF.
Длина контекста на этапе предобучения достигла 8К (seqlen), а версия 32К была доработана на основе предварительно обученной версии 8К.
Размер пакета постепенно увеличивается в течение нескольких дней в кластере, и окончательный размер пакета, используемый OpenAI, составляет 60 миллионов.
Конечно, это «всего лишь» размер экспертной модели в 7,5 млн токенов каждая, так как не каждая экспертная модель увидит все токены.
Параллельная стратегия
Параллельная стратегия очень важна для A100GPU.
OpenAI использует 8-сторонний тензорный параллелизм, потому что NVLink поддерживает только некоторые из них.
Но кроме того, автор экстренных новостей слышал, что OpenAI использует 15 параллельных конвейеров.
Теоретически 15 конвейеров — это многовато, учитывая время передачи данных и вычислений.
Но из-за ограничения объема памяти такое количество конвейеров имеет смысл.
При чисто конвейерной и тензорно-параллельной обработке параметр FP16 составляет около 30 ГБ на GPU.
Но если добавить кеш-память KV и стоимость, если большинство графических процессоров, используемых OpenAI, имеют 40 ГБ A100, то такая архитектура теоретически имеет смысл.
Возможно, OpenAI использует ZeRo Stage 1 и может использовать FSDP на уровне блоков или гибридный параллелизм общих данных.
Почему они не использовали полную модель FSDP? Возможно, из-за высокой стоимости связи.
Хотя OpenAI имеет высокоскоростную сеть между большинством узлов, она не покрывает все узлы.
Среди них, по крайней мере, некоторые кластеры будут иметь гораздо более низкую пропускную способность соединения, чем другие.
Однако автор сказал, что он не совсем понимает, как OpenAI избегает генерации «огромных пузырей» в каждой партии при таком высоком параллелизме конвейера.Вполне вероятно, что OpenAI выдержал эти затраты.
Стоимость обучения
OpenAI обучает GPT-4 примерно с 2,15e25 FLOPS, обучается примерно на 25 000 A100 в течение 90–100 дней, а коэффициент использования составляет от 32% до 36%.
Такой чрезвычайно низкий коэффициент использования отчасти был связан с большим количеством сбоев, что потребовало возобновления обучения с предыдущих контрольных точек. Например, стоимость пузыря, упомянутая выше.
Затраты на обучение в этом случае чрезвычайно высоки.
Другая причина заключается в том, что all-reduce среди такого количества графических процессоров очень дорог.
На этой диаграмме предполагается, что невозможность объединить каждую операцию, пропускная способность памяти, необходимая для механизма внимания, и аппаратные накладные расходы, эквивалентные чтению параметров, приводят к неэффективности. На самом деле, даже с оптимизированной библиотекой, такой как библиотека FasterTransformer от Nvidia, общие накладные расходы могут быть еще больше.
Автор отчета подозревает, что если этот кластер на самом деле представляет собой группу более мелких кластеров с более слабыми сетевыми соединениями, то скорость неблокирующего (неблокирующего) соединения между разными частями кластера составляет 800G/1.6T, но эти части скорость соединения между ними всего 200G/400G.
Если стоимость облачных вычислений OpenAI составляет около 1 доллара США за 100 часов, то при таких условиях стоимость обучения составляет около 63 миллионов долларов.
Это не включает все эксперименты, неудачное обучение и другие затраты, такие как сбор данных, RLHF, человеческие затраты и т. д.
Если принять во внимание только что упомянутые факторы, реальная стоимость намного выше.
Кроме того, это должно исходить из того, что другие могут покупать чипы/сети/центры обработки данных, нести капитальные затраты на создание этих систем и сдавать их в аренду OpenAI.
Но сегодня при цене 2 доллара за H100 часов предварительная подготовка может быть проведена примерно на 8 192 H100 всего за 55 дней и стоит 21,5 миллиона долларов.
На рисунке выше показано количество параметров и токенов для некоторых общедоступных расширенных моделей. Линия на рисунке представляет собой масштабированные наблюдения Google DeepMind Chinchilla (более крупные полосы ошибок сглажены), каждая точка на линии показывает теоретические FLOPS, необходимые для обучения модели с этим параметром и количеством токенов.
Однако, по словам автора отчета, к концу этого года как минимум девять компаний будут иметь кластеры H100, превышающие вышеуказанный размер.
Хотя не все эти компании будут использовать их все для индивидуального обучения моделям, если они и будут, то у них будут модели большего размера, чем GPT-4.
Например, к концу этого года у Meta будет более 100 000 H100, но немалая их часть будет распределена в собственном дата-центре для инференса.
Но его крупнейший отдельный кластер все равно превысит 25 000 H100.
Короче говоря, к концу этого года у многих компаний будет достаточно вычислительных ресурсов для обучения моделей размера GPT-4.
Эта таблица представляет собой теоретически оптимальную стоимость обучения модели на Nvidia A100 без учета требуемой рабочей силы, инструментов ML Ops, сбора/предварительной обработки данных, восстановления после сбоя, однократных/нескольких обучающих примеров, логических выводов и т. д., многие части Стоимость
Компромиссы в смешанных экспертных моделях
MoE (Смешанная модель экспертов) — отличный способ уменьшить количество параметров во время логического вывода, одновременно увеличивая их.
Но это необходимо для того, чтобы каждый обучающий токен кодировал больше информации, потому что получить достаточно качественные токены очень сложно.
Если OpenAI действительно хочет достичь наилучшей производительности, для этого им нужно обучить вдвое больше токенов.
При этом OpenAI пошел на несколько компромиссов.
Например, иметь дело с MoE во время логического вывода очень сложно, потому что каждая часть модели не используется при каждом создании токена.
Это означает, что некоторые части могут быть бездействующими, в то время как другие части работают.
Эта ситуация может значительно снизить загрузку при обслуживании пользователей.
Исследователи показали, что использование 64-128 экспертных моделей дает лучшие профили потерь, чем использование 16 экспертных моделей, но это всего лишь исследование.
Есть много причин для использования относительно небольшого количества экспертных моделей.Одна из причин, по которой OpenAI выбрала 16 экспертов, заключается в том, что большее количество экспертных моделей трудно обобщить для многих задач.
Также труднее достичь конвергенции с более экспертными моделями.
В таком огромном учебном процессе OpenAI предпочел быть более консервативным в отношении количества экспертных моделей.
Кроме того, использование меньшего количества экспертных моделей также помогает их инфраструктуре логического вывода. Существуют различные сложные компромиссы и компромиссы при переходе на гибридную архитектуру вывода экспертной модели.
Автор экстренных новостей начинает с обсуждения основных компромиссов рассуждений LLM, а затем обсуждает проблемы, с которыми сталкивается OpenAI, и выбор, который они делают.
Обоснование компромиссов
Перед введением компромиссов логического вывода, кстати, пообщавшись со всеми LLM-компаниями, осведомитель обнаружил, что библиотека логического вывода FasterTransformer от NVIDIA очень плохая, а TensorRT и подавно.
Это означает, что если Nvidia не будет вносить изменения, людям придется создавать свои собственные решения с нуля.
Есть три основных компромисса в рассуждениях о больших языковых моделях, размер пакета (количество одновременно обрабатываемых пользователей) и количество используемых микросхем, а именно:
1. Задержка
Модель должна отвечать с разумной задержкой. Никто не хочет ждать несколько секунд в приложении чата, прежде чем начнет получать вывод. Время обработки для предварительного заполнения (входные токены) и декодирования (выходные токены) различается.
2. Пропускная способность
Модель должна выводить определенное количество токенов в секунду. Людям нужно около 30 токенов в секунду. Для различных других вариантов использования допустима как более низкая, так и более высокая пропускная способность.
3. Коэффициент использования
Аппаратное обеспечение, на котором работает модель, должно обеспечивать высокую степень использования, иначе стоимость будет непомерно высокой. Хотя более высокая задержка и более низкая пропускная способность могут использоваться для объединения большего количества запросов пользователей вместе для достижения более высокой степени использования, это также увеличивает сложность.
Ключом к рассуждениям LLM является баланс между двумя точками пропускной способности памяти и вычислений.
Теоретические требования к пропускной способности LLM: можно предположить, что максимальный размер модели, которую можно запустить на iPhone 14, составляет ~1 миллиард параметров FP16 или ~4 миллиарда параметров int4.Это базовый предел LLM на основе смартфонов. модели не будут приняты
Проще говоря, каждый параметр должен быть прочитан, и с ним связаны 2 FLOP.
Следовательно, соотношение большинства чипов (H100 SXM имеет пропускную способность памяти всего 3 ТБ/с, а FP8 — 2000 терафлопов/с) совершенно несбалансировано при выводе с размером пакета, равным 1.
Если есть только один пользователь (размер пакета 1), пропускная способность памяти, необходимая для считывания каждого параметра каждый раз, когда генерируется токен, доминирует над временем вывода, а время вычислений почти ничтожно.
Для эффективного масштабирования больших языковых моделей для нескольких пользователей размер пакета должен превышать 1. Несколько пользователей разделяют стоимость чтения параметров. Например, при размере пакета 256/512 вы можете получить 512 FLOP/с или 1024 FLOP/с на каждый прочитанный байт памяти.
Это соотношение ближе к балансу H100 между пропускной способностью памяти и FLOPS. Это помогает достичь более высокой степени использования, но за счет более высокой задержки.
Многие считают объем памяти основным узким местом для логического вывода LLM, поскольку для логического вывода больших моделей требуется несколько микросхем, а более высокая емкость памяти означает, что они могут поместиться на меньшем количестве микросхем.
Однако на самом деле лучше использовать больше чипов, чтобы уменьшить задержку, увеличить пропускную способность и использовать большие размеры пакетов для большей загрузки.
Компромиссы и инфраструктура логического вывода GPT-4
Как упоминалось выше, это очень сложно для GPT-4. Но быть модом MoE снова представляет совершенно новый набор трудностей.
Каждый прямой проход, генерирующий токены, может быть направлен другому набору экспертов. Это создает проблему компромисса между пропускной способностью, задержкой и использованием при больших размерах пакетов.
OpenAI GPT-4 имеет 16 экспертов, и каждый прямой проход маршрутизируется к 2 из них.
Это означает, что если размер пакета равен 8, считанный параметр каждого эксперта может иметь размер пакета только 1.
Хуже того, это может означать, что у одного эксперта размер партии равен 8, а у других экспертов — 4, 1 или 0.
Для каждого сгенерированного токена алгоритм маршрутизации отправляет прямые проходы в разных направлениях, в результате чего задержки между токенами и размерами экспертных пакетов значительно различаются.
Инфраструктура логического вывода — одна из основных причин, по которой OpenAI выбрала меньшее количество экспертов. Если они выбирают больше экспертов, пропускная способность памяти становится узким местом для логического вывода.
Кластер логических выводов OpenAI обычно может достигать размера пакета 4k+, а это означает, что даже при наилучшем балансе нагрузки между экспертами размер пакета экспертов составляет всего около 500 или около того. Это требует очень большого количества использования для достижения.
По словам осведомителя, мы узнали, что OpenAI выполняет вывод на кластере из 128 графических процессоров. У них есть несколько таких кластеров в нескольких центрах обработки данных и географических местоположениях.
Вывод использует 8-сторонний тензорный параллелизм и 16-сторонний конвейерный параллелизм. Каждый узел, состоящий из 8 графических процессоров, имеет всего около 130 байт параметров, или менее 30 ГБ на каждый графический процессор в FP16 и менее 15 ГБ в FP8/int8.
Это позволяет выполнять вывод на A100 емкостью 40 ГБ, если размер кэша KV для всех пакетов не слишком велик.
Слои, содержащие разных экспертов на разных узлах, не разделяются, потому что это приведет к слишком неравномерному сетевому трафику, а пересчет кэша KV между каждым сгенерированным токеном будет слишком дорогим.
Для будущих расширений модели MoE и условной маршрутизации самая большая трудность заключается в том, как обрабатывать маршрутизацию кэша KV.
Модель имеет 120 слоев, поэтому их можно было бы просто распределить по 15 различным узлам, но поскольку первый узел должен выполнять загрузку и встраивание данных, имеет смысл разместить меньше слоев на главном узле кластера вывода.
Кроме того, ходят слухи о «спекулятивном декодировании» (далее), что также объясняет, почему мастерноды должны содержать меньше слоев.
Стоимость вывода
По сравнению с моделью Давинчи со 175 миллиардами параметров, GPT-4 стоит в 3 раза дороже, хотя ее параметры с прямой связью увеличиваются только в 1,6 раза.
В основном это связано с тем, что GPT-4 требует более крупного кластера и обеспечивает более низкую загрузку.
Авторы считают, что стоимость вывода длины последовательности GPT-4 8k на 128 A100 составляет 0,0049 доллара США за 1000 токенов, в то время как стоимость вывода длины последовательности 8k GPT-4 на 128 H100 составляет 0,0021 доллара США за 1000 токенов.
Обратите внимание, что это предполагает довольно высокую загрузку и поддерживает высокий размер партии.
Но ясно, что иногда OpenAI используется недостаточно.
В связи с этим автор предположил, что OpenAI будет отключать кластер в непиковые часы, перенастраивать узлы, возобновлять обучение меньших тестовых моделей и пробовать различные новые технологии для снижения затрат на вывод.
Если бы OpenAI не сделал этого, их использование было бы ниже, а их стоимость увеличилась бы более чем вдвое.
Внимание к множественным запросам
Кроме того, OpenAI также использует Multi-Query Attention (MQA).
Адрес бумаги:
Короче говоря, требуется только одна голова внимания, а объем памяти, занимаемый кэшем KV, может быть значительно уменьшен.
Тем не менее, GPT-4 с длиной 32 КБ, безусловно, не может работать на 40 ГБ A100, и существует верхний предел максимального размера пакета в 8 КБ.
Непрерывная пакетная обработка
OpenAI реализует переменный размер пакета и непрерывную пакетную обработку.
Это обеспечивает некоторую степень максимальной задержки и оптимизирует стоимость логического вывода.
Спекулятивное декодирование
Выяснилось, что OpenAI использовал «спекулятивное декодирование» в процессе рассуждений GPT-4, который все еще имеет 100% неопределенность.
Различия в задержке от токена к токену и разница между выполнением простых задач поиска и более сложных задач, по-видимому, предполагают, что это возможно, хотя существует слишком много переменных, чтобы быть уверенным.
Здесь осведомитель внес соответствующие изменения / добавил некоторые детали, чтобы объяснить текст в исследовании DeepMind «Ускорение вывода LLM с поэтапным спекулятивным декодированием».
Обычно использование LLM состоит из двух этапов.
Первый — это предварительное заполнение, когда текст подсказки передается в модель для создания кэша KV и логарифмических шансов (распределение вероятностей возможных выходов токена) для первого вывода. Этот процесс обычно выполняется быстро, поскольку весь текст подсказки может обрабатываться параллельно.
Второй этап — декодирование. Выберите токен из логарифмических шансов вывода и передайте его в модель, которая сгенерирует логарифмические шансы следующего токена. Повторяйте этот процесс, пока не будет сгенерировано нужное количество токенов.
Поскольку декодирование должно происходить последовательно, каждый раз веса должны передаваться через вычислительный блок для генерации одного токена. Таким образом, этот второй этап требует больших вычислительных ресурсов (т. е. вычисляет FLOP/байты пропускной способности памяти) при работе в мини-пакетах. Поэтому декодирование обычно является самой дорогой частью авторегрессионной генерации.
Вот почему токен ввода намного дешевле, чем токен вывода в вызовах API OpenAI.
Основная идея «спекулятивного декодирования» состоит в том, чтобы использовать меньшую и более быструю черновую модель для заблаговременного декодирования нескольких токенов, а затем передавать их в прогностическую модель в виде пакета.
Если прогнозы черновой модели верны, т. е. большая модель согласуется с этими прогнозами, несколько токенов могут быть декодированы с использованием одного пакета, что значительно экономит пропускную способность памяти и время.
Однако, если более крупная модель отклоняет токен, предсказанный черновой моделью, оставшаяся партия отбрасывается, и алгоритм естественным образом возвращается к стандартному декодированию по токену.
«Спекулятивное декодирование» также может сопровождаться отказом от схемы выборки для выборки из исходного дистрибутива. Стоит отметить, что это полезно только в небольших пакетах, где пропускная способность является узким местом.
Спекулятивное декодирование, при котором вычислительные ресурсы используются в обмен на полосу пропускания, является привлекательной целью разработки производительности по двум ключевым причинам:
Во-первых, это не снижает качество модели. Во-вторых, улучшения производительности, которые он предлагает, часто ортогональны другим подходам, поскольку их производительность зависит от преобразования «последовательного выполнения» в «параллельное выполнение».
Текущий метод вывода представляет собой отдельную последовательность пакетных прогнозов. Однако этот подход плохо масштабируется для больших партий или выравнивания моделей с малым уклоном.
Интуитивно понятно, что вероятность того, что две модели согласуются с непрерывно длинными последовательностями токенов, экспоненциально низка, что означает, что выгоды от спекулятивного декодирования быстро уменьшаются по мере увеличения арифметической плотности.
Информатор считает, что если OpenAI использует «спекулятивное декодирование», они могут использовать его только в последовательностях примерно из 4 токенов.
Кроме того, весь заговор о кастрации OpenAI, что привело к более низкому качеству GPT-4, может быть просто потому, что они подвергают свои прогностические модели маловероятным последовательностям из моделей «спекулятивного декодирования».
Также предполагалось, что Бард также использует «спекулятивное декодирование», потому что Google ждет, пока вся последовательность будет полностью сгенерирована, прежде чем отправить ее пользователю, но, по мнению осведомителя, это предположение совершенно неверно.
Визуальный мультимодальный
Визуальные мультимодальные возможности — наименее впечатляющая часть GPT-4, по крайней мере, по сравнению с ведущими исследованиями.
Конечно, еще никто не коммерциализировал результаты мультимодальных исследований LLM.
Информатор сказал, что это визуальный кодировщик, независимый от текстового кодировщика, а также перекрестное внимание, архитектура аналогична Flamingo, и в GPT-4 1.8T добавлено больше параметров.
Мультимодальные возможности GPT-4 точно настроены с использованием около 2 триллионов токенов после предварительной подготовки текста.
Говорят, что на визуальной модели OpenAI изначально надеялся тренироваться с нуля, но, поскольку она не была достаточно зрелой, у нее не было другого выбора, кроме как тонко настроить текстовую модель обучения.
И модель следующего поколения GPT-5, обучение которой должно обучать модель зрения с нуля, и уметь генерировать изображения и даже генерировать звук.
Одной из основных целей этой визуальной возможности является предоставление автономным агентам возможности читать веб-страницы и расшифровывать изображения, видео.
Стоит отметить, что данные, используемые OpenAI для обучения мультимодальных моделей, включают в себя: «совместные данные» (LaTeX/текст), скриншоты веб-страниц, видеоролики YouTube (выборка кадров и запуск Whisper для получения субтитров).
Интересным фактом чрезмерной оптимизации LLM является то, что визуальные модели имеют другую стоимость ввода-вывода, чем текстовые модели. В визуальной модели ввод-вывод при загрузке данных примерно в 150 раз больше, чем в текстовой модели.
Стоимость ввода-вывода визуальной модели низкая
Каждый токен в визуальной модели занимает 600 байт, а текст — 4 байта на токен.
Так что это требует большой работы с точки зрения сжатия изображения. Это чрезвычайно важно для поставщиков аппаратного обеспечения, поскольку через 2-3 года они оптимизируют аппаратное обеспечение в соответствии с вариантами использования и коэффициентами LLM.
Они могут оказаться в мире, где каждая модель обладает мощными визуальными и звуковыми возможностями.
Они могут оказаться плохо подходящими для архитектуры.
В целом, архитектура определенно превзойдет текстовые упрощенные плотные модели и модели MoE, которые мы видим сегодня.
Использованная литература
Посмотреть Оригинал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Инсайдерская утечка GPT-4, 1,8 трлн огромных параметров, обучение 13 трлн токенов, потрачено 63 млн долларов США
Источник: «Синьчжиюань» (ID: AI_era)
Только что OpenAI GPT-4 снова был открыт инсайдерами отрасли!
К ним относятся очень конкретные параметры и информация, такая как архитектура GPT-4, инфраструктура обучения и логического вывода, объем параметров, набор обучающих данных, номер токена, стоимость и состав экспертов (MoE).
От кого пришло такое тяжелое откровение?
Стоит отметить, что Дилан Патель также был одним из авторов утечки внутренних документов Google («У нас нет рва, как и у OpenAI»), которая ранее вызвала бурю негодования в отрасли.
Видно, что у Дилана Пателя есть специальные каналы, что делает сегодняшнее откровение немного более достоверным.
Многие компании могут производить GPT-4
По мнению автора экстренной новостной статьи, причина, по которой OpenAI не открыт, не в том, чтобы гарантировать, что люди не будут уничтожены ИИ, а в том, что вещи, которые они создают, воспроизводимы.
Он даже предсказывает, что в будущем все крупные интернет-компании или стартапы в области искусственного интеллекта в Китае и США смогут построить модель, аналогичную GPT-4 или даже превосходящую ее.
Но он также признал, что GPT-4 — великий шедевр OpenAI. Он сочетает в себе гениальный дизайн инженера, сложную структуру и различные гениальные инженерные компромиссы.
Каркас модели
Во-первых, автор, опубликовавший новость, считает, что GPT-4 содержит в общей сложности 1,8 триллиона параметров в 120 слоях, а GPT-3 — всего около 175 миллиардов параметров.
Другими словами, масштаб GPT-4 более чем в 10 раз больше, чем у GPT-3.
Чтобы сохранить разумную стоимость, OpenAI использует модель MoE для строительства.
В частности, GPT-4 имеет 16 экспертных моделей с примерно 111 миллиардами параметров на каждого эксперта MLP. Среди них две экспертные модели используются для прямого распространения.
Хотя в литературе много дискуссий о продвинутых алгоритмах выбора экспертов, на которых указывает каждый токен, говорят, что алгоритм, используемый OpenAI для GPT-4, на самом деле очень прост.
Кроме того, в модели около 55 миллиардов параметров, которые используются для разделения механизма внимания.
В каждом рассуждении о прямом распространении (генерировании токена) GPT-4 нужно использовать только около 280 миллиардов параметров и 560TFLOP.
Это резко контрастирует со многими чисто плотными моделями, которые требуют около 1,8 триллиона параметров и 3700 TFLOP на прямой проход.
Состав набора данных
OpenAI обучил GPT-4 с 13 триллионами токенов.
Этот набор данных не только содержит 13 триллионов токенов, но, поскольку качественных токенов нет, этот набор данных также содержит много эпох.
Внутри Scale AI и набора данных также включены миллионы строк данных для тонкой настройки инструкций.
Однако автор разоблачения сказал, что они не нашли много информации по этим данным RLHF.
Длина контекста на этапе предобучения достигла 8К (seqlen), а версия 32К была доработана на основе предварительно обученной версии 8К.
Размер пакета постепенно увеличивается в течение нескольких дней в кластере, и окончательный размер пакета, используемый OpenAI, составляет 60 миллионов.
Конечно, это «всего лишь» размер экспертной модели в 7,5 млн токенов каждая, так как не каждая экспертная модель увидит все токены.
Параллельная стратегия
Параллельная стратегия очень важна для A100GPU.
OpenAI использует 8-сторонний тензорный параллелизм, потому что NVLink поддерживает только некоторые из них.
Но кроме того, автор экстренных новостей слышал, что OpenAI использует 15 параллельных конвейеров.
Теоретически 15 конвейеров — это многовато, учитывая время передачи данных и вычислений.
Но из-за ограничения объема памяти такое количество конвейеров имеет смысл.
При чисто конвейерной и тензорно-параллельной обработке параметр FP16 составляет около 30 ГБ на GPU.
Но если добавить кеш-память KV и стоимость, если большинство графических процессоров, используемых OpenAI, имеют 40 ГБ A100, то такая архитектура теоретически имеет смысл.
Возможно, OpenAI использует ZeRo Stage 1 и может использовать FSDP на уровне блоков или гибридный параллелизм общих данных.
Почему они не использовали полную модель FSDP? Возможно, из-за высокой стоимости связи.
Хотя OpenAI имеет высокоскоростную сеть между большинством узлов, она не покрывает все узлы.
Среди них, по крайней мере, некоторые кластеры будут иметь гораздо более низкую пропускную способность соединения, чем другие.
Однако автор сказал, что он не совсем понимает, как OpenAI избегает генерации «огромных пузырей» в каждой партии при таком высоком параллелизме конвейера.Вполне вероятно, что OpenAI выдержал эти затраты.
Стоимость обучения
OpenAI обучает GPT-4 примерно с 2,15e25 FLOPS, обучается примерно на 25 000 A100 в течение 90–100 дней, а коэффициент использования составляет от 32% до 36%.
Такой чрезвычайно низкий коэффициент использования отчасти был связан с большим количеством сбоев, что потребовало возобновления обучения с предыдущих контрольных точек. Например, стоимость пузыря, упомянутая выше.
Затраты на обучение в этом случае чрезвычайно высоки.
Другая причина заключается в том, что all-reduce среди такого количества графических процессоров очень дорог.
Автор отчета подозревает, что если этот кластер на самом деле представляет собой группу более мелких кластеров с более слабыми сетевыми соединениями, то скорость неблокирующего (неблокирующего) соединения между разными частями кластера составляет 800G/1.6T, но эти части скорость соединения между ними всего 200G/400G.
Если стоимость облачных вычислений OpenAI составляет около 1 доллара США за 100 часов, то при таких условиях стоимость обучения составляет около 63 миллионов долларов.
Это не включает все эксперименты, неудачное обучение и другие затраты, такие как сбор данных, RLHF, человеческие затраты и т. д.
Если принять во внимание только что упомянутые факторы, реальная стоимость намного выше.
Кроме того, это должно исходить из того, что другие могут покупать чипы/сети/центры обработки данных, нести капитальные затраты на создание этих систем и сдавать их в аренду OpenAI.
Но сегодня при цене 2 доллара за H100 часов предварительная подготовка может быть проведена примерно на 8 192 H100 всего за 55 дней и стоит 21,5 миллиона долларов.
Однако, по словам автора отчета, к концу этого года как минимум девять компаний будут иметь кластеры H100, превышающие вышеуказанный размер.
Хотя не все эти компании будут использовать их все для индивидуального обучения моделям, если они и будут, то у них будут модели большего размера, чем GPT-4.
Например, к концу этого года у Meta будет более 100 000 H100, но немалая их часть будет распределена в собственном дата-центре для инференса.
Но его крупнейший отдельный кластер все равно превысит 25 000 H100.
Короче говоря, к концу этого года у многих компаний будет достаточно вычислительных ресурсов для обучения моделей размера GPT-4.
Компромиссы в смешанных экспертных моделях
MoE (Смешанная модель экспертов) — отличный способ уменьшить количество параметров во время логического вывода, одновременно увеличивая их.
Но это необходимо для того, чтобы каждый обучающий токен кодировал больше информации, потому что получить достаточно качественные токены очень сложно.
Если OpenAI действительно хочет достичь наилучшей производительности, для этого им нужно обучить вдвое больше токенов.
При этом OpenAI пошел на несколько компромиссов.
Например, иметь дело с MoE во время логического вывода очень сложно, потому что каждая часть модели не используется при каждом создании токена.
Это означает, что некоторые части могут быть бездействующими, в то время как другие части работают.
Эта ситуация может значительно снизить загрузку при обслуживании пользователей.
Исследователи показали, что использование 64-128 экспертных моделей дает лучшие профили потерь, чем использование 16 экспертных моделей, но это всего лишь исследование.
Есть много причин для использования относительно небольшого количества экспертных моделей.Одна из причин, по которой OpenAI выбрала 16 экспертов, заключается в том, что большее количество экспертных моделей трудно обобщить для многих задач.
Также труднее достичь конвергенции с более экспертными моделями.
В таком огромном учебном процессе OpenAI предпочел быть более консервативным в отношении количества экспертных моделей.
Кроме того, использование меньшего количества экспертных моделей также помогает их инфраструктуре логического вывода. Существуют различные сложные компромиссы и компромиссы при переходе на гибридную архитектуру вывода экспертной модели.
Автор экстренных новостей начинает с обсуждения основных компромиссов рассуждений LLM, а затем обсуждает проблемы, с которыми сталкивается OpenAI, и выбор, который они делают.
Обоснование компромиссов
Перед введением компромиссов логического вывода, кстати, пообщавшись со всеми LLM-компаниями, осведомитель обнаружил, что библиотека логического вывода FasterTransformer от NVIDIA очень плохая, а TensorRT и подавно.
Это означает, что если Nvidia не будет вносить изменения, людям придется создавать свои собственные решения с нуля.
Есть три основных компромисса в рассуждениях о больших языковых моделях, размер пакета (количество одновременно обрабатываемых пользователей) и количество используемых микросхем, а именно:
1. Задержка
Модель должна отвечать с разумной задержкой. Никто не хочет ждать несколько секунд в приложении чата, прежде чем начнет получать вывод. Время обработки для предварительного заполнения (входные токены) и декодирования (выходные токены) различается.
2. Пропускная способность
Модель должна выводить определенное количество токенов в секунду. Людям нужно около 30 токенов в секунду. Для различных других вариантов использования допустима как более низкая, так и более высокая пропускная способность.
3. Коэффициент использования
Аппаратное обеспечение, на котором работает модель, должно обеспечивать высокую степень использования, иначе стоимость будет непомерно высокой. Хотя более высокая задержка и более низкая пропускная способность могут использоваться для объединения большего количества запросов пользователей вместе для достижения более высокой степени использования, это также увеличивает сложность.
Ключом к рассуждениям LLM является баланс между двумя точками пропускной способности памяти и вычислений.
Проще говоря, каждый параметр должен быть прочитан, и с ним связаны 2 FLOP.
Следовательно, соотношение большинства чипов (H100 SXM имеет пропускную способность памяти всего 3 ТБ/с, а FP8 — 2000 терафлопов/с) совершенно несбалансировано при выводе с размером пакета, равным 1.
Если есть только один пользователь (размер пакета 1), пропускная способность памяти, необходимая для считывания каждого параметра каждый раз, когда генерируется токен, доминирует над временем вывода, а время вычислений почти ничтожно.
Для эффективного масштабирования больших языковых моделей для нескольких пользователей размер пакета должен превышать 1. Несколько пользователей разделяют стоимость чтения параметров. Например, при размере пакета 256/512 вы можете получить 512 FLOP/с или 1024 FLOP/с на каждый прочитанный байт памяти.
Это соотношение ближе к балансу H100 между пропускной способностью памяти и FLOPS. Это помогает достичь более высокой степени использования, но за счет более высокой задержки.
Многие считают объем памяти основным узким местом для логического вывода LLM, поскольку для логического вывода больших моделей требуется несколько микросхем, а более высокая емкость памяти означает, что они могут поместиться на меньшем количестве микросхем.
Однако на самом деле лучше использовать больше чипов, чтобы уменьшить задержку, увеличить пропускную способность и использовать большие размеры пакетов для большей загрузки.
Компромиссы и инфраструктура логического вывода GPT-4
Как упоминалось выше, это очень сложно для GPT-4. Но быть модом MoE снова представляет совершенно новый набор трудностей.
Каждый прямой проход, генерирующий токены, может быть направлен другому набору экспертов. Это создает проблему компромисса между пропускной способностью, задержкой и использованием при больших размерах пакетов.
OpenAI GPT-4 имеет 16 экспертов, и каждый прямой проход маршрутизируется к 2 из них.
Это означает, что если размер пакета равен 8, считанный параметр каждого эксперта может иметь размер пакета только 1.
Хуже того, это может означать, что у одного эксперта размер партии равен 8, а у других экспертов — 4, 1 или 0.
Для каждого сгенерированного токена алгоритм маршрутизации отправляет прямые проходы в разных направлениях, в результате чего задержки между токенами и размерами экспертных пакетов значительно различаются.
Инфраструктура логического вывода — одна из основных причин, по которой OpenAI выбрала меньшее количество экспертов. Если они выбирают больше экспертов, пропускная способность памяти становится узким местом для логического вывода.
Кластер логических выводов OpenAI обычно может достигать размера пакета 4k+, а это означает, что даже при наилучшем балансе нагрузки между экспертами размер пакета экспертов составляет всего около 500 или около того. Это требует очень большого количества использования для достижения.
По словам осведомителя, мы узнали, что OpenAI выполняет вывод на кластере из 128 графических процессоров. У них есть несколько таких кластеров в нескольких центрах обработки данных и географических местоположениях.
Вывод использует 8-сторонний тензорный параллелизм и 16-сторонний конвейерный параллелизм. Каждый узел, состоящий из 8 графических процессоров, имеет всего около 130 байт параметров, или менее 30 ГБ на каждый графический процессор в FP16 и менее 15 ГБ в FP8/int8.
Это позволяет выполнять вывод на A100 емкостью 40 ГБ, если размер кэша KV для всех пакетов не слишком велик.
Слои, содержащие разных экспертов на разных узлах, не разделяются, потому что это приведет к слишком неравномерному сетевому трафику, а пересчет кэша KV между каждым сгенерированным токеном будет слишком дорогим.
Для будущих расширений модели MoE и условной маршрутизации самая большая трудность заключается в том, как обрабатывать маршрутизацию кэша KV.
Модель имеет 120 слоев, поэтому их можно было бы просто распределить по 15 различным узлам, но поскольку первый узел должен выполнять загрузку и встраивание данных, имеет смысл разместить меньше слоев на главном узле кластера вывода.
Кроме того, ходят слухи о «спекулятивном декодировании» (далее), что также объясняет, почему мастерноды должны содержать меньше слоев.
Стоимость вывода
По сравнению с моделью Давинчи со 175 миллиардами параметров, GPT-4 стоит в 3 раза дороже, хотя ее параметры с прямой связью увеличиваются только в 1,6 раза.
В основном это связано с тем, что GPT-4 требует более крупного кластера и обеспечивает более низкую загрузку.
Авторы считают, что стоимость вывода длины последовательности GPT-4 8k на 128 A100 составляет 0,0049 доллара США за 1000 токенов, в то время как стоимость вывода длины последовательности 8k GPT-4 на 128 H100 составляет 0,0021 доллара США за 1000 токенов.
Обратите внимание, что это предполагает довольно высокую загрузку и поддерживает высокий размер партии.
Но ясно, что иногда OpenAI используется недостаточно.
Если бы OpenAI не сделал этого, их использование было бы ниже, а их стоимость увеличилась бы более чем вдвое.
Внимание к множественным запросам
Кроме того, OpenAI также использует Multi-Query Attention (MQA).
Короче говоря, требуется только одна голова внимания, а объем памяти, занимаемый кэшем KV, может быть значительно уменьшен.
Тем не менее, GPT-4 с длиной 32 КБ, безусловно, не может работать на 40 ГБ A100, и существует верхний предел максимального размера пакета в 8 КБ.
Непрерывная пакетная обработка
OpenAI реализует переменный размер пакета и непрерывную пакетную обработку.
Это обеспечивает некоторую степень максимальной задержки и оптимизирует стоимость логического вывода.
Спекулятивное декодирование
Выяснилось, что OpenAI использовал «спекулятивное декодирование» в процессе рассуждений GPT-4, который все еще имеет 100% неопределенность.
Различия в задержке от токена к токену и разница между выполнением простых задач поиска и более сложных задач, по-видимому, предполагают, что это возможно, хотя существует слишком много переменных, чтобы быть уверенным.
Здесь осведомитель внес соответствующие изменения / добавил некоторые детали, чтобы объяснить текст в исследовании DeepMind «Ускорение вывода LLM с поэтапным спекулятивным декодированием».
Первый — это предварительное заполнение, когда текст подсказки передается в модель для создания кэша KV и логарифмических шансов (распределение вероятностей возможных выходов токена) для первого вывода. Этот процесс обычно выполняется быстро, поскольку весь текст подсказки может обрабатываться параллельно.
Второй этап — декодирование. Выберите токен из логарифмических шансов вывода и передайте его в модель, которая сгенерирует логарифмические шансы следующего токена. Повторяйте этот процесс, пока не будет сгенерировано нужное количество токенов.
Поскольку декодирование должно происходить последовательно, каждый раз веса должны передаваться через вычислительный блок для генерации одного токена. Таким образом, этот второй этап требует больших вычислительных ресурсов (т. е. вычисляет FLOP/байты пропускной способности памяти) при работе в мини-пакетах. Поэтому декодирование обычно является самой дорогой частью авторегрессионной генерации.
Вот почему токен ввода намного дешевле, чем токен вывода в вызовах API OpenAI.
Основная идея «спекулятивного декодирования» состоит в том, чтобы использовать меньшую и более быструю черновую модель для заблаговременного декодирования нескольких токенов, а затем передавать их в прогностическую модель в виде пакета.
Если прогнозы черновой модели верны, т. е. большая модель согласуется с этими прогнозами, несколько токенов могут быть декодированы с использованием одного пакета, что значительно экономит пропускную способность памяти и время.
Однако, если более крупная модель отклоняет токен, предсказанный черновой моделью, оставшаяся партия отбрасывается, и алгоритм естественным образом возвращается к стандартному декодированию по токену.
«Спекулятивное декодирование» также может сопровождаться отказом от схемы выборки для выборки из исходного дистрибутива. Стоит отметить, что это полезно только в небольших пакетах, где пропускная способность является узким местом.
Спекулятивное декодирование, при котором вычислительные ресурсы используются в обмен на полосу пропускания, является привлекательной целью разработки производительности по двум ключевым причинам:
Во-первых, это не снижает качество модели. Во-вторых, улучшения производительности, которые он предлагает, часто ортогональны другим подходам, поскольку их производительность зависит от преобразования «последовательного выполнения» в «параллельное выполнение».
Текущий метод вывода представляет собой отдельную последовательность пакетных прогнозов. Однако этот подход плохо масштабируется для больших партий или выравнивания моделей с малым уклоном.
Интуитивно понятно, что вероятность того, что две модели согласуются с непрерывно длинными последовательностями токенов, экспоненциально низка, что означает, что выгоды от спекулятивного декодирования быстро уменьшаются по мере увеличения арифметической плотности.
Информатор считает, что если OpenAI использует «спекулятивное декодирование», они могут использовать его только в последовательностях примерно из 4 токенов.
Кроме того, весь заговор о кастрации OpenAI, что привело к более низкому качеству GPT-4, может быть просто потому, что они подвергают свои прогностические модели маловероятным последовательностям из моделей «спекулятивного декодирования».
Также предполагалось, что Бард также использует «спекулятивное декодирование», потому что Google ждет, пока вся последовательность будет полностью сгенерирована, прежде чем отправить ее пользователю, но, по мнению осведомителя, это предположение совершенно неверно.
Визуальный мультимодальный
Визуальные мультимодальные возможности — наименее впечатляющая часть GPT-4, по крайней мере, по сравнению с ведущими исследованиями.
Конечно, еще никто не коммерциализировал результаты мультимодальных исследований LLM.
Информатор сказал, что это визуальный кодировщик, независимый от текстового кодировщика, а также перекрестное внимание, архитектура аналогична Flamingo, и в GPT-4 1.8T добавлено больше параметров.
Мультимодальные возможности GPT-4 точно настроены с использованием около 2 триллионов токенов после предварительной подготовки текста.
Говорят, что на визуальной модели OpenAI изначально надеялся тренироваться с нуля, но, поскольку она не была достаточно зрелой, у нее не было другого выбора, кроме как тонко настроить текстовую модель обучения.
И модель следующего поколения GPT-5, обучение которой должно обучать модель зрения с нуля, и уметь генерировать изображения и даже генерировать звук.
Одной из основных целей этой визуальной возможности является предоставление автономным агентам возможности читать веб-страницы и расшифровывать изображения, видео.
Стоит отметить, что данные, используемые OpenAI для обучения мультимодальных моделей, включают в себя: «совместные данные» (LaTeX/текст), скриншоты веб-страниц, видеоролики YouTube (выборка кадров и запуск Whisper для получения субтитров).
Интересным фактом чрезмерной оптимизации LLM является то, что визуальные модели имеют другую стоимость ввода-вывода, чем текстовые модели. В визуальной модели ввод-вывод при загрузке данных примерно в 150 раз больше, чем в текстовой модели.
Каждый токен в визуальной модели занимает 600 байт, а текст — 4 байта на токен.
Так что это требует большой работы с точки зрения сжатия изображения. Это чрезвычайно важно для поставщиков аппаратного обеспечения, поскольку через 2-3 года они оптимизируют аппаратное обеспечение в соответствии с вариантами использования и коэффициентами LLM.
Они могут оказаться в мире, где каждая модель обладает мощными визуальными и звуковыми возможностями.
Они могут оказаться плохо подходящими для архитектуры.
В целом, архитектура определенно превзойдет текстовые упрощенные плотные модели и модели MoE, которые мы видим сегодня.
Использованная литература