模型:
anas-awadalla/mpt-1b-redpajama-200b
MPT-1b-RedPajama-200b是一个训练在 RedPajama dataset 上的13亿个参数的仅解码transformer模型。该模型通过以与 Llama series of models 相同比例从RedPajama数据集的子集中采样训练了200B个标记。该模型由 MosaicML 训练,并采用了修改后的仅解码transformer架构。
2023年4月20日
注意:该模型在使用from_pretrained方法时需要传递trust_remote_code=True。这是因为我们使用了一个不属于transformers包的自定义模型架构MosaicGPT。MosaicGPT具有许多训练效率功能选项,如 FlashAttention (Dao et al. 2022) 、 ALIBI 、QK LayerNorm等。
import transformers model = transformers.AutoModelForCausalLM.from_pretrained('mosaicml/mpt-1b-redpajama-200b', trust_remote_code=True)
要使用优化的FlashAttention triton实现,您可以加载attn_impl='triton'并将模型转换为bfloat16,如下所示:
model = transformers.AutoModelForCausalLM.from_pretrained('mosaicml/mpt-1b-redpajama-200b', trust_remote_code=True, attn_impl='triton') model.to(device='cuda:0', dtype=torch.bfloat16)
该模型使用了MosaicML LLM代码库,该代码库可以在 MosaicML Examples Repository 中找到。该架构是标准仅解码transformer的修改版本。transformer具有24个层,16个注意力头和宽度为2048。该模型在以下方面与标准transformer不同:
该模型经过了200B个标记的训练(批量大小为2200,序列长度为2048)。训练数据的混合包括以下内容:
这与Llama系列模型]( https://arxiv.org/abs/2302.13971 )所使用的数据组合相同。
每个样本都是从其中一个数据集中选择的,选择数据集的概率如上所述。在每个数据集内部对示例进行了洗牌。每个示例由来自该数据集的足够填充2048序列长度的序列构成。
数据是使用 EleutherAI/gpt-neox-20b 的分词器进行的。
该模型在440个A100-40GB上进行了半天的训练,使用了 MosaicML Platform 。模型采用了分片数据并行(FSDP)进行训练。
该模型基于 Together 的工作,后者创建了RedPajama数据集,目的是模仿用于创建Llama系列模型的训练数据。我们由衷感谢组织这个数据集的团队的辛勤工作,并希望这个模型能成为那项工作的有用补充。
我们还要感谢那些创建Llama系列模型的研究人员的工作,这是我们工作的动力,以及在RedPajama项目上工作的人员。