Искусственный интеллект
GLM-130B: Открытая двуязычная предварительно обученная модель

Фреймворк GLM-130B представляет собой двуязычную предварительно обученную большую языковую модель с более чем 130 миллиардами параметров, способную генерировать текстовый вывод как на английском, так и на китайском языках. Фреймворк GLM-130B является попыткой открыть исходный код языковой модели в масштабе более 100 миллиардов параметров и обсудить, как фреймворки такого большого масштаба могут быть предварительно обучены, поскольку в настоящее время обучение модели такого большого масштаба часто сопровождается проблемами, такими как расхождение и скачки потерь.
В этой статье мы будем говорить о фреймворке GLM-130B, который пытается разработать метод эффективного предварительного обучения больших языковых моделей с сотнями миллиардов параметров. Мы более подробно рассмотрим архитектуру и процесс обучения фреймворка GLM-130B, а также проектные решения, которые не только помогают увеличить эффективность, но и стабильность. Первоначальные эксперименты, проведенные для проверки работы фреймворка GLM-130B на широком спектре английских тестов, показали, что модель GLM-130B превосходит текущий фреймворк GPT-3 на значительную величину. Итак, давайте начнем и рассмотрим, как фреймворк GLM-130B обеспечивает такие последовательные, точные и стабильные результаты.
Введение в фреймворк GLM-130B
Большие языковые модели, способные работать в режимах few-shot и zero-shot, особенно те, у которых более 100 миллиардов параметров, демонстрируют привлекательные масштабные законы, и фреймворк GPT-3 является одним из лучших фреймворков, обеспечивающих значительные улучшения производительности по сравнению с его предшественником, фреймворком BERT. Однако, несмотря на популярность фреймворка GPT-3 и его широкое применение, процесс обучения и, в некоторой степени, сам фреймворк GPT-3 не были прозрачными для общественности. Кроме того, эмпирическое перечисление всех возможных проектных решений для обучения моделей с более 100 миллиардами параметров вычислительно невыгодно, что делает еще более важным разработку метода предварительного обучения для больших языковых моделей.
Вышеуказанное обстоятельство делает обмен работой и процессом обучения высококачественных больших языковых моделей, таких как GPT-3, очень важным, и с учетом этических соображений фреймворк GLM-130B является попыткой предварительно обучить точную и открытую языковую модель с более чем 100 миллиардами параметров. В процессе своей попытки команда разработки фреймворка GLM-130B обнаружила, что предварительное обучение большой языковой модели часто сопровождается рядом технических и инженерных проблем, связанных с стабильностью, эффективностью и сходимостью обучения.
Более конкретно, фреймворк GLM-130B представляет собой двунаправленную и двуязычную плотную модель, состоящую из более 130 миллиардов параметров, предварительно обученную на кластере из 96 узлов GPU NVIDIA DGX-A100 за примерно два месяца. Кроме того, вместо использования архитектуры GPT, фреймворк GLM-130B использует алгоритм общей языковой модели (GLM), основанный на трансформерах, который стремится использовать автoregressive заполнение пробелов в качестве цели обучения, а также двунаправленное внимание. Следующая таблица сравнивает фреймворк GLM-130B с другими моделями, имеющими более 100 миллиардов параметров, включая GPT, BLOOM-176B и OPT-175B.

Концепции инженерии и разработки, используемые в фреймворке GLM-130B, превосходят почти все большие языковые модели, включая GPT-3 и PaLM 540B, с более чем 500 миллиардами параметров, во многих случаях и на широком спектре тестов. Следующая фигура сравнивает производительность фреймворка GLM-130B с моделями, имеющими более 100 миллиардов параметров, и, как можно видеть, фреймворк GLM-130B имеет значительно меньше токсичности и предвзятости по сравнению с его аналогами.

Наконец, фреймворк GLM-130B был разработан так, чтобы позволить как можно большему количеству разработчиков проводить исследования моделей с более чем 100 миллиардами параметров, и есть два способа, которыми фреймворк GLM-130B достигает этой цели. Во-первых, вместо использования более 175 миллиардов параметров, как в BLOOM и OPT, фреймворк GLM-130B использует 130 миллиардов параметров, поскольку размер модели поддерживает inference даже на одном сервере A100. Во-вторых, требования к GPU для запуска фреймворка GLM-130B меньше по сравнению с другими языковыми моделями, и фреймворк GLM-130B достигает этого, квантуя исходную модель до точности INT4. Квантование INT4, используемое фреймворком GLM-130B, повышает производительность, сохраняя при этом незначительное ухудшение производительности.
GLM-130B: Архитектура
Индуктивное предвзятость машинной модели описывается ее архитектурой, и не удивительно, что разработчики не могут исследовать различные архитектурные проекты для больших языковых моделей, учитывая вычислительную доступность и целесообразность. С учетом этого, давайте рассмотрим архитектуру фреймворка GLM-130B.
Большие языковые модели, такие как PaLM, GPT и другие, имеющие более 100 миллиардов параметров, построены на основе традиционной архитектуры декодера GPT для автoregressive языкового моделирования. С другой стороны, фреймворк GLM-130B исследует возможность использования двунаправленной общей языковой модели (GLM), основанной на трансформерах, которая стремится использовать автoregressive заполнение пробелов в качестве цели обучения, в качестве основы.
Двунаправленное внимание общей языковой модели над неискаженными или не маскированными контекстами отличает фреймворк GLM-130B от подхода GPT, который использует односторонний подход. Кроме того, для поддержки как генерации, так и понимания данных, фреймворк GLM объединяет две стратегии искажения, каждая из которых обозначена специальным уникальным токеном маски.
- [MASK] : [MASK] – это стратегия искажения, которая использует короткие пробелы в предложениях, длины которых составляют определенный процент от входных данных.
- [gMASK] : [gMASK] – это стратегия искажения, которая использует случайные длины пробелов в конце предложения с контекстными префиксами.
Подход, используемый фреймворком GLM, позволяет ему достичь точности более 80% на тесте LAMBADA для языкового моделирования в режиме zero-shot и превосходит как фреймворк PaLM 540B, так и фреймворк GPT-3.

Нормализация слоев
Одной из основных проблем, с которыми сталкиваются разработчики при обучении языковой модели, является нестабильность обучения, и использование подходящей нормализации слоев (LN) может помочь в обучении языковых моделей. Фреймворк GLM-130B использует подход Post-LN благодаря его производительности на задачах вниз по потоку.
FFN и позиционная кодировка
Сети прямого распространения (FFN) и позиционная кодировка – это два подхода, принятых фреймворком GLM-130B для введения высококачественной производительности и стабильности обучения.
Настройка предварительного обучения
Цели предварительного обучения фреймворка GLM-130B включают не только многозадачное обучение для небольшого количества токенов, но и самообучение GLM для автoregressive заполнения пробелов, с ожиданием, что этот подход поможет фреймворку GLM-130B в задачах вниз по потоку. С учетом этого, настройка предварительного обучения фреймворка GLM-130B выглядит следующим образом.
Самообучение заполнения пробелов
Как уже упоминалось, фреймворк GLM-130B использует две стратегии искажения, а именно [MASK] и [gMASK], и одна из этих стратегий применяется к каждой обучающей последовательности независимо, по очереди. Для заполнения пробелов стратегия [MASK] маскирует последовательные участки в 30% обучающей последовательности, где длины участков составляют 15% от входных данных, и следует распределению Пуассона. Для остальных 70% последовательности префикс каждой последовательности сохраняется в качестве контекста, и стратегия [gMASK] помогает маскировать остальную часть, и длина маскируется с помощью.uniform распределения.
Многозадачное обучение инструкций
Было показано, что использование многозадачного обучения для предварительного обучения моделей может давать лучшие результаты, чем дообучение, для улучшения передачи задач в режиме zero-shot. Следовательно, фреймворк GLM-130B предлагает использовать набор инструкций, включающих языковую генерацию, понимание и извлечение информации во время предварительного обучения.
По сравнению с другими подходами к передаче задач в режиме zero-shot, которые используют многозадачное дообучение, подход многозадачного обучения инструкций, используемый фреймворком GLM-130B, занимает только 5% от общего количества токенов и устанавливается во время фазы предварительного обучения в попытке предотвратить порчу других способностей языковой модели или, другими словами, безусловную свободную генерацию.
3D-параллельная стратегия
Существуют два де-факто практики для обучения больших моделей с миллиардами параметров, параллелизм тензорной модели и параллелизм данных. В попытке минимизировать использование GPU и обработать огромные требования к GPU, фреймворк GLM-130B реализует 3D-параллельную стратегию, которая объединяет стратегию параллелизма модели трубопровода с параллелизмом тензорной модели и параллелизмом данных.
GLM-130B: Стабильность обучения
Стабильность обучения является важным фактором при определении качества языковой модели, и стабильность обучения сильно зависит от количества токенов, которые она проходит. Кроме того, важно установить компромисс между стабильностью и эффективностью с учетом форматов с плавающей запятой, учитывая вычислительные ограничения. Например, форматы с плавающей запятой низкой точности повышают вычислительную эффективность, но часто приводят к коллапсу обучения, поскольку они склонны к ошибкам переполнения и подполнения.
Смешанная точность
В попытке повысить точность обучения и уменьшить использование памяти, фреймворк GLM-130B следует общей практике использования смешанных точностей, т. е. FP16 для прямого и обратного распространения, и FP32 для мастер-весов и состояний оптимизатора. Как и другие популярные языковые модели, включая BLOOM-176B и OPT-175B, фаза обучения фреймворка GLM-130B с использованием смешанной точности сталкивается с частыми скачками потерь, и частота этих скачков потерь увеличивается по мере продолжения обучения модели. Кроме того, существуют серьезные проблемы, с которыми сталкиваются разработчики при масштабировании трансформеров.

Во-первых, масштаб значения основной ветви трансформера может быть огромным в более глубоких слоях при использовании Pre-LN, и в фреймворке GLM-130B это решается с помощью DeepNorm на основе Pre-LN, который гарантирует, что масштаб значения остается ограниченным во все время. Во-вторых, по мере масштабирования модели внимание вырастает до точки, где оно превышает диапазон FP16.
Сжатие градиента слоя вложения или EGS
Разработчики фреймворка GLM-130B обнаружили, что норма градиента может служить информативным индикатором коллапса обучения, и коллапс обучения обычно отстает от скачка нормы градиента. Причиной этих скачков являются аномальные градиенты слоя вложения, и разработчики обнаружили, что по сравнению с нормой градиента других слоев, норма градиента слоя вложения больше на несколько порядков, и она также склонна колебаться сильно во время раннего обучения фреймворка. Модели зрения также сталкиваются с этой проблемой, и она решается путем заморозки слоя проекции патчей. Однако, тот же подход нельзя применить к языковым моделям, поскольку в языковых моделях нельзя заморозить слои проекции.

GLM-130B: Результаты и производительность
Для оценки производительности фреймворка GLM-130B на английских задачах он реализует те же настройки, которые используются в общих языковых моделях, включая PaLM и GPT-3, и поскольку фреймворк GLM-130B является двуязычным, он также оценивается на нескольких китайских тестах. Производительность фреймворка GLM-130B будет измерена на нескольких тестах, включая языковое моделирование, MMLU или массовое многозадачное понимание языка, BIG-Bench или тест за пределами имитационной игры, и CLUE или оценка понимания китайского языка.Итак, давайте начнем.
Языковое моделирование
Тест языкового моделирования на фреймворке GLM-130B проводится на двух наборах данных: LAMBADA и Pile.
Набор данных LAMBADA используется для проверки возможностей моделирования последнего слова языковых моделей, и фреймворк GLM-130B достигает точности 80,2 в двуязычной среде и устанавливает новый рекорд на наборе данных LAMBADA.
С другой стороны, Pile – это тестовый набор, который состоит из серии тестов для языковых моделей. В среднем, по сравнению с GPT-3 и Jurassic-1, фреймворк GLM-130B демонстрирует лучшую производительность на 18 общих тестовых наборах по взвешенным BPB. Результаты демонстрируют сильные языковые возможности фреймворка GLM-130B, и результаты включены в таблицу ниже.

MMLU или массовое многозадачное понимание языка
MMLU или массовое многозадачное понимание языка – это разнообразный тест, который состоит из более 50 задач с несколькими вариантами ответов, связанных с человеческим интеллектом и знаниями, варьирующимися от уровня средней школы до экспертного уровня, и он выпускается после извлечения тестового набора Pile, и поэтому он служит идеальным тестовым набором для оценки возможностей few-shot обучения языковой модели.

Как можно видеть, в few-shot настройках (5-shot) производительность фреймворка GLM-130B приближается к производительности модели GPT-3 после просмотра около 300 миллиардов токенов. Производительность продолжает улучшаться по мере продолжения обучения, и когда обучение завершается, фреймворк достигает точности 44,8 после просмотра общего количества 400 миллиардов токенов.
BIG-Bench или тест за пределами имитационной игры
BIG-Bench или тест за пределами имитационной игры – это сложные задачи, которые проверяют способность модели к знаниям, рассуждениям и здравому смыслу. Как показано на следующих фигурах, в zero-shot настройках фреймворк GLM-130B превосходит как фреймворк PaLM 540B, так и фреймворк GPT-3 175B, что может быть связано с MIP и двунаправленным контекстным вниманием для повышения производительности фреймворка GLM-130B в незнакомых задачах в zero-shot настройках. Кроме того, по мере увеличения количества выстрелов производительность фреймворка GLM-130B также улучшается, превосходя фреймворк GPT-3 последовательно.

CLUE или оценка понимания китайского языка
Производительность фреймворка GLM-130B на китайских zero-shot тестах оценивается на установленных тестах NLP, включая CLUE и FewCLUE, и сравнивается с 260B ERNIE Titan 3.0, самой большой существующей китайской языковой моделью. Как можно видеть, фреймворк GLM-130B постоянно превосходит фреймворк 260B ERNIE Titan 3.0 на 12 разных задачах и выполняет почти на 260% лучше, чем фреймворк ERNIE на двух абстрактных наборах данных MRC.

Заключение
В этой статье мы говорили о фреймворке GLM-130B, двуязычной предварительно обученной большой языковой модели, которая направлена на продвижение инклюзивных исследований языковых моделей. Архитектура, инженерия и технические начинания направлены на предоставление сообществу искусственного интеллекта лучшего понимания архитектуры фреймворков языковых моделей, эффективности и стабильности обучения, целей предварительного обучения и доступного вмешательства.












