Vereinfachtes Chinesisch |.
PaddleNLP ist ein Entwicklungskit für große Sprachmodelle (LLM), das auf dem Paddle-Deep-Learning-Framework basiert und effizientes Training großer Modelle, verlustfreie Komprimierung und leistungsstarke Inferenz auf einer Vielzahl von Hardware unterstützt. PaddleNLP zeichnet sich durch Einfachheit, Benutzerfreundlichkeit und ultimative Leistung aus und ist bestrebt, Entwickler bei der Implementierung effizienter Anwendungen großer Modelle auf industrieller Ebene zu unterstützen.
2024.08.08 „PaddleNLP 3.0, ein leistungsstarkes Tool für die Entwicklung großer Sprachmodelle auf industrieller Ebene, wird veröffentlicht“ , mit integriertem gesamten Trainings-, Druck- und Push-Prozess und vollständiger Abdeckung der Mainstream-Modelle. Große Modelle werden automatisch parallelisiert und der gesamte Prozess des Trainings und Pushens von Hunderten Milliarden Modellen ist sofort verfügbar. Bietet leistungsstarke Feinabstimmungs- und Ausrichtungslösungen in Industriequalität, führende Komprimierungsinferenz und Multi-Hardware-Anpassung. Behandelt Anwendungsszenarien wie intelligente Assistenten auf industrieller Ebene, Inhaltserstellung, Fragen und Antworten zu Wissen und Extraktion wichtiger Informationen. Live-Übertragungszeit: 22. August (Donnerstag) 19:00 Uhr. Registrierungslink: https://www.wjx.top/vm/Y2f7FFY.aspx?udsid=143844
27.06.2024 PaddleNLP v3.0 Beta : Nutzen Sie große Modelle und erleben Sie ein vollständig verbessertes Erlebnis. Vereinheitlichen Sie die große Modellsuite, um einen vollständigen Prozesszugriff auf inländische Computerchips zu erreichen; unterstützen Sie vollständig Anwendungsprozesse auf industrieller Ebene mit fliegenden Paddeln, effiziente Feinabstimmungsstrategien, effiziente Ausrichtungsalgorithmen und leistungsstarke Selbstinferenz -entwickelter extrem konvergenter RsLoRA+-Algorithmus, der automatische Expansions- und Kontraktionsspeichermechanismus Unified Checkpoint und das universell unterstützte FastFFN und FusedQKV unterstützen die Schulung und Förderung großer Modelle, unterstützen weiterhin Aktualisierungen und bieten effiziente Lösungen.
24.04.2024 PaddleNLP v2.8 : Der selbst entwickelte RsLoRA+-Algorithmus mit extremer Konvergenz verbessert die Konvergenzgeschwindigkeit und den Trainingseffekt des PEFT-Trainings erheblich; Die PPO-Trainingsleistung liegt deutlich vorn. Unterstützt universell mehrere Leistungsoptimierungsmethoden für das Training großer Modelle wie FastFFN und FusedQKV, wodurch das Training großer Modelle schneller und stabiler wird.
Es unterstützt das Training und die Inferenz von Modellen zum Verständnis großer Modelle und natürlicher Sprache für NVIDIA GPU, Kunlun Derzeit unterstützte Modelle zum Verstehen natürlicher Sprache: Liste der Multi-Hardware-Modelle zum Verstehen natürlicher Sprache
Unterstützt 4D-Hochleistungstraining für reine Datenparallelstrategien, gruppierte Parameter-Slice-Datenparallelstrategien, Tensormodell-Parallelstrategien und Pipeline-Modellparallelstrategien. Der Trainer unterstützt die verteilte Strategiekonfiguration, um die durch komplexe verteilte Kombinationen verursachten Nutzungskosten zu reduzieren unterstützt das dynamische Expansions- und Kontraktionstraining bei der Modellparameterverteilung und reduziert so die durch Hardwarewechsel verursachten Migrationskosten.
Der Feinabstimmungsalgorithmus kombiniert den Nullfülldatenstrom intensiv mit dem FlashMask-Hochleistungsoperator, um das Füllen und Berechnen ungültiger Trainingsdaten zu reduzieren und den Durchsatz des Feinabstimmungstrainings erheblich zu verbessern.
Das leistungsstarke Argumentationsmodul der großen Modellsuite verfügt über integrierte dynamische Einfügungs- und Full-Link-Operator-Fusion-Strategien, was die parallele Argumentation erheblich beschleunigt. Die zugrunde liegenden Implementierungsdetails sind gekapselt, um sofort einsatzbereite, hochleistungsfähige parallele Argumentationsfunktionen zu erreichen.
Die Modellparameter haben die LLaMA-Serie, die Baichuan-Serie, die Bloom-Serie, die ChatGLM-Serie, die Gemma-Serie, die Mistral-Serie, die OPT-Serie und die Qwen-Serie unterstützt. Die detaillierte Liste der unterstützten Modellparameter [LLM] lautet wie folgt:
| Modellreihe | Modellname |
|---|---|
| LAMA | facebook/llama-7b, facebook/llama-13b, facebook/llama-30b, facebook/llama-65b |
| Lama2 | Meta-Lama/Llama-2-7b, Meta-Lama/Llama-2-7b-Chat, Meta-Lama/Llama-2-13b, Meta-Lama/Llama-2-13b-Chat, Meta-Lama/Lama- 2-70b, Meta-Lama/Llama-2-70b-Chat |
| Lama3 | Meta-Lama/Meta-Llama-3-8B, Meta-Lama/Meta-Llama-3-8B-Instruct, Meta-Lama/Meta-Llama-3-70B, Meta-Lama/Meta-Llama-3-70B- Anweisen |
| Lama3.1 | Meta-Lama/Meta-Llama-3.1-8B, Meta-Lama/Meta-Llama-3.1-8B-Instruct, Meta-Lama/Meta-Llama-3.1-70B, Meta-Lama/Meta-Llama-3.1-70B- Instruct, Meta-Lama/Meta-Llama-3.1-405B, meta-llama/Meta-Llama-3.1-405B-Instruct, meta-llama/Llama-Guard-3-8B |
| Lama3.2 | meta-llama/Llama-3.2-1B, meta-llama/Llama-3.2-1B-Instruct, meta-llama/Llama-3.2-3B, meta-llama/Llama-3.2-3B-Instruct, meta-llama/Llama- Guard-3-1B |
| Baichuan | baichuan-inc/Baichuan-7B, baichuan-inc/Baichuan-13B-Base, baichuan-inc/Baichuan-13B-Chat |
| Baichuan2 | baichuan-inc/Baichuan2-7B-Base, baichuan-inc/Baichuan2-7B-Chat, baichuan-inc/Baichuan2-13B-Base, baichuan-inc/Baichuan2-13B-Chat |
| Blühen | 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 |
| ChatGLM | THUDM/chatglm-6b, THUDM/chatglm-6b-v1.1 |
| ChatGLM2 | THUDM/chatglm2-6b |
| ChatGLM3 | THUDM/chatglm3-6b |
| Gemma | google/gemma-7b, google/gemma-7b-it, google/gemma-2b, google/gemma-2b-it |
| Mistral | mistralai/Mistral-7B-Instruct-v0.3, mistralai/Mistral-7B-v0.1 |
| Mixtral | mistralai/Mixtral-8x7B-Instruct-v0.1 |
| OPT | 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/qwen-7b, qwen/qwen-7b-chat, qwen/qwen-14b, qwen/qwen-14b-chat, qwen/qwen-72b, qwen/qwen-72b-chat, |
| Qwen1.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-Chat |
| Qwen2 | Qwen/Qwen2-0.5B, Qwen/Qwen2-0.5B-Instruct, Qwen/Qwen2-1.5B, Qwen/Qwen2-1.5B-Instruct, Qwen/Qwen2-7B, Qwen/Qwen2-7B-Instruct, Qwen/Qwen2- 72B, Qwen/Qwen2-72B-Instruieren, Qwen/Qwen2-57B-A14B, Qwen/Qwen2-57B-A14B-Anleitung |
| Qwen2-Math | 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 |
| Qwen2.5 | Qwen/Qwen2.5-0.5B, Qwen/Qwen2.5-0.5B-Instruct, Qwen/Qwen2.5-1.5B, Qwen/Qwen2.5-1.5B-Instruct, Qwen/Qwen2.5-3B, Qwen/ Qwen2.5-3B-Instruct, Qwen/Qwen2.5-7B, Qwen/Qwen2.5-7B-Instruct, Qwen/Qwen2.5-14B, Qwen/Qwen2.5-14B-Instruct, Qwen/Qwen2.5-32B, Qwen/Qwen2.5-32B-Instruct, Qwen/Qwen2.5-72B, Qwen/Qwen2.5- 72B-Anweisung |
| Qwen2.5-Math | 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-Coder | Qwen/Qwen2.5-Coder-1.5B, Qwen/Qwen2.5-Coder-1.5B-Instruct, Qwen/Qwen2.5-Coder-7B, Qwen/Qwen2.5-Coder-7B-Instruct |
| Yuan2 | IEITYuan/Yuan2-2B, IEITYuan/Yuan2-51B, IEITYuan/Yuan2-102B |
4D-Parallelität und Operatoroptimierung haben LLaMA-Serie, Baichuan-Serie, Bloom-Serie, ChatGLM-Serie, Gemma-Serie, Mistral-Serie, OPT-Serie und Qwen-Serie unterstützt. Die Liste der [LLM]-Modelle für 4D-Parallelität und Operatorunterstützung lautet wie folgt:
| Unterstützung für Modellname/Parallelfähigkeit | Datenparallelität | Parallelität des Tensormodells | Parameter-Sharding-Parallelität | Pipeline-Parallelität | |||
|---|---|---|---|---|---|---|---|
| Grundfähigkeiten | Sequenzparallelität | Stufe1 | Stufe2 | Stufe3 | |||
| Lama | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Qwen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Qwen1.5 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Qwen2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Mixtral(moe) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
| Mistral | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
| Baichuan | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Baichuan2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ChatGLM | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
| ChatGLM2 | ✅ | ? | ? | ✅ | ✅ | ✅ | ? |
| ChatGLM3 | ✅ | ? | ? | ✅ | ✅ | ✅ | ? |
| Blühen | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
| GPT-2/GPT-3 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| OPT | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
| Gemma | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Yuan2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
Das Vortraining großer Modelle, die Feinabstimmung (einschließlich SFT- und PEFT-Technologie), die Ausrichtung und die Quantifizierung haben die LLaMA-Serie, die Baichuan-Serie, die Bloom-Serie, die ChatGLM-Serie, die Mistral-Serie, die OPT-Serie und die Qwen-Serie sowie die [LLM]-Modellvorbereitung unterstützt. Die Unterstützungsliste für Training, Feinabstimmung, Ausrichtung und Quantisierung lautet wie folgt:
| Modell | Vortrainieren | SFT | LoRa | FlashMask | Präfix-Tuning | DPO/SimPO/ORPO | RLHF | Quantisierung |
|---|---|---|---|---|---|---|---|---|
| Lama | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Qwen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? | ? |
| Mixtral | ✅ | ✅ | ✅ | ? | ? | ✅ | ? | ? |
| Mistral | ✅ | ✅ | ✅ | ? | ✅ | ✅ | ? | ? |
| Baichuan/Baichuan2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? | ✅ |
| ChatGLM-6B | ✅ | ✅ | ✅ | ? | ✅ | ? | ? | ✅ |
| ChatGLM2/ChatGLM3 | ✅ | ✅ | ✅ | ? | ✅ | ✅ | ? | ✅ |
| Blühen | ✅ | ✅ | ✅ | ? | ✅ | ? | ? | ✅ |
| GPT-3 | ✅ | ✅ | ? | ? | ? | ? | ? | ? |
| OPT | ✅ | ✅ | ✅ | ? | ? | ? | ? | ? |
| Gemma | ✅ | ✅ | ✅ | ? | ? | ✅ | ? | ? |
| Yuan | ✅ | ✅ | ✅ | ? | ? | ✅ | ? | ? |
Die Argumentation großer Modelle unterstützt bereits die LLaMA-Serie, die Qwen-Serie, die Mistral-Serie, die ChatGLM-Serie, die Bloom-Serie und die Baichuan-Serie, unterstützt nur das Weight Only INT8- und INT4-Argument und unterstützt WAC (Gewicht, Aktivierung, Cache-KV) für das quantifizierte INT8- und FP8-Argumentation. LLM] Die Liste der unterstützten Modellinferenzen lautet wie folgt:
| Unterstützung für Modellname/Quantisierungstyp | FP16/BF16 | WINT8 | WINT4 | INT8-A8W8 | FP8-A8W8 | INT8-A8W8C8 |
|---|---|---|---|---|---|---|
| LAMA | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Qwen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Qwen-Moe | ✅ | ✅ | ✅ | ? | ? | ? |
| Mixtral | ✅ | ✅ | ✅ | ? | ? | ? |
| ChatGLM | ✅ | ✅ | ✅ | ? | ? | ? |
| Blühen | ✅ | ✅ | ✅ | ? | ? | ? |
| Bai Chuan | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
Python >= 3.8
Paddlepaddle >= 3.0.0b0
Wenn Sie PaddlePaddle nicht installiert haben, besuchen Sie bitte die offizielle Website von PaddlePaddle, um es zu installieren.
pip install --upgrade Paddlenlp==3.0.0b2
Oder Sie können den neuesten Entwicklungszweigcode mit dem folgenden Befehl installieren:
pip install --pre --upgrade Paddlenlp -f https://www.paddlepaddle.org.cn/whl/paddlenlp.html
Ausführlichere Tutorials zur Installation von PaddlePaddle und PaddleNLP finden Sie unter Installation.
PaddleNLP bietet eine praktische und benutzerfreundliche Auto-API, mit der Modelle und Tokenizer schnell geladen werden können. Hier ist ein Beispiel für die Textgenerierung mit dem Qwen/Qwen2-0.5B -Modell:
>>> from 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("Hallo! Bitte stellen Sie sich vor.", return_tensors="pd")>>> Ausgänge = model.generate(**input_features, max_length=128)>>> print(tokenizer.batch_decode(outputs[0], skip_special_tokens=True))
['Ich bin ein KI-Sprachmodell, ich kann verschiedene Fragen beantworten, unter anderem: Wetter, Nachrichten, Geschichte, Kultur, Wissenschaft, Bildung, Unterhaltung usw.' Gibt es etwas, das Sie wissen müssen? ']git clone https://github.com/PaddlePaddle/PaddleNLP.git && cd PaddleNLP # Wenn Sie PaddleNLP geklont oder heruntergeladen haben, können Sie mkdir -p llm/data && cd llm/data überspringen 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 .. # Ordner ändern zu 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 # Wenn Sie PaddleNLP geklont oder heruntergeladen haben, können Sie mkdir -p llm/data && cd llm/data überspringen wget https://bj.bcebos.com/padaddlenlp/datasets/examples/AdvertiseGen.tar.gz && tar -zxvf AdvertiseGen.tar.gzcd .. # Ordner ändern zu PaddleNLP/llmpython -u -m Paddle.distributed.launch - -gpus „0,1,2,3,4,5,6,7“ run_finetune.py ./config/llama/sft_argument.json
Ausführlichere Schritte des Großmodellprozesses finden Sie in der Einführung zum Flying Paddle Large Model Kit.
Weitere PaddleNLP-Inhalte finden Sie unter:
Ausgewählte Modellbibliothek, einschließlich vollständiger End-to-End-Prozessnutzung hochwertiger vorab trainierter Modelle.
Mehrere Szenariobeispiele zum Erlernen der Verwendung von PaddleNLP zur Lösung verschiedener technischer NLP-Probleme, einschließlich grundlegender Technologie, Systemanwendungen und erweiterter Anwendungen.
Interaktives Tutorial zum schnellen Erlernen von PaddleNLP auf der kostenlosen Computerplattform AI Studio.
Scannen Sie den QR-Code auf WeChat und füllen Sie den Fragebogen aus, um der Kommunikationsgruppe beizutreten und ausführliche Diskussionen mit vielen Community-Entwicklern und offiziellen Teams zu führen.
Wenn PaddleNLP für Ihre Forschung hilfreich ist, können Sie es gerne zitieren
@misc{=paddlenlp,title={PaddleNLP: Eine benutzerfreundliche und leistungsstarke NLP-Bibliothek},author={PaddleNLP Contributors},howpublished = {url{https://github.com/PaddlePaddle/PaddleNLP}}, Jahr={2021}}Wir haben aus dem hervorragenden Design von Hugging Face's Transformers? über die Verwendung vorab trainierter Modelle gelernt und möchten den Autoren von Hugging Face und ihrer Open-Source-Community unseren Dank aussprechen.
PaddleNLP folgt der Open-Source-Lizenz Apache-2.0.