Setup training for gpt2 on oscar-ta
Browse files- .gitattributes +1 -0
- create_config.py +6 -0
- gpt2-tamil/config.json +36 -0
- gpt2-tamil/tokenizer.json +0 -0
- run_clm_flax.py +1 -0
- train_gpt2-oscar-tamil.sh +17 -0
- train_tokenizer.py +27 -0
.gitattributes
CHANGED
@@ -14,3 +14,4 @@
|
|
14 |
*.pb filter=lfs diff=lfs merge=lfs -text
|
15 |
*.pt filter=lfs diff=lfs merge=lfs -text
|
16 |
*.pth filter=lfs diff=lfs merge=lfs -text
|
|
14 |
*.pb filter=lfs diff=lfs merge=lfs -text
|
15 |
*.pt filter=lfs diff=lfs merge=lfs -text
|
16 |
*.pth filter=lfs diff=lfs merge=lfs -text
|
17 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
create_config.py
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from transformers import GPT2Config
|
2 |
+
|
3 |
+
model_dir = "./gpt2-tamil" # ${MODEL_DIR}
|
4 |
+
|
5 |
+
config = GPT2Config.from_pretrained("gpt2", resid_pdrop=0.0, embd_pdrop=0.0, attn_pdrop=0.0)
|
6 |
+
config.save_pretrained(model_dir)
|
gpt2-tamil/config.json
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"activation_function": "gelu_new",
|
3 |
+
"architectures": [
|
4 |
+
"GPT2LMHeadModel"
|
5 |
+
],
|
6 |
+
"attn_pdrop": 0.0,
|
7 |
+
"bos_token_id": 50256,
|
8 |
+
"embd_pdrop": 0.0,
|
9 |
+
"eos_token_id": 50256,
|
10 |
+
"gradient_checkpointing": false,
|
11 |
+
"initializer_range": 0.02,
|
12 |
+
"layer_norm_epsilon": 1e-05,
|
13 |
+
"model_type": "gpt2",
|
14 |
+
"n_ctx": 1024,
|
15 |
+
"n_embd": 768,
|
16 |
+
"n_head": 12,
|
17 |
+
"n_inner": null,
|
18 |
+
"n_layer": 12,
|
19 |
+
"n_positions": 1024,
|
20 |
+
"resid_pdrop": 0.0,
|
21 |
+
"scale_attn_weights": true,
|
22 |
+
"summary_activation": null,
|
23 |
+
"summary_first_dropout": 0.1,
|
24 |
+
"summary_proj_to_labels": true,
|
25 |
+
"summary_type": "cls_index",
|
26 |
+
"summary_use_proj": true,
|
27 |
+
"task_specific_params": {
|
28 |
+
"text-generation": {
|
29 |
+
"do_sample": true,
|
30 |
+
"max_length": 50
|
31 |
+
}
|
32 |
+
},
|
33 |
+
"transformers_version": "4.9.0.dev0",
|
34 |
+
"use_cache": true,
|
35 |
+
"vocab_size": 50257
|
36 |
+
}
|
gpt2-tamil/tokenizer.json
ADDED
The diff for this file is too large to render.
See raw diff
|
run_clm_flax.py
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
/home/deepak/sources/transformers/examples/flax/language-modeling/run_clm_flax.py
|
train_gpt2-oscar-tamil.sh
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/env bash
|
2 |
+
./run_clm_flax.py \
|
3 |
+
--output_dir="${MODEL_DIR}" \
|
4 |
+
--model_type="gpt2" \
|
5 |
+
--config_name="${MODEL_DIR}" \
|
6 |
+
--tokenizer_name="${MODEL_DIR}" \
|
7 |
+
--dataset_name="oscar" \
|
8 |
+
--dataset_config_name="unshuffled_deduplicated_ta" \
|
9 |
+
--do_train --do_eval \
|
10 |
+
--block_size="512" \
|
11 |
+
--per_device_train_batch_size="64" \
|
12 |
+
--per_device_eval_batch_size="64" \
|
13 |
+
--learning_rate="5e-3" --warmup_steps="1000" \
|
14 |
+
--adam_beta1="0.9" --adam_beta2="0.98" --weight_decay="0.01" \
|
15 |
+
--overwrite_output_dir \
|
16 |
+
--num_train_epochs="20" \
|
17 |
+
--push_to_hub
|
train_tokenizer.py
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from datasets import load_dataset
|
2 |
+
from tokenizers import trainers, Tokenizer, normalizers, ByteLevelBPETokenizer
|
3 |
+
|
4 |
+
model_dir = "./gpt2-tamil" # ${MODEL_DIR}
|
5 |
+
|
6 |
+
# load dataset
|
7 |
+
dataset = load_dataset("oscar", "unshuffled_deduplicated_ta", split="train")
|
8 |
+
|
9 |
+
# Instantiate tokenizer
|
10 |
+
tokenizer = ByteLevelBPETokenizer()
|
11 |
+
|
12 |
+
def batch_iterator(batch_size=1000):
|
13 |
+
for i in range(0, len(dataset), batch_size):
|
14 |
+
yield dataset[i: i + batch_size]["text"]
|
15 |
+
|
16 |
+
# Customized training
|
17 |
+
tokenizer.train_from_iterator(batch_iterator(), vocab_size=50265, min_frequency=2, special_tokens=[
|
18 |
+
"<s>",
|
19 |
+
"<pad>",
|
20 |
+
"</s>",
|
21 |
+
"<unk>",
|
22 |
+
"<mask>",
|
23 |
+
])
|
24 |
+
|
25 |
+
# Save files to disk
|
26 |
+
tokenizer.save(f"{model_dir}/tokenizer.json")
|
27 |
+
|