Модели и платформы ИИ

OLMo: Расширение Науки Языковых Моделей

mm
Добавьте Unite.AI в избранные источники в Google

Разработка и прогресс языковых моделей в последние годы отметили свое присутствие几乎 повсюду, не только в исследованиях NLP, но и в коммерческих предложениях и реальных приложениях. Однако рост коммерческого спроса на языковые модели в определенной степени препятствовал росту сообщества. Это связано с тем, что большинство передовых и способных моделей находятся за проприетарными интерфейсами, что делает невозможным для сообщества разработчиков получить доступ к важным деталям их архитектуры, данных и процессов разработки. Теперь уже неоспоримо, что эти детали обучения и структуры имеют решающее значение для исследовательских работ, включая доступ к их потенциальным рискам и предвзятостям, что создает необходимость для исследовательского сообщества иметь доступ к真正 открытой и мощной языковой модели.

Чтобы удовлетворить это требование, разработчики создали OLMo, передовую и真正 открытую языковую модель. Эта модель позволяет исследователям использовать OLMo для построения и изучения языковых моделей. В отличие от большинства передовых языковых моделей, которые выпустили только код интерфейса и веса модели, OLMo является真正 открытым, с публично доступным кодом оценки, методами обучения и данными обучения. Основная цель OLMo – расширить и поддержать открытое исследовательское сообщество и непрерывное развитие языковых моделей.

В этой статье мы обсудим модель OLMo в деталях, изучая ее архитектуру, методологию и производительность по сравнению с текущими передовыми моделями. Итак, давайте начнем.

OLMo: Расширение Науки Языковых Моделей

Языковая модель, безусловно, была самой горячей тенденцией в последние годы, не только в сообществе AI и ML, но и во всей технологической индустрии, благодаря ее замечательным возможностям выполнять реальные задачи с человеческим уровнем производительности. ChatGPT – яркий пример потенциала языковых моделей, и крупные игроки в технологической индустрии исследуют возможность интеграции языковых моделей с их продуктами.

NLP, или Обработка Естественного Языка, – одна из отраслей, которая широко использовала языковые модели в последние годы. Однако с тех пор, как отрасль начала использовать человеческую аннотацию для выравнивания и крупномасштабного предварительного обучения, языковые модели стали свидетелями быстрого улучшения их коммерческой жизнеспособности, что привело к тому, что большинство передовых языковых и NLP-рамок имеют ограниченные проприетарные интерфейсы, и сообщество разработчиков не имеет доступа к важным деталям.

Чтобы обеспечить прогресс языковых моделей, OLMo, передовая и真正 открытая языковая модель, предлагает разработчикам рамку для построения, изучения и совершенствования языковых моделей. Она также предоставляет исследователям доступ к ее коду обучения и оценки, методологии обучения, данным обучения, журналам обучения и промежуточным контрольным точкам моделей. Существующие передовые модели имеют разные степени открытости, тогда как OLMo выпустила всю рамку, от обучения до данных и инструментов оценки, что сужает разрыв в производительности по сравнению с передовыми моделями, такими как LLaMA2.

Для моделирования и обучения рамка OLMo включает код обучения, полные веса модели, абляции, журналы обучения и метрики обучения в виде кода интерфейса, а также журналы Weights & Biases. Для анализа и построения наборов данных рамка OLMo включает полные данные обучения, использованные для моделей AI2 Dolma и WIMBD, вместе с кодом, который производит данные обучения. Для целей оценки рамка OLMo включает модель AI2 Catwalk для оценки вниз по потоку, и модель Paloma для оценки на основе perplexity.

OLMo: Модель и Архитектура

Модель OLMo采用 декодер-ONLY трансформерную архитектуру на основе Neural Information Processing Systems и поставляет две модели с 1 миллиардом и 7 миллиардами параметров соответственно, с моделью на 65 миллиардов параметров, которая в настоящее время находится в разработке.

Архитектура рамки OLMo обеспечивает несколько улучшений по сравнению с другими рамками, включая компонент vanilla трансформера в их архитектуре, включая недавние передовые большие языковые модели, такие как OpenLM, Falcon, LLaMA и PaLM. Следующая фигура сравнивает модель OLMo с 7 миллиардами параметров с недавними LLM, работающими на几乎 равном количестве параметров.

Рамка OLMo выбирает гиперпараметры, оптимизируя модель для пропускной способности обучения на аппаратном обеспечении, минимизируя при этом риск медленного расхождения и скачков потерь. С учетом этого, основные изменения, реализованные рамкой OLMo, которые отличают ее от архитектуры vanilla трансформера, следующие:

Нет Предвзятости

В отличие от Falcon, PaLM, LLaMA и других языковых моделей, рамка OLMo не включает никаких предвзятостей в своей архитектуре для улучшения стабильности обучения.

Непараметрическая Норма Слоя

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

Функция Активации SwiGLU

Как и большинство языковых моделей, таких как PaLM и LLaMA, рамка OLMo включает функцию активации SwiGLU в своей архитектуре вместо функции активации ReLU, и увеличивает размер скрытой активации до ближайшего кратного 128 для улучшения пропускной способности.

RoPE или Вращающиеся Позиционные Вложения

Модели OLMo следуют моделям LLaMA и PaLM и заменяют абсолютные позиционные вложения на RoPE или Вращающиеся Позиционные Вложения.

Предварительное Обучение с Dolma

Хотя сообщество разработчиков теперь имеет улучшенный доступ к параметрам модели, двери для доступа к предварительным данным обучения все еще остаются закрытыми, поскольку предварительные данные не выпускаются вместе с закрытыми моделями, ни вместе с открытыми моделями. Кроме того, технические документы, охватывающие такие данные, часто не содержат важных деталей, необходимых для полного понимания и воспроизведения модели. Этот барьер делает трудным продвижение исследований в определенных направлениях исследований языковых моделей, включая понимание того, как данные обучения влияют на возможности и ограничения модели. Рамка OLMo построила и выпустила свой предварительный набор данных, Dolma, для облегчения открытых исследований предварительного обучения языковых моделей. Набор данных Dolma – это многоисточниковый и разнообразный сбор более 3 триллионов токенов по 5 миллиардам документов, собранных из 7 разных источников, которые обычно используются мощными крупномасштабными LLM для предварительного обучения и доступны широкой общественности. Состав набора данных Dolma суммирован в следующей таблице.

Набор данных Dolma построен с помощью конвейера из 5 компонентов: фильтрации языка, фильтрации качества, фильтрации содержания, многократного смешивания, дедупликации и токенизации. OLMo также выпустила отчет Dolma, который предоставляет более глубокие сведения о принципах проектирования и деталях строительства, а также более подробный обзор содержания. Модель также открыла свои высокопроизводительные инструменты для очистки данных, чтобы обеспечить легкую и быструю очистку предварительных данных обучения. Оценка модели включает двухэтапную стратегию, начиная с онлайн-оценки для принятия решений во время обучения модели и окончательной офлайн-оценки для агрегированной оценки из контрольных точек модели. Для офлайн-оценки OLMo использует рамку Catwalk, наш публично доступный инструмент оценки, который имеет доступ к широкому разнообразию наборов данных и форматов задач. Рамка использует Catwalk для оценки вниз по потоку, а также для внутренней оценки языковых моделей на нашей новой базе perplexity, Paloma. OLMo затем сравнивает ее с несколькими публичными моделями, используя свою фиксированную трубу оценки, как для оценки вниз по потоку, так и для оценки perplexity.

Обучение OLMo

Важно отметить, что модели OLMo обучаются с помощью стратегии оптимизатора ZeRO, которая предоставляется рамкой FSDP через PyTorch и, таким образом, существенно снижает потребление памяти GPU, разделяя веса модели по GPU. С этим, в масштабе 7B, обучение можно выполнять с микро-пакетом размером 4096 токенов на GPU на нашем оборудовании. Рамка обучения для моделей OLMo-1B и -7B использует глобально постоянный размер пакета около 4M токенов (2048 экземпляров, каждый с длиной последовательности 2048 токенов). Для модели OLMo-65B (в настоящее время в обучении) разработчики используют размер пакета, который увеличивается с примерно 2M токенов (1024 экземпляра), удваиваясь каждые 100B токенов до примерно 16M токенов (8192 экземпляра).

Чтобы улучшить пропускную способность, мы используем смешанное обучение (Micikevicius et al., 2017) через настройки FSDP и модуль amp PyTorch. Последний обеспечивает, что определенные операции, такие как softmax, всегда выполняются в полной точности для улучшения стабильности, в то время как все остальные операции выполняются в половинной точности с форматом bfloat16. При наших конкретных настройках шардированные веса модели и состояние оптимизатора, локальные для каждого GPU, сохраняются в полной точности. Веса внутри каждого трансформерного блока отбрасываются до формата bfloat16 только тогда, когда полномасштабные параметры материализуются на каждом GPU во время прямых и обратных проходов. Градиенты уменьшаются по GPU в полной точности.

Оптимизатор

Рамка OLMo использует оптимизатор AdamW с следующими гиперпараметрами.

Для всех размеров модели скорость обучения увеличивается линейно в течение первых 5000 шагов (∼21B токенов) до максимального значения, а затем линейно снижается с обратной квадратной根ом количества шагов до указанного минимального значения скорости обучения. После периода разогрева модель обрезает градиенты так, чтобы общая l-норма градиентов параметров не превышала 1,0. Следующая таблица дает сравнение наших настроек оптимизатора на уровне 7B с настройками других недавних LLM, которые также использовали AdamW.

Данные Обучения

Обучение включает токенизацию экземпляров обучения по словам и BPE-токенизатор для модели кусков предложений после добавления специального токена EOS в конец каждого документа, а затем мы группируем последовательные фрагменты по 2048 токенов, чтобы сформировать экземпляры обучения. Экземпляры обучения перемешиваются точно таким же образом для каждого запуска обучения. Порядок данных и точный состав каждого пакета обучения можно восстановить из артефактов, которые мы выпускаем. Все выпущенные модели OLMo были обучены не менее чем 2T токенов (один эпох на набор данных обучения), и некоторые были обучены дальше, начиная второй эпох на данных с другим порядком перемешивания. Учитывая небольшое количество данных, которое повторяется, это должно иметь незначительное влияние.

Результаты

Контрольная точка, используемая для оценки OLMo-7B, обучена до 2,46T токенов на наборе данных Dolma с линейным графиком снижения скорости обучения, упомянутым ранее. Дальнейшее настройка этой контрольной точки на наборе данных Dolma в течение 1000 шагов с линейно снижающейся скоростью обучения до 0 еще больше увеличивает производительность модели на perplexity и наборах оценки задач, описанных ранее. Для окончательной оценки разработчики сравнили OLMo с другими публично доступными моделями – LLaMA-7B, LLaMA2-7B, Pythia-6,9B, Falcon-7B и RPJ-INCITE-7B.

Оценка Вниз по Потоку

Основной набор оценки вниз по потоку суммирован в следующей таблице.

Мы проводим оценку с нулевым выстрелом, используя подход ранжирования в всех случаях. В этом подходе кандидатные завершения текста (например, разные варианты выбора) ранжируются по вероятности (обычно нормализованной некоторым нормализационным коэффициентом), и сообщается точность прогнозирования.

Хотя Catwalk использует несколько типичных методов нормализации вероятности, таких как нормализация по токену и нормализация по символу, стратегии нормализации, применяемые к каждому набору данных, выбираются отдельно и включают неусловную вероятность ответа. Более конкретно, это включает в себя отсутствие нормализации для задач arc и openbookqa, нормализацию по токену для задач hellaswag, piqa и winogrande, и отсутствие нормализации для задач boolq, copa и sciq (т. е. задач в формулировке, близкой к задаче прогнозирования одного токена).

Следующая фигура показывает прогресс точности для девяти основных задач. Можно сделать вывод, что существует общая тенденция увеличения точности для всех задач, за исключением OBQA, по мере того, как OLMo-7B обучается на больше токенов. Резкий скачок точности многих задач между последним и предпоследним шагом показывает нам выгоду от линейного снижения LR до 0 в течение последних 1000 шагов обучения. Например, в случае внутренних оценок Paloma утверждает через ряд анализов, от осмотра производительности в каждом домене отдельно до более суммированных результатов по комбинациям доменов. Мы сообщаем результаты на двух уровнях детализации: агрегированную производительность по 11 из 18 источников в Paloma, а также более детальные результаты по каждому из этих источников индивидуально.

Окончательные Мысли

В этой статье мы говорили об OLMo, передовой и真正 открытой языковой модели, которая предлагает разработчикам рамку для построения, изучения и совершенствования языковых моделей, а также предоставляет исследователям доступ к ее коду обучения и оценки, методологии обучения, данным обучения, журналам обучения и промежуточным контрольным точкам моделей. Существующие передовые модели имеют разные степени открытости, тогда как OLMo выпустила всю рамку, от обучения до данных и инструментов оценки, что сужает разрыв в производительности по сравнению с передовыми моделями, такими как LLaMA2.

"Инженер по профессии, писатель по сердцу". Кунал - технический писатель с глубокой любовью и пониманием ИИ и МО, посвященный упрощению сложных концепций в этих областях посредством своей увлекательной и информативной документации.