模型详细情况和参数
GPT-J 6B仅支持英文。
GPT-J 6B是一个由EleutherAI研究小组创建的开源自回归语言模型。它是OpenAI的GPT-3的最先进替代品之一,在各种自然语言任务(如聊天、摘要和问答等)方面表现良好。"GPT-J"指的是模型类别,而"6B"表示可训练参数的数量为60亿。
GPT-J 6B是一个transformer结构的模型,使用了Ben Wang的Mesh Transformer JAX训练。
GPT-J 6B模型的具体信息如下:
超参数项 | 参数值 |
---|---|
参数数量(nparameters) | 6053381344 |
层数(nlayers) | 28 |
模型维度(dmodel) | 4096 |
前馈网络维度(dff,feedforward dimension) | 16384 |
heads数量(nheads) | 16 |
head维度(dhead) | 256 |
nctx | 2048 |
词汇数量(nvocab) | 50257() |
位置编码(Positional Encoding) | Rotary Position Embedding(RoPE) |
RoPE维度(RoPE Dimensions) | 64 |
注意:GPT-J 6B模型使用了一个包含50257个单词的分词词汇表进行训练,使用与GPT-2/GPT-3相同的BPE集合。不过,虽然矩阵大小50400,但是GPT-3的tokenizer只使用了500257条记录。
GPT-J 6B模型由28层组成,模型维度为4096,前馈维度为16384。模型维度被分成16个头,每个头的维度为256。旋转位置嵌入(RoPE)应用于每个头的64个维度。该模型使用了一个包含50257个单词的分词词汇表进行训练,使用与GPT-2/GPT-3相同的BPE集合。
GPT-J 6B的训练数据是Pile(Pile介绍: https://www.datalearner.com/ai-dataset/pile )
训练过程
该模型在 TPU v3-256 pod 上进行了383,500步的训练,训练了4020亿个令牌。它作为自回归语言模型进行训练,使用交叉熵损失来最大化预测下一个令牌的正确性的可能性。
预期用途和限制
GPT-J 学习了英语语言的内部表示,可用于提取下游任务中有用的特征。但是,该模型最擅长的是预训练生成提示文本,这也是它的预训练目标。
使用方式
可以使用 AutoModelForCausalLM 功能轻松加载此模型:
from transformers import AutoTokenizer, AutoModelForCausalLMtokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-j-6B")model = AutoModelForCausalLM.from_pretrained("EleutherAI/gpt-j-6B")
其中,tokenizer 负责将输入的文本转换为模型可以理解的输入,而 model 则负责进行文本生成。