Упрощенный китайский |
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 и другого оборудования. Интерфейс пакета поддерживает быстрое переключение оборудования, что значительно снижает затраты на исследования и разработки по переключению оборудования. Поддерживаемые в настоящее время модели понимания естественного языка: список многоаппаратных моделей понимания естественного языка.
Поддерживает высокопроизводительное 4D-обучение параллельных стратегий с чистыми данными, параллельных стратегий с группировкой параметров, параллельных стратегий тензорных моделей и параллельных стратегий конвейерных моделей. 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-Чат |
| Байчуань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-Чат, Qwen/Qwen1.5-7B, Qwen/Qwen1.5-7B-Чат, 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-Чат, Qwen/Qwen1.5-110B, Qwen/Qwen1.5-110B-Чат, 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-Instruct, 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")>>> выходы = model.generate(**input_features, max_length=128)>>> print(tokenizer.batch_decode(outputs[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.