language:
en
tags:
pytorch
causal-lm
pythia
license: apache-2.0
datasets:
EleutherAI/the_pile_deduplicated
Pythia可扩展模型套件 是为促进可解释性研究而开发的模型集合(详见论文 )。该套件包含两组共八个模型,规模分别为7000万、1.6亿、4.1亿、10亿、14亿、28亿、69亿和120亿参数。每个规模对应两个模型:一个在原始Pile数据集上训练,另一个在全局去重后的Pile数据集上训练。所有8个规模的模型均在完全相同的数据上按完全相同的顺序训练。我们还为每个模型提供154个中间检查点,以分支形式托管在Hugging Face平台。
Pythia模型套件旨在推动大语言模型的科学研究,特别是可解释性研究。尽管设计目标并非追求下游任务性能,但我们发现这些模型在性能表现上匹配或超越 了OPT和GPT-Neo等同类规模模型。
早期版本与命名规范的说明
此前我们曾发布过Pythia套件的早期版本,但为修正部分超参数差异决定重新训练模型套件。本模型卡列出了变更内容 ;更多讨论请参阅Pythia论文附录B。两个版本在基准测试中表现无差异。旧版模型仍可访问 ,但建议新用户使用重新训练的版本。
当前版本即为此版本
请注意,2023年1月我们对Pythia 套件所有模型进行了重命名。为清晰起见,本模型卡提供了新旧名称对照表 及精确参数统计。
Pythia-10亿参数去重版
模型详情
Pythia模型
非嵌入参数
层数
模型维度
注意力头
批大小
学习率
等效模型
7000万
18,915,328
6
512
8
200万
1.0 x 10-3
—
1.6亿
85,056,000
12
768
12
200万
6.0 x 10-4
GPT-Neo 1.25亿, OPT-125M
4.1亿
302,311,424
24
1024
16
200万
3.0 x 10-4
OPT-3.5亿
10亿
805,736,448
16
2048
8
200万
3.0 x 10-4
—
14亿
1,208,602,624
24
2048
16
200万
2.0 x 10-4
GPT-Neo 13亿, OPT-13亿
28亿
2,517,652,480
32
2560
32
200万
1.6 x 10-4
GPT-Neo 27亿, OPT-27亿
69亿
6,444,163,072
32
4096
32
200万
1.2 x 10-4
OPT-67亿
120亿
11,327,027,200
36
5120
40
200万
1.2 x 10-4
—
Pythia套件 工程细节。同规模去重与非去重模型具有相同超参数。"等效"模型具有完全一致 的架构和非嵌入参数数量
用途与限制
预期用途
Pythia主要面向大语言模型行为、功能与局限性的科学研究。本套件旨在为科学实验提供受控环境。我们为每个模型提供154个检查点:初始step0
、10个对数间隔检查点step{1,2,4...512}
,以及从step1000
到step143000
的143个均匀间隔检查点。这些检查点以分支形式托管在Hugging Face平台,注意143000
分支对应各模型main
分支的最终检查点。
您可根据Apache 2.0许可协议对Pythia-10亿去重版进行微调与适配部署。Pythia模型兼容Hugging FaceTransformers库 。若基于预训练模型进行微调,请自行开展风险与偏见评估。
非适用场景
Pythia套件不 适用于生产部署,其本身并非产品级解决方案,不可用于人机交互场景。例如,模型可能生成有害或冒犯性文本。请根据具体用例评估风险。
Pythia模型仅支持英语,不适用于翻译或其他语言文本生成。
Pythia-10亿去重版未针对常见下游场景(如文体写作、商业聊天机器人)进行微调,其响应方式不会 类似ChatGPT等产品。这是因为本模型未像ChatGPT那样采用人类反馈强化学习(RLHF)等指令微调方法。
局限性与偏见
大语言模型的核心功能是根据文本序列预测下一标记,但生成的文本未必"准确"。切勿依赖Pythia-10亿去重版输出事实性内容。
本模型训练数据the Pile 包含亵渎及低俗文本。Pile论文第6节 讨论了关于性别、宗教和种族的已知偏见。即使提示词不含冒犯内容,Pythia-10亿去重版仍可能生成不符合社会规范的内容。
若通过托管API使用生成文本,建议人工审核后再向他人展示。请告知受众文本由Pythia-10亿去重版生成。
快速入门
以下代码演示如何加载使用Pythia模型(以pythia-7000万去重版
的第三个检查点为例):
from transformers import GPTNeoXForCausalLM, AutoTokenizer
model = GPTNeoXForCausalLM.from_pretrained(
"EleutherAI/pythia-70m-deduped" ,
revision="step3000" ,
cache_dir="./pythia-70m-deduped/step3000" ,
)
tokenizer = AutoTokenizer.from_pretrained(
"EleutherAI/pythia-70m-deduped" ,
revision="step3000" ,
cache_dir="./pythia-70m-deduped/step3000" ,
)
inputs = tokenizer("你好,我是" , return_tensors="pt" )
tokens = model.generate(**inputs)
tokenizer.decode(tokens[0 ])
step143000
分支对应各模型main
分支的最终检查点。
更多使用说明参见GitHub文档 。
训练过程
训练数据
Pythia-10亿去重版在全局去重后 的Pile数据集上训练。
The Pile 是825GB的通用英语数据集,包含22个不同来源的文本,分为五大类:学术文献(如arXiv)、互联网内容(如CommonCrawl)、散文(如古登堡计划)、对话(如YouTube字幕)及其他(如GitHub、安然邮件)。详见Pile论文 的数据源分解与伦理讨论,或数据表 获取详细文档。可从官网 或社区镜像 下载。
训练方法
所有模型在相同数据上按相同顺序训练,每个模型训练期间处理299,892,736,000个标记。从step1000
到step143000
(即main
分支)均匀保存143个检查点,每2,097,152,000标记保存一次。额外提供早期密集检查点:step0
和step{1,2,4...512}
。非去重模型训练约1个epoch,去重模型训练约1.5个epoch。
所有Pythia模型以200万标记的批大小训练143,000步。
训练方法详见GitHub ,包括复现指南 。
Pythia使用与GPT-NeoX-200亿 相同的分词器。
评估结果
16个Pythia模型均通过LM评估工具包 测试。评估结果按模型和训练步数保存在GitHub仓库 的results/json/*
路径下。
展开下方章节查看Pythia与Pythia去重版模型对比OPT和BLOOM的评估结果图表。
LAMBADA – OpenAI
物理交互问答(PIQA)
WinoGrande
AI2推理挑战赛-简单集
SciQ
变更记录
本节比较此前发布的Pythia v0 与当前版本的差异。更多讨论参见Pythia论文附录B。重新训练未影响基准性能表现。
所有模型现采用统一的200万标记批大小(原160M/410M/1.4B模型为400万)
新增初始检查点(step 0)及{1,2,4,8,16,32,64,128,256,512}步检查点
新版套件采用Flash Attention技术
修正学习率衰减不一致问题:原2.8B及以下模型学习率衰减至初始值10%,而6.9B/12B模型衰减至0。新版所有模型均衰减至最大学习率的10%
命名规范与参数统计
2023年1月Pythia模型采用新命名规范(可能仍有文档误用旧名)。现行规范基于参数总量。
当前后缀
旧后缀
总参数
非嵌入参数
7000万
1900万
70,426,624
18,915,328
1.6亿
1.25亿
162,322,944
85,056,000
4.1亿
3.5亿
405,334,016
302,311,424
10亿
8亿
1,011,781,632
805,736,448
14亿
13亿
1,414,647,808
1,208,602,624
28亿
27亿
2,775,208,960
2,517,652,480
69亿
67亿
6,857,302,016
6,444,163,072
120亿
130亿
11,846,072,320
11,327,027,200