Loading...

FlagAI飞智:AI基础模型开源项目,支持一键调用OPT等模型

智源社区1年前 (2023)发布 智源社区
486 0 0

背景

GPT-3、OPT系列、悟道等预训练模型在NLP领域取得了非常瞩目的效果,但是不同代码仓库有着不同实现风格,并且在预训练大模型过程中使用的技术也各不相同,造成了技术鸿沟。为了快速加载、训练、推理不同大模型,使用最新最快的模型并行技术以及提高用户训练和使用模型的便捷性,智源人工智能研究院推出了FlagAI(飞智)基础模型开源项目,为一键调大模型等功能提供支持。

FlagAI特点

FlagAI飞智是一个快速、易于使用和可扩展的AI基础模型工具包。 支持一键调用多种主流基础模型,同时适配了中英文多种下游任务。

  • FlagAI支持最高百亿参数的悟道GLM(详见GLM介绍),同时也支持BERT、RoBERTa、GPT2、T5 模型、Meta OPT模型和 Huggingface Transformers 的模型。
  • FlagAI提供 API 以快速下载并在给定(中/英文)文本上使用这些预训练模型,你可以在自己的数据集上对其进行微调(fine-tuning)或者应用提示学习(prompt-tuning)。
  • FlagAI提供丰富的基础模型下游任务支持,例如文本分类、信息提取、问答、摘要、文本生成等,对中英文都有很好的支持。
  • FlagAI由三个最流行的数据/模型并行库(PyTorch/Deepspeed/Megatron-LM)提供支持,它们之间实现了无缝集成。 在FlagAI上,你可以用不到十行代码来并行你的训练、测试过程,也可以方便的使用各种模型提速技巧。

开源项目地址:https://github.com/BAAI-Open/FlagAI

FlagAI飞智:AI基础模型开源项目,支持一键调用OPT等模型

应用示例

一键调用Pipeline

例如:调用GLM预训练模型直接进行中文问答、词句补全任务

FlagAI飞智:AI基础模型开源项目,支持一键调用OPT等模型

只需要三行代码便可以加载GLM-large-ch模型与对应的tokenizer。

此外,我们还支持一键调用:

  1. 标题生成任务
  2. 通用NER命名实体识别任务
  3. 文本续写任务
  4. 语义相似度匹配任务等

训练样例

除了可以方便的进行不同任务的一键调用,FlagAI还提供了丰富的训练样例,并对每个训练例子提供了数据样例,可以更加方便的理解训练流程。

例如使用Bert模型进行标题生成任务的训练,训练相关的目录结构组织如下(详见开源代码仓库examples目录 https://github.com/BAAI-Open/FlagAI/tree/master/examples):

FlagAI飞智:AI基础模型开源项目,支持一键调用OPT等模型

其中data目录为样例的数据结构,news.tsv为样例数据格式,可以更方便的理解训练过程;train.py为训练的脚本文件;generate.py为推理的脚本文件。

FlagAI提供了非常丰富了中文/英文训练样例,可以直接下载相关数据进行训练,也可以灵活的切换自己的数据集,实现训练、推理全流程支持。

多种数据并行、模型并行训练方式支持

FlagAI支持多种并行的训练策略,包括:

  1. pytorch:常规的pytorch单卡训练
  2. pytorchDDP:常规的pytorch数据并行,多卡训练
  3. deepspeed:微软开源的高效深度学习训练优化库,增大多卡训练显存利用效率,详情请看:https://github.com/microsoft/DeepSpeed
  4. deepspeed+mpu:mpu为英伟达开源的megatron-lm模型并行方法,详情请看:https://github.com/NVIDIA/Megatron-LM

在FlagAI中,可以根据模型的大小任意选择不同的训练方式,并且FlagAI中还集成了很多实用的技巧操作,例如fp16半精度、梯度累积、梯度重计算、CPU offload及各种并行计算策略等。对于Bert-base级别的模型,组合使用这些技巧可将显存占用率减少50%以上,训练速度得到大幅提升;使用单卡V100也可以轻松finetune百亿级别的模型,快来试试吧。

后续计划

目前FlagAI所支持的大多为NLP中常用的模型,在后续的版本中,FlagAI将会继续集成计算机视觉和多模态方向的预训练模型,例如Vit、Swin-Transformer、PVT等,使FlagAI更加通用。欢迎大家试用,并提出宝贵的意见,也可以通过多种方式加入我们,共同讨论大模型技术。

项目地址:https://github.com/BAAI-Open/FlagAI

FlagAI技术交流群

FlagAI飞智:AI基础模型开源项目,支持一键调用OPT等模型

© 版权声明

相关文章

暂无评论

暂无评论...