需先自行安装paddlepaddle>=3.0.0rc1,PaddleNLP不包含框架本身;预训练和SFT示例需先clone仓库并wget下载示例数据集;使用use_fused_rms_norm需额外安装fused_ln外部算子。
PaddleNLP
PaddlePaddleApache-2.0更新放缓基于飞桨的 NLP 与大模型开发库,提供丰富模型库,覆盖 BERT、ERNIE、LLaMA 等,支持分布式训练、压缩和文档智能等任务。
Easy-to-use and powerful LLM and SLM library with awesome model zoo.
pip install --upgrade paddlenlp==3.0.0b4支持英伟达GPU、昆仑XPU、昇腾NPU、燧原GCU和海光DCU等多种硬件训练与推理;README提到16G小显存可流畅训练低资源场景;CPU可运行但需将float16改为float32,具体显存需求README未说明。
基于飞桨的大模型开发套件,覆盖训练、压缩到高性能推理全流程
基于飞桨的 NLP 与大模型开发库,提供丰富模型库,覆盖 BERT、ERNIE、LLaMA 等,支持分布式训练、压缩和文档智能等任务。
核心能力
- 支持4D并行训练与Unified Checkpoint动态扩缩容恢复
- 内置FlashMask算子与零填充数据流提升精调吞吐
- 提供FP8、INT8、4-bit量化推理与MTP投机解码
- 多硬件训推一体,支持GPU、昆仑XPU、昇腾NPU等
- Auto API一行加载模型与Tokenizer做文本生成
容易踩的坑
- rl-v1.0.0Stable RL v1.0.0最新正式版2025-05-21 · 2025-05-21 04:16 UTC
GRPO、RF++ ready
- v3.0.0-beta4pre-release2025-03-12 · 2025-03-12 08:19 UTC
查看更新说明
本次版本中,我们全面集成了 DeepSeek R1类的思考模型。推理团队深度优化了模型推理,速度业界领先。此外,我们还发布了自研PP-UIE信息抽取模型。本次重点更新如下。
重点更新:
-
模型新增
-
推理部署
- 全面支持DeepSeek V3/R1满血版FP8、INT8、4比特量化推理,MTP投机解码。
- FP8推理,单机输出超1000 tokens/s;4比特单机部署,输出超2100 tokens/s!
- 首次协同推理团队,发布统一推理部署镜像,热门模型一键部署。推理部署使用文档全面更新,体验全面提升!见文档。
- 全面支持DeepSeek V3/R1满血版FP8、INT8、4比特量化推理,MTP投机解码。
-
模型训练:
- 新增大模型 Embedding 训练,支持INF-CL超大batch size训练。
- 新增MergeKit模型融合工具,缓解对齐代价。见文档。
- 低资源训练 全面优化。16G小显存可以流畅训练。
-
其他重点特性:
- 文档页面,新增模型列表展示。用户可查看、下载对应模型文件。见文档。
- 训练新增 adam-mini 优化器。AdamW优化器支持 BF16 动量。
下面是一些对应的更新细节:
1. 模型、框架组件更新
- 模型新增
- 模型新增列表:
- paddlenlp/PP-UIE-0.5B, paddlenlp/PP-UIE-1.5B, paddlenlp/PP-UIE-7B, paddlenlp/PP-UIE-14B
- deepseek-ai/DeepSeek-V3, deepseek-ai/DeepSeek-V3-Base,deepseek-ai/DeepSeek-R1, deepseek-ai/DeepSeek-R1-Zero,
- deepseek-ai/DeepSeek-R1-Distill-Llama-70B, deepseek-ai/DeepSeek-R1-Distill-Llama-8B, deepseek-ai/DeepSeek-R1-Distill-Qwen-14B, deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B, deepseek-ai/DeepSeek-R1-Distill-Qwen-32B, deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
- Qwen/Qwen2.5-7B-Instruct-1M,Qwen/Qwen2.5-14B-Instruct-1M, Qwen/QwQ-32B, Qwen/QwQ-32B-Preview
- PR #9738: Deepseek V3 模型新增。PR #9876: 增加 MTP 支持。PR #9797:修复 TP问题。 PR #9643: Deepseek llama3.3 新增模型说明(@DrownFish19)
- PR #9906: Deepseek V3 支持动态图直接加载 Float8 参数并进行推理 (@ZHUI)
- PR #9845: 新增PP-UIE系列模型 @Fantasy-02 i PR #9911 & PR #9913: PP-UIE 相关文档更新(@DrownFish19)
- 模型新增列表:
- Tokenizer 改进
- PR #9548、PR #9577、PR #9594: “Hackathon No.43” 系列,完善 TokenizerFast 功能支持(@yinfan98)
- PR #9745: 修复 AutoTokenizer 问题(@DrownFish19)PR #9837: 保存额外的 special tokens(@DesmonDay)
- Unified Checkpoint 相关:
- PR #9540: 修复加载master weight PR #9523: 修复缺失key问题。
- PR #9669: 统一检查点的 Bug 修复 PR #9935: 针对忽略 merge optimizer 时直接加载参数的问题进行修复
- PR #9741 & PR #9821: 修复专家并行支持问题
- MergeKit 功能增强与优化
- 新增功能与优化
- PR #9561: 新增 mergekit_with_sparsify 功能,支持稀疏化合并(@Mangodadada)。
- PR #9702: 优化 MergeKit 的 GPU 支持,提升处理效率(@Mangodadada)。
- PR #9811: 添加 LoRA(低秩适配器)合并功能,扩展模型融合能力(@lugimzzz)。
- 工具更新与维护
- PR #9885: 对 MergeKit 工具进行代码更新与维护,优化整体逻辑。
- 日志与调试支持
- PR #9948: 添加日志记录功能,增强调试与过程追踪能力(@lugimzzz)。
- 新增功能与优化
- 低资源特性优化
- PR #9804: 添加 use_fused_linear_cross_entropy 支持,减小显存。加入 pre_divided_factor 避免FP16溢出。
- 文档更新、其他:
- PR #9634: unified_checkpoint 文档更新
- PR #9734: 自定义设备代码重构(@ZHUI)
- PR #9715: 增加 offload_recompute_inputs(@will-jl944)
- PR #9800: 增加训练 token 计数功能(@lugimzzz)
2. LLM 训练更新
- 通用训练
- PR #9204: 更新 chatglmv2 的 tensor/pipeline 并行(@DrownFish19)
- PR #9827: 为 Qwen2Moe 和 Deepseek 增加 pipeline 与 flashmask 支持(@DrownFish19)
- Embedding 训练
- PR #9508: Embedding trainer 新增(@DesmonDay)PR #9673: 增加 INF-CL 超大batch训练支持(@jie-z-0607)
- PR #9656: Trainer 中修复加载 rng 状态问题(@DesmonDay)
- PR #9721: 修复 embedding 随机性问题(@DesmonDay)
- DPO训练
- PR #9543: LLM 模块中 dpo 对 qwen2 的 flashmask 支持(@wtmlon)
- PR #9620: 更新 dpo criterion(@lugimzzz)
- PR #9695: 支持 qwen 与 llama 的 dpo pp(@lugimzzz)
- 新功能和特性
- PR #9542: 增加 adam-mini 优化器支持(@lugimzzz)
- PR #9732: 支持BF16动量adamw 训练 (@lugimzzz)
- PR #9830: 修复非 flash 模式下 checkpoint 保存的问题(@SylarTiaNII)
- PR #9705: Cherry-Pick:在 optimizer step 前校验 loss(@SylarTiaNII)
- PR #9704: Cherry-Pick:为 LLM 训练增加异步 metrics dumper(@SylarTiaNII)
- 训练文档及问题修复
- PR #9689: 增加 KTO 功能(@lugimzzz)
- PR #9655: 更新 peft 文档(@lugimzzz)
- PR #9659: 修复 lora 相关问题(@lugimzzz)
3. Inference 更新
- Predictor & Flas
-
- v3.0.0-beta32024-12-16 · 2024-12-16 09:35 UTC
查看更新说明
本次更新增强了PaddleNLP的基础体验,新增了Llama-3.2、DeepSeekV2模型,升级了TokenizerFast功能,重构了SFTTrainer。
此外,PaddleNLP还支持了优化器状态的卸载和重载功能,实现了精细化的重新计算,训练性能提升7%。在Unified Checkpoint方面,进一步优化了异步保存逻辑,新增Checkpoint压缩功能,可节省78.5%存储空间。 最后,在大模型推理、自动并行、多硬件支持、文档使用上,我们都进行了深度优化。
主要更新与增强
-
新增模型:
- 新增了Llama-3.2模型(#9199)、DeepSeekV2模型(#9250),进一步丰富了大型模型的选择。
-
基础架构改进:
-
重构了SFTTrainer和SFTConfig,提高了代码的可维护性。(#9318)
-
支持优化器状态的卸载和重载功能(#9467),有效降低了内存使用。
-
通过Hook实现了精细化的重新计算支持,例如,在llama模型上,训练性能可提升7%。(#9396)
-
Unified Checkpoint优化:
- 更新了异步保存逻辑(#9173, #9274, #9321),显著提升了检查点的保存与加载效率。
- 增加了对专家并行的支持(#9055),使模型训练更加灵活。
- 支持在开启sharding_comm_overlap时使用Unified Checkpoint。(#9392)
- 新增了Checkpoint压缩功能,最多可节省78.5%的存储空间。(#9183)
- 通过多线程技术减少了检查点的加载时间(#9034)。
-
Tokenizer功能增强:
-
-
推理性能提升:
- 支持LLM推理直接量化内置bos模型(#9197)。
- 加强了对LLM推理中FP8 量化的支持(如#9328, #9423),满足了多样化的精度需求。
- 增强了投机解码(speculative decoding)和Append Attention 的支持。(#9180) (#9244)
-
硬件兼容性扩展:
-
自动并行优化:
- 修复了自动并行过程中的多个问题(如#9217, #9355),确保了并行训练的稳定性。
- 更新了自动并行配置与检查点转换器(如#9136, #9432),提升了训练的灵活性和稳定性。
-
文档和测试更新:
- 更新了多个文档,包括LLM模型文档(如#9314)和量化文档(如#9330),确保了信息的时效性和准确性。
- 新增了多个测试用例,如分布式数据加载测试(#9438),提高了测试的覆盖率。
- 修复了文档中的链接错误和排版问题(如#9127, #9515),提升了用户体验。
本次更新标志着PaddleNLP的持续进步,为用户提供了更加全面、高效和稳定的NLP解决方案。我们期待在未来的版本中,继续为用户带来更多的创新和价值。
What's Changed
- [Unified Checkpoint] update async_save_info in develop by @DesmonDay in https://github.com/PaddlePaddle/PaddleNLP/pull/9173
- add flashmask rm by @lugimzzz in https://github.com/PaddlePaddle/PaddleNLP/pull/9154
- [LLM_INFER] Support quantized model from bos and fix docs by @yuanlehome in https://github.com/PaddlePaddle/PaddleNLP/pull/9197
- fix ci not set no_proxy and modify tests in pir mode by @fightfat in https://github.com/PaddlePaddle/PaddleNLP/pull/9205
- [Models] Add Llama-3.2 by @DrownFish19 in https://github.com/PaddlePaddle/PaddleNLP/pull/9199
- move some auto_parallel args into class AutoTrainingArguments by @Wennie396 in https://github.com/PaddlePaddle/PaddleNLP/pull/9155
- [Performance] Compatible with flashmask API rename upgrade by @GuoxiaWang in https://github.com/PaddlePaddle/PaddleNLP/pull/9019
- [AutoParallel] add vpp align and pp amp test by @AndSonder in https://github.com/PaddlePaddle/PaddleNLP/pull/9176
- fix auto ci return bug when run in v100 by @fightfat in https://github.com/PaddlePaddle/PaddleNLP/pull/9216
- fix auto ci return bug when run in v100 by @AndSonder in https://github.com/PaddlePaddle/PaddleNLP/pull/9228
- [LLM] Add tools for parameters by @Hanyonggong in https://github.com/PaddlePaddle/PaddleNLP/pull/9137
- [AutoParallel] Add test for fuse_ffn and fuse_attention_qkv pass by @zhangbo9674 in https://github.com/PaddlePaddle/PaddleNLP/pull/9203
- [CI] Fix ci import. by @ZHUI in https://github.com/PaddlePaddle/PaddleNLP/pull/9239
- [Version] Update version info by @DrownFish19 in https://github.com/PaddlePaddle/PaddleNLP/pull/9241
- [Auto Parallel] Adding align mode support by @zhangyuqin1998 in https://github.com/PaddlePaddle/PaddleNLP/pull/9150
- [LLM INFER] top_p_sampling_reject support top_p=0 and custom seed by @gzy19990617 in
-
- v3.0.0-beta2pre-release2024-10-08 · 2024-10-08 08:52 UTC
查看更新说明
本次更新强化了PaddleNLP的基础设施,新增了Qwen2.5、Mixtral 8*22B模型并升级了Tokenizer功能,同时重命名了数据索引工具。
此外,还修复了MoE模型参数保存与加载等问题,提升了文本处理准确性,并更新了文档与测试用例。在推理性能、硬件支持及自动并行方面也进行了优化,包括支持更多模型与参数配置、多GPU推理、国产硬件支持增强以及分布式训练流程优化等。
核心变更与增强功能
-
基础设施强化:
- 新增Qwen2.5模型(#9157 ),Mixtral 8*22B。进一步丰富模型库。
- Tokenizer功能升级,现支持加载额外解码标记added_tokens_decoder(#8997 ),提升灵活性。
- 数据索引工具
tool_helpers重命名为fast_dataindex(#9134 ),以更直观反映其功能特性。 - 实现训练过程中数据间隔跳过的功能(#8989 ),优化数据处理效率。
- Unified Checkpoint优化:
- 更新优化器异步保存信号(#8975 ),保证保存稳定。
- 修复统一检查点中的多项问题(#9082 ),确保功能正确性。
-
问题修复:
- 解决了MoE模型参数保存与加载的问题(#9045 )。
- 修正Tokenizer中空格与特殊符号处理的不足(#9010 , #9144 ),提升文本处理准确性。
-
文档与测试更新:
- 更新多个文档,涵盖LLM模型文档(如#8990 , #8999 )及量化文档(#9057 )等,确保信息的时效性与准确性。
- 新增测试用例,如针对PIR模式序列并行的测试(#9015 ),强化测试覆盖度。
- 修复文档中的链接错误(如#9127 ),提升用户体验。
-
其他关键变更:
- 推理性能优化:
- LLM推理代码得到优化,支持更多模型与参数配置(如#8986 , #8995 ),拓宽应用场景。
- 实现Qwen2_Moe多GPU推理(#9121 )及wint4量化(#9129 ),提升推理效率。
- 加强LLM推理对FP8与INT8的支持(如#9032 , #9151 ),满足多样化精度需求。
- 硬件支持拓展:
- 增强对DCU、XPU、MLU等国产硬件的支持(如#8983 , #8504 , #9075 ),促进国产化替代。
- 优化上述硬件上的模型训练与推理性能,提升整体运算效率。
- 自动并行优化:
- 修复训练过程中数据重复跳过的问题(#8980 ),确保数据处理的正确性。
- 更新自动并行配置与检查点转换器(如#8847 , #9136 ),提升并行训练的灵活性与稳定性。
- 新增损失NaN/Inf检查器(#8943 ),及时发现并处理潜在数值问题。
- 优化分布式训练中的数据加载与梯度合并流程(如#9120 , #9179 ),提升训练速度与稳定性。
- 推理性能优化:
What's Changed
- [Unified checkpoint] update optimizer async save signal by @DesmonDay in https://github.com/PaddlePaddle/PaddleNLP/pull/8975
- 更正run_dpo.py文件路径 by @Mangodadada in https://github.com/PaddlePaddle/PaddleNLP/pull/8952
- fix the loss base in llama_align_dygraph_dy2st_auto_bs2_bf16_DP2-MP1-… by @winter-wang in https://github.com/PaddlePaddle/PaddleNLP/pull/8986
- [Bug fix] fix skip consumed_samples twice bug by @zhangyuqin1998 in https://github.com/PaddlePaddle/PaddleNLP/pull/8980
- fix pip error in legacy benchmarks by @fightfat in https://github.com/PaddlePaddle/PaddleNLP/pull/8978
- 【auto_parallel】Add checkpoint convertor by @xingmingyyj in https://github.com/PaddlePaddle/PaddleNLP/pull/8847
- [llm]update finetune.md by @lugimzzz in https://github.com/PaddlePaddle/PaddleNLP/pull/8990
- tool_helpers升级后可以支持32766个数据集. by @JunnYu in https://github.com/PaddlePaddle/PaddleNLP/pull/8994
- add DCU inference docs by @YanhuiDua in https://github.com/PaddlePaddle/PaddleNLP/pull/8983
- [Distributed]Add loss nan/inf checker by @ForFishes in https://github.com/PaddlePaddle/PaddleNLP/pull/8943
- 【llm】update docs by @lugimzzz in https://github.com/PaddlePaddle/PaddleNLP/pull/8999
- [Feature] Fused Mixtral support by @penPenf28 in https://github.com/PaddlePaddle/PaddleNLP/pull/8901
- [XPU] Add README.md for llama2-7b by @xiguapipi in https://github.com/PaddlePaddle/PaddleNLP/pull/8979
- Add gcu llama readme by @EnflameGCU in https://github.com/PaddlePaddle/PaddleNLP/pull/8950
- fix qwen model use_casual_mask by @deepllz in https://github.com/PaddlePaddle/PaddleNLP/pull/9009
- [ZeroPadding] revert zero_padding #8973 by @DrownFish19 in https://github.com/PaddlePaddle/PaddleNLP/pull/9003
- [LLM Inference] Fix step.cu bug by @yuanlehome in https://github.com/PaddlePaddle/PaddleNLP/pull/8995
- Refine checkpoint converter by @zhangbo9674 in https://github.com/PaddlePaddle/PaddleNLP/pull/9001
- [Feature] fused mixtral wint4 by @penPenf28 in https://github.com/PaddlePaddle/PaddleNLP/pull/9013
- llm inference docs by @Sunny-bot1 in https://github.com/PaddlePaddle/PaddleNLP/pull/8976
- [LLM Inference] Support Qwen2_Moe Inference Model by @CJ77Qi in https://github.com/PaddlePaddle/PaddleNLP/pull/8892
- fix llama3 static run by @yuanlehome in https://github.com/PaddlePaddle/PaddleNLP/pull/8849
- [paddle inference cpu]update cpu inference by @bukejiyu in https://github.com/PaddlePaddle/PaddleNLP/pull/8984
- fix the tipc ce case by @wawltor in https://github.com/PaddlePaddle/PaddleNLP/pull/8748
- [Cherry-pick] Add is_d
-
- v3.0.0-beta1pre-release2024-08-22 · 2024-08-22 03:41 UTC
查看更新说明
PaddleNLP从v3.0.0-beta0升级至v3.0.0-beta1版本,带来了多项重要更新与增强。新引入了Yuan、mamba和jamba模型,并优化了LLM推理代码,提升了兼容性和效率。
基础性能优化方面,添加了快速分词器,实现了MoE优化器参数广播,加速了层归一化。同时,修复了多个bug,包括safetensors shape切片问题和Windows下mmap问题,提升了系统稳定性和兼容性。
文档与测试方面,进行了全面更新和优化,确保了文档的准确性和代码的可读性。此外,还增强了国产硬件支持,包括DCU和XPU的优化,以及PIR模式和自动并行的配置更新。
主要变更与新增功能
1. 新模型与特性引入
- 新模型:在#8654 中引入了Yuan模型;在#8513 和#8517 中分别添加了mamba和jamba新模型,并在后续Pull Request中修复了相关bug,确保了模型的稳定运行。
- LLM推理优化:通过多个Pull Request,我们优化了LLM推理代码,并新增了对新模型和参数的支持,进一步提升了推理效率和兼容性。
2. 基础性能优化
- 快速分词器:在#8832 中,我们添加了基于
tokenizers库的快速分词器,显著提升了分词速度和性能。 - MoE优化:在#8810 中,我们实现了MoE(Mixture of Experts)优化器参数的广播,有效增强了模型训练的效率。
- 层归一化加速:通过多个Pull Request,我们添加了fast_rmsnorm,启用了use_fast_layer_norm,并更新了基准测试配置,进一步加速了模型训练过程。特别是在#8717 中,我们支持了在微调过程中使用use_fast_layer_norm,为用户提供了更多灵活性。
- 训练性能优化:在#8803 中,我们添加了
enable_sp_async_reduce_scatter选项,有效优化了训练性能。 - 字典参数支持:在#8446 中,我们为trainer的argparser添加了支持字典参数的新特性,增强了参数传递的灵活性。同时,在#8904 中,我们更新了tensorboard的要求,确保了与最新版本的兼容性。
3. Bug修复
- safetensors修复:在#8702 中,我们修复了safetensors的形状问题。
- Windows系统mmap修复:在#8734 中修复了mmap问题,提升了windows的兼容性。
- 其他Bug修复:包括#8687 、#8730 等多个Pull Request中的bug修复。
4. 文档与测试更新
- 文档优化:在多个Pull Request中,我们进行了文档更新、代码风格清理和版本信息更新,确保了文档的准确性和可读性。
- README修复与增强:在#8741 中,我们修复了README中的断链问题;同时,多个贡献者更新了README文档,添加了新的测试用例,确保了文档与代码的同步更新。
5. 其他重要变更
国产硬件支持增强
- DCU支持:在#8580 中,我们实现了针对DCU的高性能LLM训练和推理,拓展了PaddleNLP的硬件支持范围。
- XPU优化:在#8527 中,我们为XPU添加了LoRA优化;在#8697 和#8710 中,我们分别实现了XPU的allgather功能和修复了统一检查点的gather问题,进一步提升了XPU上的模型训练效率。
PIR模式支持
- 导出与加载优化:在#8689 中,我们修改了PIR模式下llama模型的导出方式;在#8712 和#8766 中,我们支持了以三种模式(旧IR、PIR模型文件、PIR JSON文件)加载或保存Llama2-7b模型,为用户提供了更多灵活性和兼容性。
自动并行优化
- 配置更新:在#8679 中,我们更改了Llama2-7b配置中的
max_steps以适应自动并行;在#8767 和#8828 中,我们优化了自动训练器的保存和加载功能;在#8750 中,我们更新了全局剪切的损失函数,进一步提升了自动并行的效率和准确性。
What's Changed
- [DCU] high performance LLM train and inference for DCU by @yuguo-Jack in https://github.com/PaddlePaddle/PaddleNLP/pull/8580
- fix benchmark dir and add CUDA_DEVICE_MAX_CONNECTIONS to qwen by @fightfat in https://github.com/PaddlePaddle/PaddleNLP/pull/8678
- bug fix by @wtmlon in https://github.com/PaddlePaddle/PaddleNLP/pull/8687
- [XPU] add lora optimization by @dynamicheart in https://github.com/PaddlePaddle/PaddleNLP/pull/8527
- [pir save] Modiy export llama model file in pir mode by @xiaoguoguo626807 in https://github.com/PaddlePaddle/PaddleNLP/pull/8689
- [AutoParallel]Change
max_stepsin Llama2-7b config for auto-parallel. by @heavyrain-lzy in https://github.com/PaddlePaddle/PaddleNLP/pull/8679 - [benchmark] Change the mirror source for pip by @mmglove in https://github.com/PaddlePaddle/PaddleNLP/pull/8699
- update loss base of auto-parallel tests by @zhiqiu in https://github.com/PaddlePaddle/PaddleNLP/pull/8701
- Add new mistral by @wtmlon in https://github.com/PaddlePaddle/PaddleNLP/pull/7425
- [Safetensors] Fix safetensors shape by @DesmonDay in https://github.com/PaddlePaddle/PaddleNLP/pull/8702
- [BUG] num_samples 向下去整, 防止prefrech预取时候超过数据集最大长度... by @JunnYu in https://github.com/PaddlePaddle/PaddleNLP/pull/8690
- xpu use allgather by @FeixLiu in https://github.com/PaddlePaddle/PaddleNLP/pull/8697
- add fast_rmsnorm by @deepllz in https://github.com/PaddlePaddle/PaddleNLP/pull/8680
- enable use_fast_layer_norm for llama2 benchmark by @deepllz in https://github.com/PaddlePaddle/PaddleNLP/pull/8714
- fix xpu gather for unified ckpt by @FeixLiu in https://github.com/PaddlePaddle/PaddleNLP/pull/8710
- [inference] support load or save Llama2-7b in three patterns by @lizexu123 in https://github.com/PaddlePaddle/PaddleNLP/pull/8712
- fix fast_ln backward by @deepllz in https://github.com/PaddlePaddle/PaddleNLP/pull/8719
- finetune support use_fast_layer_norm by @tianhaodongbd in https://github.com/PaddlePaddle/PaddleNLP/pull/8717
- bug fix by @FeixLiu in https://github.com/PaddlePaddle/PaddleNLP/pull/8730
- disable lora by @lugimz
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
简体中文🀄 | English🌎
PaddleNLP是一款基于飞桨深度学习框架的大语言模型(LLM)开发套件,支持在多种硬件上进行高效的大模型训练、无损压缩以及高性能推理。PaddleNLP 具备简单易用和性能极致的特点,致力于助力开发者实现高效的大模型产业级应用。
News 📢
-
2025.04.29 PaddleNLP 现已支持 Qwen3 系列模型: Qwen3 系列模型支持持两种思考模式,预训练约 36 万亿个 token、119 种语言和方言。包括六个 Dense 模型, Qwen3-32B、Qwen3-14B、Qwen3-8B、Qwen3-4B、Qwen3-1.7B 和 Qwen3-0.6B。两个 MoE 模型的权重:Qwen3-235B-A22B,Qwen3-30B-A3B。
-
2025.03.12 PaddleNLP v3.0 Beta4:全面支持 DeepSeek V3/R1/R1-Distill, 及 QwQ-32B 等热门思考模型。DeepSeek V3/R1完整版支持 FP8、INT8、4-bit 量化推理,MTP 投机解码。单机 FP8推理输出超1000 tokens/s; 4-bit 推理输出超2100 tokens/s! 发布新版推理部署镜像,热门模型一键部署。推理部署使用文档全面更新,体验全面提升!自研下一代通用信息抽取模型 PP-UIE 全新发布,支持8K 长度信息抽取。新增大模型 Embedding 训练,支持 INF-CL 超大 batch size 训练。新增MergeKit模型融合工具,缓解对齐代价。低资源训练全面优化,16G 小显存可以流畅训练。
-
2025.02.10 PaddleNLP 现已支持 DeepSeek-R1系列模型,在线使用:依托全新的 PaddleNLP 3.0套件,DeepSeek-R1系列模型现已全面支持。凭借数据并行、数据分组切分并行、模型并行、流水线并行以及专家并行等一系列先进的分布式训练能力,结合 Paddle 框架独有的列稀疏注意力掩码表示技术——FlashMask 方法,DeepSeek-R1系列模型在训练过程中显著降低了显存消耗,同时取得了卓越的训练性能提升。
-
2025.03.17 《DeepSeek-R1满血版单机部署实测》 🔥🔥🔥 飞桨框架3.0大模型推理部署全面升级,支持多款主流大模型,DeepSeek-R1满血版实现单机部署,吞吐提升一倍!欢迎广大用户开箱体验~现已开启有奖活动:完成 DeepSeek-R1-MTP 单机部署任务、提交高质量测评 blog,即可实时赢取奖金!💰💰💰 报名地址, 活动详情:https://github.com/PaddlePaddle/PaddleNLP/issues/10166 , 参考文档:https://github.com/PaddlePaddle/PaddleNLP/issues/10157 。
-
2025.03.06 PaddleNLP 现已支持 Qwen/QwQ-32B 模型: 其模型参数仅有 32B,但其数学推理、编程能力和通用能力可与具备 671B 参数(其中 37B 被激活)的 DeepSeek-R1 媲美。借助 PaddleNLP 3.0套件,现可实现多种并行策略微调训练、高性能推理、低比特量化和服务化部署。
-
2025.02.20 🔥🔥《PP-UIE 信息抽取智能引擎全新升级》 强化零样本学习能力,支持极少甚至零标注数据实现高效冷启动与迁移学习,显著降低数据标注成本;具备处理长文本能力,支持 8192 个 Token 长度文档信息抽取,实现跨段落识别关键信息,形成完整理解;提供完整可定制化的训练和推理全流程,训练效率相较于 LLama-Factory 实现了1.8倍的提升。 2月26日(周三)19:00为您深度解析全新 PP-UIE 技术方案及在部署方面的功能、优势与技巧。报名链接:https://www.wjx.top/vm/mBKC6pb.aspx?udsid=606418
-
2024.12.16 PaddleNLP v3.0 Beta3:大模型功能全新升级,新增了 Llama-3.2、DeepSeekV2模型,升级了 TokenizerFast,快速分词,重构了 SFTTrainer,一键开启 SFT 训练。此外,PaddleNLP 还支持了优化器状态的卸载和重载功能,实现了精细化的重新计算,训练性能提升7%。在 Unified Checkpoint 方面,进一步优化了异步保存逻辑,新增 Checkpoint 压缩功能,可节省78.5%存储空间。 最后,在大模型推理方面,升级 Append Attention,支持了 FP8量化,支持投机解码。
-
2024.12.13 📚《飞桨大模型套件 Unified Checkpoint 技术》,加速模型存储95%,节省空间78%。支持全分布式策略调整自适应转换,提升模型训练的灵活性与可扩展性。训练-压缩-推理统一存储协议,无需手动转换提升全流程体验。Checkpoint 无损压缩结合异步保存,实现秒级存储并降低模型存储成本。适用于智能制造、指挥交通、医疗健康、金融服务等产业实际场景。12月24日(周二)19:00直播为您详细解读该技术如何优化大模型训练流程。报名链接:https://www.wjx.top/vm/huZkHn9.aspx?udsid=787976
-
2024.11.28 📚《FlashRAG-Paddle | 基于 PaddleNLP 的高效开发与评测 RAG 框架》,为文本更快更好构建准确嵌入表示、加速推理生成速度。PaddleNLP 支持超大 Batch 嵌入表示学习与多硬件高性能推理,涵盖 INT8/INT4量化技术及多种高效注意力机制优化与 TensorCore 深度优化。内置全环节算子融合技术,使得 FlashRAG 推理性能相比 transformers 动态图提升70%以上,结合检索增强知识输出结果更加准确,带来敏捷高效的使用体验。直播时间:12月3日(周二)19:00。报名链接:https://www.wjx.top/vm/eaBa1vA.aspx?udsid=682361
-
2024.08.08 📚《飞桨产业级大语言模型开发利器 PaddleNLP 3.0 重磅发布》,训压推全流程贯通,主流模型全覆盖。大模型自动并行,千亿模型训推全流程开箱即用。提供产业级高性能精调与对齐解决方案,压缩推理领先,多硬件适配。覆盖产业级智能助手、内容创作、知识问答、关键信息抽取等应用场景。直播时间:8月22日(周四)19:00。报名链接:https://www.wjx.top/vm/Y2f7FFY.aspx?udsid=143844
-
2024.06.27 PaddleNLP v3.0 Beta:拥抱大模型,体验全升级。统一大模型套件,实现国产计算芯片全流程接入;全面支持飞桨4D 并行配置、高效精调策略、高效对齐算法、高性能推理等大模型产业级应用流程;自研极致收敛的 RsLoRA+算法、自动扩缩容存储机制 Unified Checkpoint 和通用化支持的 FastFFN、FusedQKV 助力大模型训推;主流模型持续支持更新,提供高效解决方案。
-
2024.04.24 PaddleNLP v2.8:自研极致收敛的 RsLoRA+算法,大幅提升 PEFT 训练收敛速度以及训练效果;引入高性能生成加速到 RLHF PPO 算法,打破 PPO 训练中生成速度瓶颈,PPO 训练性能大幅领先。通用化支持 FastFFN、FusedQKV 等多个大模型训练性能优化方式,大模型训练更快、更稳定。
特性
🔧 多硬件训推一体
支持英伟达 GPU、昆仑 XPU、昇腾 NPU、燧原 GCU 和海光 DCU 等多个硬件的大模型和自然语言理解模型训练和推理,套件接口支持硬件快速切换,大幅降低硬件切换研发成本。 当前支持的自然语言理解模型:多硬件自然语言理解模型列表
🚀 高效易用的预训练
支持纯数据并行策略、分组参数切片的数据并行策略、张量模型并行策略和流水线模型并行策略的4D 高性能训练,Trainer 支持分布式策略配置化,降低复杂分布式组合带来的使用成本; Unified Checkpoint 大模型存储工具可以使得训练断点支持机器资源动态扩缩容恢复。此外,异步保存,模型存储可加速95%,Checkpoint 压缩,可节省78.5%存储空间。
🤗 高效精调
精调算法深度结合零填充数据流和 FlashMask 高性能算子,降低训练无效数据填充和计算,大幅提升精调训练吞吐。
🎛️ 无损压缩和高性能推理
大模型套件高性能推理模块内置动态插入和全环节算子融合策略,极大加快并行推理速度。底层实现细节封装化,实现开箱即用的高性能并行推理能力。
文档
更多详细文档, 请访问 PaddleNLP Documentation.
模型支持
- 模型参数已支持 LLaMA 系列、Baichuan 系列、Bloom 系列、ChatGLM 系列、Gemma 系列、Mistral 系列、OPT 系列和 Qwen 系列,详细列表👉【LLM】模型参数支持列表如下:
| 模型系列 | 模型名称 |
|---|---|
| PP-UIE | paddlenlp/PP-UIE-0.5B, paddlenlp/PP-UIE-1.5B, paddlenlp/PP-UIE-7B, paddlenlp/PP-UIE-14B |
| LLaMA | facebook/llama-7b, facebook/llama-13b, facebook/llama-30b, facebook/llama-65b |
| Llama2 | meta-llama/Llama-2-7b, meta-llama/Llama-2-7b-chat, meta-llama/Llama-2-13b, meta-llama/Llama-2-13b-chat, meta-llama/Llama-2-70b, meta-llama/Llama-2-70b-chat |
| Llama3 | meta-llama/Meta-Llama-3-8B, meta-llama/Meta-Llama-3-8B-Instruct, meta-llama/Meta-Llama-3-70B, meta-llama/Meta-Llama-3-70B-Instruct |
| Llama3.1 | meta-llama/Meta-Llama-3.1-8B, meta-llama/Meta-Llama-3.1-8B-Instruct, meta-llama/Meta-Llama-3.1-70B, meta-llama/Meta-Llama-3.1-70B-Instruct, meta-llama/Meta-Llama-3.1-405B, meta-llama/Meta-Llama-3.1-405B-Instruct, meta-llama/Llama-Guard-3-8B |
| Llama3.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 |
| Llama3.3 | meta-llama/Llama-3.3-70B-Instruct |
| 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 |
| Bloom | 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 |
| DeepSeekV2 | deepseek-ai/DeepSeek-V2, deepseek-ai/DeepSeek-V2-Chat, deepseek-ai/DeepSeek-V2-Lite, deepseek-ai/DeepSeek-V2-Lite-Chat, deepseek-ai/DeepSeek-Coder-V2-Base, deepseek-ai/DeepSeek-Coder-V2-Instruct, deepseek-ai/DeepSeek-Coder-V2-Lite-Base, deepseek-ai/DeepSeek-Coder-V2-Lite-Instruct |
| DeepSeekV3 | deepseek-ai/DeepSeek-V3, deepseek-ai/DeepSeek-V3-Base |
| DeepSeek-R1 | deepseek-ai/DeepSeek-R1, deepseek-ai/DeepSeek-R1-Zero, deepseek-ai/DeepSeek-R1-Distill-Llama-70B, deepseek-ai/DeepSeek-R1-Distill-Llama-8B, deepseek-ai/DeepSeek-R1-Distill-Qwen-14B, deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B, deepseek-ai/DeepSeek-R1-Distill-Qwen-32B, deepseek-ai/DeepSeek-R1-Distill-Qwen-7B |
| 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-Instruct, Qwen/Qwen2-57B-A14B, Qwen/Qwen2-57B-A14B-Instruct |
| 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-7B-Instruct-1M, Qwen/Qwen2.5-14B, Qwen/Qwen2.5-14B-Instruct, Qwen/Qwen2.5-14B-Instruct-1M, Qwen/Qwen2.5-32B, Qwen/Qwen2.5-32B-Instruct, Qwen/Qwen2.5-72B, Qwen/Qwen2.5-72B-Instruct |
| 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 |
| Qwen3 | Qwen/Qwen3-0.6B, Qwen/Qwen3-1.7B, Qwen/Qwen3-4B, Qwen/Qwen3-8B, Qwen/Qwen3-14B, Qwen/Qwen3-32B, Qwen/Qwen3-30B-A3B, Qwen/Qwen3-235B-A22B, Qwen/Qwen3-0.6B-Base, Qwen/Qwen3-1.7B-Base, Qwen/Qwen3-4B-Base, Qwen/Qwen3-8B-Base, Qwen/Qwen3-14B-Base, Qwen/Qwen3-30B-A3B-Base |
| QwQ | Qwen/QwQ-32B, Qwen/QwQ-32B-Preview |
| Yuan2 | IEITYuan/Yuan2-2B, IEITYuan/Yuan2-51B, IEITYuan/Yuan2-102B |
- 4D 并行和算子优化已支持 LLaMA 系列、Baichuan 系列、Bloom 系列、ChatGLM 系列、Gemma 系列、Mistral 系列、OPT 系列和 Qwen 系列,【LLM】模型4D 并行和算子支持列表如下:
| 模型名称/并行能力支持 | 数据并行 | 张量模型并行 | 参数分片并行 | 流水线并行 | |||
|---|---|---|---|---|---|---|---|
| 基础能力 | 序列并行 | stage1 | stage2 | stage3 | |||
| Llama | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Qwen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Qwen1.5 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Qwen2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Mixtral(moe) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 🚧 |
| Mistral | ✅ | ✅ | 🚧 | ✅ | ✅ | ✅ | 🚧 |
| Baichuan | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Baichuan2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ChatGLM | ✅ | ✅ | 🚧 | ✅ | ✅ | ✅ | 🚧 |
| ChatGLM2 | ✅ | 🚧 | 🚧 | ✅ | ✅ | ✅ | 🚧 |
| ChatGLM3 | ✅ | 🚧 | 🚧 | ✅ | ✅ | ✅ | 🚧 |
| Bloom | ✅ | ✅ | 🚧 | ✅ | ✅ | ✅ | 🚧 |
| GPT-2/GPT-3 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| OPT | ✅ | ✅ | 🚧 | ✅ | ✅ | ✅ | 🚧 |
| Gemma | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Yuan2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 🚧 |
- 大模型预训练、精调(包含 SFT、PEFT 技术)、对齐、量化已支持 LLaMA 系列、Baichuan 系列、Bloom 系列、ChatGLM 系列、Mistral 系列、OPT 系列和 Qwen 系列,【LLM】模型预训练、精调、对齐、量化支持列表如下:
| Model | Pretrain | SFT | LoRA | FlashMask | Prefix Tuning | DPO/SimPO/ORPO/KTO | RLHF | Mergekit | Quantization |
|---|---|---|---|---|---|---|---|---|---|
| Llama | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Qwen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 🚧 | ✅ | 🚧 |
| Mixtral | ✅ | ✅ | ✅ | 🚧 | 🚧 | ✅ | 🚧 | ✅ | 🚧 |
| Mistral | ✅ | ✅ | ✅ | 🚧 | ✅ | ✅ | 🚧 | ✅ | 🚧 |
| Baichuan/Baichuan2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 🚧 | ✅ | ✅ |
| ChatGLM-6B | ✅ | ✅ | ✅ | 🚧 | ✅ | 🚧 | 🚧 | ✅ | ✅ |
| ChatGLM2/ChatGLM3 | ✅ | ✅ | ✅ | 🚧 | ✅ | ✅ | 🚧 | ✅ | ✅ |
| Bloom | ✅ | ✅ | ✅ | 🚧 | ✅ | 🚧 | 🚧 | ✅ | ✅ |
| GPT-3 | ✅ | ✅ | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 | ✅ | 🚧 |
| OPT | ✅ | ✅ | ✅ | 🚧 | 🚧 | 🚧 | 🚧 | ✅ | 🚧 |
| Gemma | ✅ | ✅ | ✅ | 🚧 | 🚧 | ✅ | 🚧 | ✅ | 🚧 |
| Yuan | ✅ | ✅ | ✅ | 🚧 | 🚧 | ✅ | 🚧 | ✅ | 🚧 |
- 大模型推理已支持 LLaMA 系列、Qwen 系列、DeepSeek 系列、Mistral 系列、ChatGLM 系列、Bloom 系列和 Baichuan 系列,支持 Weight Only INT8及 INT4推理,支持 WAC(权重、激活、Cache KV)进行 INT8、FP8量化的推理,【LLM】模型推理支持列表如下:
| 模型名称/量化类型支持 | FP16/BF16 | WINT8 | WINT4 | INT8-A8W8 | FP8-A8W8 | INT8-A8W8C8 |
|---|---|---|---|---|---|---|
| LLaMA | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Qwen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| DeepSeek | ✅ | ✅ | ✅ | 🚧 | ✅ | 🚧 |
| Qwen-Moe | ✅ | ✅ | ✅ | 🚧 | 🚧 | 🚧 |
| Mixtral | ✅ | ✅ | ✅ | 🚧 | 🚧 | 🚧 |
| ChatGLM | ✅ | ✅ | ✅ | 🚧 | 🚧 | 🚧 |
| Bloom | ✅ | ✅ | ✅ | 🚧 | 🚧 | 🚧 |
| BaiChuan | ✅ | ✅ | ✅ | ✅ | ✅ | 🚧 |
安装
环境依赖
- python >= 3.8
- paddlepaddle >= 3.0.0rc1
如果您尚未安装 PaddlePaddle,请参考 飞桨官网 进行安装。
pip 安装
pip install --upgrade paddlenlp==3.0.0b4
或者可通过以下命令安装最新 develop 分支代码:
pip install --pre --upgrade paddlenlp -f https://www.paddlepaddle.org.cn/whl/paddlenlp.html
更多关于 PaddlePaddle 和 PaddleNLP 安装的详细教程请查看Installation。
快速开始
大模型文本生成
PaddleNLP 提供了方便易用的 Auto API,能够快速的加载模型和 Tokenizer。这里以使用 Qwen/Qwen2-0.5B 模型做文本生成为例:
from paddlenlp.transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2-0.5B")
# if using CPU, please change float16 to float32
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2-0.5B", dtype="float16")
input_features = tokenizer("你好!请自我介绍一下。", return_tensors="pd")
outputs = model.generate(**input_features, max_new_tokens=128)
print(tokenizer.batch_decode(outputs[0], skip_special_tokens=True))
# ['我是一个AI语言模型,我可以回答各种问题,包括但不限于:天气、新闻、历史、文化、科学、教育、娱乐等。请问您有什么需要了解的吗?']
大模型预训练
git clone https://github.com/PaddlePaddle/PaddleNLP.git && cd PaddleNLP # 如已clone或下载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/paddlenlp/models/transformers/llama/data/llama_openwebtext_100k.idx
cd .. # change folder to PaddleNLP/llm
# 如需使用use_fused_rms_norm=true,需要前往slm/model_zoo/gpt-3/external_ops安装fused_ln
python -u run_pretrain.py ./config/qwen/pretrain_argument_0p5b.json
大模型 SFT 精调
git clone https://github.com/PaddlePaddle/PaddleNLP.git && cd PaddleNLP # 如已clone或下载PaddleNLP可跳过
mkdir -p llm/data && cd llm/data
wget https://bj.bcebos.com/paddlenlp/datasets/examples/AdvertiseGen.tar.gz && tar -zxvf AdvertiseGen.tar.gz
cd .. # change folder to PaddleNLP/llm
python -u run_finetune.py ./config/qwen/sft_argument_0p5b.json
更多大模型全流程步骤,请参考飞桨大模型套件介绍。 另外我们还提供了快速微调方式, 无需 clone 源代码:
from paddlenlp.trl import SFTConfig, SFTTrainer
from datasets import load_dataset
dataset = load_dataset("ZHUI/alpaca_demo", split="train")
training_args = SFTConfig(output_dir="Qwen/Qwen2.5-0.5B-SFT", device="gpu")
trainer = SFTTrainer(
args=training_args,
model="Qwen/Qwen2.5-0.5B-Instruct",
train_dataset=dataset,
)
trainer.train()
更多 PaddleNLP 内容可参考:
- 精选模型库,包含优质预训练模型的端到端全流程使用。
- 多场景示例,了解如何使用 PaddleNLP 解决 NLP 多种技术问题,包含基础技术、系统应用与拓展应用。
- 交互式教程,在🆓免费算力平台 AI Studio 上快速学习 PaddleNLP。
社区交流
- 微信扫描二维码并填写问卷,即可加入交流群与众多社区开发者以及官方团队深度交流.
Citation
如果 PaddleNLP 对您的研究有帮助,欢迎引用
@misc{=paddlenlp,
title={PaddleNLP: An Easy-to-use and High Performance NLP Library},
author={PaddleNLP Contributors},
howpublished = {\url{https://github.com/PaddlePaddle/PaddleNLP}},
year={2021}
}
Acknowledge
我们借鉴了 Hugging Face 的Transformers🤗关于预训练模型使用的优秀设计,在此对 Hugging Face 作者及其开源社区表示感谢。
License
PaddleNLP 遵循Apache-2.0开源协议。