Моделі та платформи ШІ
OLMo: Покращення науки мовних моделей
Розробка та прогрес мовних моделей за останні кілька років позначили їхнє присутність майже всюди, не тільки в дослідженнях NLP, але й у комерційних пропозиціях та реальних застосунках. Однак зростання комерційного попиту на мовні моделі до певної міри гальмувало розвиток спільноти. Це відбувається тому, що більшість моделей state-of-the-art та потужних моделей закриті за пропріетарними інтерфейсами, що робить неможливим для спільноти розробників отримати доступ до важливих деталей їхньої архітектури, даних та процесів розробки. Тепер недвозначно, що ці деталі тренування та структури є важливими для дослідницьких студій, включаючи доступ до їхніх потенційних ризиків та упереджень, створюючи вимогу для дослідницької спільноти мати доступ до真正 відкритої та потужної мовної моделі.
Для задоволення цієї вимоги розробники створили OLMo,框架真正 відкритої мовної моделі. Цей.framework дозволяє дослідникам використовувати OLMo для побудови та вивчення мовних моделей. На відміну від більшості моделей state-of-the-art, які випустили тільки код інтерфейсу та ваги моделі,.framework OLMo真正 відкритий, з публічно доступним кодом оцінки, методами тренування та тренувальними даними. Основною метою OLMo є надання можливості відкритій дослідницькій спільноті та безперервному розвитку мовних моделей.
У цій статті ми обговоримо.framework OLMo детально, розглядаючи його архітектуру, методологію та продуктивність у порівнянні з поточними.framework state-of-the-art. Тому давайте почнемо.
OLMo: Покращення науки мовних моделей
Мовна модель, безсумнівно, була найбільш популярною тенденцією за останні кілька років, не тільки в спільноті AI та ML, але й у всій техніці, завдяки її видатним можливостям виконання реальних завдань з людською продуктивністю. ChatGPT – це приклад потенціалу мовних моделей, з великими гравцями в техніці, які досліджують інтеграцію мовних моделей з своїми продуктами.
NLP, або природна обробка мови, є однією з галузей, яка широко використовувала мовні моделі за останні кілька років. Однак з тих пір, як галузь почала використовувати анотацію людини для вирівнювання та великомасштабного попереднього тренування, мовні моделі пережили швидке покращення їхньої комерційної життєздатності, що призвело до того, що більшість моделей state-of-the-art та мовних.framework мають обмежені пропріетарні інтерфейси, з яких спільнота розробників не має доступу до важливих деталей.
Для забезпечення прогресу мовних моделей OLMo,真正 відкрита мовна модель, пропонує розробникам.framework для побудови, вивчення та розвитку мовних моделей. Вона також надає дослідникам доступ до коду тренування та оцінки, методів тренування, тренувальних даних, журналів тренування та проміжних перевірок моделі. Існуючі моделі state-of-the-art мають різні ступені відкритості, тоді як модель OLMo випустила весь.framework, від тренування до даних до інструментів оцінки, тим самим звужуючи розрив у продуктивності при порівнянні з моделями state-of-the-art, такими як LLaMA2.
Для моделювання та тренування.framework OLMo включає код тренування, повні ваги моделі, аналізи, журнали тренування та метрики тренування у вигляді коду інтерфейсу, а також журнали Weights & Biases. Для аналізу та побудови набору даних.framework OLMo включає повні тренувальні дані, використані для моделей AI2’s Dolma та WIMBD, разом з кодом, який створює тренувальні дані. Для цілей оцінки.framework OLMo включає модель AI2’s Catwalk для оцінки вниз по потоку, а також модель Paloma для оцінки, заснованої на перплексії.
OLMo : Модель та архітектура
Модель OLMo приймає архітектуру декодера-тільки трансформера на основі Neural Information Processing Systems, і доставляє дві моделі з 1 мільярдом та 7 мільярдами параметрів відповідно, з моделлю 65 мільярдів параметрів, яка зараз знаходиться у стадії розробки.

Архітектура.framework OLMo доставляє кілька покращень над.framework, включаючи компонент vanilla трансформера в їхній архітектурі, включаючи недавні моделі state-of-the-art, такі як великі мовні моделі, наприклад OpenLM, Falcon, LLaMA та PaLM. Наступна фігура порівнює модель OLMo з 7 мільярдами параметрів проти недавніх LLM, які працюють з майже рівною кількістю параметрів.

Framework OLMo вибирає гіперпараметри, оптимізуючи модель для проходження тренування на апаратному забезпеченні, одночасно мінімізуючи ризик повільного розходження та сплесків втрат. З тим сказаним, основні зміни, реалізовані.framework OLMo, які відрізняють його від архітектури vanilla трансформера, наступні:
Відсутність упереджень
На відміну від Falcon, PaLM, LLaMA та інших мовних моделей,.framework OLMo не містить жодних упереджень у своїй архітектурі для покращення стабільності тренування.
Непараметрична нормалізація шару
Framework OLMo реалізує непараметричну формулювання нормалізації шару в своїй архітектурі. Непараметрична нормалізація шару не пропонує жодної афінної трансформації в межах норми, тобто вона не пропонує жодного адаптивного коефіцієнта чи упередження. Непараметрична нормалізація шару не тільки пропонує більше безпеки, ніж параметричні нормалізації шару, але й швидша.
Функція активації SwiGLU
Як і більшість мовних моделей, таких як PaLM та LLaMA,.framework OLMo включає функцію активації SwiGLU в своїй архітектурі замість функції активації ReLU, і збільшує розмір прихованих активацій до найближчого кратного 128 для покращення проходження.
RoPE або роторні позиційні вкладення
Моделі OLMo слідують за моделями LLaMA та PaLM та міняють абсолютні позиційні вкладення на RoPE або роторні позиційні вкладення.
Попереднє тренування з Dolma
Хоча спільнота розробників тепер має покращений доступ до параметрів моделі, двері для доступу до попередніх тренувальних наборів даних все ще залишаються закритими, оскільки попередні тренувальні дані не випускаються разом з закритими моделями, ані разом з відкритими моделями. Крім того, технічні документи, що охоплюють такі дані, часто не містять важливих деталей, необхідних для повного розуміння та реплікації моделі. Ця перешкода робить важким проведення досліджень у певних напрямках мовних моделей, включаючи розуміння того, як тренувальні дані впливають на можливості та обмеження моделі. Framework OLMo побудував та випустив свій попередній тренувальний набір даних, Dolma, для сприяння відкритим дослідженням попереднього тренування мовних моделей. Набір даних Dolma є багатим та різноманітним збором понад 3 трильйонів токенів по 5 мільярдам документів, зібраних з 7 різних джерел, які звичайно використовуються потужними великомасштабними LLM для попереднього тренування та доступні загальній аудиторії. Композиція набору даних Dolma підсумовується в наступній таблиці.

Набір даних Dolma побудований за допомогою конвеєра з 5 компонентів: фільтрації мови, фільтрації якості, фільтрації вмісту, міксування джерел, дедуплікації та токенізації. OLMo також випустив звіт Dolma, який надає більше інформації про принципи дизайну та конструктивні деталі, а також більш детальний підсумок вмісту. Модель також відкрито джерела високопродуктивних інструментів для кураторства даних, щоб забезпечити легке та швидке кураторство попередніх тренувальних корпусів. Оцінка моделі відбувається у два етапи, починаючи з онлайн-оцінки для прийняття рішень під час тренування моделі та закінчуючи остаточною офлайн-оцінкою для агрегованої оцінки з перевірок моделі. Для офлайн-оцінки OLMo використовує.framework Catwalk, наш публічно доступний інструмент оцінки, який має доступ до широкого різноманіття наборів даних та форматів завдань. Framework використовує Catwalk для оцінки вниз по потоку, а також внутрішньої оцінки мовної моделі на нашому новому перплексному бенчмарку, Paloma. OLMo потім порівнює його з кількома публічними моделями, використовуючи фіксований конвеєр оцінки, як для оцінки вниз по потоку, так і для перплексної оцінки.
Тренування OLMo
Важливо відзначити, що моделі.framework OLMo тренуються за допомогою стратегії оптимізатора ZeRO, яка надається.framework FSDP через PyTorch, і тим самим суттєво знижує споживання пам’яті GPU шляхом шардування ваг моделі по GPU. З цим, у масштабі 7B, тренування можна проводити з мікро-пакетом розміром 4096 токенів на GPU на нашому апаратному забезпеченні. Framework тренування для моделей 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 у повній точності.
Оптимізатор
Framework OLMo використовує оптимізатор AdamW з наступними гіперпараметрами.

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

Тренувальні дані
Тренування включає токенізацію тренувальних екземплярів за допомогою словника та BPE-токенізації для моделі речень після додавання спеціального токену EOS в кінці кожного документа, а потім ми групуємо послідовні фрагменти по 2048 токенів для формування тренувальних екземплярів. Тренувальні екземпляри перемішуються точно так само для кожного проходу тренування. Порядок даних та точна композиція кожного тренувального пакету можуть бути відновлені з артефактів, які ми випускаємо. Усі випущені моделі OLMo були треновані щонайменше до 2T токенів (один епох на їхніх тренувальних даних), а деякі були треновані далі, починаючи другу епоху над даними з різним порядком перемішування. Враховуючи малий обсяг даних, який повторюється, це повинно мати незначний вплив.
Результати
Перевірка, використана для оцінки OLMo-7B, тренується до 2,46T токенів на наборі даних Dolma з лінійним спадом швидкості навчання, згаданим вище. Дальше налаштування цієї перевірки на наборі даних Dolma протягом 1000 кроків з лінійно спадною швидкістю навчання до 0 ще більше підвищує продуктивність моделі на перплексії та наборах завдань, описаних вище. Для остаточної оцінки розробники порівняли 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,真正 відкриту мовну модель, яка пропонує розробникам.framework для побудови, вивчення та розвитку мовних моделей, а також надає дослідникам доступ до коду тренування та оцінки, методів тренування, тренувальних даних, журналів тренування та проміжних перевірок моделі. Існуючі моделі state-of-the-art мають різні ступені відкритості, тоді як модель OLMo випустила весь.framework від тренування до даних до інструментів оцінки, тим самим звужуючи розрив у продуктивності при порівнянні з моделями state-of-the-art, такими як LLaMA2.












