模型:
EleutherAI/gpt-j-6b
GPT-J 6B 是一个使用Ben Wang的 Mesh Transformer JAX 进行训练的Transformer模型。"GPT-J"代表模型类别,而"6B"表示可训练参数的数量。
Hyperparameter | Value |
---|---|
n p a r a m e t e r s n_{parameters} n p a r a m e t e r s | 6053381344 |
n l a y e r s n_{layers} n l a y e r s | 28* |
d m o d e l d_{model} d m o d e l | 4096 |
d f f d_{ff} d f f | 16384 |
n h e a d s n_{heads} n h e a d s | 16 |
d h e a d d_{head} d h e a d | 256 |
n c t x n_{ctx} n c t x | 2048 |
n v o c a b n_{vocab} n v o c a b | 50257/50400† (same tokenizer as GPT-2/3) |
Positional Encoding | 1234321 |
RoPE Dimensions | 1235321 |
* 每个层由一个前馈块和一个自注意力块组成。
† 尽管嵌入矩阵的大小为50400,但GPT-2标记器只使用50257个条目。
该模型由28层组成,模型维度为4096,前馈维度为16384。模型维度被分成16个头部,每个头部的维度为256。每个头部的64个维度都应用了Rotary Position Embedding (RoPE)。该模型使用50257个标记的标记化词汇进行训练,使用与GPT-2/GPT-3相同的BPE集合。
GPT-J学习了英语语言的内部表示,可以用于提取对下游任务有用的特征。然而,该模型最擅长的是根据提示生成文本。
GPT-J-6B不能在没有微调、监督和/或监管的情况下部署。它本身不是一种产品,不能用于面向人的交互。例如,该模型可能生成有害或冒犯性的文本。请评估与您特定用例相关的风险。
GPT-J-6B是在仅包含英语的数据集上进行训练的,因此不能用于翻译或生成其他语言的文本。
GPT-J-6B没有在常见的下游环境中进行微调,这些环境通常部署语言模型,如写作流派散文或商业聊天机器人。这意味着与ChatGPT等产品不同,GPT-J-6B不会按照给定的提示做出回应。这是因为ChatGPT等模型使用了强化学习等方法对它们进行了微调,以更好地“遵循”人类指令。
GPT-J的核心功能是接收一串文本并预测下一个标记。尽管语言模型除此之外还可以用于其他任务,但是关于这项工作还有很多未知之处。当给出提示时,重要的一点是要记住,统计上最有可能的下一个标记通常不是产生最“准确”的文本的标记。永远不要依赖于GPT-J生成准确的输出文本。
GPT-J是在包含亵渎性、淫秽和其他粗鲁语言的数据集Pile上进行训练的。根据使用情况,GPT-J可能会生成社会不可接受的文本。有关Pile中偏见的更详细分析,请参阅 Sections 5 and 6 of the Pile paper 。
与所有语言模型一样,很难预先预测GPT-J对特定提示的回应,可能会出现冒犯性内容而没有警告。我们建议在发布之前由人工对输出进行审查或过滤,既可以对不良内容进行审查,也可以改善结果的质量。
可以使用AutoModelForCausalLM功能轻松加载此模型:
from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-j-6B") model = AutoModelForCausalLM.from_pretrained("EleutherAI/gpt-j-6B")
GPT-J 6B 是在 the Pile 的大规模策划数据集上进行的训练,该数据集由 EleutherAI 创建。
此模型是作为自回归语言模型进行训练的,使用交叉熵损失来最大化正确预测下一个标记的可能性。它在TPU v3-256 pod上进行了383500步的训练,总共训练了4020亿个标记。
Model | Public | Training FLOPs | LAMBADA PPL ↓ | LAMBADA Acc ↑ | Winogrande ↑ | Hellaswag ↑ | PIQA ↑ | Dataset Size (GB) |
---|---|---|---|---|---|---|---|---|
Random Chance | ✓ | 0 | ~a lot | ~0% | 50% | 25% | 25% | 0 |
GPT-3 Ada‡ | ✗ | ----- | 9.95 | 51.6% | 52.9% | 43.4% | 70.5% | ----- |
GPT-2 1.5B | ✓ | ----- | 10.63 | 51.21% | 59.4% | 50.9% | 70.8% | 40 |
GPT-Neo 1.3B‡ | ✓ | 3.0e21 | 7.50 | 57.2% | 55.0% | 48.9% | 71.1% | 825 |
Megatron-2.5B* | ✗ | 2.4e21 | ----- | 61.7% | ----- | ----- | ----- | 174 |
GPT-Neo 2.7B‡ | ✓ | 6.8e21 | 5.63 | 62.2% | 56.5% | 55.8% | 73.0% | 825 |
GPT-3 1.3B*‡ | ✗ | 2.4e21 | 5.44 | 63.6% | 58.7% | 54.7% | 75.1% | ~800 |
GPT-3 Babbage‡ | ✗ | ----- | 5.58 | 62.4% | 59.0% | 54.5% | 75.5% | ----- |
Megatron-8.3B* | ✗ | 7.8e21 | ----- | 66.5% | ----- | ----- | ----- | 174 |
GPT-3 2.7B*‡ | ✗ | 4.8e21 | 4.60 | 67.1% | 62.3% | 62.8% | 75.6% | ~800 |
Megatron-11B† | ✓ | 1.0e22 | ----- | ----- | ----- | ----- | ----- | 161 |
GPT-J 6B‡ | ✓ | 1.5e22 | 3.99 | 69.7% | 65.3% | 66.1% | 76.5% | 825 |
GPT-3 6.7B*‡ | ✗ | 1.2e22 | 4.00 | 70.3% | 64.5% | 67.4% | 78.0% | ~800 |
GPT-3 Curie‡ | ✗ | ----- | 4.00 | 69.3% | 65.6% | 68.5% | 77.9% | ----- |
GPT-3 13B*‡ | ✗ | 2.3e22 | 3.56 | 72.5% | 67.9% | 70.9% | 78.5% | ~800 |
GPT-3 175B*‡ | ✗ | 3.1e23 | 3.00 | 76.2% | 70.2% | 78.9% | 81.0% | ~800 |
GPT-3 Davinci‡ | ✗ | ----- | 3.0 | 75% | 72% | 78% | 80% | ----- |
模型根据性能或FLOPs大致排序,如果没有提供可比较的指标,则根据其各自作者报告的评估数字进行排序。其他所有数字都是通过使用已发布的权重或使用API访问运行 lm-evaluation-harness 得出的。由于细微的实现差异以及不同的零样本任务框架,这些数字可能无法直接进行比较。有关更多详细信息,请参阅 this blog post 。
† Megatron-11B没有提供可比较的指标,使用已发布的权重的几个实现也不能复现生成质量和评估结果(请参见 1 2 3 )。因此,未进行评估。
‡ 这些模型的训练数据可能包含可能的测试集污染。OpenAI GPT-3模型未对某些测试集进行去重,而GPT-Neo模型以及该模型是在未对任何测试集进行去重的Pile上进行训练的。
引用此模型:
@misc{gpt-j, author = {Wang, Ben and Komatsuzaki, Aran}, title = {{GPT-J-6B: A 6 Billion Parameter Autoregressive Language Model}}, howpublished = {\url{https://github.com/kingoflolz/mesh-transformer-jax}}, year = 2021, month = May }
引用训练此模型的代码库:
@misc{mesh-transformer-jax, author = {Wang, Ben}, title = {{Mesh-Transformer-JAX: Model-Parallel Implementation of Transformer Language Model with JAX}}, howpublished = {\url{https://github.com/kingoflolz/mesh-transformer-jax}}, year = 2021, month = May }
如果您使用此模型,我们很乐意听到您的使用情况!请通过 GitHub ,Discord或给Ben发送电子邮件与我们联系。
这个项目要感谢Google通过 TPU Research Cloud 慷慨地提供的计算资源,以及Cloud TPU团队提供的 Cloud TPU VM Alpha早期访问权限。
感谢所有以某种方式帮助过的人(按字母顺序列出):