🚀 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獲取訓練數據的服務條款,不適合商業用途。
💡 使用建議
由於模型訓練所用的詞彙量有限,輸入分佈外的詞彙或其他語言可能會導致不理想的結果。在使用時,儘量輸入與訓練數據相似的英文內容。