簡体字中国語| 英語?
PaddleNLPは、Paddle 深層学習フレームワークに基づく大規模言語モデル (LLM) 開発キットで、効率的な大規模モデルのトレーニング、可逆圧縮、およびさまざまなハードウェアでの高性能推論をサポートします。 PaddleNLP は使いやすく、究極のパフォーマンスを備えており、開発者が大規模モデルの効率的な産業レベルのアプリケーションを実装できるよう支援することに尽力しています。
2024.08.08 「産業レベルの大規模言語モデル開発のための強力なツールである PaddleNLP 3.0 がリリースされました」。トレーニング、プレッシャー、プッシュのプロセス全体が含まれ、主流モデルを完全にカバーします。大規模なモデルは自動的に並列化され、数千億のモデルのトレーニングとプッシュのプロセス全体をすぐに利用できます。産業グレードの高性能微調整および調整ソリューション、最先端の圧縮推論、およびマルチハードウェア適応を提供します。産業レベルのインテリジェント アシスタント、コンテンツ作成、知識 Q&A、重要な情報抽出などのアプリケーション シナリオをカバーします。生放送時間:8月22日(木)19:00~登録リンク: https://www.wjx.top/vm/Y2f7FFY.aspx?udsid=143844
2024.06.27 PaddleNLP v3.0 ベータ版: 大規模なモデルを採用し、完全にアップグレードされたエクスペリエンスを体験してください。大規模なモデル スイートを統合して国内コンピューティング チップへのフルプロセス アクセスを実現し、フライング パドル 4D 並列構成、効率的な微調整戦略、効率的なアライメント アルゴリズム、高性能の自己推論などの大規模モデルの産業レベルのアプリケーション プロセスを完全にサポートします。 - 開発された非常に収束性の高い RsLoRA+ アルゴリズム、自動拡張および縮小ストレージ メカニズムの Unified Checkpoint と広くサポートされている FastFFN および FusedQKV は、大規模モデルのトレーニングとプロモーションを支援し、引き続き更新をサポートし、効率的なソリューションを提供します。
2024.04.24 PaddleNLP v2.8 : 極端な収束を備えた独自開発の RsLoRA+ アルゴリズムは、PEFT トレーニングの収束速度とトレーニング効果を大幅に向上させ、RLHF PPO アルゴリズムに高性能の生成アクセラレーションを導入し、PPO トレーニングにおける生成速度のボトルネックを解消します。 PPO トレーニングのパフォーマンスは大幅に上回っています。 FastFFN や FusedQKV など、複数の大規模モデルのトレーニング パフォーマンス最適化手法を包括的にサポートし、大規模モデルのトレーニングをより高速かつ安定させます。
NVIDIA GPU、Kunlun XPU、Shengteng NPU、Suiyuan GCU、Haiguang DCU などのハードウェアの大規模モデルと自然言語理解モデルのトレーニングと推論をサポートします。スイート インターフェイスは高速ハードウェア スイッチングをサポートし、ハードウェア スイッチングの研究開発コストを大幅に削減します。 現在サポートされている自然言語理解モデル:マルチハードウェア自然言語理解モデル一覧
純粋なデータ並列戦略、グループ パラメーター スライシングのデータ並列戦略、テンソル モデル並列戦略、パイプライン モデル並列戦略の 4D 高性能トレーニングをサポートし、Unified Checkpoint の大規模なモデル ストレージの使用コストを削減する分散戦略構成をサポートします。この形式は、モデル パラメーター分布における動的な拡張と縮小のトレーニングをサポートし、ハードウェアの切り替えによって発生する移行コストを削減します。
微調整アルゴリズムは、ゼロフィル データ ストリームと FlashMask 高性能オペレーターを深く組み合わせて、無効なトレーニング データの充填と計算を削減し、微調整トレーニングのスループットを大幅に向上させます。
大規模モデル スイートの高性能推論モジュールには、動的挿入およびフルリンク演算子融合戦略が組み込まれており、並列推論が大幅に高速化されます。基盤となる実装の詳細はカプセル化されており、すぐに使用できる高性能の並列推論機能を実現します。
モデル パラメーターは、LLaMA シリーズ、Baichuan シリーズ、Bloom シリーズ、ChatGLM シリーズ、Gemma シリーズ、Mistral シリーズ、OPT シリーズ、Qwen シリーズをサポートしています。詳細なリスト [LLM] モデル パラメーター サポート リストは次のとおりです。
モデルシリーズ | 機種名 |
---|---|
ラマ | フェイスブック/ラマ-7b、フェイスブック/ラマ-13b、フェイスブック/ラマ-30b、フェイスブック/ラマ-65b |
LLama2 | メタ-ラマ/ラマ-2-7b、メタ-ラマ/ラマ-2-7b-チャット、メタ-ラマ/ラマ-2-13b、メタ-ラマ/ラマ-2-13b-チャット、メタ-ラマ/ラマ- 2-70b、メタ-ラマ/ラマ-2-70b-チャット |
LLama3 | メタ-ラマ/メタ-ラマ-3-8B、メタ-ラマ/メタ-ラマ-3-8B-指示、メタ-ラマ/メタ-ラマ-3-70B、メタ-ラマ/メタ-ラマ-3-70B-指示する |
LLama3.1 | メタ-ラマ/メタ-ラマ-3.1-8B、メタ-ラマ/メタ-ラマ-3.1-8B-指示、メタ-ラマ/メタ-ラマ-3.1-70B、メタ-ラマ/メタ-ラマ-3.1-70B-指示、メタ-ラマ/メタ-ラマ-3.1-405B、メタ-ラマ/メタ-ラマ-3.1-405B-指示、メタ-ラマ/ラマ-ガード-3-8B |
LLama3.2 | メタ-ラマ/ラマ-3.2-1B、メタ-ラマ/ラマ-3.2-1B-指示、メタ-ラマ/ラマ-3.2-3B、メタ-ラマ/ラマ-3.2-3B-指示、メタ-ラマ/ラマ-ガード-3-1B |
白川 | baichuan-inc/Baichuan-7B、baichuan-inc/Baichuan-13B-Base、baichuan-inc/Baichuan-13B-チャット |
バイチュアン2 | baichuan-inc/Baichuan2-7B-Base、baichuan-inc/Baichuan2-7B-チャット、baichuan-inc/Baichuan2-13B-Base、baichuan-inc/Baichuan2-13B-チャット |
咲く | 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/チャットglm2-6b |
チャットGLM3 | THUDM/チャットglm3-6b |
ジェマ | google/gemma-7b、google/gemma-7b-it、google/gemma-2b、google/gemma-2b-it |
ミストラル | ミストラライ/ミストラル-7B-命令-v0.3、ミストラライ/ミストラル-7B-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-チャット、qwen/qwen-14b、qwen/qwen-14b-チャット、qwen/qwen-72b、qwen/qwen-72b-チャット、 |
クウェン1.5 | クウェン/Qwen1.5-0.5B、Qwen/Qwen1.5-0.5B-チャット、Qwen/Qwen1.5-1.8B、Qwen/Qwen1.5-1.8B-チャット、Qwen/Qwen1.5-4B、Qwen/ Qwen1.5-4B-チャット、Qwen/Qwen1.5-7B、Qwen/Qwen1.5-7B-チャット、Qwen/Qwen1.5-14B、Qwen/Qwen1.5-14B-チャット、Qwen/Qwen1.5- 32B、クウェン/Qwen1.5-32B-チャット、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、クウェン/Qwen2-72B-指示、Qwen/Qwen2-57B-A14B、Qwen/Qwen2-57B-A14B-指示 |
Qwen2-数学 | Qwen/Qwen2-Math-1.5B、Qwen/Qwen2-Math-1.5B-指示、Qwen/Qwen2-Math-7B、Qwen/Qwen2-Math-7B-指示、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-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 |
元2 | IEITYuan/Yuan2-2B、IEITYuan/Yuan2-51B、IEITYuan/Yuan2-102B |
4D 並列処理とオペレーターの最適化は、LLaMA シリーズ、Baichuan シリーズ、Bloom シリーズ、ChatGLM シリーズ、Gemma シリーズ、Mistral シリーズ、OPT シリーズ、Qwen シリーズをサポートしています。[LLM] モデルの 4D 並列処理とオペレーターのサポート リストは次のとおりです。
モデル名/並列機能のサポート | データの並列性 | テンソルモデルの並列性 | パラメータシャーディング並列処理 | パイプラインの並列処理 | |||
---|---|---|---|---|---|---|---|
基本的な能力 | シーケンスの並列性 | ステージ1 | ステージ2 | ステージ3 | |||
ラマ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
クウェン | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
クウェン1.5 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
クウェン2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
ミクストラル(萌え) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
ミストラル | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
白川 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
バイチュアン2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
チャットGLM | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
チャットGLM2 | ✅ | ? | ? | ✅ | ✅ | ✅ | ? |
チャットGLM3 | ✅ | ? | ? | ✅ | ✅ | ✅ | ? |
咲く | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
GPT-2/GPT-3 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
オプト | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
ジェマ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
元2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
大規模モデルの事前トレーニング、微調整 (SFT、PEFT テクノロジーを含む)、アライメント、および定量化は、LLaMA シリーズ、Baichuan シリーズ、Bloom シリーズ、ChatGLM シリーズ、Mistral シリーズ、OPT シリーズ、Qwen シリーズをサポートしています。[LLM] モデルの事前トレーニングトレーニング、微調整、アライメント、および量子化のサポート リストは次のとおりです。
モデル | 事前トレーニング | SFT | LoRA | フラッシュマスク | プレフィックスチューニング | DPO/SimPO/ORPO | RLHF | 量子化 |
---|---|---|---|---|---|---|---|---|
ラマ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
クウェン | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? | ? |
ミクストラル | ✅ | ✅ | ✅ | ? | ? | ✅ | ? | ? |
ミストラル | ✅ | ✅ | ✅ | ? | ✅ | ✅ | ? | ? |
白川/白川2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? | ✅ |
チャットGLM-6B | ✅ | ✅ | ✅ | ? | ✅ | ? | ? | ✅ |
チャットGLM2/チャットGLM3 | ✅ | ✅ | ✅ | ? | ✅ | ✅ | ? | ✅ |
咲く | ✅ | ✅ | ✅ | ? | ✅ | ? | ? | ✅ |
GPT-3 | ✅ | ✅ | ? | ? | ? | ? | ? | ? |
オプト | ✅ | ✅ | ✅ | ? | ? | ? | ? | ? |
ジェマ | ✅ | ✅ | ✅ | ? | ? | ✅ | ? | ? |
元 | ✅ | ✅ | ✅ | ? | ? | ✅ | ? | ? |
大規模モデル推論はすでに LLaMA シリーズ、Qwen シリーズ、Mistral シリーズ、ChatGLM シリーズ、Bloom シリーズ、Baichuan シリーズをサポートしており、Weight Only INT8 および INT4 推論をサポートし、INT8 および FP8 定量推論の WAC (weight、activation、Cache KV) をサポートしています。 LLM] モデル推論サポートのリストは次のとおりです。
モデル名/量子化タイプのサポート | FP16/BF16 | WINT8 | WINT4 | INT8-A8W8 | FP8-A8W8 | INT8-A8W8C8 |
---|---|---|---|---|---|---|
ラマ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
クウェン | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
クウェン・モー | ✅ | ✅ | ✅ | ? | ? | ? |
ミクストラル | ✅ | ✅ | ✅ | ? | ? | ? |
チャットGLM | ✅ | ✅ | ✅ | ? | ? | ? |
咲く | ✅ | ✅ | ✅ | ? | ? | ? |
バイチュアン | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
Python >= 3.8
パドルパドル >= 3.0.0b0
PaddlePaddleをインストールしていない場合は、PaddlePaddle公式Webサイトを参照してインストールしてください。
pip install --upgrade Paddlenlp==3.0.0b2
または、次のコマンドを使用して最新の開発ブランチ コードをインストールできます。
pip install --pre --upgrade Paddlenlp -f https://www.paddlepaddle.org.cn/whl/paddlenlp.html
PaddlePaddle および PaddleNLP のインストールに関する詳細なチュートリアルについては、「インストール」を参照してください。
PaddleNLP は、モデルとトークナイザーを迅速にロードできる、便利で使いやすい Auto API を提供します。 Qwen/Qwen2-0.5B
モデルを使用したテキスト生成の例を次に示します。
>>> 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("こんにちは! 自己紹介をお願いします。", return_tensors="pd")>>> Outputs = model.generate(**input_features, max_length=128)>>> print(tokenizer .batch_decode (出力[0]、skip_special_tokens=True)) [私は AI 言語モデルです。天気、ニュース、歴史、文化、科学、教育、エンターテイメントなど、さまざまな質問に答えることができます。何か知っておくべきことはありますか? ']
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 コンテンツの詳細については、以下を参照してください。
高品質の事前トレーニング済みモデルのエンドツーエンドの全プロセスの使用を含む、選択されたモデル ライブラリ。
基本テクノロジー、システム アプリケーション、拡張アプリケーションなど、さまざまな NLP 技術的問題を解決するために PaddleNLP を使用する方法を学ぶための複数のシナリオ例。
無料のコンピューティング プラットフォーム AI Studio で PaddleNLP をすばやく学習するためのインタラクティブなチュートリアル。
WeChat で QR コードをスキャンし、アンケートに記入してコミュニケーション グループに参加し、多くのコミュニティ開発者や公式チームと詳細なディスカッションを行ってください。
PaddleNLP があなたの研究に役立つ場合は、お気軽に引用してください。
@misc{=paddlenlp,title={PaddleNLP: 使いやすく高性能な NLP ライブラリ},author={PaddleNLP 寄稿者},howpublished = {url{https://github.com/PaddlePaddle/PaddleNLP}},年={2021}}
私たちは、事前トレーニング済みモデルの使用に関する Hugging Face の Transformers? の優れた設計から学び、Hugging Face の作者とそのオープンソース コミュニティに感謝の意を表したいと思います。
PaddleNLP は、Apache-2.0 オープン ソース ライセンスに従います。