2023, год открытых программ Магистратуры права (LLM)

2023, год проведения открытых программ магистратуры по праву (LLM)

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

Итак, давайте сделаем обзор года в открытых LLM!

Чтобы документ оставался удобным в использовании, мы не будем рассматривать модели с кодом.

Процесс создания предварительно обученной большой языковой модели

Сначала, как получить Большую Языковую Модель? (Если вы уже знаете, можете пропустить этот раздел!)

Архитектура модели (ее код) описывает ее конкретную реализацию и математическую структуру: это список всех ее параметров и их взаимодействия с входами. В настоящее время большинство высокоэффективных LLM являются вариациями архитектуры “только декодер” Transformer (более подробно в оригинальной статье об алгоритме Transformer). Тренировочный набор данных содержит все примеры и документы, на основе которых модель обучается (т.е. настраиваются параметры), следовательно, определенные выученные паттерны. Большая часть времени эти документы содержат текст, либо на естественном языке (например, французском, английском, китайском), языке программирования (например, Python, C) или любой структурированной информации, выраженной в виде текста (таблицы в markdown или latex, уравнения и т.д.). Токенизатор определяет, как текст из тренировочного набора преобразуется в числа (поскольку модель является математической функцией и, следовательно, нуждается в числах в качестве входных данных). Токенизация выполняется путем преобразования текста в подъединицы, называемые токенами (которые могут быть словами, подсловами или символами, в зависимости от методов токенизации). Размер словаря токенизатора указывает, сколько различных токенов он знает, обычно от 32 тыс. до 200 тыс. Размер набора данных часто измеряется как количество токенов, которое он содержит после разделения на последовательность этих отдельных, “атомистических” единиц, и в наши дни они варьируются от несколькихсот миллиардов до нескольких триллионов токенов! Затем гиперпараметры обучения определяют, как модель обучается. Насколько должны изменяться параметры для адаптации к каждому новому примеру? Насколько быстро должна обновляться модель?

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

Предварительно обученные LLM могут быть специализированы или адаптированы для определенной задачи после предварительного обучения, особенно когда веса открыто распространяются. Затем они используются в качестве отправной точки для случаев использования и приложений через процесс, называемый “настройкой модели”. Настройка модели включает дополнительные этапы обучения модели на отдельном – часто более специализированном и меньшем – наборе данных для оптимизации ее для конкретного приложения. Несмотря на то, что для этого шага требуется вычислительная мощность, он обычно намного менее затратный, как финансово, так и экологически, по сравнению с обучением модели с нуля. Вот почему высококачественные открытые предварительно обученные модели с открытым исходным кодом являются очень интересными, поскольку их можно свободно использовать и развивать сообществу, даже когда у практиков есть ограниченный бюджет для вычислений.

2022 – От гонки за размером до гонки за данными

Какие открытые модели были доступны сообществу до 2023 года?

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

  1. BLOOM (Большая наука — Многозадачная модель с открытым исходным кодом на нескольких языках) BLOOM – это семейство моделей, выпущенных BigScience – совместное предприятие, включающее 1000 исследователей из 60 стран и 250 организаций, координируемое Hugging Face в сотрудничестве с французскими организациями GENCI и IDRIS. Эти модели используют только декодеры трансформеров, с незначительными изменениями (пост-нормализацию из встроенного нормализатора [^1] и использование позиционных эмбеддингов ALiBi [^2]). Самая большая модель этого семейства имеет 176 миллиардов параметров и обучалась на 350 миллиардах токенов мультиязыковых данных на 46 языках и 13 языках программирования. Большая часть тренировочных данных была опубликована, и опубликованы детали источников, курирования и обработки данных. Это самая большая на сегодняшний день открытая модель со множеством языковых вариантов.

  2. OPT (Открытая предварительно обученная трансформерная модель) Семейство моделей OPT было выпущено компанией Meta. Эти модели используют архитектуру трансформерных декодеров, используя трюки из статьи GPT-3 (конкретная инициализация весов, предварительная нормализация), с некоторыми изменениями в механизме внимания (чередующиеся слои плотного и местного ограниченного внимания). Самая большая модель этого семейства содержит 175 миллиардов параметров и обучалась на 180 миллиардах токенов данных, полученных преимущественно из общедоступных источников (книги, данные соцсетей через Reddit, новости, Википедия и другие интернет-источники). Это модельное семейство имело сравнимую производительность с моделями GPT-3, при использовании оптимизации кодирования, чтобы сделать ее менее вычислительно интенсивной.

  3. GLM-130B (Общая языковая модель) GLM-130B был выпущен Университетом Цинхуа и компанией Zhipu.AI. Он использует полную архитектуру трансформеров с некоторыми изменениями (пост-слоевую нормализацию с DeepNorm, вращающиеся эмбеддинги). Модель с 130 миллиардами параметров была обучена на 400 миллиардах токенов английских и китайских интернет-данных (The Pile, Wudao Corpora и другие китайские корпусы). Она также имела сравнимую производительность с моделями GPT-3.

  4. Менее крупные или более специализированные модели с открытым исходным кодом
    Некоторые меньшие модели с открытым исходным кодом были выпущены, преимущественно в научных целях: Meta выпустила серию Galactica, LLM с до 120 миллиардами параметров, предварительно обученных на 106 миллиардах токенов научной литературы, и EleutherAI выпустила модель GPT-NeoX-20B, полностью открытую (включая архитектуру, веса и данные) модель декодирующего трансформера, обученную на 500 миллиардах токенов (с использованием RoPE и некоторых изменений внимания и инициализации) для предоставления полной артефакта для научных исследований.

Эти огромные модели были захватывающими, но также очень дорогостоящими в использовании! При выполнении вывода (вычисление предсказаний модели), модель должна загружаться в память, но 100-миллиардная модель обычно требует 220 ГБ памяти для загрузки (этот процесс будет объяснен ниже), что очень большой объем и недоступен для большинства организаций и практиков!

Однако в марте 2022 года вышла новая статья от DeepMind, исследующая оптимальное соотношение токенов к параметрам модели для заданного вычислительного бюджета. Другими словами, если у вас есть сумма X денег на тренировку модели, какими должны быть соответствующие размеры модели и данных? Авторы выяснили, что в целом, при среднем вычислительном бюджете, выделяемом на LLM, модели должны быть меньшими, но обучаться на значительно большем количестве данных. Их собственная модель, Chinchilla (не являющаяся открытой моделью), была моделью с 70 миллиардами параметров (треть размера вышеперечисленных моделей), но обучалась на 1,4 трлн. токенов данных (от 3 до 4 раз больше данных). У нее была сравнимая или лучшая производительность по сравнению с более крупными моделями, как открытыми, так и закрытыми исходными кодами.

Этот изменяющий парадигму сдвиг, хотя возможно уже известный в закрытых лабораториях, обрушился на научное сообщество открытого доступа.

2023 – год открытых релизов

Рост малых больших языковых моделей

🌊 В 2023 году возникла волна декодерных трансформеров с новыми заранее обученными моделями, которые выходили каждый месяц и вскоре даже каждую неделю или даже день: LLaMA (от Meta) в феврале, Pythia (от Eleuther AI) в апреле, MPT (от MosaicML) в мае, X-GEN (от Salesforce) и Falcon (от TIIUAE) в июне, Llama 2 (от Meta) в июле. В сентябре появились Qwen (от Alibaba) и Mistral (от Mistral.AI), в ноябре – Yi (от 01-ai), в декабре выпустили DeciLM (от Deci), Phi-2 и SOLAR (от Upstage). Все эти релизы a) включали модельные веса (под различными открытыми лицензиями) и b) демонстрировали хорошую производительность моделей меньшего размера (от 3 млрд до 70 млрд параметров), и поэтому сообщество мгновенно их приняло. Почти все эти модели используют архитектуру декодерных трансформеров со своими тонкостями (ALiBi или RoPE, RMS-преднормализация, SwiGLU), а также некоторыми изменениями в функциях внимания (Flash-Attention, GQA, скользящие окна) и разными реализациями кодовой базы, чтобы оптимизировать скорость обучения или вывода. Эти изменения вероятно повлияют на производительность и скорость обучения в некоторой степени; однако, поскольку все архитектуры были общедоступно выпущены со своими весами, основные различия, которые остаются, – это обучающие данные и лицензирование моделей.

🦙,🔮 Первой семьей моделей в этой серии была семья LLaMA, выпущенная компанией Meta AI. Явная цель исследователей заключалась в обучении набора моделей различных размеров с наилучшей возможной производительностью при заданном бюджете вычислений. В этой перспективе они решили обучить более маленькие модели еще большим объемом данных и на более многочисленном количестве шагов, чем обычно, что позволило достичь более высокой производительности при меньшем размере модели (предполагая компромисс в эффективности обучения вычислений). Самая большая модель в семействе Llama 1 – это модель с 65 млрд параметров, обученная на 1,4 трлн токенах, в то время как более маленькие модели (соответственно, с 6 и 13 млрд параметров) были обучены на 1 трлн токенах. Маленькая модель LLaMA с 13 млрд параметров превзошла GPT-3 по большинству бенчмарков, а самая большая модель LLaMA была определением передового предложения, когда она была выпущена. Однако права на использование весов были выпущены с некоммерческой лицензией, что ограничило их принятие сообществом. Модели Pythia были выпущены безошибочной некоммерческой лабораторией Eleuther AI и представляли собой набор LLMs разных размеров, обученный на полностью публичных данных, предоставленных для помощи исследователям в понимании разных этапов обучения LLM.

📂,🦅 Модели MPT, вышедшие несколько месяцев спустя, выпущены компанией MosaicML, показали сопоставимую производительность с разрешением на коммерческое использование и деталями их смешанного обучения. Первая модель MPT была моделью на 7 млрд параметров, за которой последовали версии на 30 млрд в июне, обе обучены на 1 трлн токенах английского языка и кода (с использованием данных из C4, CommonCrawl, The Stack, S2ORC). Моделям MPT быстро последовали модели на 7 и 30 млрд из Falcon-серии, выпущенные компанией TIIUAE и обученные на 1 до 1,5 трлн токенах английского языка и кода (RefinedWeb, Project Gutemberg, Reddit, StackOverflow, Github, arXiv, Wikipedia и другие источники). Позднее в том же году была выпущена гигантская модель на 180 млрд. Модели Falcon, данные и процесс обучения подробно описаны в техническом докладе и последующей научной статье.

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

✖️,🦙🦙 В начале лета появились модели X-Gen от Salesforce, модели с 7 миллиардами параметров, обученные на 1,5 трлн токенов “естественного языка и кода” в несколько этапов, следуя системе планирования данных (не все данные одновременно вводятся в модель). X-Gen была немного затенена более заметной новой семьей LLaMA-2 от Meta, диапазон моделей от 7 до 70 миллиардов параметров, обученных на 2 трлн токенов “из общедоступных источников”, с лицензией для сообщества и обширным процессом донастройки на основе предпочтений человека (RLHF), так называемой процедурой выравнивания.

🍃,🔟,☀️ Через пару месяцев была выпущена первая модель от новой созданной стартапом Mistral, так называемая Mistral-7B, обученная на неопределенном количестве токенов с помощью данных “извлеченных из открытого веба”. Конец 2023 года был насыщен выпуском моделей, включая вторую более крупную модель от Mistral (Mixtral 8x7B), первую впечатляющую модель от Deci.AI под названием DeciLM, а также более крупное слияние моделей от upstage, SOLAR, обученное на неопределенном количестве и источников данных. Все эти модели демонстрировали стабильный рост в рейтингах и открытых бенчмарках.

🇨🇳 Параллельно с этим, значительное событие конца 2023 года – это уровень развития и количество моделей, обученных в Китае и открыто доступных. Было выпущено две серии моделей на двухязычном англо-китайском языке: Qwen от Alibaba, модели с 7 до 70 миллиардов параметров, обученные на 2,4 трлн токенов, и Yi от 01-AI, модели с 6 до 34 миллиардов параметров, обученные на 3 трлн токенов. Производительность этих моделей удалось превзойти предыдущие модели как на открытых рейтингах, например на рейтинге Open LLM, так и на некоторых из самых сложных бенчмарков, например на Skill-Mix. Еще одним сильным конкурентом конца 2023 года стала кодовая модель DeepSeek от DeepSeek AI, обученная с нуля на 2 трлн токенов с составом 87% кода и 13% естественного языка на английском и китайском языках (в основном модель на основе кода).

Диалоговые модели повсюду

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

💬 Обучение на основе чата – это вариант надзорного обучения, при котором помеченные данные представляют собой чат-данные (многоразовые диалоговые данные, подобные тем, которые можно найти в социальных сетях), на которых вы улучшаете свою модель. Вы используете ту же технику, что и при обучении модели: для декодирующих трансформеров вы обучаете модель предсказывать следующее слово по одному (называемый авторегрессионным подходом). 🗣️ Обучение по инструкциям (IFT) следует той же методике, но с использованием наборов данных инструкций, которые содержат набор запросов-подсказок плюс ответы (с возможным дополнительным вводом при необходимости). Эти наборы данных обучают модели, как следовать инструкции, и могут быть сгенерированы людьми или LLM. Использование синтетических наборов данных на основе вывода модели большого масштаба (наборов данных, которые состоят из генераций модели, например, генераций от GPT-4, либо от инструкций, либо от взаимодействия пользователей и модели) является одним из способов достижения инструкций и настройки чата. Это часто называется дистилляцией, поскольку это включает передачу знаний от высокопроизводительной модели для обучения или настройки более маленькой модели.

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

🏅 Обучение с подкреплением на основе обратной связи от людей (RLHF) – это конкретный подход, который стремится согласовать то, что модель предсказывает, с тем, что люди наиболее предпочитают (в зависимости от определенных критериев). Это (в начале года) была новая методика настройки. Из заданного подсказки модель генерирует несколько возможных ответов; люди ранжируют эти ответы; эти рейтинги используются для обучения так называемой модели предпочтений (которая учится давать оценку, отражающую предпочтение людей к ответам); модель предпочтений затем используется для настройки языковой модели с использованием обучения с подкреплением. Для получения более подробной информации см. этот блог, оригинальную статью об RLHF здесь или статью от Anthropic о RLHF. Это дорогой метод (разметка/ранжирование + обучение новой модели + настройка стоит довольно дорого), который в основном использовался для согласования моделей с целями безопасности. Была разработана менее дорогая вариация этого метода, которая использует высококачественный LLM для ранжирования выходных данных модели вместо людей: обучение с подкреплением на основе обратной связи от ИИ (RLAIF).

👍 Прямая оптимизация предпочтений (DPO) – это еще одна вариация RLHF, но не требующая обучения и использования отдельной модели предпочтений – метод требует того же набора данных ранжирования, созданного людьми или ИИ, но использует эти данные непосредственно для обновления модели, смотря на разницу между ее исходной и оптимальной политиками (которая могла бы предсказывать наилучшие ранжированные ответы). Другими словами, согласованная модель также является моделью предпочтений, что значительно упрощает процедуру оптимизации, при этом демонстрируя эквивалентные конечные результаты.

Таким образом, вернемся к нашей волне небольших моделей с открытой конфигурацией от (в основном) частных компаний, многие из которых были выпущены с соответствующими настроенными версиями: MPT-7B также поставлялся с инструктивной и чат-версией, с настроенными версиями Falcon и XGen-моделей были выпущены в конце года, а Llama-2, Qwen и Yi были представлены в виде чат-версий, а DeciLM – с наглядной версией. Выпуск Llama-2 был особенно заметен из-за сильной ориентированности на безопасность как в моделях предварительного обучения, так и в моделях после настройки.

Что насчет сообщества?

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

В начале 2023 года уже были выпущены несколько наборов данных для инструкций и тюнинга чата. Например, для предпочтений человека, набор данных WebGPT от OpenAI, набор данных HH-RLHF от Anthropic и Summarize от OpenAI были пионерами в этом направлении. Примеры наборов данных для инструкций – Public Pool of Prompts от BigScience, FLAN 1 и 2 от Google, Natural Instructions от AllenAI, Self Instruct, фреймворк для генерации автоматических инструкций от исследователей из разных организаций, SuperNatural instructions, бенчмарк инструкций, созданный экспертами и иногда используемый как данные для тонкой настройки, Unnatural instructions, автоматически созданный набор данных инструкций от Тель-Авивского университета и Meta, и другие.

❄️ Зима 2022/2023: В январе этого года китайские исследователи из разных учреждений выпустили набор данных инструкций для чатов Human ChatGPT Instruction corpus (HC3), который содержал ответы людей на разные вопросы в сравнении с ответами модели. Март был полон релизами: Стэнфорд представил модель Alpaca, которая была первой моделью LLaMA для следования инструкциям (7B), а также связанный набор данных из 52 тысяч инструкций, сгенерированных с помощью LLM. Организация LAION (некоммерческая открытая лаборатория) выпустила набор данных Open Instruction Generalist (OIG), состоящий из 43 миллионов инструкций, созданных с использованием аугментации данных и компилированных из других существующих источников данных. В том же месяце организация LMSYS org (в Университете Калифорнии, Беркли) выпустила Vicuna, также модель LLaMA с тонкой настройкой (13B), на этот раз на данных чата: разговоры между пользователями и ChatGPT, которые пользователи сами публично позволяли использовать на платформе ShareGPT. Также был выпущен набор данных Guanaco, расширение набора данных Alpaca (с добавленными 500 тысячами записей на разных языках) и соответствующая тонкая настройка LLaMA-7B.

🌱 Весна: В апреле лаборатория BAIR (Berkeley AI Research) выпустила модель Koala, тюнинговую LLaMA-модель для чата, используя несколько предыдущих наборов данных (Alpaca, HH-RLHF, WebGPT, ShareGPT), а DataBricks выпустил набор данных Dolly, огромное человеческое усилие из 15 тысяч вручную созданных инструкций, а также связанную модель, тонкую настройку Pythia. В мае Тсинхуа университет выпустил набор данных UltraChat, содержащий 1,5 миллиона бесед, в которых присутствуют инструкции, а также UltraLLaMA, тонкую настройку на этом наборе данных. Затем Microsoft выпустил GPT4-LLM набор данных/фреймворк для генерации инструкций с помощью GPT4, а в июне исследователи Microsoft поделились новым методом Orca для создания наборов данных инструкций с использованием вывода рассуждений более крупных моделей (которые объясняют свои рассуждения пошагово) – это было скоро воспроизведено сообществом (в частности Alignementlab.ai), которое создало наборы данных Open Orca , состоящие из нескольких миллионов записей, а затем использовали их для тонкой настройки ряда моделей (Llama, Mistral и др.). В мае и июне Camel-AI выпустил несколько наборов данных для инструкций или чатов на разные темы (более 20 тысяч примеров в каждой области: физика, биология, химия, …), полученных с использованием GPT4. Также в июне была выпущена платформа Airoboros для тонкой настройки моделей с использованием данных, сгенерированных моделью (с использованием подхода self-instruct), а также несколько наборов данных для инструкций.

🌻Лето: В августе китайская некоммерческая организация OpenBMB выпустила UltraLM (чат, прекрасно разработанный на основе LLaMA), а в сентябре они выпустили связанный набор данных предпочтений UltraFeedback, набор данных обратной связи по входам, сравниваемых с помощью GPT4 (с аннотациями). В течение лета коллектив NousResearch выпустил несколько подгонок (особенно коллекции Hermes и Capybara) на основе нескольких частных и общедоступных обучающих наборов данных. В сентябре студенческая команда из Университета Цинхуа выпустила OpenChat, подгонку LLaMA с использованием новой стратегии донастройки RL.

🍂 Осень: В октябре компания Hugging Face выпустила [Zephyr](https://huggingface.co/Hugging FaceH4/zephyr-7b-beta), подгонку Mistral с использованием DPO и AIF на основе UltraChat и UltraFeedback, а члены сообщества выпустили OpenHermes 2, добавочную передачу Mistral-7B на 900 тыс. записей, полученных из Интернета или сгенерированных с помощью Axolotl. Компания Lmsys выпустила LMSYS-Chat-1M, реальные разговоры пользователей с 25 LLM. В ноябре OpenBuddy выпустил OpenBuddy-Zephyr, диалог с множеством поворотов, на основе Zephyr. В ноябре компания NVIDIA выпустила HelpSteer, набор данных для точной настройки, предоставляющий подсказки, связанные с модельными ответами и оценками этих ответов по нескольким критериям, а Microsoft Research выпустил модель Orca-2, глубокую донастройку Llama 2 на основе нового синтетического набора данных рассуждений. В декабре Беркли выпустил модель Starling, точную донастройку RLAIF Open-Chat, и связанный набор данных Nectar, 200 тыс. записей сравнительных данных.

Как мы видим, развитие этого года основано как на создании новых наборов данных с использованием высококачественных предварительно обученных LLM, так и на всех открытых моделях, выпущенных сообществом, делающим эту область продвигаться вперед стремительными темпами! И если сейчас вы видите одно из этих имен в названии модели, у вас будет представление о ее происхождении 🤗

Некоторые специализированные наборы данных (такие, как наборы Fine-tuning для математических задач MetaMath или MathInstruct, Evol-Instruct, математические и кодовые инструкции, CodeAlpaca и CodeCapybara инструкции по коду) также были выпущены, но мы не будем подробно на них останавливаться здесь, хотя они также использовались для улучшения производительности модели в определенных задачах. Вы также можете посмотреть на сборник других актуальных наборов данных здесь.

Демократизация доступа

Слияние: Экстремальная настройка

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

Но что означает объединение моделей?

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

Эти техники позволяют любому легко создавать комбинации моделей и делают это особенно легким тем обстоятельством, что большинство моделей в настоящее время являются вариациями на одной и той же архитектуре. Это объясняет, почему некоторые модели, представленные на открытой доске лидеров LLM, имеют названия, такие как llama2-zephyr-orca-ultra. В этом конкретном примере, вероятно, объединены модели llama2 и zephyr, подгоняемые на наборах данных orca и ultra. Обычно более подробную информацию можно найти в соответствующей карточке модели на платформе Hugging Face.

PEFT: Персонализация на кончиках ваших пальцев

Иногда вам может потребоваться более контролируемая персонализация, но у вас недостаточно памяти, чтобы загрузить всю модель в память для настройки. А вы знали, что для настройки не нужно использовать всю модель?

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

Квантование: Модели работающие везде

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

В этом на помощь приходит квантование! Квантование – это особая техника, которая уменьшает размер модели, изменяя точность ее параметров.

Что это означает?

В компьютере числа хранятся с определенной точностью (например, float32, float16, int8 и т. д.). Точность указывает и на тип числа (является ли оно числом с плавающей точкой или целым) и на то, сколько памяти занимает число: float32 хранит числа с плавающей точкой на 32 битах. Более подробное объяснение можно найти по этой ссылке. Таким образом, чем выше точность, тем больше физической памяти занимает число, так как оно будет храниться на более широком наборе битов.

Таким образом, если уменьшить точность, уменьшится память, которую занимает каждый параметр модели, следовательно, уменьшится ее размер! Это также означает, что уменьшается… фактическая точность вычислений, что может снизить производительность модели. Тем не менее, мы выяснили, что на больших моделях этот снижение производительности на самом деле очень ограничено.

Вернемся к нашему вышеприведенному примеру: для нашей модели с 30B параметров в формате float16 требуется немного меньше 66G оперативной памяти, в формате 8bit она потребляет в два раза меньше, то есть 33G ОЗУ, а в формате 4bit нам даже хватит всего 16G ОЗУ, что делает ее значительно более доступной.

Существует множество способов перехода от одной точности к другой, и множество различных схем “перевода”, у каждой из которых есть свои преимущества и недостатки. Популярные подходы включают bitsandbytes, GPTQ и AWQ. Некоторые пользователи, такие как TheBloke, даже преобразуют популярные модели, чтобы сделать их доступными для сообщества. Все они очень новые и все еще развиваются, и мы надеемся, что со временем произойдет еще больше прогресса в этой области.

Что дальше?

Год еще не закончился! И эти последние месяцы, дни, часы уже принесли свою долю сюрпризов: сможет ли новая архитектура, наконец, превзойти простую и эффективную модель Transformer?

Новые релизы включают в себя:

  • Смесь экспертов:
    • Mixtral, модель, состоящая из 8 подмоделей (декодеров трансформера), и для каждого ввода маршрутизатор выбирает 2 лучшие подмодели и суммирует их выходы.
  • Несколько моделей пространства состояний (моделей, которые отображают вход на выход через скрытое пространство и могут быть представлены как RNN или CNN в зависимости от задачи):
    • Mamba, модель пространства состояний с добавленным механизмом выбора
    • Striped Hyena, модель пространства состояний с быстрыми свертками

Пока еще рано сказать, займут ли эти новые подходы верх над Transformer, но модели пространства состояний обещают быть очень перспективными!

Выводы

  • В этом году мы наблюдали рост открытых релизов со стороны различных участников (крупные компании, стартапы, исследовательские лаборатории), что позволяет сообществу начать эксперименты и исследования на невиданный ранее уровень.
  • Открытость в объявлениях о моделях имела свои колебания, начиная с очень открытых релизов в начале года (смешанные наборы данных, веса, архитектуры), и заканчивая поздними релизами, которые не содержат никакой информации о данных для обучения, поэтому они не могут быть воспроизведены.
  • Открытые модели появились из множества новых мест, включая Китай, где несколько новых участников выдвинули себя в качестве сильных контендеров в игре LLM.
  • Возможности персонализации достигли пика благодаря новым стратегиям для тонкой настройки (RLHF, адаптеры, объединение), которые только начинают свое развитие.
  • Более низкие размеры моделей и улучшения в квантовании сделали LLM доступными для гораздо большего числа людей!
  • Появились новые архитектуры – смогут ли они, наконец, заменить Transformer?

Вот и все, друзья! Я надеюсь, вам понравился обзор этого года, вы узнали что-то новое и разделяете мое восторженное отношение к тому, как много прогресса в области искусственного интеллекта теперь зависит от открытого исходного кода и совместных усилий сообщества! 🤗

[^1]: Нормализация встраивания после постобработки – это трюк, который делает обучение более стабильным. [^2]: Позиционные встраивания ALiBi применяют штраф, когда токены, находящиеся на большом расстоянии друг от друга в последовательности, соединяются моделью (в то время как обычные позиционные встраивания просто хранят информацию о порядке и соответствующем положении токенов в последовательности).