🚀 TinyStories-GPT2-3M
TinyStories-GPT2-3M是一个小型的GPT - 2模型,仅有300万个可训练参数。它在TinyStories V2数据集上进行了3个轮次的预训练,为研究提供了轻量级的文本生成解决方案。
🚀 快速开始
本模型是一个小型(300万个可训练参数)的GPT - 2模型,在TinyStories V2数据集上进行了3个轮次的预训练。
✨ 主要特性
- 采用GPT - 2架构替代GPT - Neo,在工具支持方面更具优势,有助于加速研究。
- 尽管模型规模小,但生成的文本具有一定的连贯性。
📚 详细文档
模型描述
TinyStories-GPT2-3M是TinyStories模型的复现版本,使用GPT - 2架构替代了GPT - Neo。这是为了加速研究而做出的有意选择,因为GPT - 2架构在各种工具中得到了更广泛的支持。与原始模型类似,尽管该模型规模较小,但生成的文本具有令人惊讶的连贯性,不过我们并未在性能上做出显著改进。
预期用途与局限性
- 研究用途:仅适用于研究,根据OpenAI关于使用其API获取训练数据的服务条款,该模型不适合商业用途。
- 词汇局限性:该模型训练所用的词汇量相当有限。与更大、更通用的模型相比,分布外的输入效果不佳。例如,在输入像“Biology”这样的非平凡词汇后尝试生成几个标记,模型通常会将训练中不常出现的词汇视为故事中的角色名称。
- 语言局限性:所有训练数据均为英文。因此,输入其他语言属于分布外情况,模型可能会将之前的输入视为角色名称、完全忽略输入或生成无意义的标记。
训练和评估数据
该模型在由GPT - 4生成的TinyStories V2数据集上进行了3个轮次的训练。
📦 安装指南
若要复现训练过程,需下载GPT - 4 V2版本的TinyStories数据集以及HuggingFace的train_clm.py
脚本,然后运行以下命令:
#! /bin/bash
python train_clm.py \
--model_type=gpt2 \
--config_overrides=n_embd=64,n_layer=8,n_head=16 \
--tokenizer_name=gpt2 \
--train_file="data/TinyStoriesV2-GPT4-train.txt" \
--validation_file="data/TinyStoriesV2-GPT4-valid.txt" \
--block_size=256 \
--preprocessing_num_workers=8 \
--output_dir="out" \
--logging_dir="./log" \
--logging_steps=100 \
--logging_strategy=steps \
--save_steps=5000 \
--save_total_limit=10 \
--do_train
训练超参数
训练过程中使用了以下超参数:
属性 |
详情 |
n_embd |
64 |
n_layer |
8 |
n_head |
16 |
learning_rate |
5e - 05 |
train_batch_size |
16 |
eval_batch_size |
16 |
seed |
42 |
optimizer |
Adam(betas=(0.9,0.999),epsilon=1e - 08) |
lr_scheduler_type |
linear |
num_epochs |
3.0 |
框架版本
- Transformers 4.35.0.dev0
- Pytorch 2.0.1+cu118
- Datasets 2.14.5
- Tokenizers 0.14.1
⚠️ 重要提示
该模型仅用于研究,根据OpenAI关于使用其API获取训练数据的服务条款,不适合商业用途。
💡 使用建议
由于模型训练所用的词汇量有限,输入分布外的词汇或其他语言可能会导致不理想的结果。在使用时,尽量输入与训练数据相似的英文内容。