license: apache-2.0
tags:
- Composer
- MosaicML
- llm-foundry
datasets:
- the_pile_books3
inference: false
MPT-7B-StoryWriter-65k+
MPT-7B-StoryWriter-65k+ 是一款专为超长文本阅读与创作而设计的虚构故事生成模型。该模型基于MPT-7B进行微调,在books3数据集的小说子集上实现了65k tokens的上下文长度。得益于ALiBi技术,推理时可突破65k tokens的限制。我们在博客文章中展示了在8块A100-80GB GPU单节点上生成84k tokens的案例。
本模型由MosaicML训练,采用改进的解码器专用Transformer架构。
模型日期
2023年5月5日
模型许可证
Apache 2.0
文档
使用指南
注意:调用from_pretrained
方法时需设置trust_remote_code=True
,因本模型采用尚未集成至transformers
包的定制架构。
集成多项训练效率优化技术,包括:FlashAttention(Dao等,2022)、ALiBi、QK层归一化等。
import transformers
model = transformers.AutoModelForCausalLM.from_pretrained(
'mosaicml/mpt-7b-storywriter',
trust_remote_code=True
)
使用优化版triton实现的FlashAttention时,可通过以下方式加载BF16精度的GPU(cuda:0)模型:
import torch
import transformers
name = 'mosaicml/mpt-7b-storywriter'
config = transformers.AutoConfig.from_pretrained(name, trust_remote_code=True)
config.attn_config['attn_impl'] = 'triton'
config.init_device = 'cuda:0'
model = transformers.AutoModelForCausalLM.from_pretrained(
name,
config=config,
torch_dtype=torch.bfloat16,
trust_remote_code=True
)
尽管训练时序列长度为2048,微调时扩展至65536,但借助ALiBi技术可在推理时进一步延长:
import transformers
name = 'mosaicml/mpt-7b'
config = transformers.AutoConfig.from_pretrained(name, trust_remote_code=True)
config.max_seq_len = 83968
model = transformers.AutoModelForCausalLM.from_pretrained(
name,
config=config,
trust_remote_code=True
)
模型使用EleutherAI/gpt-neox-20b分词器:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-neox-20b")
可通过文本生成管道调用模型。注意:低精度运行时建议使用torch.autocast上下文管理器。
from transformers import pipeline
pipe = pipeline('text-generation', model=model, tokenizer=tokenizer, device='cuda:0')
with torch.autocast('cuda', dtype=torch.bfloat16):
print(
pipe('纯素香蕉面包配方:\n',
max_new_tokens=100,
do_sample=True,
use_cache=True))
社区资源
非MosaicML官方创建,但可能对您有帮助(以下链接不代表官方认可):
示例尾声
向模型输入《了不起的盖茨比》全文(67873 tokens)后接"EPILOGUE":
TheRealFitzgerald233:
...
于是我们继续奋力前行,逆水行舟,被不断地向后推,直至回到往昔岁月
尾声
MPT-7B-StoryWriter:
我长久生活在这个梦想的阴影下,或许永远看不到现实的阳光。某天清晨醒来,我可能发现自己已长眠地下,而给予我梦想与一切的盖茨比,将永远消失在我身后。
事实正是如此。当我刚踏入旧世界的门槛,报纸头条就映入眼帘,瞬间明白梦想已然终结。我知道盖茨比死了。
那一刻我也明白,我从未爱过她。
当夜我乘最后一班列车回到西卵,回家后直奔阁楼取下沉睡的所有信件。
我按日期整理这些寥寥无几的信件。
它们写于1918年4月至1919年1月,最后一封宣告了他的死亡。
最后那封信中的某些内容令我恐惧——那是种终结感,完满感。此后我再无他的消息,反而感到释然。
但数月前有传闻说他在纽约现身,已成大人物。
而我知道,他丝毫未变。
模型架构
基于标准解码器Transformer的改进版:
超参数 |
值 |
参数量 |
67亿 |
层数 |
32 |
注意力头数 |
32 |
模型维度 |
4096 |
词表大小 |
50432 |
序列长度 |
65536 |
预训练数据
预训练细节详见MPT-7B。使用EleutherAI/gpt-neox-20b分词器。
训练配置
在8块A100-80GB显卡上训练约2天,使用MosaicML平台。采用FSDP分片数据并行与LION优化器。
局限性
(改编自EleutherAI的GPT-NeoX-20B)
MPT-7B-StoryWriter可能产生事实性错误,请勿依赖其输出准确性。虽然预训练数据经过严格清洗,仍可能生成不当/偏见性内容。
致谢
微调工作由Alex Trott及MosaicML NLP团队完成
MosaicML平台
如需在MosaicML平台训练/部署自定义MPT或LLM,请注册申请。
免责声明
本许可证不构成法律建议。使用该模型前请咨询律师,我们不对第三方使用行为负责。
引用格式
@online{MosaicML2023Introducing,
author = {MosaicML NLP团队},
title = {MPT-7B:开源商用LLM新标杆},
year = {2023},
url = {www.mosaicml.com/blog/mpt-7b},
note = {访问日期:2023-03-28},
urldate = {2023-03-28}
}