Solar 10.7B: сравнение производительности с другими известными программами LLM

Solar 10.7B: сравнение производительности с другими известными программами LLM

Исходный узел: 3078029

Введение

Трансформеры и модели большого языка покорили мир после того, как они были представлены в области Обработка естественного языка (НЛП). С момента своего создания эта область быстро развивалась благодаря инновациям и исследованиям, которые делают эти LLM более эффективными. К ним относятся LoRA (адаптация низкого ранга), Flash Attention, Quantization и недавний подход известных LLM к слиянию. В этом руководстве мы рассмотрим новый подход к слиянию LLM (Solar 10.7B), представленный ИИ Upstage.

СОЛНЕЧНАЯ 10.7B | Известные LLM | Апстейдж ИИ

Цели обучения

  • Познакомьтесь с уникальной архитектурой Solar 10.7B и ее инновационным «глубинным масштабированием».
  • Изучите процесс предварительного обучения модели и разнообразные данные, которые она потребляет.
  • Проанализируйте впечатляющие показатели производительности Solar 10.7B при выполнении различных задач НЛП.
  • Сравните Solar 10.7B с другими известными LLM, такими как Mixtral MoE.
  • Узнайте, как получить доступ к Solar 10.7B и работать с ним в своих проектах.

Эта статья была опубликована в рамках Блогатон по Data Science.

Содержание

Что такое СОЛНЕЧНАЯ 10.7B?

Upstange AI представила новую модель SOLAR 10.7B с 10.7 миллиардами параметров. Эта модель является результатом слияния двух моделей с 7 миллиардами параметров, в частности двух моделей Llama 2 7 Billion, которые были предварительно обучены для создания SOLAR 10.7B. Уникальным аспектом этого слияния является применение нового подхода под названием Depth Up-Scaling (DUS), в отличие от метода Mixtral, в котором задействовано несколько экспертов.

Новая модель 10.7B превзошла по характеристикам Mistral 7B, Qwen 14B. Была выпущена версия Instruct под названием SOLAR 10.7B Instruct, и после ее выпуска она возглавила таблицу лидеров, превзойдя как Qwen 72B, так и большую языковую модель Mixtral 8x7B. Несмотря на то, что модель SOLAR имеет 10.7 миллиардов параметров, она смогла превзойти LLM, которые в несколько раз больше ее размера.

Что такое масштабирование глубины?

Давайте разберемся, как все началось, и формирование SOLAR 10.7B. Все начинается с одной базовой модели. The Upstage выбрала Llama 2, содержащую 32 слоя трансформера, для своей базовой модели из-за более широкого круга участников с открытым исходным кодом. Затем была создана копия этой базовой модели.

Что такое масштабирование в глубину? | СОЛНЕЧНАЯ 10.7B | Известные LLM | Апстейдж ИИ

Затем мы получаем две базовые модели. Что касается грузов, Upstage взял предварительно обученные веса от Mistral 7B, поскольку на тот момент он показал лучшие результаты. Теперь приступаем к масштабированию в глубину. Каждая из базовых моделей содержит 32 слоя. Из этих 32 слоев мы удаляем m слоев, то есть последние m слоев исходной модели и первые m слоев из ее копии. В результате в каждом из них получается до 24 слоев. Затем мы объединяем эти две модели:

"

Две базовые модели объединяются для формирования масштабированной модели. Масштабированная модель теперь содержит 48 слоев. Масштабированная модель работает плохо из-за слияния. Следовательно, масштабированная модель проходит предварительное обучение. Это глубинное масштабирование, сопровождаемое продолжающейся предварительной тренировкой, вместе образует масштабирование глубины (DUS).

глубинное масштабирование | СОЛНЕЧНАЯ 10.7B | Известные LLM | Апстейдж ИИ

Обучение SOLAR 10.7B

Масштабированную модель необходимо предварительно обучить из-за снижения производительности из-за слияния. Создатели заявили, что производительность быстро повышается при предварительной тренировке. Предварительная подготовка/тонкая настройка включала два этапа.

Первым этапом была доработка инструкций. В этом типе точной настройки модель проходила обучение на наборах данных для соответствия инструкциям. Процесс тонкой настройки включал работу с популярными наборами данных с открытым исходным кодом, такими как Alpaca-GPT4 и OpenOrca. В документе отмечается, что для точной настройки объединенной модели использовалась только часть набора данных. Помимо данных из открытого исходного кода, Upstage даже обучил его некоторым математическим данным из закрытого источника.

На втором этапе выполняется настройка выравнивания. В ходе настройки выравнивания мы переходим к первой стадии точной настройки модели и далее дорабатываем ее, чтобы она была более согласована с людьми или мощными искусственными интеллектами, такими как GPT4. Это было сделано с помощью DPOTrainer (прямая оптимизация предпочтений), методики, подобной RLHF (обучение с подкреплением с обратной связью с человеком).

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

Результаты оценки и сравнительного анализа

Таблица лидеров Hugging Face OpenLLM использует несколько тестов для оценки возможностей моделей большого языка (LLM). Каждый тест оценивает различные аспекты эффективности LLM:

  • ARC (Задание на рассуждение AI2): Этот тест проверяет способность магистратуры отвечать на научные вопросы элементарного уровня, обеспечивая понимание модели и обоснование научных концепций.
  • MMLU (Массовое многозадачное понимание языка): MMLU — это разнообразный тест, охватывающий 57 различных задач, включая вопросы, связанные с базовой математикой, историей, правом, информатикой и другими. Он оценивает способность LLM обрабатывать и понимать информацию по нескольким дисциплинам.
  • ХеллаСваг: Целью программы HellaSwag является проверка здравого смысла студентов-магистрантов, позволяющих им применять повседневную логику к различным сценариям, оценивая их способность выносить интуитивные суждения, аналогичные человеческим мыслительным процессам.
  • Виногранде: Этот тест, аналогичный HellaSwag, фокусируется на здравом смысле, но имеет другие нюансы по сравнению с HellaSwag. Это требует от LLM продемонстрировать высокий уровень понимания и логического рассуждения.
  • ПравдивыйQA: TruthfulQA оценивает точность и достоверность информации, предоставляемой LLM. Он включает в себя вопросы из разных областей, включая науку, право, политику и т. д., проверяя способность модели генерировать правдивые и основанные на фактах ответы.
  • GSM8К: Программа GSM8K, специально разработанная для проверки математических способностей, включает в себя многоэтапные математические задачи, требующие логических рассуждений и вычислительного мышления, что дает возможность магистрантам оценить свои навыки решения математических задач.

Базовая модель SOLAR 10.7B превзошла по производительности такие модели, как модель Mistral 7B Instruct v0.2 и модель Qwen 14B. Версия SOLAR 10.7B для Instruct смогла превзойти даже очень большие языковые модели, такие как Mistral 8x7B, Qwen 72B, Falcon 180B и другие огромные модели большого языка. Он опередил все модели в бенчмарке ARC и TruthfulQA.

Начало работы с SOLAR 10.7B

Модель SOLAR 10.7B легко доступна в HuggingFace Hub для работы с библиотекой трансформаторов. Доступны для работы даже квантовые модели SOLAR 10.7B. В этом разделе мы загрузим квантованную версию, попробуем ввести модель с различными задачами и увидеть сгенерированный результат.

Для тестирования квантованной версии SOLAR 10.7B мы будем работать с библиотекой Python llama_cpp_python, которая позволяет нам запускать квантованные модели большого языка. В этой демонстрации мы будем работать с бесплатной версией Google Colab.

Скачать пакет

!CMAKE_ARGS="-DLLAMA_CUBLAS=on" FORCE_CMAKE=1 pip3 install llama-cpp-python
!pip3 install huggingface-hub
  • Ассоциация CMAKE_ARGS="-DLLAMA_CUBLAS=вкл" и FORCE_CMAKE=1, позволит llama_cpp_python для работы с графическим процессором Nvidia, доступным в бесплатной версии Colab
  • Затем мы устанавливаем llama_cpp_python пакет через pip3
  • Мы даже скачиваем хаб для лица, с помощью которого мы будем загружать квантованную модель SOLAR 10.7B

Для работы с моделью SOLAR 10.7B нам необходимо сначала загрузить ее квантованную версию. Чтобы загрузить его, мы запустим следующий код:

from huggingface_hub import hf_hub_download

# specifying the model name
model_name = "TheBloke/SOLAR-10.7B-Instruct-v1.0-GGUF"
# specifying the type of quantization of the model
model_file = "solar-10.7b-instruct-v1.0.Q2_K.gguf"

# download the model by specifying the model name and quantized model name
model_path = hf_hub_download(model_name, filename=model_file)

Работа с Hugging Face Hub

Здесь мы работаем с Hugging_face_hub чтобы загрузить квантованную модель. Для этого мы импортируем hf_hub_download который принимает следующие параметры

  • название модели: Это тип модели, которую мы хотим загрузить. Здесь мы хотим скачать модель SOLAR 10.7B Instruct GGUF.
  • файл_модели: Здесь мы сообщаем, какую квантованную версию мы хотим скачать. Здесь мы загрузим 2-битную квантованную версию инструкции SOLAR 10.7B.
  • Затем мы передаем эти параметры в hf_hub_download, который принимает эти параметры и загружает указанную модель. После загрузки возвращает путь, по которому загружается модель.
  • Возвращенный путь сохраняется в папке модель_путь переменная

Теперь мы можем загрузить эту модель через ламу_cpp_python библиотека. Код для загрузки модели будет такой, как показано ниже.

from llama_cpp import Llama


llm = Llama(
    model_path=model_path,
    n_ctx=512,  # the number of i/p tokens the model can take
    n_threads=8, # the number of threads to use
    n_gpu_layers=110 # how many layers of the model to offload to the GPU
)

Импортируйте класс ламы

Мы импортируем класс Llama из llama_cpp, который принимает следующие параметры

  • путь_модели: Эта переменная принимает путь, по которому хранится наша модель. У нас есть путь из предыдущего шага, который мы предоставим здесь.
  • n_ctx: Здесь мы указываем длину контекста для модели. На данный момент мы предоставляем 512 токенов для длины контекста.
  • n_threads: Здесь мы упоминаем количество потоков, которые будет использовать класс Llama. На данный момент мы передаем 8, потому что у нас 4-ядерный процессор, где каждое ядро ​​может выполнять 2 потока одновременно.
  • n_gpu_layers: Мы даем это, если у нас есть работающий графический процессор, что мы и делаем, потому что работаем с бесплатным Colab. Для этого мы передаем 110, что говорит о том, что мы хотим выгрузить всю модель в графический процессор и не хотим, чтобы какая-то ее часть запускалась в системной оперативной памяти.
  • Наконец, мы создаем объект из этого класса Llama и передаем его переменной llm.

Запуск этого кода загрузит квантованную модель SOLAR 10.7B в графический процессор и установит соответствующую длину контекста. Теперь пришло время сделать некоторые выводы по этой модели. Для этого мы работаем с приведенным ниже кодом

output = llm(
  "### User:nWho are you?nn### Assistant:", # User Prompt
  max_tokens=512,  # the number of output tokens generated
  stop=["</s>"],   # the token which tells the LLM to stop
)


print(output['choices'][0]['text']) # llm generated text

Сделайте вывод о модели

Чтобы вывести модель, мы передаем в LLM следующие параметры:

  • Шаблон подсказки/чата: Это шаблон, необходимый для общения с моделью. Вышеупомянутый шаблон (### User:n{user_prompt}?nn### Assistant:) подходит для модели SOLAR 10.7B. В шаблоне предложение после Информация о пользователе — это приглашение пользователя, и генерация будет сгенерирована после помощник
  • макс_токены: Это максимальное количество токенов, которое может вывести модель большого языка при подсказке. На данный момент мы ограничиваем его 512 токенами.
  • стоп: Это стоп-токен. Токен остановки сообщает модели большого языка, что ей необходимо прекратить генерацию дальнейших токенов. Для SOLAR 10.7B стоп-токен —

Запустив это, результаты будут сохранены в выходной переменная. Полученный результат аналогичен вызову API OpenAI. Следовательно, мы можем получить доступ к генерации через данный оператор печати, что аналогично тому, как мы получаем доступ к генерации из ответов OpenAI. Полученный результат можно увидеть ниже.

"

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

output = llm(
  "### User:nHow many eggs can a monkey lay in its lifetime?nn### Assistant:",
  max_tokens=512,  
  stop=["</s>"],        
)


print(output['choices'][0]['text'])
"
output = llm(
  "### User:nHow many smartphones can a human eat?nn### Assistant:",
  max_tokens=512,  
  stop=["</s>"],        
)


print(output['choices'][0]['text'])
"

Здесь мы видим два примера, связанных со здравым смыслом, и, на удивление, SOLAR 10.7B справляется с ними очень хорошо. Модель большого языка смогла дать правильные ответы с полезным содержанием. Давайте попробуем проверить математические и рассуждения модели с помощью следующих подсказок.

output = llm(
  "### User:nLook at this series: 80, 10, 70, 15, 60, ... 
  What number should come next?nn### Assistant:",
  max_tokens=512,  
  stop=["</s>"],        
)


print(output['choices'][0]['text'])
"
output = llm(
  "### User:nJohn runs faster than Ken. Magnus runs faster than John. 
  Does Ken run faster than Magnus?nn### Assistant:",
  max_tokens=512,  
  stop=["</s>"],        
)


print(output['choices'][0]['text'])
"

Судя по подсказкам данного примера, SOLAR 10.7B дал хороший ответ. Он умел правильно отвечать на заданные математические и логические рассуждения и даже на вопросы, связанные со здравым смыслом. В целом мы можем заключить, что большая языковая модель SOLAR 10.7B вызывает хорошие отзывы.

SOLAR 10.7B против Mixtral MoE

Mixtral 8x7B MoE создан Mistral AI с архитектурой Mixture of Experts. Короче говоря, эта смесь экспертов, Мистраль, использует 8 моделей по 7 миллиардов параметров. В каждой из этих моделей некоторые сети прямого распространения заменены другими слоями, называемыми экспертами. Следовательно, считается, что Mixtral 8x7B имеет 8 экспертов. И для каждого, кого модель принимает во входном приглашении, будет механизм пропуска, который выбирает только 2 из этих экспертов из 8. Затем эти 2 эксперта принимают это входное приглашение и генерируют окончательные выходные токены. Итак, мы видим, что в этом типе слияния есть некоторая сложность: нам приходится заменять слои прямой связи другими слоями и вводить механизм пропуска, который выбирает между этими экспертами.

В то время как модель SOLAR 10.7B от Upstage использует метод увеличения глубины. При увеличении глубины мы просто удаляем некоторое количество начальных слоев из базовой модели и такое же количество финальных слоев из ее копии. Затем мы просто объединяем модели, накладывая одну поверх другой. И всего за несколько эпох тонкой настройки объединенная модель может показать быстрый рост производительности. Здесь мы не заменяем существующие слои какими-то другими слоями. Также здесь у нас нет литникового механизма. В целом, увеличение глубины — это простой и эффективный способ объединения моделей, не требующий каких-либо сложностей.

Также сравнивая характеристики, масштабирование глубины, хотя, просто объединив две 7 миллиардов моделей, SOLAR 10.7B смог явно превзойти Mixtral 8x7B, который по сравнению с ним является гораздо более крупной моделью. Это доказывает эффективность простого метода слияния по сравнению со сложным, таким как Mixtral of Experts.

Ограничения и соображения

  • Исследование гиперпараметров: Важнейшим ограничением является недостаточное исследование гиперпараметров в подходе DUS. Из-за аппаратных ограничений 8 слоев были удалены с обоих концов базовой модели без проверки, является ли это число оптимальным для достижения наилучшей производительности. Будущая работа направлена ​​на проведение более строгих экспериментов и анализ для решения этой проблемы.
  • Вычислительные требования: Модель требует огромного количества вычислительных ресурсов для обучения и вывода. Это может ограничить его использование, в основном для тех, у кого ограничены вычислительные возможности.
  • Предвзятости в обучающих данных. Как и все модели машинного обучения, она подвержена предвзятости, присутствующей в обучающих данных, что потенциально может привести к искажению результатов в определенных сценариях.
  • Воздействие на окружающую среду: Даже потребление энергии, необходимое для обучения и эксплуатации модели, вызывает экологические проблемы, подчеркивая важность устойчивого развития ИИ.
  • Более широкие последствия модели: Несмотря на то, что модель демонстрирует улучшенную производительность при выполнении инструкций, она по-прежнему требует точной настройки для достижения оптимальной производительности в специализированных приложениях. Этот процесс тонкой настройки является ресурсоемким и не всегда может быть эффективным.

Заключение

В этом руководстве мы рассмотрели недавно выпущенную модель SOLAR с 10.7 миллиардами параметров, разработанную Upstage AI. Upstage AI применил новый подход к объединению и масштабированию моделей. В документе использовался новый подход под названием «Увеличение глубины» для объединения двух моделей Llama-2 с 7 миллиардами параметров путем удаления некоторых начальных и конечных слоев преобразователя. После этого компания доработала модель на наборах данных с открытым исходным кодом и протестировала ее в таблице лидеров OpenLLM, получив наивысший балл H6 и возглавив таблицу лидеров.

Основные выводы

  • SOLAR 10.7B представляет масштабирование глубины, уникальный подход слияния, бросающий вызов традиционным методам и демонстрирующий достижения в архитектуре моделей.
  • Несмотря на свои 10.7 миллиардов параметров, SOLAR 10.7B превосходит более крупные модели, превосходя Mistral 7B, Qwen 14B и даже возглавляя таблицы лидеров с такими версиями, как SOLAR 10.7B Instruct.
  • Двухэтапный процесс тонкой настройки, включающий настройку инструкций и выравнивания, обеспечивает адаптируемость модели к различным задачам, что делает ее очень хорошей в следовании инструкциям и в соответствии с предпочтениями человека.
  • SOLAR 10.7B превосходно справляется с различными тестами, тем самым демонстрируя свою компетентность в решении самых разных задач: от базовой математики и понимания языка до здравого смысла и оценки правдивости.
  • SOLAR 10.7B, доступный на HuggingFace Hub, предоставляет разработчикам и исследователям эффективный и доступный инструмент для приложений языковой обработки.
  • Вы можете точно настроить модель, используя обычные методы, используемые для точной настройки больших языковых моделей. Например, вы можете использовать контролируемый тренажер точной настройки (SFTrainer) от Hugging Face для точной настройки модели SOLAR 10.7B.

Часто задаваемые вопросы

Вопрос 1. Что такое SOLAR 10.7B и чем он выделяется в мире программ LLM?

A. SOLAR 10.7B — это модель с 10.7 миллиардами параметров, разработанная Upstage AI и использующая уникальную технику слияния под названием Depth Up-Scaling. Он отличается тем, что превосходит более крупные LLM и демонстрирует достижения в области слияния моделей.

В2. Как работает глубинное масштабирование?

A. Глубинное масштабирование включает две базовые модели. Этот процесс включает в себя непосредственное объединение этих двух базовых моделей путем наложения их друг на друга. Прежде чем произойдет объединение, удаляются начальные слои одной модели и конечные слои другой модели.

Вопрос 3. Как проходило обучение SOLAR 10.7B?

A. SOLAR 10.7B проходит двухэтапный процесс предварительной подготовки. Точная настройка инструкций включает в себя обучение модели на наборах данных с упором на следование инструкциям. Настройка выравнивания уточняет соответствие модели предпочтениям человека с помощью метода, называемого оптимизацией прямых предпочтений (DPO).

Вопрос 4. Как SOLAR 10.7B показывает результаты тестов?

О. SOLAR 10.7B превосходит другие тесты, включая ARC (AI2 Reasoning Challenge), MMLU (Massive MultiTask Language понимания), HellaSwag, Winogrande, TruthfulQA и GSM8K. Он получает высокие баллы, демонстрируя свою универсальность в решении различных языковых задач.

Вопрос 5. Чем SOLAR 10.7B отличается от других крупных моделей, таких как Mistral 7B и Qwen 14B?

О. SOLAR 10.7B превосходит такие модели, как Mistral 7B и Qwen 14B, демонстрируя превосходные характеристики, несмотря на меньшее количество параметров. Инструктированная версия даже конкурирует и превосходит очень большие модели, включая Mistral 8x7B и Qwen 72B, в различных тестах.

Материалы, показанные в этой статье, не принадлежат Analytics Vidhya и используются по усмотрению Автора.

Отметка времени:

Больше от Аналитика Видхья