Упрощенный китайский |
PaddleNLP — это комплект разработки больших языковых моделей (LLM), основанный на платформе глубокого обучения Paddle, который поддерживает эффективное обучение больших моделей, сжатие без потерь и высокопроизводительный вывод на различном оборудовании. PaddleNLP прост в использовании , обладает высочайшей производительностью и стремится помочь разработчикам реализовать эффективные приложения промышленного уровня для больших моделей.
2024.08.08 «Выпущен PaddleNLP 3.0, мощный инструмент для разработки больших языковых моделей промышленного уровня» , со всем процессом обучения, давлением и подталкиванием, а также полным охватом основных моделей. Большие модели автоматически распараллеливаются, и весь процесс обучения и отправки сотен миллиардов моделей доступен «из коробки». Предоставляет высокопроизводительные решения для точной настройки и выравнивания промышленного уровня, ведущий вывод о сжатии и адаптацию к нескольким аппаратным средствам. Охватывает сценарии применения, такие как интеллектуальные помощники промышленного уровня, создание контента, вопросы и ответы о знаниях и извлечение ключевой информации. Время прямой трансляции: 22 августа (четверг) 19:00. Ссылка на регистрацию: https://www.wjx.top/vm/Y2f7FFY.aspx?udsid=143844
27.06.2024 PaddleNLP v3.0 Beta : используйте большие модели и испытайте полностью обновленный опыт. Унифицировать большой набор моделей для обеспечения полного доступа к отечественным вычислительным микросхемам; полностью поддерживать прикладные процессы больших моделей промышленного уровня, такие как параллельная конфигурация летающего аппарата в 4D, эффективные стратегии точной настройки, эффективные алгоритмы выравнивания и высокопроизводительное самостоятельное рассуждение; -разработанный чрезвычайно конвергентный алгоритм RsLoRA+. Механизм автоматического расширения и сжатия Unified Checkpoint и универсально поддерживаемые FastFFN и FusedQKV помогают обучению и продвижению крупных моделей, продолжают поддерживать обновления и предоставлять эффективные решения.
2024.04.24 PaddleNLP v2.8 : самостоятельно разработанный алгоритм RsLoRA+ с экстремальной сходимостью значительно повышает скорость сходимости и эффект обучения PEFT; в алгоритм RLHF PPO добавлено высокопроизводительное ускорение генерации, устраняя узкое место в скорости генерации при обучении PPO; Показатели подготовки ППО существенно опережают. Универсально поддерживает несколько методов оптимизации производительности обучения больших моделей, таких как FastFFN и FusedQKV, что делает обучение больших моделей более быстрым и стабильным.
Он поддерживает обучение и вывод моделей понимания больших моделей и естественного языка для графических процессоров NVIDIA, Kunlun XPU, Shengteng NPU, Suiyuan GCU, Haiguang DCU и другого оборудования. Интерфейс пакета поддерживает быстрое переключение оборудования, что значительно снижает затраты на исследования и разработки по переключению оборудования. Поддерживаемые в настоящее время модели понимания естественного языка: список многоаппаратных моделей понимания естественного языка.
Поддерживает высокопроизводительное четырехмерное обучение стратегиям параллельного анализа чистых данных, стратегиям параллельного разделения групповых параметров, параллельным стратегиям тензорной модели и параллельным стратегиям конвейерной модели. Trainer поддерживает настройку распределенной стратегии для снижения затрат на использование, вызванных сложными распределенными комбинациями большого хранилища моделей Unified Checkpoint. Формат поддерживает динамическое расширение и сжатие распределения параметров модели, сокращая затраты на миграцию, вызванные переключением оборудования.
Алгоритм тонкой настройки глубоко сочетает в себе поток данных с нулевым заполнением и высокопроизводительный оператор FlashMask, чтобы уменьшить заполнение и вычисление недействительных обучающих данных и значительно повысить производительность точной настройки обучения.
Высокопроизводительный модуль рассуждений из набора больших моделей имеет встроенные стратегии динамической вставки и полносвязного объединения операторов, что значительно ускоряет параллельные рассуждения. Детали базовой реализации инкапсулированы для достижения высокопроизводительных возможностей параллельного рассуждения «из коробки».
Параметры модели поддерживают серии LLaMA, серии Baichuan, серии Bloom, серии ChatGLM, серии Gemma, серии Mistral, серии OPT и серии Qwen. Подробный список поддерживаемых параметров модели [LLM] выглядит следующим образом:
Модельный ряд | Название модели |
---|---|
ЛЛАМА | facebook/llama-7b, facebook/llama-13b, facebook/llama-30b, facebook/llama-65b |
Ллама2 | мета-лама/Лама-2-7b, мета-лама/Лама-2-7b-чат, мета-лама/Лама-2-13b, мета-лама/Лама-2-13b-чат, мета-лама/Лама- 2-70б, мета-лама/Лама-2-70б-чат |
Ллама3 | мета-лама/Мета-Лама-3-8Б, мета-лама/Мета-Лама-3-8Б-Инструкт, мета-лама/Мета-Лама-3-70Б, мета-лама/Мета-Лама-3-70Б- Инструктировать |
Ллама3.1 | мета-лама/Мета-Лама-3.1-8Б, мета-лама/Мета-Лама-3.1-8Б-Инструкт, мета-лама/Мета-Лама-3.1-70Б, мета-лама/Мета-Лама-3.1-70Б- Инструктируйте, мета-лама/Мета-Лама-3.1-405B, мета-лама/Мета-Лама-3.1-405B-Инструктируйте, мета-лама/Ллама-Страж-3-8B |
Ллама3.2 | мета-лама/Лама-3.2-1Б, мета-лама/Лама-3.2-1Б-Инструкт, мета-лама/Лама-3.2-3Б, мета-лама/Лама-3.2-3Б-Инструкт, мета-лама/Лама- Стражник-3-1Б |
Байчуань | baichuan-inc/Baichuan-7B, baichuan-inc/Baichuan-13B-Base, baichuan-inc/Baichuan-13B-Chat |
Байчуань2 | baichuan-inc/Baichuan2-7B-Base, baichuan-inc/Baichuan2-7B-Chat, baichuan-inc/Baichuan2-13B-Base, baichuan-inc/Baichuan2-13B-Chat |
Цвести | bigscience/bloom-560m, bigscience/bloom-560m-bf16, bigscience/bloom-1b1, bigscience/bloom-3b, bigscience/bloom-7b1, bigscience/bloomz-560m, bigscience/bloomz-1b1, bigscience/bloomz-3b, bigscience/bloomz-7b1-mt, bigscience/bloomz-7b1-p3, bigscience/bloomz-7b1, bellegroup/belle-7b-2m |
ЧатGLM | THUDM/chatglm-6b, THUDM/chatglm-6b-v1.1 |
ЧатGLM2 | THUDM/chatglm2-6b |
ЧатGLM3 | THUDM/chatglm3-6b |
Джемма | google/gemma-7b, google/gemma-7b-it, google/gemma-2b, google/gemma-2b-it |
Мистраль | мистралай/Мистраль-7Б-Инструкт-v0.3, мистралай/Мистраль-7Б-v0.1 |
Микстрал | мистралай/Mixtral-8x7B-Instruct-v0.1 |
ОПТ | facebook/opt-125m, facebook/opt-350m, facebook/opt-1.3b, facebook/opt-2.7b, facebook/opt-6.7b, facebook/opt-13b, facebook/opt-30b, facebook/opt-66b , Facebook/opt-iml-1.3b, opt-iml-max-1.3b |
Квен | qwen/qwen-7b, qwen/qwen-7b-chat, qwen/qwen-14b, qwen/qwen-14b-chat, qwen/qwen-72b, qwen/qwen-72b-chat, |
Квен1.5 | Qwen/Qwen1.5-0.5B, Qwen/Qwen1.5-0.5B-Chat, Qwen/Qwen1.5-1.8B, Qwen/Qwen1.5-1.8B-Chat, Qwen/Qwen1.5-4B, Qwen/ Qwen1.5-4B-Chat, Qwen/Qwen1.5-7B, Qwen/Qwen1.5-7B-Chat, Qwen/Qwen1.5-14B, Qwen/Qwen1.5-14B-Chat, Qwen/Qwen1.5- 32B, Qwen/Qwen1.5-32B-Chat, Qwen/Qwen1.5-72B, Qwen/Qwen1.5-72B-Chat, Qwen/Qwen1.5-110B, Qwen/Qwen1.5-110B-Chat, Qwen/ Qwen1.5-MoE-A2.7B, Qwen/Qwen1.5-MoE-A2.7B-Чат |
Квен2 | Qwen/Qwen2-0.5B, Qwen/Qwen2-0.5B-Инструктировать, Qwen/Qwen2-1.5B, Qwen/Qwen2-1.5B-Инструктировать, Qwen/Qwen2-7B, Qwen/Qwen2-7B-Инструктировать, Qwen/Qwen2- 72B, Qwen/Qwen2-72B-Инструкция, Qwen/Qwen2-57B-A14B, Qwen/Qwen2-57B-A14B-Инструкция |
Qwen2-Математика | Qwen/Qwen2-Math-1.5B, Qwen/Qwen2-Math-1.5B-Instruct, Qwen/Qwen2-Math-7B, Qwen/Qwen2-Math-7B-Instruct, Qwen/Qwen2-Math-72B, Qwen/Qwen2- Math-72B-Инструкция, Qwen/Qwen2-Math-RM-72B |
Квен2.5 | Qwen/Qwen2.5-0.5B, Qwen/Qwen2.5-0.5B-Инструктировать, Qwen/Qwen2.5-1.5B, Qwen/Qwen2.5-1.5B-Инструктировать, Qwen/Qwen2.5-3B, Qwen/ Qwen2.5-3B-Инструкция, Qwen/Qwen2.5-7B, Qwen/Qwen2.5-7B-Инструкция, Qwen/Qwen2.5-14B, Qwen/Qwen2.5-14B-Инструкция, Qwen/Qwen2.5- 32B, Qwen/Qwen2.5-32B-Инструкция, Qwen/Qwen2.5-72B, Qwen/Qwen2.5-72B-Инструкция |
Qwen2.5-Математика | Qwen/Qwen2.5-Math-1.5B, Qwen/Qwen2.5-Math-1.5B-Instruct, Qwen/Qwen2.5-Math-7B, Qwen/Qwen2.5-Math-7B-Instruct, Qwen/Qwen2. 5-Math-72B, Qwen/Qwen2.5-Math-72B-Instruct, Qwen/Qwen2.5-Math-RM-72B |
Qwen2.5-Кодер | Qwen/Qwen2.5-Coder-1.5B, Qwen/Qwen2.5-Coder-1.5B-Instruct, Qwen/Qwen2.5-Coder-7B, Qwen/Qwen2.5-Coder-7B-Instruct |
Юань2 | IEITYuan/Yuan2-2B, IEITYuan/Yuan2-51B, IEITYuan/Yuan2-102B |
4D-параллелизм и оптимизация операторов поддерживают серии LLaMA, серии Baichuan, серии Bloom, серии ChatGLM, серии Gemma, серии Mistral, серии OPT и серии Qwen. Список поддержки 4D-параллелизма и операторов модели [LLM] выглядит следующим образом:
Название модели/поддержка параллельных возможностей | параллелизм данных | Параллелизм тензорной модели | Параллелизм сегментирования параметров | Параллелизм трубопроводов | |||
---|---|---|---|---|---|---|---|
Основные способности | параллелизм последовательностей | этап1 | этап2 | этап3 | |||
Лама | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Квен | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Квен1.5 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Квен2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Микстрал(мое) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
Мистраль | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
Байчуань | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Байчуань2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
ЧатGLM | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
ЧатGLM2 | ✅ | ? | ? | ✅ | ✅ | ✅ | ? |
ЧатGLM3 | ✅ | ? | ? | ✅ | ✅ | ✅ | ? |
Цвести | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
ГПТ-2/ГПТ-3 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
ОПТ | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
Джемма | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Юань2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
Предварительное обучение, точная настройка больших моделей (включая технологии SFT, PEFT), выравнивание и количественная оценка поддерживаются сериями LLaMA, сериями Baichuan, сериями Bloom, сериями ChatGLM, сериями Mistral, сериями OPT и сериями Qwen, предварительной моделью [LLM] Список поддержки обучения, точной настройки, выравнивания и квантования следующий:
Модель | Предварительная подготовка | СФТ | ЛоРА | FlashMask | Приставка Тюнинг | ДПО/СимПО/ОРПО | РЛХФ | Квантование |
---|---|---|---|---|---|---|---|---|
Лама | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Квен | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? | ? |
Микстрал | ✅ | ✅ | ✅ | ? | ? | ✅ | ? | ? |
Мистраль | ✅ | ✅ | ✅ | ? | ✅ | ✅ | ? | ? |
Байчуань/Байчуань2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? | ✅ |
ЧатGLM-6B | ✅ | ✅ | ✅ | ? | ✅ | ? | ? | ✅ |
ЧатGLM2/ЧатGLM3 | ✅ | ✅ | ✅ | ? | ✅ | ✅ | ? | ✅ |
Цвести | ✅ | ✅ | ✅ | ? | ✅ | ? | ? | ✅ |
ГПТ-3 | ✅ | ✅ | ? | ? | ? | ? | ? | ? |
ОПТ | ✅ | ✅ | ✅ | ? | ? | ? | ? | ? |
Джемма | ✅ | ✅ | ✅ | ? | ? | ✅ | ? | ? |
Юань | ✅ | ✅ | ✅ | ? | ? | ✅ | ? | ? |
Рассуждения больших моделей уже поддерживают серии LLaMA, серии Qwen, серии Mistral, серии ChatGLM, серии Bloom и серии Baichuan, поддерживают рассуждения только по весу INT8 и INT4, а также поддерживают WAC (вес, активация, кэш KV) для количественных рассуждений INT8 и FP8. LLM] Список поддержки вывода модели выглядит следующим образом:
Поддержка имени модели/типа квантования | ФП16/БФ16 | ВИНТ8 | ВИНТ4 | INT8-A8W8 | ФП8-А8В8 | INT8-A8W8C8 |
---|---|---|---|---|---|---|
ЛЛАМА | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Квен | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Квен-Мо | ✅ | ✅ | ✅ | ? | ? | ? |
Микстрал | ✅ | ✅ | ✅ | ? | ? | ? |
ЧатGLM | ✅ | ✅ | ✅ | ? | ? | ? |
Цвести | ✅ | ✅ | ✅ | ? | ? | ? |
Бай Чуань | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
питон >= 3.8
весловесло >= 3.0.0b0
Если вы не установили PaddlePaddle, посетите официальный сайт PaddlePaddle, чтобы установить его.
pip install --upgrade Paddlenlp==3.0.0b2
Или вы можете установить последнюю версию кода ветки разработки с помощью следующей команды:
pip install --pre --upgrade Paddlenlp -f https://www.paddlepaddle.org.cn/whl/paddlenlp.html
Более подробные инструкции по установке PaddlePaddle и PaddleNLP см. в разделе «Установка».
PaddleNLP предоставляет удобный и простой в использовании автоматический API, который позволяет быстро загружать модели и токенизаторы. Вот пример генерации текста с использованием модели Qwen/Qwen2-0.5B
:
>>> из Paddlenlp.transformers import AutoTokenizer, AutoModelForCausalLM>>> tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2-0.5B") >>> model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2-0.5B", dtype=" float16")>>> input_features = tokenizer("Здравствуйте! Представьтесь, пожалуйста.", return_tensors="pd")>>> outputs = model.generate(**input_features, max_length=128)>>> print(tokenizer .batch_decode (выходы[0],skip_special_tokens=True)) ['Я — языковая модель искусственного интеллекта. Я могу отвечать на различные вопросы, включая, помимо прочего: погоду, новости, историю, культуру, науку, образование, развлечения и т. д. Есть ли что-нибудь, что вам нужно знать? ']
git clone https://github.com/PaddlePaddle/PaddleNLP.git && cd PaddleNLP # Если вы клонировали или загрузили PaddleNLP, вы можете пропустить mkdir -p llm/data && cd llm/data wget https://bj.bcebos.com/paddlenlp/models/transformers/llama/data/llama_openwebtext_100k.bin wget https://bj.bcebos.com/padaddlenlp/models/transformers/llama/data/llama_openwebtext_100k.idxcd .. # изменить папку на PaddleNLP/llmpython -u -m Paddle.distributed.launch --gpus "0,1, 2,3,4,5,6,7" run_pretrain.py ./config/llama/pretrain_argument.json
git clone https://github.com/PaddlePaddle/PaddleNLP.git && cd PaddleNLP # Если вы клонировали или загрузили PaddleNLP, вы можете пропустить mkdir -p llm/data && cd llm/data wget https://bj.bcebos.com/padaddlenlp/datasets/examples/AdvertiseGen.tar.gz && tar -zxvf AdvertiseGen.tar.gzcd .. # измените папку на PaddleNLP/llmpython -u -m Paddle.distributed.launch - -gpus "0,1,2,3,4,5,6,7" run_finetune.py ./config/llama/sft_argument.json
Более подробные сведения о процессе создания большой модели см. во введении к комплекту большой модели летающего весла.
Дополнительную информацию о PaddleNLP можно найти по адресу:
Избранная библиотека моделей, включая сквозное использование высококачественных предварительно обученных моделей.
Несколько примеров сценариев, чтобы узнать, как использовать PaddleNLP для решения различных технических проблем НЛП, включая базовые технологии, системные приложения и расширенные приложения.
Интерактивное руководство для быстрого изучения PaddleNLP на бесплатной вычислительной платформе AI Studio.
Отсканируйте QR-код в WeChat и заполните анкету, чтобы присоединиться к коммуникационной группе и провести углубленное обсуждение со многими разработчиками сообщества и официальными командами.
Если PaddleNLP полезен для вашего исследования, пожалуйста, не стесняйтесь ссылаться на него.
@misc{=paddlenlp,title={PaddleNLP: простая в использовании и высокопроизводительная библиотека НЛП},author={PaddleNLP Contributors},howpublished = {url{https://github.com/PaddlePaddle/PaddleNLP}}, год={2021}}
Благодаря превосходному дизайну Hugging Face Transformers? мы научились использованию предварительно обученных моделей и хотели бы выразить благодарность авторам Hugging Face и их сообществу открытого исходного кода.
PaddleNLP следует лицензии с открытым исходным кодом Apache-2.0.