模型简介
模型特点
模型能力
使用案例
🚀 GPT2(023)模型卡片
GPT2(023)是OpenAI最小的GPT - 2模型(1.24亿参数),在约22.3亿个标记上进行了微调(几乎达到了“龙猫最优”预训练所需的24.8亿个标记!而且比Cerebras - GPT - 1.11亿模型的总训练标记数还要多)。这些标记数据来源广泛,其中13亿来自2023年的通用爬虫网站,5.4亿来自arXiv,3.9亿来自GitHub。
该模型以1e - 4的学习率进行训练,预热1024步,然后衰减至0。训练期间,在批量大小为512个样本、上下文长度为1024的情况下,总共进行了4400步训练。批量大小和上下文长度与GPT2本身的预训练设置相同。在本地使用12GB的RTX3060显卡,训练总共耗时79.32小时,消耗了1.18e + 18次浮点运算。最终训练损失为2.73。
✨ 主要特性
- 数据多元:使用来自2023年通用爬虫网站、arXiv和GitHub的大量数据进行微调,使模型能接触到更广泛的知识领域。
- 训练精细:采用特定的学习率策略和训练步骤,确保模型在训练过程中能够有效收敛。
- 性能出色:在一些评估指标上表现良好,具有一定的文本生成和理解能力。
📦 安装指南
暂未提及安装相关内容,可参考Hugging Face的transformers
库的安装方式来使用此模型。
💻 使用示例
基础用法
你可以直接使用文本生成管道来使用这个模型。由于生成过程依赖于一定的随机性,我们设置一个种子以保证结果的可重复性:
>>> from transformers import pipeline, set_seed
>>> generator = pipeline('text-generation', model='crumb/gpt2023')
>>> set_seed(42)
>>> generator("Hello, I'm a language model,", max_length=30, num_return_sequences=5)
[{'generated_text': "Hello, I'm a language model, a language for thinking, a language for expressing thoughts."},
{'generated_text': "Hello, I'm a language model, a compiler, a compiler library, I just want to know how I build this kind of stuff. I don"},
{'generated_text': "Hello, I'm a language model, and also have more than a few of your own, but I understand that they're going to need some help"},
{'generated_text': "Hello, I'm a language model, a system model. I want to know my language so that it might be more interesting, more user-friendly"},
{'generated_text': 'Hello, I\'m a language model, not a language model"\n\nThe concept of "no-tricks" comes in handy later with new'}]
高级用法
以下是如何在PyTorch中使用这个模型来获取给定文本的特征:
from transformers import GPT2Tokenizer, GPT2Model
tokenizer = GPT2Tokenizer.from_pretrained('crumb/gpt2023')
model = GPT2Model.from_pretrained('crumb/gpt2023')
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
📚 详细文档
GPT2(023)评估
(进行中)
模型 | piqa准确率 | winogrande准确率 | lambada困惑度 | lambada准确率 | arc准确率 | sciq准确率 | wsc准确率 |
---|---|---|---|---|---|---|---|
pythia - 70m | 59.85 | 51.22 | 140.81 | 21.40 | 17.15 | 65.00 | 36.53 |
pythia - 160m | 62.68 | 51.07 | 30.03 | 36.76 | 19.62 | 76.20 | 36.58 |
pythia - 410m | 66.54 | 52.24 | 11.75 | 49.93 | 21.67 | 80.80 | 60.58 |
opt - 125m | 63.00 | 50.27 | 26.02 | 37.90 | 18.94 | 75.1 | 36.54 |
--- | --- | --- | --- | --- | --- | --- | --- |
gpt2 (1.24亿参数) | 62.89 | 51.61 | 40.06 | 32.56 | 19.03 | 75 | 43.27 |
gpt2023 (1.24亿参数) | 62.02 | 49.64 | 34.55 | 33.98 | 18.94 | 76.1 | 36.54 |
最终得到的模型困惑度为339.38,仅用21%的参数就可与Cerebras - 5.9亿参数的模型相竞争,并且比原始的GPT - 2(得分491.57)要好得多!
(指标解释:https://twitter.com/aicrumb/status/1650350363898265601 ,简而言之,这是个玩笑)
为了展示GPT2(023)对近期事件的感知能力,让我们看一个示例:
# About Covid-19
- -
The Covid-19
模型完成的文本如下:
# About Covid-19
- -
The Covid-19 pandemic is the worldwide pandemic that has left thousands of people unable to enter and work in or continue their normal daily normal life. In this brief post, we examine three of the main factors that have accelerated the pandemic and predict the path the pandemic will take through the rest of the world.
可以看出,GPT2(023)能够生成与新冠疫情相关的连贯文本,展示了它理解近期事件的能力。然而,对于训练数据中不太相关的某些主题,它可能表现不佳。由于微调时仅使用了22.3亿个标记,模型可能错过了许多近期事件。例如,在回答关于最新美国选举的问题时:
Q: Who is the last president?
A: Donald Trump
Q: Who is the most recent president?
A:
模型给出的答案是:Barack Obama
模型描述
(来自GPT - 2模型卡片)
GPT - 2是一个基于自监督方式在非常大的英语语料库上进行预训练的Transformer模型。这意味着它仅在原始文本上进行预训练,没有人工对其进行任何标注(这就是为什么它可以使用大量公开可用的数据),并通过自动过程从这些文本中生成输入和标签。更准确地说,它被训练来预测句子中的下一个单词。
具体而言,输入是一定长度的连续文本序列,目标是相同的序列,但向右移动一个标记(单词或单词片段)。模型内部使用掩码机制,以确保对标记i的预测仅使用从1到i的输入,而不使用未来的标记。
通过这种方式,模型学习到英语语言的内部表示,然后可用于提取对下游任务有用的特征。不过,该模型在其预训练的任务(即根据提示生成文本)上表现最佳。
这是GPT - 2的最小版本,具有1.24亿个参数。
局限性和偏差
该模型使用的训练数据尚未作为可浏览的数据集发布。我们知道它包含大量来自互联网的未过滤内容,这些内容远非中立。正如OpenAI团队在他们的模型卡片中指出的:
由于像GPT - 2这样的大规模语言模型无法区分事实和虚构,我们不支持要求生成文本为真实内容的用例。
此外,像GPT - 2这样的语言模型反映了其训练系统中固有的偏差,因此我们不建议将它们部署到与人类交互的系统中,除非部署者首先对与预期用例相关的偏差进行研究。我们发现7.74亿和15亿参数版本在性别、种族和宗教偏差探测方面没有统计学上的显著差异,这意味着在处理对人类属性偏差敏感的用例时,所有版本的GPT - 2都应采取类似程度的谨慎态度。
Open LLM排行榜评估结果
详细结果可查看此处
指标 | 值 |
---|---|
平均值 | 24.85 |
ARC (25次少样本学习) | 21.93 |
HellaSwag (10次少样本学习) | 31.11 |
MMLU (5次少样本学习) | 25.05 |
TruthfulQA (0次少样本学习) | 40.71 |
Winogrande (5次少样本学习) | 50.12 |
GSM8K (5次少样本学习) | 0.3 |
DROP (3次少样本学习) | 4.73 |
🔧 技术细节
- 训练数据:由2023年通用爬虫网站(13亿标记)、arXiv(5.4亿标记)和GitHub(3.9亿标记)的文本数据组成,共计约22.3亿标记。
- 训练参数:学习率1e - 4,预热1024步后衰减至0,批量大小512,上下文长度1024,总训练步数4400。
- 硬件资源:使用12GB的RTX3060显卡,本地训练耗时79.32小时,消耗1.18e + 18次浮点运算。
- 最终损失:训练结束时损失为2.73。
📄 许可证
本模型采用MIT许可证。



