项目介绍:pythia-12b-deduped
项目背景
Pythia Scaling Suite是由EleutherAI开发的一组模型集,旨在促进可解释性研究。该套件包含两组各八个模型,模型大小分别为70M、160M、410M、1B、1.4B、2.8B、6.9B和12B。每个大小的模型都有两个版本:一个在未经处理的数据集The Pile上训练,另一个在全局去重处理后的The Pile上训练。所有模型都使用相同的数据,以相同的顺序进行训练,这样可以为科学实验提供受控的环境。
模型详情
- 开发者: EleutherAI
- 模型类型: 基于Transformer的语言模型
- 语言: 英语
- 相关资源:
- Pythia的GitHub仓库: 提供训练过程、配置文件和使用说明。
- 技术论文: 包含详细的评估和实现细节。
- 使用库: GPT-NeoX
- 许可证: Apache 2.0
- 联系方法: 加入EleutherAI Discord,在
#release-discussion
频道中提问。普通通信可通过邮件联系contact@eleuther.ai。
适用场景及限制
预期用途
Pythia的主要用途是研究大型语言模型的行为、功能和局限性。研究人员可以在这一受控环境中进行科学实验。此外,我们还提供每个模型的154个中间检查点,用户可以利用这些检查点来对模型进行细致研究。感兴趣的用户也可以在Apache 2.0许可证的条件下,对Pythia-12B-deduped进行进一步微调和适配。
不当用途
Pythia套件不适用于直接部署为人机交互的产品,因为其可能会生成有害或冒犯性的文本。它还不适用于非英文的文本翻译或生成任务。与非商业化语言模型如ChatGPT不同,Pythia并没有经过如“来自人类反馈的强化学习”等方法的微调,因此不能将其用作类似商业聊天机器人的产品。
限制及偏见
该模型是基于The Pile数据集训练的,而该数据集中已知包含不当和可能冒犯的文本。因此,Pythia-12B-deduped可能会生成社会不可接受或不理想的文本输出,即使初始提示并不含明显的冒犯内容。
快速上手
要使用Pythia模型,可以通过以下代码加载和使用,以"pythia-70m-deduped"为例:
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("Hello, I am", return_tensors="pt")
tokens = model.generate(**inputs)
tokenizer.decode(tokens[0])
训练过程
Pythia-12B-deduped在全局去重后的The Pile数据集上进行了训练,训练数据总共包含299,892,736,000个tokens,提供143个检查点,模型训练过程持续了143,000步,批次大小为2M tokens。
在Pythia的训练中,使用了与GPT-NeoX-20B相同的分词器,用户可以查阅GitHub了解更多关于训练过程的细节以及如何复现这一过程。
评估
所有16个Pythia模型都通过LM Evaluation Harness进行了评估。评估结果可以在GitHub仓库中找到,用户可以依据不同的模型和步骤查看评估结果。
命名规范及参数计算
2023年1月,Pythia模型的命名方式进行了更新。目前的命名是基于总参数数量的,例如70M、160M等。在一些文档中,可能仍会出现旧的命名方式。新的命名规范提供了每个模型的总参数和非嵌入参数的详细比较。