Meta AI 开源1750亿参数大模型- OPT,FlagAI一键调用!
简介
Meta AI 开源 OPT系列模型,其中最大模型1750 亿参数(需申请访问权限)媲美 GPT-3。OPT系列模型包括了多组不同参数规模的模型权重,如图:
OPT开源了一系列大模型,但是实际调用这些模型有很高的技术门槛。为了推广大模型的技术,FlagAI一键加载OPT不同版本的模型,后面也会持续完善。本篇文章主要简要科普OPT模型的结构,列举复现OPT模型的过程中遇到的困难,并给出使用FlagAI快速加载OPT模型示例代码。关于FlagAI更详细的介绍可以查阅 大模型一键调用方案来了!北京智源人工智能研究院推出NLP大模型训练框架FlagAI
FlagAI仓库地址: https:// github.com/BAAI-Open/Fl agAI
OPT模型论文地址: https:// arxiv.org/pdf/2205.0106 8.pdf
Github仓库地址: https:// github.com/facebookrese arch/metaseq
175B模型申请访问权限地址 : https:// forms.gle/dag8g7nKiR4o4 VZq5
背景
OPT全称Open Pre-trained Transformer Language Models,即“开放的预训练Transformer语言模型”。我们都知道GPT-3有着非常惊艳的效果,网上也有很多有意思的demo展示,但是其模型权重并没有开源,我们无法查看到其内部具体的原理;而这次Meta AI 直接开源千亿参数的OPT模型,对标GPT3,模型性能方面,在多个任务,不管是zero-shot还是multi-shot中都取得了与GPT-3可比的成绩(左图为zero-shot,右图为multi-shot):
值得注意的是,在模型结构方面,OPT与GPT系列模型均采用了Transformer-Decoder结构,使用了下三角的Mask,因此在解码时自左向右进行自回归的预测。
使用FlagAI快速下载并使用OPT系列模型
目前FlagAI已经集成opt125m、opt350m、opt1.3b、opt2.7b、opt6.7b、opt13b、opt30b模型,更大参数量的模型正在陆续支持,只需要两行代码便可以直接进行加载:
如果已经安装了FlagAI (pip install -U flagai),便可以通过上述代码直接进行下载、使用。
opt-13b模型下载过程如图所示:
生成结果为:
输入:
How about the book The Old Man and the Sea?
Thanks for your question, let me share my thoughts:
I think that "The Old Man and the Sea" is a great read.
It has many themes which are very interesting but also relatable in some cases (not only for readers).
In conclusion, I would definitely recommend this book to everybody.
100亿以上模型的加载和推理
模型参数在10b以上的时候,单卡可能就会遇到OOM的问题。为此,可以采用cpu加载/多GPU加载的方式。
CPU加载方式
from flagai.model.predictor.predictor import Predictor
from flagai.auto_model.auto_loader import AutoLoader
loader = AutoLoader(task_name="lm",
model_name="opt-30b-en")
model = loader.get_model()
tokenizer = loader.get_tokenizer()
model.eval()
text = "The trophy doesn’t fit in the suitcase because "
predictor = Predictor(model, tokenizer)
out = predictor.predict_generate_randomsample(text,
input_max_length=100,