模型:
Abzu/mpt-7b-chat-q8
MPT-7B-Chat是一种类似聊天机器人的对话生成模型。它是通过在 ShareGPT-Vicuna , HC3 , Alpaca , HH-RLHF 和 Evol-Instruct 数据集上微调 MPT-7B 而构建的。
该模型由 MosaicML 进行训练,采用修改后的仅解码器的Transformer架构。
2023年5月5日
CC-By-NC-SA-4.0(仅限非商业使用)
SamIAm85:
我希望你能根据这篇文章摘要给出一个推文:“介绍MPT-7B,我们MosaicML Foundation系列的最新版本。MPT-7B是一个从头开始训练的变压器模型,训练数据包括IT中的文本和代码。它是开源的,并且与LLaMA-7B的质量相匹配。MPT-7B在MosaicML平台上以9.5天的时间训练而成,没有人为干预,成本约为200,000美元。从今天开始,您可以训练、微调和部署您自己的私有MPT模型,可以从我们的检查点开始或从头开始训练。作为灵感,我们还发布了三个微调模型,除了基础的MPT-7B外还有MPT-7B-Instruct、MPT-7B-Chat和MPT-7B-Story Writer-65k+,最后一个使用了65k个标记的上下文长度!
MPT-7B-Instruct:
给您一个推文建议:“令人兴奋的消息!@MosaicML推出了#MPT_7B-开源LLM的新标准。它使用了17个文本和代码标记进行训练,与LLaMA-7B的质量相匹配。现在,您可以通过他们的平台训练、微调和部署您自己的私有MPT模型。在这里查看完整的博文: https://bit.ly/3j6UJzZ"
SamIAm85:
对这个令人兴奋的消息,你有什么想对MosaicML说的吗?
MPT-7B-Instruct:
作为一个语言模型,我对MosaicML在开发高质量开源LLM方面的进展印象深刻。这个新版本的MPT-7B真是令人印象深刻,我期待看到开发者们使用这些强大工具创造出哪些创新应用。感谢您在推动人工智能研究和开发方面的辛勤工作和献身精神。
该模型最适用于与MosaicML llm-foundry repository 一起用于训练和微调。
import transformers model = transformers.AutoModelForCausalLM.from_pretrained( 'mosaicml/mpt-7b-chat', trust_remote_code=True )
注意:该模型要求通过from_pretrained方法传递trust_remote_code=True。这是因为我们使用的自定义MPT模型架构尚未包含在Hugging Face transformers软件包中。MPT包括许多训练效率特性选项,如 FlashAttention , ALiBi , QK LayerNorm 等。
要使用优化的FlashAttention实现 triton implementation ,可以在GPU(cuda:0)上加载模型,并使用attn_impl='triton'和bfloat16精度:
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' # For fast initialization directly on GPU! model = transformers.AutoModelForCausalLM.from_pretrained( name, config=config, torch_dtype=torch.bfloat16, # Load model weights in 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 # (input + output) tokens can now be up to 4096 model = transformers.AutoModelForCausalLM.from_pretrained( name, config=config, trust_remote_code=True )
该模型使用的是 EleutherAI/gpt-neox-20b tokenizer。
from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-neox-20b")
然后,该模型可以在文本生成流水线中使用。注意:在低精度下运行Torch模块时,最佳实践是使用 torch.autocast context manager 进行。
from transformers import pipeline pipe = pipeline('text-generation', model=model, tokenizer=tokenizer, device='cuda:0') with torch.autocast('cuda', dtype=torch.bfloat16): print( pipe('Here is a recipe for vegan banana bread:\n', max_new_tokens=100, do_sample=True, use_cache=True))
该架构是对标准仅解码器的Transformer的修改。
该模型相对于标准的Transformer进行了以下修改:
Hyperparameter | Value |
---|---|
n_parameters | 6.7B |
n_layers | 32 |
n_heads | 32 |
d_model | 4096 |
vocab size | 50432 |
sequence length | 2048 |
该模型在8个A100-80GB上进行了大约8.2小时的训练,然后在32个A100-40GB上使用 MosaicML Platform 进行了6.7小时的训练。模型采用了分片数据并行训练和 FSDP 优化器的AdamW。
以下语言修改自 EleutherAI's GPT-NeoX-20B
MPT-7B-Chat可能会产生事实不准确的输出,不应依赖其产生事实准确的信息。MPT-7B-Chat是通过对各种公共数据集进行训练而得的,尽管我们已经尽力清理预训练数据,但模型可能会生成淫秽、偏见或具有冒犯性的输出。
此模型由Sam Havens和MosaicML NLP团队进行微调。
该模型的许可证不构成法律建议。我们对使用该模型的第三方的行为不承担责任。在商业用途中使用该模型之前,请咨询律师。
如果您对在MosaicML平台上开发和部署您自己的MPT或LLM感兴趣,请 sign up here 。
请使用以下格式引用此模型:
@online{MosaicML2023Introducing, author = {MosaicML NLP Team}, title = {Introducing MPT-7B: A New Standard for Open-Source, ly Usable LLMs}, year = {2023}, url = {www.mosaicml.com/blog/mpt-7b}, note = {Accessed: 2023-03-28}, % change this date urldate = {2023-03-28} % change this date }