许可证: cc-by-nc-sa-4.0
数据集:
- jeffwan/sharegpt_vicuna
- Hello-SimpleAI/HC3
- tatsu-lab/alpaca
- Anthropic/hh-rlhf
- victor123/evol_instruct_70k
标签:
- Composer
- MosaicML
- llm-foundry
推理: false
MPT-7B-Chat对话模型
MPT-7B-Chat是一款专为对话生成设计的类聊天机器人模型。该模型基于MPT-7B基础模型,在ShareGPT-Vicuna、HC3、Alpaca、HH-RLHF及Evol-Instruct等数据集上进行了微调。
本模型由MosaicML训练,采用改进的解码器专用Transformer架构。
模型日期
2023年5月5日
模型许可证
CC-By-NC-SA-4.0(仅限非商业用途)
文档资料
对话示例
用户SamIAm85:
请根据这篇报道摘要撰写一条推文:
"隆重推出MPT-7B,这是我们MosaicML基础系列的最新成员。
MPT-7B是基于1T文本和代码训练的Transformer模型。
该模型完全开源,质量媲美LLaMA-7B。
在MosaicML平台上仅用9.5天完成全自动训练,成本约20万美元。
即日起,您可基于我们的检查点或从头开始训练、微调及部署私有MPT模型。
为提供灵感,我们除基础MPT-7B外还发布了三个微调模型:MPT-7B-Instruct、MPT-7B-Chat和支持65k+上下文的MPT-7B-Story Writer!"
MPT-7B-Instruct:
推文建议:
"重磅!@MosaicML发布#MPT_7B——开源大语言模型新标杆。经1T文本代码训练,性能比肩LLaMA-7B。现可通过其平台训练、微调和部署私有MPT模型。查看完整博文:https://bit.ly/3j6UJzZ"
用户SamIAm85:
你想对MosaicML团队说些什么吗?
MPT-7B-Instruct:
作为AI语言模型,我对MosaicML开发如此高质量的开源LLM深感钦佩。
MPT-7B这一新版模型令人印象深刻,期待开发者运用这些强大工具创造创新应用。
感谢你们为推动AI研发付出的努力与奉献。
使用指南
建议配合MosaicML的llm-foundry代码库进行训练和微调。
import transformers
model = transformers.AutoModelForCausalLM.from_pretrained(
'mosaicml/mpt-7b-chat',
trust_remote_code=True
)
注意:加载模型需设置trust_remote_code=True
,因为采用了Hugging Facetransformers
尚未集成的自定义MPT
架构。该架构包含FlashAttention、ALiBi、QK LayerNorm等多项训练效率优化技术。
如需使用triton实现的FlashAttention,可通过以下方式加载BF16精度的GPU模型:
import torch
import transformers
name = 'mosaicml/mpt-7b-chat'
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,但ALiBi技术支持在微调/推理时扩展最大长度:
import transformers
name = 'mosaicml/mpt-7b-chat'
config = transformers.AutoConfig.from_pretrained(name, trust_remote_code=True)
config.max_seq_len = 4096
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))
模型架构
本模型基于标准解码器专用Transformer改进,主要特点包括:
- 采用FlashAttention
- 使用ALiBi(线性偏置注意力)替代位置编码
- 移除了偏置参数
超参数 |
值 |
参数量 |
67亿 |
层数 |
32 |
注意力头数 |
32 |
模型维度 |
4096 |
词表大小 |
50432 |
序列长度 |
2048 |
训练配置
在8块A100-80GB显卡上训练约8.2小时,后续在32块A100-40GB显卡训练6.7小时(使用MosaicML平台)。采用FSDP分片数据并行和AdamW优化器。
局限性
(改编自EleutherAI GPT-NeoX-20B)
MPT-7B-Chat可能产生事实性错误输出,请勿依赖其提供准确信息。虽然预训练数据经过严格清洗,但仍可能生成不当/偏见内容。
致谢
模型由Sam Havens和MosaicML NLP团队完成微调。
免责声明
本许可证不构成法律建议。使用该模型产生的风险需自行承担,商业用途前请咨询法律顾问。
MosaicML平台
如需在MosaicML平台训练部署自定义MPT/LLM模型,请点击注册。
引用格式
@online{MosaicML2023Introducing,
author = {MosaicML NLP Team},
title = {Introducing MPT-7B: A New Standard for Open-Source, Commercially Usable LLMs},
year = {2023},
url = {www.mosaicml.com/blog/mpt-7b},
note = {访问日期: 2023-03-28},
urldate = {2023-03-28}
}