117 Star 815 Fork 470

MindSpore / mindformers

2024-05-16 15:23
Lin

MindSpore Transformers 1.1.0 RELEASE NOTE

以下为MindSpore Transformers (以下称为MindFormers) 套件 1.1.0 版本的变更日志,相较于1.0.2版本有以下关键新特性和bug
fix。

MindSpore版本适配

该版本对MindSpore2.3版本进行了适配,该版本支持MindSpore版本为MindSpore 2.3.0-rc2,请注意安装配套版本,其他版本可能会出现问题,同时支持的硬件为Atlas 800T A2服务器。

新特性

  • msrun启动方式:
    msrun是动态组网启动方式的封装,用户可使用msrun以单个命令行指令的方式在各节点拉起多进程分布式任务,并且无需手动设置动态组网环境变量,并且无需依赖第三方库以及配置文件。
  • LoRA权重合并:
    LoRA权重合并将LoRA分支权重合并到原模型对应权重,合并后权重可以使用原模型直接进行推理。
  • 生成任务min_length控制:
    生成任务支持最短生成长度min_length和最短生成tokens数min_new_tokens配置,用以控制最短生成长度,防止模型生成长度过短。
  • ckpt权重转换至torch bin权重:
    使用Mindformers训练得到的ckpt权重,可以通过提供的权重转换功能转换成torch
    bin权重,用于推理评估等下游任务。
  • GLM3支持多轮对话训练:
    GLM3模型新增多轮对话训练,提供多轮对话的数据集处理方式。
  • 训推一体: 训推一体通过使用高性能算子库,在MindFormers框架中下发性能优化、tiling
    cache、动态shape、PagedAttention等方式,以在线推理方式达成高效的推理性能,实现训练到推理零成本迁移。目前语言类模型均支持训推一体。
  • BF16训练:支持模型包含Llama2_7b、Llama2_13b、Llama2_70b、wizardcoder、glm3_6b、qwen_7b、qwen_14b等。
  • 学习率优化
    新增学习率CosineAnnealingLR和CosineAnnealingWarmRestarts,及对存量学习率warmup steps及decay
    steps配置,详见!2300:学习率新增warmup_steps和decay_steps入参,删除WarmUpDecayLR
  • qwen系列支持8k序列长度训练:
    qwen系列支持8k序列长度进行全参微调,支持规模为7b及14b。

新模型

以下为 research 模型:

模型 规格
deepseek deepseek_coder_33b
Llama3 llama3_8b
mixtral mixtral_8x7b
qwen_1.5 qwen1.5_72b qwen1.5_14B
yi yi_6b, yi_34b

Bugfix

在当前版本发布周期内,我们进行了模型/功能/易用性/文档等诸多方面的Bugfix,在此仅列举部分修复内容:

贡献者

感谢以下人员做出的贡献:

Chenhua Geng, dingxu (E), heqinglin, koukairui, renyujin, shuchi, 陈心锐, 陈子恒, 冯浩, 胡桂鹏, 胡思超, 黄磊, 黄生帅,
黄勇, 黄子灵, 焦毅, 林鑫, 倪钰鑫, 彭康, 苏海波, 田凯, 李子垠, 杨星宇, 牛君豪, 张森镇, 张小雯, 张又文, 赵栢杨, 周胜凯,
朱国栋, 张银霞, 谭纬城,吴致远,杨星宇,刘群,曹宇麟,方泽华,金仁操,刘群,李永文,钱驾宏,吴昊天,杨璇,汪家傲

欢迎以任何形式对项目提供贡献!

最后提交信息为: update README.md.
2024-04-23 12:05
Lin

MindSpore Transformers 1.0.2 RELEASE NOTE

以下为MindSpore Transformers (以下称为MindFormers) 套件 1.0.2 版本的变更日志,相较于1.0.1版本有以下关键新特性和bug fix修复。

新特性

新模型

以下为 research 模型:

模型 规格
Qwen1_5 qwen1_5_72b
Mengzi3 mengzi3_13b

Bugfix

在当前版本发布周期内,我们进行了模型/功能/文档等Bugfix,修复内容如下:

MindSpore Transformers 1.0.1 RELEASE NOTE

以下为MindSpore Transformers (以下称为MindFormers) 套件 1.0.1 版本的变更日志,相较于1.0.0版本有以下关键bug fix修复。

Bugfix

在当前版本发布周期内,我们进行了模型/功能/文档等Bugfix,修复内容如下:

MindSpore Transformers 1.0.0 RELEASE NOTE

以下为MindSpore Transformers (以下称为MindFormers) 套件 1.0.0 版本的变更日志

新特性

  • LLM数据在线加载:对于LLM模型的训练场景,该特性支持直接读取非MindRecord格式的数据,如json、parquet等,减少了将数据转换为MindRecord格式的工作量;
  • Flash Attention:Flash Attention(简称FA),是深度学习业界主流的注意力计算加速算法;MindSpore+Ascend架构也提供了FA实现,当前MindFormers对部分模型进行了FA的适配,可使用 model_config 中的 use_flash_attention 配置项控制模型是否使用FA;依赖MindSpore2.2.10及以上版本;
  • 断点续训支持Step级别恢复:对断点续训特性进行了更新迭代,现在使用断点续训特性时,可以自动跳过已训练的数据,恢复到断点权重对应的step位置继续训练;
  • 梯度累积:梯度累积算法是业界常用的扩大batch_size,解决OOM的一种算法,MindSpore在2.1.1之后的版本中增加了 mindspore.nn.wrap.cell_wrapper.GradAccumulationCell 这一梯度累积实现接口,通过拆分MiniBatch的形式实现了梯度累积;MindFormers套件对上述实现接口进行了适配,新增 gradient_accumulation_steps 配置项以控制梯度累积步数;限制:梯度累积当前仅支持在半自动并行模式下使用;
  • output文件夹路径支持自定义:MindFormers现在支持配置 output_dir 以自定义训练权重,切分策略等文件的保存路径;日志文件的保存路径由环境变量 LOG_MF_PATH 控制,可在环境变量使用说明中查看具体信息;
  • 自动并行:自动并行模式让用户可以无需为网络中的每一个算子配置并行策略,即可达到高效并行训练的效果。详情参考MindSpore官网关于自动并行的说明。当前本特性为实验性特性,仅在llama2模型上提供了自动并行的使用配置;
  • adaptive loss scale:现有dynamic loss scaling方案使用固定scale window,在FP16或更低精度(8bit浮点格式)混合精度训练训练时,如果选用较大的scale window,存在loss scaling 调整不及时的风险,影响模型收敛性和收敛速度;如果选用较小的scale window,loss scale调整至合适的值时,仍会频繁上调,损失大量训练数据;Adaptive loss scaling方案,通过动态调节scale window,实现自适应调整loss scale,实时将loss scale调整至FP16和8bit浮点格式正常训练所需的合适的值,同时避免损失大量训练数据;
  • LLM大模型通用export接口:执行MindSpore Lite推理时需导出MindIR文件,本特性提供了适用于LLM大模型的通用export导出接口,用户可使用接口便捷地完成导出功能;
  • 动态组网分布式启动方式:MindSpore2.2.0以上版本提供了动态组网的启动方式,可以在不依赖rank table和第三方库的情况下拉起分布式任务;MindFormers在此提供了相应的脚本和使用教程;
  • beam search采样:文本生成新增支持beam search后处理采样,调用model.generate()接口时,num_beams入参设置大于1的整数值即可启用beam search采样;当前尚不支持与增量推理,流式推理特性同时使用;
  • 模型权重分次加载:MindFormers新增支持了模型权重分次加载的逻辑,适用于低参微调场景,分别加载base权重和lora微调权重;使用方式可参考configs/README.md中关于 load_checkpoint 参数的介绍。

新模型

模型 规格
CodeGeeX2 codegeex2_6b
CodeLLaMA codellama_34b
GLM2-PTuning glm2_6b_ptuning2
GLM3 glm3_6b
GPT2 gpt2_13b

以下为 research 模型:

模型 规格
InternLM interlm_20b (仅推理)
Qwen qwen_7b
qwen_7b_lora
qwen_14b
Skywork skywork_13b
VisualGLM visualglm_6b
WizardCoder wizardcoder_15b

Bugfix

在当前版本发布周期内,我们进行了模型/功能/易用性/文档等诸多方面的Bugfix,在此仅列举部分修复内容:

欢迎对本项目提出意见与建议,以帮助项目持续改进。

贡献者

感谢以下人员做出的贡献:

Chenhua Geng, dingxu (E), fushengshi, heqinglin, koukairui, liuzhidan, renyujin, shuchi, Zhenhao Li, ZhidanLiu, 陈心锐, 陈子恒, 冯浩, 胡桂鹏, 胡思超, 黄磊, 黄生帅, 黄欣靓, 黄勇, 黄子灵, 姜海涛, 焦毅, 李兴炜, 林鑫, 倪钰鑫, 彭康, 苏海波, 田凯, 杨贵龙, 杨路航, 余金, 张森镇, 张小雯, 张又文, 赵栢杨, 周胜凯, 朱国栋

欢迎以任何形式对项目提供贡献!

2024-01-24 14:28
huanglei

MindSpore Transformers 1.0.0 RELEASE NOTE

本文为MindSpore Transformers (以下称为MindFormers) 套件 1.0.0 版本的变更日志

新特性

  • LLM数据在线加载:对于LLM模型的训练场景,该特性支持直接读取非MindRecord格式的数据,如json、parquet等,减少了将数据转换为MindRecord格式的工作量;
  • Flash Attention:Flash Attention(简称FA),是深度学习业界主流的注意力计算加速算法;MindSpore+Ascend架构也提供了FA实现,当前MindFormers对部分模型进行了FA的适配,可使用 model_config 中的 use_flash_attention 配置项控制模型是否使用FA;依赖MindSpore2.2.10及以上版本;
  • 断点续训支持Step级别恢复:对断点续训特性进行了更新迭代,现在使用断点续训特性时,可以自动跳过已训练的数据,恢复到断点权重对应的step位置继续训练;
  • 梯度累积:梯度累积算法是业界常用的扩大batch_size,解决OOM的一种算法,MindSpore在2.1.1之后的版本中增加了 mindspore.nn.wrap.cell_wrapper.GradAccumulationCell 这一梯度累积实现接口,通过拆分MiniBatch的形式实现了梯度累积;MindFormers套件对上述实现接口进行了适配,新增 gradient_accumulation_steps 配置项以控制梯度累积步数;限制:梯度累积当前仅支持在半自动并行模式下使用;
  • output文件夹路径支持自定义:MindFormers现在支持配置 output_dir 以自定义训练权重,切分策略等文件的保存路径;日志文件的保存路径由环境变量 LOG_MF_PATH 控制,可在环境变量使用说明中查看具体信息;
  • 自动并行:自动并行模式让用户可以无需为网络中的每一个算子配置并行策略,即可达到高效并行训练的效果。详情参考MindSpore官网关于自动并行的说明。当前本特性为实验性特性,仅在llama2模型上提供了自动并行的使用配置;
  • adaptive loss scale:现有dynamic loss scaling方案使用固定scale window,在FP16或更低精度(8bit浮点格式)混合精度训练训练时,如果选用较大的scale window,存在loss scaling 调整不及时的风险,影响模型收敛性和收敛速度;如果选用较小的scale window,loss scale调整至合适的值时,仍会频繁上调,损失大量训练数据;Adaptive loss scaling方案,通过动态调节scale window,实现自适应调整loss scale,实时将loss scale调整至FP16和8bit浮点格式正常训练所需的合适的值,同时避免损失大量训练数据;
  • LLM大模型通用export接口:执行MindSpore Lite推理时需导出MindIR文件,本特性提供了适用于LLM大模型的通用export导出接口,用户可使用接口便捷地完成导出功能;
  • 动态组网分布式启动方式:MindSpore2.2.0以上版本提供了动态组网的启动方式,可以在不依赖rank table和第三方库的情况下拉起分布式任务;MindFormers在此提供了相应的脚本和使用教程;
  • beam search采样:文本生成新增支持beam search后处理采样,调用model.generate()接口时,num_beams入参设置大于1的整数值即可启用beam search采样;当前尚不支持与增量推理,流式推理特性同时使用;
  • 模型权重分次加载:MindFormers新增支持了模型权重分次加载的逻辑,适用于低参微调场景,分别加载base权重和lora微调权重;使用方式可参考configs/README.md中关于 load_checkpoint 参数的介绍。

新模型

模型 规格
CodeGeeX2 codegeex2_6b
CodeLLaMA codellama_34b
GLM2-PTuning glm2_6b_ptuning2
GLM3 glm3_6b
GPT2 gpt2_13b

以下为 research 模型:

模型 规格
InternLM interlm_20b (仅推理)
Qwen qwen_7b
qwen_7b_lora
qwen_14b
Skywork skywork_13b
VisualGLM visualglm_6b
WizardCoder wizardcoder_15b

Bugfix

在当前版本发布周期内,我们进行了模型/功能/易用性/文档等诸多方面的Bugfix,在此仅列举部分修复内容:

欢迎对本项目提出意见与建议,以帮助项目持续改进。

贡献者

感谢以下人员做出的贡献:

Chenhua Geng, dingxu (E), fushengshi, heqinglin, koukairui, liuzhidan, renyujin, shuchi, Zhenhao Li, ZhidanLiu, 陈心锐, 陈子恒, 冯浩, 胡桂鹏, 胡思超, 黄磊, 黄生帅, 黄欣靓, 黄勇, 黄子灵, 姜海涛, 焦毅, 李兴炜, 林鑫, 倪钰鑫, 彭康, 苏海波, 田凯, 杨贵龙, 杨路航, 余金, 张森镇, 张小雯, 张又文, 赵栢杨, 周胜凯, 朱国栋

欢迎以任何形式对项目提供贡献!

最后提交信息为: !2180更新环境配置
Python
1
https://gitee.com/mindspore/mindformers.git
git@gitee.com:mindspore/mindformers.git
mindspore
mindformers
mindformers

搜索帮助