PaddleNLP

PaddlePaddleApache-2.0更新放缓

基于飞桨的 NLP 与大模型开发库,提供丰富模型库,覆盖 BERT、ERNIE、LLaMA 等,支持分布式训练、压缩和文档智能等任务。

Easy-to-use and powerful LLM and SLM library with awesome model zoo.

rl-v1.0.0发布于 2025-05-21 04:16 UTC12,986star3,018fork同步于 2026-11-10 11:27 UTC

怎么上手

由 README 提炼,执行前请确认
pip install --upgrade paddlenlp==3.0.0b4
硬件要求按 README 说明

支持英伟达GPU、昆仑XPU、昇腾NPU、燧原GCU和海光DCU等多种硬件训练与推理;README提到16G小显存可流畅训练低资源场景;CPU可运行但需将float16改为float32,具体显存需求README未说明。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于飞桨的大模型开发套件,覆盖训练、压缩到高性能推理全流程

基于飞桨的 NLP 与大模型开发库,提供丰富模型库,覆盖 BERT、ERNIE、LLaMA 等,支持分布式训练、压缩和文档智能等任务。

核心能力

  • 支持4D并行训练与Unified Checkpoint动态扩缩容恢复
  • 内置FlashMask算子与零填充数据流提升精调吞吐
  • 提供FP8、INT8、4-bit量化推理与MTP投机解码
  • 多硬件训推一体,支持GPU、昆仑XPU、昇腾NPU等
  • Auto API一行加载模型与Tokenizer做文本生成

容易踩的坑

需先自行安装paddlepaddle>=3.0.0rc1,PaddleNLP不包含框架本身;预训练和SFT示例需先clone仓库并wget下载示例数据集;使用use_fused_rms_norm需额外安装fused_ln外部算子。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本rl-v1.0.0
  1. rl-v1.0.0Stable RL v1.0.0最新正式版2025-05-21 · 2025-05-21 04:16 UTC

    GRPO、RF++ ready

  2. v3.0.0-beta4pre-release2025-03-12 · 2025-03-12 08:19 UTC
    查看更新说明

    本次版本中,我们全面集成了 DeepSeek R1类的思考模型。推理团队深度优化了模型推理,速度业界领先。此外,我们还发布了自研PP-UIE信息抽取模型。本次重点更新如下。

    重点更新:

    • 模型新增

      • DeepSeek V3/R1, R1-distill, QwQ-32B 热门思考模型,全面支持。用户可以点击官方模型文档列表查看、下载所有模型。
      • 飞桨自研发布下一代通用信息抽取工具 PP-UIE 全新发布。支持8K长度信息抽取。使用文档。
    • 推理部署

      • 全面支持DeepSeek V3/R1满血版FP8、INT8、4比特量化推理,MTP投机解码。
        • FP8推理,单机输出超1000 tokens/s;4比特单机部署,输出超2100 tokens/s!
      • 首次协同推理团队,发布统一推理部署镜像,热门模型一键部署。推理部署使用文档全面更新,体验全面提升!见文档。
    • 模型训练:

      • 新增大模型 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
  3. 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%存储空间。 最后,在大模型推理、自动并行、多硬件支持、文档使用上,我们都进行了深度优化。

    主要更新与增强

    1. 新增模型:

      • 新增了Llama-3.2模型(#9199)、DeepSeekV2模型(#9250),进一步丰富了大型模型的选择。
    2. 基础架构改进:

      • 重构了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功能增强:

        • 允许在Tokenizer调用时指定padding_side参数(#9258),提升了用户体验。
        • Qwen tokenizer现支持添加特殊标记(#9344),增强了其灵活性。
        • 修复了TokenizerFast中缺失的clean_up_tokenization_spaces问题(#9304),提高了文本处理的准确性。
        • 统一了分词器的_pad函数到基类。#9280
        • 新增了对BertTokenizerFast的支持,并允许在调用时注册tokenizer。(#9353)
        • 改进了Qwen、Gemma、Yuan模型chat template的特殊输入处理。(#9462)
    3. 推理性能提升:

      • 支持LLM推理直接量化内置bos模型(#9197)。
      • 加强了对LLM推理中FP8 量化的支持(如#9328, #9423),满足了多样化的精度需求。
      • 增强了投机解码(speculative decoding)和Append Attention 的支持。(#9180) (#9244)
    4. 硬件兼容性扩展:

      • 加强了对Intel HPU的支持(#9273),现在支持动态图预测。
      • 为XPU等国产硬件提供了统一检查点功能(#9312)。
      • 修复了XPU和DCU支持中的错误,并提升了性能。#9414 和#9433
    5. 自动并行优化:

      • 修复了自动并行过程中的多个问题(如#9217, #9355),确保了并行训练的稳定性。
      • 更新了自动并行配置与检查点转换器(如#9136, #9432),提升了训练的灵活性和稳定性。
    6. 文档和测试更新:

      • 更新了多个文档,包括LLM模型文档(如#9314)和量化文档(如#9330),确保了信息的时效性和准确性。
      • 新增了多个测试用例,如分布式数据加载测试(#9438),提高了测试的覆盖率。
      • 修复了文档中的链接错误和排版问题(如#9127, #9515),提升了用户体验。

    本次更新标志着PaddleNLP的持续进步,为用户提供了更加全面、高效和稳定的NLP解决方案。我们期待在未来的版本中,继续为用户带来更多的创新和价值。

    What's Changed

  4. v3.0.0-beta2pre-release2024-10-08 · 2024-10-08 08:52 UTC
    查看更新说明

    本次更新强化了PaddleNLP的基础设施,新增了Qwen2.5、Mixtral 8*22B模型并升级了Tokenizer功能,同时重命名了数据索引工具。

    此外,还修复了MoE模型参数保存与加载等问题,提升了文本处理准确性,并更新了文档与测试用例。在推理性能、硬件支持及自动并行方面也进行了优化,包括支持更多模型与参数配置、多GPU推理、国产硬件支持增强以及分布式训练流程优化等。

    核心变更与增强功能

    1. 基础设施强化:

      • 新增Qwen2.5模型(#9157 ),Mixtral 8*22B。进一步丰富模型库。
      • Tokenizer功能升级,现支持加载额外解码标记added_tokens_decoder(#8997 ),提升灵活性。
      • 数据索引工具tool_helpers重命名为fast_dataindex(#9134 ),以更直观反映其功能特性。
      • 实现训练过程中数据间隔跳过的功能(#8989 ),优化数据处理效率。
      • Unified Checkpoint优化:
        • 更新优化器异步保存信号(#8975 ),保证保存稳定。
        • 修复统一检查点中的多项问题(#9082 ),确保功能正确性。
    2. 问题修复:

      • 解决了MoE模型参数保存与加载的问题(#9045 )。
      • 修正Tokenizer中空格与特殊符号处理的不足(#9010 , #9144 ),提升文本处理准确性。
    3. 文档与测试更新:

      • 更新多个文档,涵盖LLM模型文档(如#8990 , #8999 )及量化文档(#9057 )等,确保信息的时效性与准确性。
      • 新增测试用例,如针对PIR模式序列并行的测试(#9015 ),强化测试覆盖度。
      • 修复文档中的链接错误(如#9127 ),提升用户体验。
    4. 其他关键变更:

      • 推理性能优化:
        • 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

  5. 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

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    简体中文🀄 | 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-UIEpaddlenlp/PP-UIE-0.5B, paddlenlp/PP-UIE-1.5B, paddlenlp/PP-UIE-7B, paddlenlp/PP-UIE-14B
    LLaMAfacebook/llama-7b, facebook/llama-13b, facebook/llama-30b, facebook/llama-65b
    Llama2meta-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
    Llama3meta-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.1meta-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.2meta-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.3meta-llama/Llama-3.3-70B-Instruct
    Baichuanbaichuan-inc/Baichuan-7B, baichuan-inc/Baichuan-13B-Base, baichuan-inc/Baichuan-13B-Chat
    Baichuan2baichuan-inc/Baichuan2-7B-Base, baichuan-inc/Baichuan2-7B-Chat, baichuan-inc/Baichuan2-13B-Base, baichuan-inc/Baichuan2-13B-Chat
    Bloombigscience/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
    ChatGLMTHUDM/chatglm-6b, THUDM/chatglm-6b-v1.1
    ChatGLM2THUDM/chatglm2-6b
    ChatGLM3THUDM/chatglm3-6b
    DeepSeekV2deepseek-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
    DeepSeekV3deepseek-ai/DeepSeek-V3, deepseek-ai/DeepSeek-V3-Base
    DeepSeek-R1deepseek-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
    Gemmagoogle/gemma-7b, google/gemma-7b-it, google/gemma-2b, google/gemma-2b-it
    Mistralmistralai/Mistral-7B-Instruct-v0.3, mistralai/Mistral-7B-v0.1
    Mixtralmistralai/Mixtral-8x7B-Instruct-v0.1
    OPTfacebook/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
    Qwenqwen/qwen-7b, qwen/qwen-7b-chat, qwen/qwen-14b, qwen/qwen-14b-chat, qwen/qwen-72b, qwen/qwen-72b-chat,
    Qwen1.5Qwen/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
    Qwen2Qwen/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-MathQwen/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.5Qwen/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-MathQwen/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-CoderQwen/Qwen2.5-Coder-1.5B, Qwen/Qwen2.5-Coder-1.5B-Instruct, Qwen/Qwen2.5-Coder-7B, Qwen/Qwen2.5-Coder-7B-Instruct
    Qwen3Qwen/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
    QwQQwen/QwQ-32B, Qwen/QwQ-32B-Preview
    Yuan2IEITYuan/Yuan2-2B, IEITYuan/Yuan2-51B, IEITYuan/Yuan2-102B
    • 4D 并行和算子优化已支持 LLaMA 系列、Baichuan 系列、Bloom 系列、ChatGLM 系列、Gemma 系列、Mistral 系列、OPT 系列和 Qwen 系列,【LLM】模型4D 并行和算子支持列表如下:
    模型名称/并行能力支持数据并行张量模型并行参数分片并行流水线并行
    基础能力序列并行stage1stage2stage3
    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】模型预训练、精调、对齐、量化支持列表如下:
    ModelPretrainSFTLoRAFlashMaskPrefix TuningDPO/SimPO/ORPO/KTORLHFMergekitQuantization
    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/BF16WINT8WINT4INT8-A8W8FP8-A8W8INT8-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开源协议。