Skip to content

Releases: PaddlePaddle/PaddleNLP

Stable RL v1.0.0

21 May 04:16
3b0c8ff
Compare
Choose a tag to compare

GRPO、RF++ ready

v3.0.0-beta4

12 Mar 08:19
a286abc
Compare
Choose a tag to compare
v3.0.0-beta4 Pre-release
Pre-release

本次版本中,我们全面集成了 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 改进
  • 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溢出。
  • 文档更新、其他:

2. LLM 训练更新

3. Inference 更新

4. AutoParallel / 分布式训练更新

5. CI、文档、Benchmark 及测试脚本更新

6. NPU/XPU 及硬件相关更新

7. Bug 修复、性能优化及其他改进

8. 环境/依赖及版本兼容更新

  • requirements 及安装更新
  • Python 版本兼容性
    • PR #9853: 解决类型注解在不同 Python 版本下的兼容性问题(@zty-king

What's Changed

Read more

v3.0.0-beta3

16 Dec 09:35
418c3a5
Compare
Choose a tag to compare

本次更新增强了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

Read more

v3.0.0-beta2

08 Oct 08:52
81de41a
Compare
Choose a tag to compare
v3.0.0-beta2 Pre-release
Pre-release

本次更新强化了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

Read more

v3.0.0-beta1

22 Aug 03:41
7473743
Compare
Choose a tag to compare
v3.0.0-beta1 Pre-release
Pre-release

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

Read more

v3.0.0-beta0

28 Jun 03:05
a2b8a78
Compare
Choose a tag to compare

很高兴地通知大家,飞桨大模型套件发布v3.0.0beat版本:拥抱大模型,体验全升级。具体工作如下:

  • 统一大模型工具链,实现国产计算芯片全流程接入;
  • 全面支持飞桨4D并行配置、高效精调策略、高效对齐算法、高性能推理等大模型产业级应用流程;
  • 自研极致收敛的RsLoRA+算法、自动扩缩容存储机制Unified Checkpoint和通用化支持FastFFN、FusedQKV助力大模型训推;
  • 主流模型持续支持更新,提供高效解决方案。

大模型精调对齐训推优化

模型新增

  • 新增Gemma模型 in #8082

    • google/gemma-7b
    • google/gemma-7b-it
    • google/gemma-2b
    • google/gemma-2b-it
  • 新增llama3模型 in #8307 #8371

    • 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
  • 新增Qwen2模型 in #8338 #8584 #8601

    • 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
    • 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

基础框架升级

  • 功能优化:

  • AutoParallel优化

    • llama支持recompute机制 in #8265
    • 适配llama3 in #8395
    • position_ids优化 in #8363
    • 支持流水线并行split_backward in #8479
    • 适配qwen in #8312
  • 分布式能力优化:

    • 修复流水线并行中enable_sharding_comm_overlap中参数错误问题 in #8333
    • MoE并行支持 in #8498 #8522
  • chat能力优化:

    • 增加Chat template in #8226
  • 其他

问题修复

  • 修复sharding数量小于100的bug in #8146
  • 修复TP/PP参数合并问题 in #8239
  • 修复tensor.shape与paddle.shape(tensor)不一致问题 in #8260
  • 修复fp16+delay_scale_loss_scale+sharding_stage1_overlap的bug in #8314
  • 增加pipelines运行文档及提示 in #8292 #8308 #8202 #8353
  • 修复text feature extraction任务中tokenizer输入 in #8331
  • 修复import error in #8332 #8367

结构调整

PaddleNLP文件结构调整 in #8609 #8613 #8605 #8614 #8617 #8626 #8618 #8625 #8619 #8629 #8601 #8627 #8666

What's Changed

Read more

v2.8.1

20 Jun 07:42
db99efd
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.8.0...v2.8.1

v2.8.0

24 Apr 10:04
Compare
Choose a tag to compare

很高兴地通知大家,飞桨大模型套件发布v2.8.0版本。这个版本中,我们深度优化套件的大模型精调对齐的能力,提升大模型套件在国产计算硬件训推能力,具体工作如下:

  • 特色精调和高效对齐:提供自研极致收敛的RsLoRA+算法,大幅提升PEFT训练收敛速度以及训练效果;引入高性能生成加速到RLHF PPO算法,打破 PPO 训练中生成速度瓶颈,PPO训练性能大幅领先。
  • 大模型训练提速:通用化支持 FastFNN、FusedQKV等多个大模型训练性能优化方式,大模型训练更快、更稳定。

大模型精调对齐训推优化

  • 精调
    • PEFT
      • 新增QLoRA pipeline parallel支持 #7801
      • 自定义python算子,优化LoRA的前反向计算 #8106
      • 新增 rslora,lora+,pissa 算法 #8111
    • 长序列
      • 新增长序列方案和模型解耦。RotaryEmbedding,LinearScalingRotaryEmbedding,NTKScalingRotaryEmbedding,DynamicNTKScalingRotaryEmbedding等。#8076
    • Alignment
      • 新增PPO 对齐算法 #7305
    • 训练策略
      • 新增LLaMA sequence parallel #7746
      • 新增LLaMa master_grad #7658
      • GPT新增auto_parallel的支持。 #8160
    • 新增算子
      • 新增GQA 算子支持 #7906
      • 新增gqa fuse attention qkv #7890
      • 新增SwiGLU 算子 #8038
  • 推理
    • 新增QWenVL 的静态图推理 #7808
      模型新增
  • 新增Deberta,Debertav2模型 #8227
    • deepset/deberta-v3-large-squad2
    • microsoft/deberta-v2-xlarge
    • microsoft/deberta-v3-base
    • microsoft/deberta-v3-large
    • microsoft/deberta-base
  • 新增mixtral-of-experts #7803
    • mistralai/Mixtral-8x7B-Instruct-v0.1
    • mistralai/Mixtral-8x7B-v0.1
  • 新增LLama3 #8315
    • 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

基础框架升级

  • Trainer升级
    • Trainer新增 ignore_save_lr_and_optim 参数,可以忽略保存lr scheduler以及optimizer权重 #7978
    • Trainer新增 Wandb 和 Tensorboard 支持。#7863
    • Trainer支持同时解析命令行与json文件参数 #7768
    • trainer新增gradient_sync_after_accumulate支持。#8045
    • dataloader新增cuda编译检查 #8099
  • AutoParallel升级
    • llama 自动并行支持bf16损失 #7874
    • 增加refined-recompute机制#7349
    • 在AMP-O2策略下支持master_grad#7658
    • 进一步完善动静统一自动并行分布式训练基本功能#7985 #8114
    • 新增Llama2模型基于AutoTrainer的半自动训练 #7851 #7885
    • 新增llama的hybrid_parallel_topo_order策略。#8011
    • llama模型组网动静统一 #8127
  • 其他
    • 重构download下载逻辑,支持从bos、hf hub、aistudio、model scope下载模型 #7608 #8020 #8088
    • 新增分布式训练的pipeline parallel #8051
    • 适配npu的FA #8171 #8210
    • llama新增block_attention/cachekv quant #7649

其他支持

  • 新增俄罗斯套娃(matryoshka representation learning)检索策略,节省计算和存储资源。#8165

问题修复

  1. 日志级别修改,并增加timelog计时日志,兼容不同设备。#8261
  2. 修复pipeline并行中随机初始化的shared weights不一致的问题,覆盖GPT/OPT等模型。#7772
  3. 关闭CI及单测中从huggingface hub下载的逻辑 #7798 #8198
  4. 修复llm的gradio开启chat template时候重复拼接query 和 history的问题。#7992
  5. 修复GPT模型下载key error问题。#8253
  6. 修复LlamaRotaryEmbedding #7882
  7. 修复allreduce dtype的问题 #7876
  8. 修复框架侧dev分支清理 paddle.jit.dy2static.utils_helperAPI的问题 #7989
  9. 修复read-data timer在ignore_data_skip=False and skip_profile_timer=False 的问题。#8177
  10. 修复Wandb单测问题 #8066 #8056
  11. 修复Trainer同时解析json与命令行列表参数报错问题#7860
  12. 修复Gradio UI 中的推理问题 #7740 #7788
  13. 修复 Tokenizer 相关的基础问题 #7797 7870
  14. 修复 custom devices上loading rng state的问题。#7894
  15. 修复自动并行打印BF16的loss编码错乱的问题#7874
  16. 采用float初始化模型,修复静态图自动并行AMP报错问题#8033#8199
  17. 修复ShardDataloader接口在PipeLine Parallelism下使用错误问题#8014
  18. 修复llama在custom devices的精度问题。#7895
  19. 修复NPU AICPU算子问题 #7976
  20. 修复FusedLinearWithGradAdd少传参数的问题。#8178

What's Changed

Read more

v2.7.2

30 Jan 07:50
b39e701
Compare
Choose a tag to compare

本版本做了一些小问题的修复

What's Changed

Full Changelog: v2.7.1...v2.7.2

v2.7.1

04 Jan 14:24
bb9062e
Compare
Choose a tag to compare

本版本做了一些小问题的修复

What's Changed

Full Changelog: v2.7.0...v2.7.1