Upload folder using huggingface_hub
Browse files- config.json +3 -3
- gen_tokenizer.py +1833 -0
- infer_gguf.py +177 -0
- model_tiny.py +124 -105
- prepare_tiny_data.py +210 -0
- quantize_gguf.py +119 -0
- tokenizer.json +1 -1
- train_tiny.py +20 -19
- train_tiny.yaml +11 -23
config.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
| 1 |
{
|
| 2 |
"architectures": ["TinyModel"],
|
| 3 |
"model_type": "tiny",
|
| 4 |
-
"vocab_size":
|
| 5 |
"hidden_size": 128,
|
| 6 |
-
"
|
| 7 |
-
"num_hidden_layers":
|
| 8 |
"num_attention_heads": 8,
|
| 9 |
"num_key_value_heads": 4,
|
| 10 |
"max_position_embeddings": 2048,
|
|
|
|
| 1 |
{
|
| 2 |
"architectures": ["TinyModel"],
|
| 3 |
"model_type": "tiny",
|
| 4 |
+
"vocab_size": 4096,
|
| 5 |
"hidden_size": 128,
|
| 6 |
+
"code_dim": 96,
|
| 7 |
+
"num_hidden_layers": 6,
|
| 8 |
"num_attention_heads": 8,
|
| 9 |
"num_key_value_heads": 4,
|
| 10 |
"max_position_embeddings": 2048,
|
gen_tokenizer.py
ADDED
|
@@ -0,0 +1,1833 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import json
|
| 2 |
+
|
| 3 |
+
# === GPT-2 byte-to-unicode mapping ===
|
| 4 |
+
def bytes_to_unicode():
|
| 5 |
+
bs = list(range(ord("!"), ord("~") + 1)) + list(range(ord("¡"), ord("¬") + 1)) + list(range(ord("®"), ord("ÿ") + 1))
|
| 6 |
+
cs = bs[:]
|
| 7 |
+
n = 0
|
| 8 |
+
for b in range(256):
|
| 9 |
+
if b not in bs:
|
| 10 |
+
bs.append(b)
|
| 11 |
+
cs.append(256 + n)
|
| 12 |
+
n += 1
|
| 13 |
+
return {b: chr(c) for b, c in zip(bs, cs)}
|
| 14 |
+
|
| 15 |
+
byte2char = bytes_to_unicode()
|
| 16 |
+
# Reverse mapping: char -> byte
|
| 17 |
+
char2byte = {c: b for b, c in byte2char.items()}
|
| 18 |
+
|
| 19 |
+
# === Vocab structure ===
|
| 20 |
+
# IDs 0-50: 51 special tokens
|
| 21 |
+
# IDs 51-306: 256 byte-level chars
|
| 22 |
+
# IDs 307-4095: ~3789 curated English words + subwords
|
| 23 |
+
special_tokens = [
|
| 24 |
+
("<unk>", 0),
|
| 25 |
+
("<s>", 1),
|
| 26 |
+
("</s>", 2),
|
| 27 |
+
("<pad>", 3),
|
| 28 |
+
("<|system|>", 4),
|
| 29 |
+
("<|user|>", 5),
|
| 30 |
+
("<|assistant|>", 6),
|
| 31 |
+
("<think>", 7),
|
| 32 |
+
("</think>", 8),
|
| 33 |
+
("[INST]", 9),
|
| 34 |
+
("[/INST]", 10),
|
| 35 |
+
("<|begin_of_thought|>", 11),
|
| 36 |
+
("<|end_of_thought|>", 12),
|
| 37 |
+
("<|reflect|>", 13),
|
| 38 |
+
("<|revise|>", 14),
|
| 39 |
+
("<|verify|>", 15),
|
| 40 |
+
("<|code|>", 16),
|
| 41 |
+
("<|text|>", 17),
|
| 42 |
+
("<|math|>", 18),
|
| 43 |
+
("<|think|>", 19),
|
| 44 |
+
("<|answer|>", 20),
|
| 45 |
+
("<|step|>", 21),
|
| 46 |
+
("<|reason|>", 22),
|
| 47 |
+
("<|check|>", 23),
|
| 48 |
+
("<|output|>", 24),
|
| 49 |
+
("<|plan|>", 25),
|
| 50 |
+
("<|solve|>", 26),
|
| 51 |
+
("<|analyze|>", 27),
|
| 52 |
+
("<|conclude|>", 28),
|
| 53 |
+
("<|approach|>", 29),
|
| 54 |
+
("<|alternative|>", 30),
|
| 55 |
+
("<|summary|>", 31),
|
| 56 |
+
("<|question|>", 32),
|
| 57 |
+
("<|hint|>", 33),
|
| 58 |
+
("<|example|>", 34),
|
| 59 |
+
("<|correct|>", 35),
|
| 60 |
+
("<|incorrect|>", 36),
|
| 61 |
+
("<|feedback|>", 37),
|
| 62 |
+
("<|start|>", 38),
|
| 63 |
+
("<|end|>", 39),
|
| 64 |
+
("<|sep|>", 40),
|
| 65 |
+
("<|cls|>", 41),
|
| 66 |
+
("<|tool|>", 42),
|
| 67 |
+
("<|function|>", 43),
|
| 68 |
+
("<|result|>", 44),
|
| 69 |
+
("<|input|>", 45),
|
| 70 |
+
("<|detect|>", 46),
|
| 71 |
+
("<|context|>", 47),
|
| 72 |
+
("<|proof|>", 48),
|
| 73 |
+
("<|lemma|>", 49),
|
| 74 |
+
("<|theorem|>", 50),
|
| 75 |
+
]
|
| 76 |
+
|
| 77 |
+
# IDs 51-306: 256 byte-level characters
|
| 78 |
+
byte_tokens = []
|
| 79 |
+
for b in range(256):
|
| 80 |
+
byte_tokens.append((byte2char[b], 51 + b))
|
| 81 |
+
|
| 82 |
+
# IDs 307+: common words (variable count, no filler)
|
| 83 |
+
# Most frequent English words + programming terms
|
| 84 |
+
common_words = [
|
| 85 |
+
"the", "be", "to", "of", "and", "a", "in", "that", "have", "I",
|
| 86 |
+
"it", "for", "not", "on", "with", "he", "as", "you", "do", "at",
|
| 87 |
+
"this", "but", "his", "by", "from", "they", "we", "say", "her", "she",
|
| 88 |
+
"or", "an", "will", "my", "one", "all", "would", "there", "their", "what",
|
| 89 |
+
"so", "up", "out", "if", "about", "who", "get", "which", "go", "me",
|
| 90 |
+
"when", "make", "can", "like", "time", "no", "just", "him", "know", "take",
|
| 91 |
+
"people", "into", "year", "your", "good", "some", "could", "them", "see", "other",
|
| 92 |
+
"than", "then", "now", "look", "only", "come", "its", "over", "think", "also",
|
| 93 |
+
"back", "after", "use", "two", "how", "our", "work", "first", "well", "way",
|
| 94 |
+
"even", "new", "want", "because", "any", "these", "give", "day", "most", "us",
|
| 95 |
+
"is", "was", "are", "were", "been", "has", "had", "did", "does", "am",
|
| 96 |
+
"being", "having", "doing", "saying", "going", "getting", "making", "knowing", "taking", "thinking",
|
| 97 |
+
"come", "coming", "came", "go", "goes", "gone", "going", "went",
|
| 98 |
+
"see", "saw", "seen", "seeing", "say", "said", "says", "saying",
|
| 99 |
+
"get", "got", "gotten", "getting", "make", "made", "makes", "making",
|
| 100 |
+
"know", "knew", "known", "knows", "think", "thought", "thinks", "thinking",
|
| 101 |
+
"take", "took", "taken", "takes", "taking", "give", "gave", "given", "gives", "giving",
|
| 102 |
+
"find", "found", "finds", "finding", "tell", "told", "tells", "telling",
|
| 103 |
+
"ask", "asked", "asks", "asking", "show", "showed", "shown", "shows", "showing",
|
| 104 |
+
"try", "tried", "tries", "trying", "leave", "left", "leaves", "leaving",
|
| 105 |
+
"call", "called", "calls", "calling", "keep", "kept", "keeps", "keeping",
|
| 106 |
+
"let", "lets", "letting", "begin", "began", "begun", "begins", "beginning",
|
| 107 |
+
"seem", "seemed", "seems", "seeming", "help", "helped", "helps", "helping",
|
| 108 |
+
"turn", "turned", "turns", "turning", "start", "started", "starts", "starting",
|
| 109 |
+
"bring", "brought", "brings", "bringing", "happen", "happened", "happens", "happening",
|
| 110 |
+
"write", "wrote", "written", "writes", "writing", "provide", "provided", "provides", "providing",
|
| 111 |
+
"consider", "considered", "considers", "considering", "appear", "appeared", "appears", "appearing",
|
| 112 |
+
"follow", "followed", "follows", "following", "change", "changed", "changes", "changing",
|
| 113 |
+
"form", "formed", "forms", "forming", "need", "needed", "needs", "needing",
|
| 114 |
+
"set", "sets", "setting", "put", "puts", "putting", "run", "runs", "running",
|
| 115 |
+
"move", "moved", "moves", "moving", "stand", "stood", "stands", "standing",
|
| 116 |
+
"win", "won", "wins", "winning", "play", "played", "plays", "playing",
|
| 117 |
+
"point", "points", "pointed", "pointing", "large", "small", "big", "little",
|
| 118 |
+
"long", "short", "high", "low", "old", "young", "great", "important",
|
| 119 |
+
"different", "same", "other", "many", "much", "more", "most", "few",
|
| 120 |
+
"own", "very", "such", "still", "just", "also", "even", "too",
|
| 121 |
+
"here", "there", "where", "when", "why", "how", "what", "which",
|
| 122 |
+
"while", "though", "although", "until", "since", "before", "after", "during",
|
| 123 |
+
"without", "within", "between", "through", "across", "around", "above", "below",
|
| 124 |
+
"under", "over", "again", "ever", "never", "always", "often", "sometimes",
|
| 125 |
+
"together", "alone", "already", "yet", "still", "almost", "quite", "rather",
|
| 126 |
+
"well", "bad", "better", "worse", "best", "worst", "more", "less",
|
| 127 |
+
"every", "each", "both", "either", "neither", "all", "any", "none",
|
| 128 |
+
"thing", "things", "way", "ways", "time", "times", "year", "years",
|
| 129 |
+
"day", "days", "week", "weeks", "month", "months", "part", "parts",
|
| 130 |
+
"place", "places", "case", "cases", "point", "points", "world", "worlds",
|
| 131 |
+
"number", "numbers", "group", "groups", "system", "systems", "program", "programs",
|
| 132 |
+
"data", "information", "problem", "problems", "solution", "solutions",
|
| 133 |
+
"method", "methods", "result", "results", "process", "processes",
|
| 134 |
+
"function", "functions", "value", "values", "type", "types",
|
| 135 |
+
"state", "states", "model", "models", "level", "levels",
|
| 136 |
+
"line", "lines", "file", "files", "code", "codes",
|
| 137 |
+
"set", "sets", "list", "lists", "array", "arrays",
|
| 138 |
+
"object", "objects", "class", "classes", "property", "properties",
|
| 139 |
+
"input", "inputs", "output", "outputs", "return", "returns",
|
| 140 |
+
"define", "defined", "defines", "defining", "declare", "declared",
|
| 141 |
+
"import", "imports", "export", "exports", "include", "includes",
|
| 142 |
+
"public", "private", "protected", "static", "final", "const",
|
| 143 |
+
"void", "int", "float", "double", "char", "bool", "string",
|
| 144 |
+
"true", "false", "null", "None", "nil", "undefined",
|
| 145 |
+
"if", "else", "elif", "then", "switch", "case", "default", "break",
|
| 146 |
+
"for", "while", "do", "each", "in", "of", "to", "by",
|
| 147 |
+
"try", "catch", "finally", "throw", "raise", "except",
|
| 148 |
+
"return", "yield", "await", "async", "defer",
|
| 149 |
+
"and", "or", "not", "is", "as", "with", "without",
|
| 150 |
+
"lambda", "map", "filter", "reduce", "sort",
|
| 151 |
+
"new", "delete", "free", "alloc", "realloc",
|
| 152 |
+
"print", "printf", "println", "log", "debug", "error",
|
| 153 |
+
"len", "size", "length", "count", "sum", "max", "min",
|
| 154 |
+
"abs", "pow", "sqrt", "floor", "ceil", "round",
|
| 155 |
+
"sin", "cos", "tan", "atan", "log", "exp",
|
| 156 |
+
"zero", "one", "two", "three", "four", "five",
|
| 157 |
+
"six", "seven", "eight", "nine", "ten",
|
| 158 |
+
"first", "second", "third", "last", "next", "previous",
|
| 159 |
+
"current", "initial", "final", "primary", "secondary",
|
| 160 |
+
"main", "primary", "secondary", "basic", "advanced",
|
| 161 |
+
"simple", "complex", "single", "double", "multiple",
|
| 162 |
+
"add", "sub", "mul", "div", "mod", "inc", "dec",
|
| 163 |
+
"push", "pop", "shift", "unshift", "insert", "remove",
|
| 164 |
+
"append", "prepend", "concat", "join", "split", "slice",
|
| 165 |
+
"open", "close", "read", "write", "load", "save",
|
| 166 |
+
"create", "update", "delete", "insert", "select", "merge",
|
| 167 |
+
"begin", "end", "start", "stop", "pause", "resume",
|
| 168 |
+
"enable", "disable", "allow", "deny", "grant", "revoke",
|
| 169 |
+
"user", "users", "name", "names", "id", "ids",
|
| 170 |
+
"key", "keys", "value", "values", "field", "fields",
|
| 171 |
+
"table", "tables", "row", "rows", "column", "columns",
|
| 172 |
+
"index", "indexes", "indices", "query", "queries",
|
| 173 |
+
"count", "avg", "total", "sum", "min", "max",
|
| 174 |
+
"page", "pages", "home", "login", "logout", "signup",
|
| 175 |
+
"error", "errors", "warning", "warnings", "info",
|
| 176 |
+
"success", "failure", "status", "message", "messages",
|
| 177 |
+
"request", "requests", "response", "responses",
|
| 178 |
+
"client", "server", "api", "endpoint", "route",
|
| 179 |
+
"http", "https", "url", "uri", "port", "host",
|
| 180 |
+
"config", "configuration", "setting", "settings",
|
| 181 |
+
"option", "options", "param", "params", "parameter", "parameters",
|
| 182 |
+
"arg", "args", "argument", "arguments", "kwargs",
|
| 183 |
+
"path", "dir", "directory", "dirs", "folder", "folders",
|
| 184 |
+
"item", "items", "element", "elements", "entry", "entries",
|
| 185 |
+
"note", "notes", "text", "texts", "content", "contents",
|
| 186 |
+
"source", "sources", "target", "targets", "ref", "refs",
|
| 187 |
+
"struct", "structs", "union", "unions", "enum", "enums",
|
| 188 |
+
"impl", "implement", "implementation", "interface",
|
| 189 |
+
"abstract", "virtual", "override", "overload",
|
| 190 |
+
"base", "derived", "parent", "child", "children",
|
| 191 |
+
"root", "leaf", "node", "nodes", "edge", "edges",
|
| 192 |
+
"tree", "graph", "list", "queue", "stack", "heap",
|
| 193 |
+
"map", "dict", "dictionary", "hash", "hashmap",
|
| 194 |
+
"link", "links", "linked", "pointer", "pointers",
|
| 195 |
+
"thread", "threads", "process", "processes", "task", "tasks",
|
| 196 |
+
"sync", "async", "lock", "mutex", "semaphore",
|
| 197 |
+
"buffer", "buffers", "cache", "cached", "pool", "pools",
|
| 198 |
+
"memory", "disk", "network", "socket", "sockets",
|
| 199 |
+
"stream", "streams", "packet", "packets", "frame",
|
| 200 |
+
"meta", "metadata", "header", "headers", "body", "payload",
|
| 201 |
+
"token", "tokens", "session", "cookie", "cookies",
|
| 202 |
+
"auth", "login", "logout", "register", "password",
|
| 203 |
+
"hash", "salt", "encrypt", "decrypt", "encode", "decode",
|
| 204 |
+
"cert", "certificate", "key", "public", "private",
|
| 205 |
+
"train", "training", "trained", "test", "testing", "tested",
|
| 206 |
+
"valid", "validate", "validation", "eval", "evaluate",
|
| 207 |
+
"model", "models", "layer", "layers", "weight", "weights",
|
| 208 |
+
"bias", "biases", "loss", "losses", "grad", "grads",
|
| 209 |
+
"lr", "learning_rate", "optimizer", "adam", "sgd",
|
| 210 |
+
"batch", "batches", "epoch", "epochs", "step", "steps",
|
| 211 |
+
"dataset", "dataloader", "tensor", "tensors",
|
| 212 |
+
"gpu", "cpu", "tpu", "device", "devices", "memory",
|
| 213 |
+
"math", "physics", "chemistry", "biology", "science",
|
| 214 |
+
"compute", "calculate", "computation", "calculation",
|
| 215 |
+
"equation", "formula", "expression", "theorem",
|
| 216 |
+
"proof", "prove", "lemma", "axiom", "corollary",
|
| 217 |
+
"function", "graph", "derivative", "integral", "limit",
|
| 218 |
+
"sequence", "series", "matrix", "vector", "tensor",
|
| 219 |
+
"set", "subset", "union", "intersection", "complement",
|
| 220 |
+
"space", "group", "ring", "field", "module", "algebra",
|
| 221 |
+
"analysis", "topology", "geometry", "statistics",
|
| 222 |
+
"probability", "distribution", "random", "sample",
|
| 223 |
+
"mean", "median", "mode", "variance", "std", "deviation",
|
| 224 |
+
"linear", "nonlinear", "convex", "concave", "smooth",
|
| 225 |
+
"algorithm", "algorithm", "complexity", "runtime",
|
| 226 |
+
"tree", "graph", "sort", "search", "traverse",
|
| 227 |
+
"recursive", "iterative", "dynamic", "greedy",
|
| 228 |
+
"optimization", "constraint", "feasible", "optimal",
|
| 229 |
+
"problem", "solution", "input", "output", "example",
|
| 230 |
+
"question", "answer", "hint", "step", "reason",
|
| 231 |
+
"think", "analyze", "approach", "solve", "verify",
|
| 232 |
+
"check", "conclude", "summarize", "explain", "describe",
|
| 233 |
+
"correct", "incorrect", "right", "wrong", "positive", "negative",
|
| 234 |
+
"yes", "no", "maybe", "always", "never", "sometimes",
|
| 235 |
+
":", ";", ".", ",", "!", "?", "'", "\"", "(", ")", "[", "]", "{", "}",
|
| 236 |
+
"<", ">", "=", "+", "-", "*", "/", "%", "&", "|", "^", "~",
|
| 237 |
+
"@", "#", "$", "_", "`", "\\",
|
| 238 |
+
"==", "!=", "<=", ">=", "&&", "||", "++", "--",
|
| 239 |
+
"+=", "-=", "*=", "/=", "->", "=>", "::", "..",
|
| 240 |
+
"...", "/*", "*/", "//", "<!--", "-->",
|
| 241 |
+
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
| 242 |
+
"10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
|
| 243 |
+
"20", "30", "40", "50", "60", "70", "80", "90", "100",
|
| 244 |
+
"-1", "-2", "0x", "0b", "0o",
|
| 245 |
+
# GPT-2 style Ġ-prefixed versions for words preceded by space
|
| 246 |
+
# The ByteLevel pre_tokenizer adds Ġ (U+0120) prefix after space
|
| 247 |
+
"Ġthe", "Ġto", "Ġof", "Ġand", "Ġa", "Ġin", "Ġthat", "Ġis", "Ġwas", "Ġfor",
|
| 248 |
+
"Ġon", "Ġwith", "Ġas", "Ġby", "Ġat", "Ġfrom", "Ġor", "Ġan", "Ġwill", "Ġwould",
|
| 249 |
+
"Ġnot", "Ġbut", "Ġare", "Ġwere", "Ġbeen", "Ġhave", "Ġhas", "Ġhad", "Ġdo", "Ġdoes",
|
| 250 |
+
"Ġdid", "Ġcan", "Ġcould", "Ġshould", "Ġmay", "Ġmight", "Ġshall", "Ġmust",
|
| 251 |
+
"Ġif", "Ġelse", "Ġwhen", "Ġwhile", "Ġbecause", "Ġso", "Ġthen", "Ġthan",
|
| 252 |
+
"Ġalso", "Ġeven", "Ġonly", "Ġjust", "Ġvery", "Ġtoo", "Ġstill", "Ġalready",
|
| 253 |
+
"Ġhere", "Ġthere", "Ġwhere", "Ġwhen", "Ġwhy", "Ġhow", "Ġwhat", "Ġwhich",
|
| 254 |
+
"Ġthis", "Ġthat", "Ġthese", "Ġthose", "Ġit", "Ġits", "Ġthey", "Ġthem",
|
| 255 |
+
"Ġwe", "Ġus", "Ġour", "Ġyou", "Ġyour", "Ġhe", "Ġhim", "Ġhis",
|
| 256 |
+
"Ġshe", "Ġher", "Ġhers", "Ġone", "Ġno", "Ġall", "Ġany", "Ġsome",
|
| 257 |
+
"Ġeach", "Ġevery", "Ġboth", "Ġneither", "Ġeither", "Ġmore", "Ġmost", "Ġfew",
|
| 258 |
+
"Ġother", "Ġanother", "Ġsuch", "Ġsame", "Ġdifferent", "Ġown",
|
| 259 |
+
"Ġlike", "Ġwell", "Ġgood", "Ġbad", "Ġbetter", "Ġbest",
|
| 260 |
+
"Ġnew", "Ġold", "Ġbig", "Ġsmall", "Ġlong", "Ġshort",
|
| 261 |
+
"Ġhigh", "Ġlow", "Ġlarge", "Ġlittle", "Ġgreat", "Ġimportant",
|
| 262 |
+
"Ġup", "Ġdown", "Ġin", "Ġout", "Ġon", "Ġoff", "Ġover", "Ġunder",
|
| 263 |
+
"Ġagain", "Ġback", "Ġabout", "Ġaround", "Ġbetween", "Ġthrough",
|
| 264 |
+
"Ġbefore", "Ġafter", "Ġduring", "Ġuntil", "Ġsince",
|
| 265 |
+
"Ġfirst", "Ġlast", "Ġnext", "Ġprevious", "Ġfinal",
|
| 266 |
+
"Ġget", "Ġgot", "Ġmake", "Ġmade", "Ġtake", "Ġtook", "Ġgive", "Ġgave",
|
| 267 |
+
"Ġuse", "Ġused", "Ġusing", "Ġneed", "Ġneeds", "Ġneeded",
|
| 268 |
+
"Ġwant", "Ġwants", "Ġwanted", "Ġlet", "Ġlets", "Ġlets",
|
| 269 |
+
"Ġwork", "Ġworks", "Ġworked", "Ġworking", "Ġhelp", "Ġhelps", "Ġhelped",
|
| 270 |
+
"Ġcall", "Ġcalls", "Ġcalled", "Ġcalling", "Ġset", "Ġsets", "Ġsetting",
|
| 271 |
+
"Ġput", "Ġputs", "Ġputting", "Ġrun", "Ġruns", "Ġran", "Ġrunning",
|
| 272 |
+
"Ġkeep", "Ġkeeps", "Ġkept", "Ġfind", "Ġfinds", "Ġfound", "Ġshow", "Ġshows",
|
| 273 |
+
"Ġtry", "Ġtries", "Ġtried", "Ġtrying", "Ġstart", "Ġstarts", "Ġstarted",
|
| 274 |
+
"Ġchange", "Ġchanges", "Ġchanged", "Ġchanging", "Ġfollow", "Ġfollows",
|
| 275 |
+
"Ġknow", "Ġknows", "Ġknown", "Ġthink", "Ġthinks", "Ġthought",
|
| 276 |
+
"Ġsay", "Ġsays", "Ġsaid", "Ġsee", "Ġsees", "Ġsaw", "Ġseen",
|
| 277 |
+
"Ġcome", "Ġcomes", "Ġcame", "Ġgo", "Ġgoes", "Ġwent", "Ġgone",
|
| 278 |
+
"Ġbring", "Ġbrings", "Ġbrought", "Ġtell", "Ġtells", "Ġtold",
|
| 279 |
+
"Ġlet", "Ġlets", "Ġleave", "Ġleaves", "Ġleft", "Ġhappen", "Ġhappens",
|
| 280 |
+
"��provide", "Ġprovides", "Ġprovided", "Ġconsider", "Ġconsiders",
|
| 281 |
+
"Ġappear", "Ġappears", "Ġappeared", "Ġform", "Ġforms", "Ġformed",
|
| 282 |
+
"Ġseem", "Ġseems", "Ġseemed", "Ġpoint", "Ġpoints", "Ġpointed",
|
| 283 |
+
"Ġturn", "Ġturns", "Ġturned", "Ġturning", "Ġplay", "Ġplays",
|
| 284 |
+
"Ġthings", "Ġthing", "Ġtime", "Ġtimes", "Ġyear", "Ġyears",
|
| 285 |
+
"Ġpeople", "Ġplace", "Ġplaces", "Ġpart", "Ġparts", "Ġworld",
|
| 286 |
+
"Ġnumber", "Ġnumbers", "Ġsystem", "Ġsystems", "Ġgroup", "Ġgroups",
|
| 287 |
+
"Ġline", "Ġlines", "Ġfile", "Ġfiles", "Ġcode", "Ġdata",
|
| 288 |
+
"Ġfunction", "Ġfunctions", "Ġvalue", "Ġvalues", "Ġtype", "Ġtypes",
|
| 289 |
+
"Ġclass", "Ġclasses", "Ġobject", "Ġobjects", "Ġmethod", "Ġmethods",
|
| 290 |
+
"Ġresult", "Ġresults", "Ġprocess", "Ġprocesses", "Ġstate", "Ġstates",
|
| 291 |
+
"Ġmodel", "Ġmodels", "Ġlevel", "Ġlevels", "Ġcase", "Ġcases",
|
| 292 |
+
"Ġexample", "Ġexamples", "Ġinput", "Ġinputs", "Ġoutput", "Ġoutputs",
|
| 293 |
+
"Ġerror", "Ġerrors", "Ġstatus", "Ġmessage", "Ġmessages",
|
| 294 |
+
"Ġrequest", "Ġrequests", "Ġresponse", "Ġresponses",
|
| 295 |
+
"Ġreturn", "Ġreturns", "Ġimport", "Ġimports", "Ġexport", "Ġexports",
|
| 296 |
+
"Ġdefine", "Ġdefines", "Ġdefined", "Ġdeclare", "Ġdeclares",
|
| 297 |
+
"Ġinclude", "Ġincludes", "Ġconfig", "Ġsetting", "Ġsettings",
|
| 298 |
+
"Ġoption", "Ġoptions", "Ġparam", "Ġparams", "Ġargs",
|
| 299 |
+
"Ġtrue", "Ġfalse", "Ġnull", "ĠNone", "Ġundefined",
|
| 300 |
+
"Ġlen", "Ġsize", "Ġcount", "Ġsum", "Ġmax", "Ġmin",
|
| 301 |
+
"Ġprint", "Ġlog", "Ġdebug", "Ġinfo", "Ġwarn",
|
| 302 |
+
"Ġtrain", "Ġtest", "Ġeval", "Ġvalid", "Ġval",
|
| 303 |
+
"Ġpage", "Ġhome", "Ġname", "Ġkey", "Ġkeys",
|
| 304 |
+
"Ġpath", "Ġdir", "Ġroot", "Ġitem", "Ġitems",
|
| 305 |
+
"Ġsource", "Ġtarget", "Ġbase", "Ġmain", "Ġprimary",
|
| 306 |
+
"Ġadd", "Ġremove", "Ġcreate", "Ġdelete", "Ġupdate",
|
| 307 |
+
"Ġopen", "Ġclose", "Ġread", "Ġwrite", "Ġload", "Ġsave",
|
| 308 |
+
"Ġpush", "Ġpop", "Ġinsert", "Ġappend", "Ġsplit",
|
| 309 |
+
"Ġbegin", "Ġend", "Ġstart", "Ġstop", "Ġenable", "Ġdisable",
|
| 310 |
+
"Ġuser", "Ġusers", "Ġadmin", "Ġmanager",
|
| 311 |
+
"Ġstring", "Ġint", "Ġfloat", "Ġdouble", "Ġbool", "Ġvoid",
|
| 312 |
+
"Ġlist", "Ġdict", "Ġset", "Ġtuple", "Ġarray",
|
| 313 |
+
"Ġapi", "Ġurl", "Ġuri", "Ġendpoint", "Ġroute",
|
| 314 |
+
"Ġhttp", "Ġhttps", "Ġclient", "Ġserver", "Ġsocket",
|
| 315 |
+
"Ġmath", "Ġscience", "Ġdata", "Ġanalysis", "Ġtheory",
|
| 316 |
+
"Ġproof", "Ġtheorem", "Ġlemma", "Ġequation", "Ġformula",
|
| 317 |
+
"ing", "ed", "ly", "tion", "sion", "ment", "ness", "ity",
|
| 318 |
+
"able", "ible", "al", "ial", "ical", "ous", "eous", "ious",
|
| 319 |
+
"ive", "ative", "ful", "less", "like", "wise", "ward",
|
| 320 |
+
"un", "re", "in", "im", "ir", "il", "dis", "mis", "non",
|
| 321 |
+
"pre", "pro", "per", "trans", "inter", "intra", "extra",
|
| 322 |
+
"sub", "super", "sur", "semi", "multi", "mono", "bi", "tri",
|
| 323 |
+
"anti", "counter", "over", "under", "out", "up", "down",
|
| 324 |
+
"co", "con", "com", "col", "cor", "de", "di", "dif",
|
| 325 |
+
"ex", "extra", "fore", "macro", "micro", "mid", "mis",
|
| 326 |
+
"out", "over", "post", "pre", "pro", "re", "semi", "sub",
|
| 327 |
+
"super", "tele", "trans", "ultra", "un", "under", "up",
|
| 328 |
+
"-ing", "-ed", "-ly", "-tion", "-sion", "-ment", "-ness", "-ity",
|
| 329 |
+
"-able", "-ible", "-al", "-ous", "-ive", "-ful", "-less",
|
| 330 |
+
"un-", "re-", "pre-", "non-", "anti-", "counter-",
|
| 331 |
+
"self-", "all-", "well-", "so-", "to-", "in-",
|
| 332 |
+
"'t", "'s", "'m", "'re", "'ve", "'ll", "'d",
|
| 333 |
+
"n't", "don't", "can't", "won't", "isn't", "aren't",
|
| 334 |
+
"wasn't", "weren't", "hasn't", "haven't", "hadn't",
|
| 335 |
+
"doesn't", "didn't", "couldn't", "shouldn't", "wouldn't",
|
| 336 |
+
"mustn't", "needn't", "mightn't",
|
| 337 |
+
# Multi-char punctuation/symbols as single tokens
|
| 338 |
+
"->", "=>", "<-", "<=", ">=", "==", "!=",
|
| 339 |
+
"::", "..", "...", "/*", "*/", "//", "#",
|
| 340 |
+
"\n", "\t",
|
| 341 |
+
" ", " ", " ", " ",
|
| 342 |
+
"Ċ", # byte-level newline
|
| 343 |
+
"ĠĠ", "ĠĠĠ", "ĠĠĠĠ", # multiple spaces
|
| 344 |
+
# Additional English words for 4096 vocab
|
| 345 |
+
"about", "above", "across", "action", "actually", "address", "agree", "allow", "almost",
|
| 346 |
+
"along", "already", "though", "although", "always", "American", "among", "amount",
|
| 347 |
+
"animal", "another", "answer", "anything", "appear", "approach", "area", "argue",
|
| 348 |
+
"arm", "article", "artist", "ask", "author", "available", "avoid", "away", "ball",
|
| 349 |
+
"bank", "bar", "base", "battle", "beauty", "become", "became", "becoming", "bed",
|
| 350 |
+
"behavior", "behind", "believe", "benefit", "best", "beyond", "bit", "black",
|
| 351 |
+
"blood", "board", "body", "book", "born", "boss", "bother", "bottle", "bottom",
|
| 352 |
+
"box", "boy", "brain", "break", "bridge", "brief", "bright", "bring", "broad",
|
| 353 |
+
"brother", "budget", "build", "building", "burn", "business", "buy", "campaign",
|
| 354 |
+
"capital", "car", "care", "career", "carry", "catch", "category", "cause",
|
| 355 |
+
"central", "century", "certain", "chair", "chairman", "challenge", "chance",
|
| 356 |
+
"character", "charge", "check", "choice", "choose", "chosen", "church", "citizen",
|
| 357 |
+
"city", "civil", "claim", "clear", "clearly", "close", "club", "coach", "cold",
|
| 358 |
+
"collection", "college", "color", "come", "comfortable", "comment", "committee",
|
| 359 |
+
"common", "community", "company", "compare", "competition", "complete", "completely",
|
| 360 |
+
"condition", "conference", "Congress", "connect", "conscious", "consider", "contain",
|
| 361 |
+
"content", "continue", "contract", "control", "conversation", "cost", "could",
|
| 362 |
+
"country", "couple", "course", "court", "cover", "create", "crime", "cultural",
|
| 363 |
+
"culture", "cup", "current", "customer", "cut", "dark", "daughter", "deal",
|
| 364 |
+
"death", "debate", "decade", "decide", "decision", "deep", "defense", "degree",
|
| 365 |
+
"democrat", "democratic", "describe", "design", "despite", "detail", "determine",
|
| 366 |
+
"develop", "development", "device", "die", "difference", "difficult", "dinner",
|
| 367 |
+
"direction", "director", "discover", "discuss", "discussion", "disease", "dog",
|
| 368 |
+
"door", "doubt", "down", "draw", "dream", "drive", "driver", "drop", "drug",
|
| 369 |
+
"D", "early", "east", "eat", "economic", "economy", "edge", "edition", "editor",
|
| 370 |
+
"education", "effect", "effort", "eight", "either", "election", "else", "employee",
|
| 371 |
+
"encourage", "enemy", "energy", "enjoy", "enough", "enter", "entire", "environment",
|
| 372 |
+
"environmental", "especially", "establish", "evening", "event", "ever", "everybody",
|
| 373 |
+
"everyone", "everything", "evidence", "exactly", "examine", "example", "executive",
|
| 374 |
+
"exist", "expect", "experience", "explain", "explanation", "extremely", "eye",
|
| 375 |
+
"face", "fact", "factor", "fail", "fall", "family", "far", "fast", "father",
|
| 376 |
+
"fear", "feature", "federal", "feel", "feeling", "field", "fight", "figure",
|
| 377 |
+
"fill", "film", "final", "financial", "fine", "finish", "firm", "fish", "five",
|
| 378 |
+
"floor", "fly", "focus", "follow", "food", "foot", "force", "foreign", "forget",
|
| 379 |
+
"form", "former", "forward", "four", "free", "freedom", "friendly", "front",
|
| 380 |
+
"full", "fund", "future", "game", "garden", "gas", "general", "generation",
|
| 381 |
+
"gentleman", "girl", "glad", "glass", "goal", "god", "gold", "government",
|
| 382 |
+
"governor", "great", "green", "ground", "group", "grow", "growth", "guess",
|
| 383 |
+
"gun", "guy", "half", "hand", "handle", "hang", "happen", "happy", "hard",
|
| 384 |
+
"head", "health", "hear", "heart", "heat", "heavy", "hell", "help", "here",
|
| 385 |
+
"herself", "hide", "history", "hit", "hold", "home", "honest", "hope", "hospital",
|
| 386 |
+
"hotel", "house", "huge", "human", "hundred", "husband", "idea", "identify",
|
| 387 |
+
"image", "imagine", "impact", "implement", "imply", "important", "improve",
|
| 388 |
+
"include", "including", "increase", "indeed", "indicate", "individual", "industry",
|
| 389 |
+
"influence", "inform", "information", "inside", "instead", "institution",
|
| 390 |
+
"interest", "international", "interview", "introduce", "investment", "involve",
|
| 391 |
+
"issue", "item", "itself", "job", "join", "journal", "journey", "judge",
|
| 392 |
+
"jump", "justice", "keep", "kill", "kind", "kitchen", "knowledge", "land",
|
| 393 |
+
"language", "large", "last", "late", "later", "latter", "laugh", "launch",
|
| 394 |
+
"law", "lawyer", "lay", "lead", "leader", "leading", "learn", "least", "leave",
|
| 395 |
+
"left", "legal", "less", "let", "letter", "level", "lie", "life", "lift",
|
| 396 |
+
"light", "likely", "limit", "line", "link", "list", "listen", "little", "live",
|
| 397 |
+
"load", "local", "long", "look", "lord", "lose", "loss", "lost", "lot", "love",
|
| 398 |
+
"low", "luck", "lunch", "machine", "main", "maintain", "major", "majority",
|
| 399 |
+
"manage", "management", "manager", "manner", "manufacturer", "many", "map",
|
| 400 |
+
"mark", "market", "marriage", "master", "material", "matter", "may", "maybe",
|
| 401 |
+
"mean", "meaning", "measure", "media", "medical", "meet", "meeting", "member",
|
| 402 |
+
"memory", "mention", "message", "method", "middle", "might", "military", "million",
|
| 403 |
+
"mind", "minute", "miss", "mission", "mistake", "mix", "modern", "mom", "moment",
|
| 404 |
+
"money", "month", "moral", "morning", "mother", "motion", "move", "movement",
|
| 405 |
+
"movie", "music", "narrative", "nation", "national", "native", "natural", "nature",
|
| 406 |
+
"near", "nearly", "necessarily", "necessary", "neck", "need", "negative", "neighbor",
|
| 407 |
+
"neither", "network", "never", "nevertheless", "night", "none", "nor", "normal",
|
| 408 |
+
"north", "note", "nothing", "notice", "notion", "now", "nowhere", "nuclear",
|
| 409 |
+
"number", "occur", "ocean", "offer", "office", "officer", "official", "often",
|
| 410 |
+
"oil", "OK", "old", "once", "online", "open", "operate", "operation", "opinion",
|
| 411 |
+
"opportunity", "opposition", "option", "order", "organization", "original", "other",
|
| 412 |
+
"otherwise", "ought", "outside", "overcome", "owner", "page", "pain", "paint",
|
| 413 |
+
"pair", "paper", "parent", "park", "parliament", "part", "participant", "particular",
|
| 414 |
+
"particularly", "partner", "party", "pass", "passage", "past", "path", "patient",
|
| 415 |
+
"pattern", "pay", "peace", "pension", "people", "per", "percent", "perfect",
|
| 416 |
+
"perform", "performance", "perhaps", "period", "permit", "person", "personal",
|
| 417 |
+
"perspective", "phone", "physical", "pick", "picture", "piece", "place", "plan",
|
| 418 |
+
"plant", "play", "player", "please", "pleasure", "plus", "pocket", "point",
|
| 419 |
+
"police", "policy", "political", "politician", "politics", "pool", "poor",
|
| 420 |
+
"popular", "population", "position", "positive", "possibility", "possible",
|
| 421 |
+
"potentially", "power", "practice", "prepare", "presence", "present", "president",
|
| 422 |
+
"pressure", "pretty", "prevent", "previous", "price", "primary", "principle",
|
| 423 |
+
"prison", "private", "privilege", "probably", "problem", "procedure", "produce",
|
| 424 |
+
"product", "production", "professional", "professor", "profile", "profit",
|
| 425 |
+
"program", "project", "promise", "promote", "proper", "property", "proposal",
|
| 426 |
+
"propose", "protect", "protection", "prove", "provide", "public", "publication",
|
| 427 |
+
"publish", "pull", "purpose", "pursue", "push", "quality", "quarter", "question",
|
| 428 |
+
"quick", "quickly", "quiet", "quite", "race", "radio", "raise", "range", "rate",
|
| 429 |
+
"rather", "reach", "react", "reaction", "read", "reader", "reading", "ready",
|
| 430 |
+
"real", "reality", "realize", "really", "reason", "reasonable", "receive",
|
| 431 |
+
"recent", "recently", "recognize", "recommend", "record", "recover", "red",
|
| 432 |
+
"reduce", "reflect", "reform", "region", "relate", "relationship", "relative",
|
| 433 |
+
"relatively", "release", "relevant", "relief", "religion", "religious", "rely",
|
| 434 |
+
"remain", "remember", "remind", "remove", "repeat", "replace", "report", "reporter",
|
| 435 |
+
"represent", "representation", "republican", "reputation", "request", "require",
|
| 436 |
+
"research", "resource", "respond", "response", "responsibility", "responsible",
|
| 437 |
+
"rest", "restaurant", "result", "retain", "retire", "return", "reveal",
|
| 438 |
+
"review", "revolution", "rich", "ride", "right", "ring", "rise", "risk", "river",
|
| 439 |
+
"road", "rock", "role", "roll", "room", "rule", "run", "safe", "safety",
|
| 440 |
+
"sale", "same", "sample", "save", "scale", "scene", "schedule", "school",
|
| 441 |
+
"science", "scientist", "score", "screen", "sea", "search", "season", "seat",
|
| 442 |
+
"second", "secret", "section", "security", "seed", "seek", "select", "self",
|
| 443 |
+
"sell", "senate", "senator", "send", "sense", "serious", "serve", "service",
|
| 444 |
+
"session", "settle", "seven", "sexual", "shadow", "shape", "share", "sharp",
|
| 445 |
+
"sheet", "ship", "shock", "shoe", "shoot", "shop", "shot", "shoulder", "show",
|
| 446 |
+
"shut", "sick", "side", "sight", "sign", "signal", "significance", "significant",
|
| 447 |
+
"silence", "similar", "simple", "simply", "since", "sing", "single", "sister",
|
| 448 |
+
"sit", "site", "situation", "six", "size", "skill", "skin", "small", "smile",
|
| 449 |
+
"society", "soft", "soldier", "solid", "solution", "somebody", "somehow",
|
| 450 |
+
"someone", "something", "sometimes", "somewhat", "son", "song", "soon", "sort",
|
| 451 |
+
"sound", "source", "south", "space", "speak", "speaker", "special", "specific",
|
| 452 |
+
"speech", "speed", "spend", "spin", "spirit", "spiritual", "split", "spokesman",
|
| 453 |
+
"sport", "spot", "spread", "spring", "staff", "stage", "stand", "standard",
|
| 454 |
+
"star", "start", "state", "statement", "station", "status", "stay", "step",
|
| 455 |
+
"stick", "still", "stock", "stop", "store", "story", "straight", "strange",
|
| 456 |
+
"strategic", "strategy", "street", "strength", "stress", "stretch", "strike",
|
| 457 |
+
"strong", "structure", "struggle", "student", "study", "subject", "succeed",
|
| 458 |
+
"success", "successful", "suddenly", "suffer", "sufficient", "suggest", "suggestion",
|
| 459 |
+
"summer", "supply", "support", "suppose", "sure", "surface", "surgery", "surprise",
|
| 460 |
+
"survey", "survive", "suspect", "sustain", "symbol", "system", "table", "talent",
|
| 461 |
+
"talk", "tape", "target", "task", "taste", "tax", "teach", "teacher", "teaching",
|
| 462 |
+
"team", "tear", "technical", "technique", "technology", "telephone", "television",
|
| 463 |
+
"tell", "temperature", "tend", "term", "test", "testify", "testing", "text",
|
| 464 |
+
"thank", "themselves", "therefore", "they", "thick", "thin", "thing", "think",
|
| 465 |
+
"thinking", "third", "thirty", "threat", "threaten", "three", "throw", "thus",
|
| 466 |
+
"ticket", "tight", "till", "time", "tiny", "tip", "title", "today", "together",
|
| 467 |
+
"tomorrow", "tone", "tonight", "tool", "top", "total", "totally", "touch",
|
| 468 |
+
"tough", "tour", "toward", "town", "track", "trade", "tradition", "traditional",
|
| 469 |
+
"traffic", "train", "training", "transfer", "transform", "travel", "treat",
|
| 470 |
+
"treatment", "tree", "trial", "trip", "troop", "trouble", "truck", "true",
|
| 471 |
+
"truly", "trust", "truth", "try", "tube", "turn", "twice", "type", "typical",
|
| 472 |
+
"uncle", "under", "understand", "understanding", "unfortunately", "union",
|
| 473 |
+
"unique", "unit", "United", "universe", "university", "unless", "unlike",
|
| 474 |
+
"unlikely", "unusual", "upper", "urban", "urge", "use", "used", "useful",
|
| 475 |
+
"user", "usual", "usually", "value", "variety", "various", "vehicle", "version",
|
| 476 |
+
"very", "veteran", "victim", "victory", "video", "view", "village", "violence",
|
| 477 |
+
"visit", "voice", "volume", "vote", "voter", "wage", "wait", "walk", "wall",
|
| 478 |
+
"want", "war", "warm", "warn", "warning", "wash", "watch", "water", "wave",
|
| 479 |
+
"way", "weak", "weapon", "wear", "weather", "web", "wedding", "weekend",
|
| 480 |
+
"weight", "welcome", "welfare", "well", "west", "western", "whatever", "wheel",
|
| 481 |
+
"whenever", "whereas", "whether", "which", "while", "white", "whole", "whom",
|
| 482 |
+
"whose", "wide", "widely", "wife", "wild", "will", "win", "wind", "window",
|
| 483 |
+
"wine", "wing", "winner", "winter", "wire", "wish", "woman", "wonder", "wonderful",
|
| 484 |
+
"wood", "word", "worker", "working", "works", "world", "worry", "worth", "would",
|
| 485 |
+
"write", "writer", "writing", "wrong", "yard", "yeah", "year", "yet", "youth",
|
| 486 |
+
"zone", "ability", "abroad", "absent", "absolute", "absorb", "abstract", "abuse",
|
| 487 |
+
"academic", "accept", "access", "accident", "accompany", "accomplish", "account",
|
| 488 |
+
"accurate", "accuse", "achieve", "acknowledge", "acquire", "adapt", "addition",
|
| 489 |
+
"adjust", "administration", "admit", "adopt", "advance", "advantage", "adventure",
|
| 490 |
+
"advertise", "advice", "advise", "advocate", "affair", "affect", "afford",
|
| 491 |
+
"agency", "agenda", "agent", "aggression", "aggressive", "aid", "aim", "air",
|
| 492 |
+
"airport", "alarm", "alcohol", "alert", "alive", "alliance", "allocate", "ally",
|
| 493 |
+
"alone", "alter", "alternative", "amaze", "ambition", "amendment", "amid",
|
| 494 |
+
"amongst", "analysis", "analyst", "angle", "angry", "anniversary", "announce",
|
| 495 |
+
"annual", "anticipate", "anxiety", "anxious", "apart", "apartment", "apologize",
|
| 496 |
+
"apparent", "appeal", "appearance", "appetite", "apple", "applicant", "application",
|
| 497 |
+
"apply", "appoint", "appreciate", "appropriate", "approval", "approve", "architecture",
|
| 498 |
+
"archive", "argue", "argument", "arrange", "arrangement", "arrest", "arrival",
|
| 499 |
+
"arrive", "arrow", "articulate", "artificial", "aside", "aspect", "assault",
|
| 500 |
+
"assemble", "assembly", "assert", "assess", "assessment", "asset", "assign",
|
| 501 |
+
"assist", "assistance", "associate", "association", "assume", "assumption",
|
| 502 |
+
"atmosphere", "attach", "attack", "attempt", "attend", "attention", "attitude",
|
| 503 |
+
"attorney", "attract", "attraction", "attractive", "attribute", "audience",
|
| 504 |
+
"auto", "automatic", "automatically", "autonomy", "available", "avenue", "average",
|
| 505 |
+
"award", "aware", "awareness", "awful", "background", "bacteria", "balance",
|
| 506 |
+
"bare", "barely", "barrier", "basic", "basis", "basket", "bath", "battery",
|
| 507 |
+
"battle", "bay", "beach", "bean", "bear", "beat", "beautiful", "bedroom",
|
| 508 |
+
"beer", "beginning", "behalf", "behave", "behavior", "being", "belief", "believable",
|
| 509 |
+
"bell", "belong", "bench", "bend", "beneath", "beneficial", "beside", "bet",
|
| 510 |
+
"betray", "bible", "bicycle", "bid", "bike", "bill", "bind", "biological",
|
| 511 |
+
"biology", "birth", "biscuit", "bishop", "bite", "bitter", "blade", "blame",
|
| 512 |
+
"blank", "blast", "bleed", "blend", "bless", "blind", "block", "blow", "blue",
|
| 513 |
+
"blur", "board", "boast", "boat", "bomb", "bond", "bone", "bonus", "boom",
|
| 514 |
+
"boost", "border", "bore", "borrow", "bottom", "bound", "boundary", "bowl",
|
| 515 |
+
"brain", "branch", "brand", "brave", "bread", "breadth", "breast", "breath",
|
| 516 |
+
"breathe", "breathing", "breed", "brick", "bride", "bridge", "briefly", "brilliant",
|
| 517 |
+
"broadcast", "broken", "bronze", "brow", "brown", "brush", "bubble", "bucket",
|
| 518 |
+
"buddy", "buffalo", "bunch", "burden", "burglar", "burn", "burst", "bury",
|
| 519 |
+
"bus", "butter", "button", "cabin", "cabinet", "cable", "cake", "calculate",
|
| 520 |
+
"calculation", "calendar", "calm", "camera", "camp", "campus", "canal", "cancel",
|
| 521 |
+
"candidate", "candle", "cap", "capable", "capacity", "captain", "capture",
|
| 522 |
+
"carbon", "card", "careful", "carefully", "carrier", "carry", "cart", "carve",
|
| 523 |
+
"cast", "castle", "casualty", "catalog", "catalogue", "catch", "cattle",
|
| 524 |
+
"celebrate", "celebration", "cell", "cellular", "census", "centimeter",
|
| 525 |
+
"ceremony", "certainly", "certificate", "chain", "chair", "chairman",
|
| 526 |
+
"chamber", "champion", "championship", "channel", "chapter", "characteristic",
|
| 527 |
+
"charge", "charity", "chart", "chase", "cheap", "cheat", "cheek", "cheese",
|
| 528 |
+
"chemical", "chemistry", "chest", "chicken", "chief", "childhood", "chip",
|
| 529 |
+
"chocolate", "chorus", "christian", "Christmas", "chronic", "chunk", "circle",
|
| 530 |
+
"circuit", "circumstance", "cite", "citizen", "civilian", "claim",
|
| 531 |
+
"clarify", "clarity", "clash", "classic", "classical", "classification",
|
| 532 |
+
"classroom", "clause", "clean", "clear", "clever", "click", "client",
|
| 533 |
+
"cliff", "climate", "climb", "clinic", "clinical", "clock", "clone",
|
| 534 |
+
"closed", "closely", "closer", "closet", "closing", "cloth", "clothe",
|
| 535 |
+
"clothes", "clothing", "cloud", "club", "cluster", "coal", "coalition",
|
| 536 |
+
"coast", "coat", "code", "coffee", "cognitive", "coin", "cold",
|
| 537 |
+
"collapse", "collar", "colleague", "collect", "collection", "collective",
|
| 538 |
+
"colonial", "colony", "color", "column", "combat", "combine", "combined",
|
| 539 |
+
"comedy", "comfort", "command", "commander", "comment", "commerce",
|
| 540 |
+
"commercial", "commission", "commit", "commitment", "commodity", "communicate",
|
| 541 |
+
"communication", "communist", "compact", "companion", "comparison", "compel",
|
| 542 |
+
"compensate", "compensation", "compete", "competition", "competitive",
|
| 543 |
+
"competitor", "complain", "complaint", "complement", "complex", "complexity",
|
| 544 |
+
"complicate", "complicated", "comply", "component", "compose", "composition",
|
| 545 |
+
"compound", "comprehensive", "comprise", "compromise", "compulsory", "compute",
|
| 546 |
+
"computer", "conceal", "concede", "conceive", "concentrate", "concentration",
|
| 547 |
+
"concept", "conception", "concern", "concerning", "concert", "conclude",
|
| 548 |
+
"conclusion", "concrete", "condemn", "conduct", "conference", "confess",
|
| 549 |
+
"confession", "confidence", "confident", "confidential", "confine", "confirm",
|
| 550 |
+
"conflict", "confront", "confusion", "congratulate", "congress", "connect",
|
| 551 |
+
"connection", "conscious", "consciousness", "consecutive", "consensus",
|
| 552 |
+
"consent", "consequence", "consequently", "conservation", "conservative",
|
| 553 |
+
"considerable", "considerably", "consist", "consistent", "consistently",
|
| 554 |
+
"constant", "constantly", "constitute", "constitution", "constitutional",
|
| 555 |
+
"construct", "construction", "consult", "consultant", "consume", "consumer",
|
| 556 |
+
"consumption", "contact", "contemporary", "contend", "contest", "context",
|
| 557 |
+
"continent", "continually", "continuity", "continuous", "continuously",
|
| 558 |
+
"contradiction", "contrary", "contribute", "contribution", "contributor",
|
| 559 |
+
"controversial", "controversy", "convenience", "convenient", "convention",
|
| 560 |
+
"conventional", "conversation", "conversion", "convert", "convey", "convict",
|
| 561 |
+
"conviction", "convince", "cook", "cookie", "cool", "cooperate", "cooperation",
|
| 562 |
+
"coordinate", "coordination", "cope", "copper", "copy", "copyright", "core",
|
| 563 |
+
"corn", "corner", "corporate", "corporation", "correct", "correction",
|
| 564 |
+
"correctly", "correlate", "correlation", "correspond", "correspondent",
|
| 565 |
+
"corridor", "corruption", "costly", "cotton", "council", "counsel",
|
| 566 |
+
"counselor", "count", "counter", "counterpart", "county", "coup",
|
| 567 |
+
"courage", "cousin", "cover", "coverage", "crack", "craft", "crash",
|
| 568 |
+
"creative", "creativity", "creator", "creature", "credibility", "credit",
|
| 569 |
+
"creep", "crew", "crime", "criminal", "crisis", "criterion", "critic",
|
| 570 |
+
"critical", "criticism", "criticize", "crop", "cross", "crowd", "crown",
|
| 571 |
+
"crucial", "crude", "cruel", "cruise", "crush", "cry", "crystal", "cube",
|
| 572 |
+
"cuisine", "cultivate", "curious", "currency", "current", "curriculum",
|
| 573 |
+
"curtain", "curve", "custody", "custom", "customary", "customer", "cutting",
|
| 574 |
+
"cycle", "dad", "damage", "damn", "dance", "danger", "dangerous",
|
| 575 |
+
"dare", "data", "database", "dawn", "dead", "deadline", "deadly",
|
| 576 |
+
"deaf", "deal", "dealer", "dear", "debate", "debt", "decade",
|
| 577 |
+
"decay", "deceive", "decent", "decide", "decision", "decisive", "deck",
|
| 578 |
+
"declaration", "declare", "decline", "decorate", "decrease", "decree",
|
| 579 |
+
"dedicate", "deem", "defeat", "defend", "defendant", "defender", "defense",
|
| 580 |
+
"defensive", "deficit", "define", "definite", "definitely", "definition",
|
| 581 |
+
"defy", "degree", "delay", "delegate", "delegation", "delete", "deliberate",
|
| 582 |
+
"deliberately", "delicate", "delicious", "delight", "deliver", "delivery",
|
| 583 |
+
"demand", "democracy", "democrat", "democratic", "demographic", "demonstrate",
|
| 584 |
+
"demonstration", "denial", "denote", "deny", "depart", "department", "departure",
|
| 585 |
+
"depend", "dependence", "dependent", "depict", "deposit", "depress", "depression",
|
| 586 |
+
"deprive", "depth", "deputy", "derive", "descend", "describe", "description",
|
| 587 |
+
"desert", "deserve", "design", "designate", "designer", "desirable",
|
| 588 |
+
"desire", "desk", "desperate", "desperately", "despite", "destination",
|
| 589 |
+
"destroy", "destruction", "detail", "detailed", "detain", "detect",
|
| 590 |
+
"detection", "detective", "detention", "deteriorate", "determination",
|
| 591 |
+
"determine", "determined", "develop", "development", "developmental",
|
| 592 |
+
"devote", "devote", "diabetes", "diagnose", "diagnosis", "dialogue",
|
| 593 |
+
"diameter", "diamond", "diary", "dictate", "diet", "differ", "difference",
|
| 594 |
+
"differentiate", "differently", "difficulty", "dig", "digest", "digital",
|
| 595 |
+
"dignity", "dilemma", "dimension", "diminish", "dinner", "dioxide",
|
| 596 |
+
"dip", "diplomat", "diplomatic", "direct", "direction", "directly",
|
| 597 |
+
"director", "dirty", "disability", "disable", "disadvantage",
|
| 598 |
+
"disagree", "disappear", "disappoint", "disappointment", "disaster",
|
| 599 |
+
"disastrous", "disc", "discharge", "discipline", "disclose", "discount",
|
| 600 |
+
"discourse", "discover", "discovery", "discrepancy", "discretion",
|
| 601 |
+
"discrimination", "discuss", "discussion", "disease", "dismiss", "disorder",
|
| 602 |
+
"dispatch", "display", "disposal", "dispose", "dispute", "disrupt",
|
| 603 |
+
"dissolve", "distance", "distant", "distinct", "distinction", "distinctive",
|
| 604 |
+
"distinguish", "distort", "distract", "distress", "distribute", "distribution",
|
| 605 |
+
"distributor", "district", "disturb", "dive", "diverse", "diversity",
|
| 606 |
+
"divide", "division", "divorce", "dock", "doctor", "doctrine", "document",
|
| 607 |
+
"documentary", "dollar", "domain", "dome", "domestic", "dominant",
|
| 608 |
+
"dominate", "donation", "donor", "dose", "dot", "double", "doubt",
|
| 609 |
+
"doubtful", "downtown", "draft", "drag", "drain", "drama", "dramatic",
|
| 610 |
+
"dramatically", "drastic", "draw", "drawing", "drink", "drive",
|
| 611 |
+
"driver", "drop", "drought", "drown", "drum", "drunk", "dry",
|
| 612 |
+
"dual", "dubious", "duck", "due", "dull", "dump", "durable", "duration",
|
| 613 |
+
"dust", "duty", "dynamic", "dynamics", "eager", "eagle", "ear",
|
| 614 |
+
"earning", "earth", "ease", "easily", "eastern", "echo", "eclipse",
|
| 615 |
+
"ecological", "ecology", "economics", "economist", "economy",
|
| 616 |
+
"ecosystem", "edit", "edition", "editor", "editorial", "educate",
|
| 617 |
+
"education", "educational", "educator", "effective", "effectively",
|
| 618 |
+
"effectiveness", "efficiency", "efficient", "efficiently", "effort",
|
| 619 |
+
"elaborate", "elbow", "elderly", "elect", "election", "electoral",
|
| 620 |
+
"electric", "electrical", "electricity", "electronic", "electronics",
|
| 621 |
+
"elegant", "element", "elementary", "eliminate", "elimination", "elite",
|
| 622 |
+
"elsewhere", "email", "embargo", "embark", "embarrass", "embassy",
|
| 623 |
+
"embed", "embody", "embrace", "emerge", "emergence", "emergency",
|
| 624 |
+
"emission", "emotion", "emotional", "emphasis", "emphasize", "empire",
|
| 625 |
+
"empirical", "employ", "employee", "employer", "employment", "empower",
|
| 626 |
+
"enable", "enact", "encompass", "encounter", "encourage", "encouragement",
|
| 627 |
+
"endanger", "endeavor", "endorse", "endorsement", "endure", "enforce",
|
| 628 |
+
"enforcement", "engage", "engagement", "engine", "engineering", "enhance",
|
| 629 |
+
"enjoy", "enjoyment", "enlarge", "enormous", "enrich", "enroll",
|
| 630 |
+
"ensemble", "ensure", "enter", "enterprise", "entertain", "entertainment",
|
| 631 |
+
"enthusiasm", "enthusiast", "enthusiastic", "entirely", "entitle",
|
| 632 |
+
"entity", "entrepreneur", "entry", "envelope", "environment",
|
| 633 |
+
"environmental", "epidemic", "episode", "equal", "equality", "equation",
|
| 634 |
+
"equip", "equipment", "equivalent", "era", "erect", "error", "erupt",
|
| 635 |
+
"escalate", "escape", "especially", "essay", "essence", "essential",
|
| 636 |
+
"essentially", "establish", "establishment", "estate", "estimate",
|
| 637 |
+
"estimation", "eternal", "ethical", "ethics", "ethnic", "evacuate",
|
| 638 |
+
"evaluate", "evaluation", "evenly", "event", "eventually", "ever",
|
| 639 |
+
"everyday", "evidence", "evident", "evil", "evoke", "evolution",
|
| 640 |
+
"evolutionary", "evolve", "exact", "exaggerate", "examination",
|
| 641 |
+
"examine", "example", "exceed", "excellence", "excellent", "exception",
|
| 642 |
+
"exceptional", "excess", "excessive", "exchange", "excite", "excitement",
|
| 643 |
+
"exciting", "exclude", "exclusion", "exclusive", "exclusively",
|
| 644 |
+
"excuse", "execute", "execution", "executive", "exemplify",
|
| 645 |
+
"exercise", "exert", "exhaust", "exhibit", "exhibition", "exile",
|
| 646 |
+
"exist", "existence", "exit", "expand", "expansion", "expect",
|
| 647 |
+
"expectation", "expedition", "expel", "expenditure", "expense",
|
| 648 |
+
"expensive", "expert", "expertise", "explain", "explanation",
|
| 649 |
+
"explicit", "explicitly", "explode", "exploit", "exploitation",
|
| 650 |
+
"exploration", "explore", "explosion", "explosive", "export",
|
| 651 |
+
"expose", "exposure", "express", "expression", "extend", "extension",
|
| 652 |
+
"extensive", "extensively", "extent", "external", "extinct",
|
| 653 |
+
"extinction", "extra", "extract", "extraordinary", "extreme",
|
| 654 |
+
"extremely", "eye", "fabric", "fabulous", "facade", "face",
|
| 655 |
+
"facial", "facilitate", "facility", "fact", "faction", "faculty",
|
| 656 |
+
"fade", "fail", "failure", "fair", "fairly", "fairness", "faith",
|
| 657 |
+
"faithful", "fake", "fame", "familiar", "famine", "fan", "fancy",
|
| 658 |
+
"fantasy", "fare", "fascinate", "fascinating", "fashion", "fat",
|
| 659 |
+
"fate", "fatigue", "fault", "favor", "favorable", "favorite",
|
| 660 |
+
"fax", "fear", "feasible", "feast", "feather", "federal",
|
| 661 |
+
"federation", "fee", "feed", "feedback", "feel", "feeling",
|
| 662 |
+
"fellow", "fellowship", "female", "fence", "fertile", "fertilizer",
|
| 663 |
+
"festival", "fetch", "fever", "fiber", "fiction", "field", "fierce",
|
| 664 |
+
"fifteen", "fifty", "fig", "fight", "fighter", "figure", "file",
|
| 665 |
+
"fill", "filter", "final", "finally", "finance", "financial",
|
| 666 |
+
"financially", "financing", "finding", "finger", "finished",
|
| 667 |
+
"fire", "firm", "firmly", "fiscal", "fish", "fisherman", "fishing",
|
| 668 |
+
"fitness", "fix", "fixture", "flag", "flame", "flash", "flat",
|
| 669 |
+
"flavor", "flee", "fleet", "flesh", "flexibility", "flexible",
|
| 670 |
+
"flight", "float", "flock", "flood", "floor", "flour", "flow",
|
| 671 |
+
"flower", "fluid", "flush", "fly", "focus", "folk", "football",
|
| 672 |
+
"footnote", "footstep", "forbid", "forbidden", "forecast", "forehead",
|
| 673 |
+
"foreign", "foreigner", "forest", "forever", "forge", "forget",
|
| 674 |
+
"forgive", "fork", "form", "formal", "format", "formation", "former",
|
| 675 |
+
"formula", "formulate", "fort", "forth", "fortunate", "fortune",
|
| 676 |
+
"forum", "forward", "fossil", "foster", "found",
|
| 677 |
+
"foundation", "founder", "fountain", "fraction", "fracture", "fragile",
|
| 678 |
+
"fragment", "frame", "framework", "franchise", "frank", "frankly",
|
| 679 |
+
"fraud", "free", "freedom", "freely", "freeze", "freight",
|
| 680 |
+
"frequency", "frequent", "frequently", "fresh", "freshman", "friction",
|
| 681 |
+
"friendly", "friendship", "frighten", "frog", "front",
|
| 682 |
+
"frontier", "frost", "frown", "frozen", "fruit", "frustrate",
|
| 683 |
+
"frustration", "fuel", "fulfill", "full", "fun", "function",
|
| 684 |
+
"functional", "fund", "fundamental", "funding", "funeral", "funny",
|
| 685 |
+
"fur", "furious", "furniture", "further", "furthermore", "fury",
|
| 686 |
+
"fusion", "future", "gain", "galaxy", "gallery", "gallon", "gambling",
|
| 687 |
+
"gap", "garage", "garbage", "garden", "garlic", "garment", "gas",
|
| 688 |
+
"gasoline", "gate", "gather", "gathering", "gauge", "gaze", "gear",
|
| 689 |
+
"gender", "gene", "general", "generally", "generate", "generation",
|
| 690 |
+
"generator", "generous", "genetic", "genetics", "genius", "genocide",
|
| 691 |
+
"genre", "gentle", "gentleman", "gently", "genuine", "genuinely",
|
| 692 |
+
"gesture", "giant", "gift", "gigantic", "glimpse", "global",
|
| 693 |
+
"globalization", "globe", "glory", "glove", "glow", "glucose",
|
| 694 |
+
"goal", "goddess", "gold", "golden", "golf", "goodness",
|
| 695 |
+
"goods", "gorgeous", "gospel", "gossip", "govern", "governance",
|
| 696 |
+
"government", "governor", "grab", "grace", "grade", "gradually",
|
| 697 |
+
"graduate", "graduation", "grain", "gram", "grammar", "grand",
|
| 698 |
+
"grandfather", "grandmother", "grant", "graph", "graphic", "grasp",
|
| 699 |
+
"grass", "grateful", "grave", "gravity", "gray", "greatly",
|
| 700 |
+
"green", "greenhouse", "greet", "grief", "grin", "grind", "grip",
|
| 701 |
+
"grocery", "gross", "ground", "groundwater", "growth", "guarantee",
|
| 702 |
+
"guard", "guardian", "guess", "guest", "guidance", "guide",
|
| 703 |
+
"guideline", "guilty", "guitar", "gulf", "gun", "gut", "guy",
|
| 704 |
+
"gym", "habit", "habitat", "hair", "half", "hall", "halt", "hammer",
|
| 705 |
+
"hand", "handful", "handle", "handling", "handwriting", "handy",
|
| 706 |
+
"hang", "happen", "happiness", "harassment", "harbor", "hardly",
|
| 707 |
+
"hardware", "harm", "harmful", "harmony", "harvest", "hat",
|
| 708 |
+
"hate", "haul", "hay", "hazard", "head", "headache", "headline",
|
| 709 |
+
"headquarters", "heal", "health", "healthcare", "healthy",
|
| 710 |
+
"heap", "hearing", "heart", "heat", "heating", "heaven",
|
| 711 |
+
"heavily", "heavy", "hedge", "heel", "height", "helicopter",
|
| 712 |
+
"hell", "helmet", "helpful", "herb", "heritage", "hero",
|
| 713 |
+
"heroin", "herself", "hesitate", "hidden", "hide", "hierarchy",
|
| 714 |
+
"highlight", "highly", "highway", "hike", "hill", "himself",
|
| 715 |
+
"hip", "hire", "historian", "historic", "historical", "history",
|
| 716 |
+
"hit", "hobby", "hold", "holder", "holding", "hole",
|
| 717 |
+
"holiday", "hollow", "holy", "homeland", "homeless", "homework",
|
| 718 |
+
"honest", "honesty", "honey", "honor", "hook", "hope",
|
| 719 |
+
"hopeful", "hopefully", "horizon", "horizontal", "hormone",
|
| 720 |
+
"horn", "horrible", "horror", "horse", "hospitality", "host",
|
| 721 |
+
"hostage", "hostile", "hot", "hotline", "hour", "housing",
|
| 722 |
+
"hover", "human", "humane", "humanitarian", "humanity",
|
| 723 |
+
"humor", "hundred", "hunger", "hungry", "hunt", "hunter",
|
| 724 |
+
"hunting", "hurt", "husband", "hut", "hydrogen", "hygiene",
|
| 725 |
+
"hypothesis", "ice", "icon", "idea", "ideal", "identical",
|
| 726 |
+
"identification", "identify", "identity", "ideology", "ignorance",
|
| 727 |
+
"ignore", "ill", "illegal", "illness", "illusion", "illustrate",
|
| 728 |
+
"illustration", "image", "imaginary", "imagination", "imagine",
|
| 729 |
+
"imitate", "immediate", "immediately", "immense", "immigrant",
|
| 730 |
+
"immigration", "immune", "immunity", "impact", "implement",
|
| 731 |
+
"implementation", "implication", "implicit", "imply", "import",
|
| 732 |
+
"importance", "impose", "impossible", "impress", "impression",
|
| 733 |
+
"impressive", "imprison", "improbable", "improve", "improvement",
|
| 734 |
+
"impulse", "inability", "inappropriate", "incentive", "incidence",
|
| 735 |
+
"incident", "inclination", "incline", "include", "including",
|
| 736 |
+
"inclusion", "inclusive", "income", "incorporate", "incorrect",
|
| 737 |
+
"increase", "increasingly", "incredible", "incur", "indeed",
|
| 738 |
+
"independence", "independent", "independently", "index",
|
| 739 |
+
"indicate", "indication", "indicator", "indictment",
|
| 740 |
+
"indigenous", "indirect", "indispensable", "individual",
|
| 741 |
+
"individuality", "indoor", "induce", "indulge", "industrial",
|
| 742 |
+
"industrialize", "industry", "inequality", "inevitable",
|
| 743 |
+
"inevitably", "infant", "infect", "infection", "infer",
|
| 744 |
+
"inference", "inferior", "infinite", "infinity", "inflation",
|
| 745 |
+
"inflict", "influence", "influential", "info", "inform",
|
| 746 |
+
"informal", "information", "infrastructure", "ingredient",
|
| 747 |
+
"inhabit", "inhabitant", "inherent", "inherit", "inhibit",
|
| 748 |
+
"initial", "initially", "initiate", "initiative", "inject",
|
| 749 |
+
"injection", "injure", "injury", "inmate", "inner",
|
| 750 |
+
"innocent", "innovation", "innovative", "input", "inquiry",
|
| 751 |
+
"insect", "insert", "insertion", "inside", "insight",
|
| 752 |
+
"insist", "inspect", "inspection", "inspector", "inspiration",
|
| 753 |
+
"inspire", "install", "installation", "installment", "instance",
|
| 754 |
+
"instant", "instantly", "instead", "instinct",
|
| 755 |
+
"institute", "institution", "institutional", "instruct",
|
| 756 |
+
"instruction", "instructor", "instrument", "instrumental",
|
| 757 |
+
"insufficient", "insult", "insurance", "intact", "integral",
|
| 758 |
+
"integrate", "integration", "integrity", "intellectual",
|
| 759 |
+
"intelligence", "intelligent", "intend", "intense",
|
| 760 |
+
"intensity", "intensive", "intent", "intention", "intentional",
|
| 761 |
+
"interact", "interaction", "interactive", "interest",
|
| 762 |
+
"interested", "interesting", "interface", "interfere",
|
| 763 |
+
"interference", "interim", "interior", "intermediate",
|
| 764 |
+
"internal", "international", "internet", "interpret",
|
| 765 |
+
"interpretation", "interrupt", "interruption",
|
| 766 |
+
"intersection", "interval", "intervene", "intervention",
|
| 767 |
+
"interview", "intimate", "intrigue", "intrinsic", "introduce",
|
| 768 |
+
"introduction", "intuition", "intuitive", "invade",
|
| 769 |
+
"invasion", "invent", "invention", "inventory", "invest",
|
| 770 |
+
"investigate", "investigation", "investigator", "investment",
|
| 771 |
+
"investor", "invisible", "invitation", "invite", "involve",
|
| 772 |
+
"involvement", "iron", "irony", "irrelevant", "irrigation",
|
| 773 |
+
"island", "isolate", "isolation", "issue", "item",
|
| 774 |
+
"itself", "ivory", "jail", "jam", "jet", "jewel",
|
| 775 |
+
"jewelry", "job", "join", "joint", "jointly", "joke",
|
| 776 |
+
"journal", "journalism", "journalist", "journey", "joy",
|
| 777 |
+
"judge", "judgment", "judicial", "juice", "jump", "junction",
|
| 778 |
+
"jungle", "junior", "jurisdiction", "jury", "justice",
|
| 779 |
+
"justification", "justify", "juvenile", "keen", "keeper",
|
| 780 |
+
"kettle", "key", "keyboard", "kick", "kid", "kidnap",
|
| 781 |
+
"kidney", "kin", "kindness", "king", "kingdom", "kiss",
|
| 782 |
+
"kit", "kitchen", "knee", "kneel", "knife", "knock",
|
| 783 |
+
"knot", "label", "labor", "laboratory", "lace", "lack",
|
| 784 |
+
"ladder", "lady", "lake", "lamp", "land", "landing",
|
| 785 |
+
"landlord", "landmark", "landscape", "lane", "lap", "largely",
|
| 786 |
+
"laser", "late", "latte", "latter", "laugh", "laughter",
|
| 787 |
+
"launch", "laundry", "lavatory", "law", "lawn", "lawmaker",
|
| 788 |
+
"lawn", "lawsuit", "lawyer", "layout", "leading", "leaf",
|
| 789 |
+
"league", "leak", "lean", "leap", "learner", "learning",
|
| 790 |
+
"lease", "leather", "leave", "lecture",
|
| 791 |
+
"legacy", "legend", "legendary", "legislation", "legislative",
|
| 792 |
+
"legislature", "legitimate", "leisure", "lemon", "lend",
|
| 793 |
+
"length", "lens", "lesson", "lest", "lethal", "letter",
|
| 794 |
+
"lettuce", "liberal", "liberation", "liberty", "library",
|
| 795 |
+
"license", "lid", "lie", "lifelong", "lifestyle", "lifetime",
|
| 796 |
+
"lift", "light", "lighting", "lightly", "likelihood",
|
| 797 |
+
"likewise", "limb", "limit", "limitation", "limited",
|
| 798 |
+
"limitless", "limp", "line", "linear", "linen", "liner",
|
| 799 |
+
"linger", "linguistic", "lining", "link", "lion",
|
| 800 |
+
"lip", "liquid", "liquor", "list", "listen", "listener",
|
| 801 |
+
"listing", "liter", "literally", "literary", "literature",
|
| 802 |
+
"litigation", "liver", "living", "load", "loan",
|
| 803 |
+
"lobby", "local", "locate", "location", "lock", "lodge",
|
| 804 |
+
"log", "logic", "logical", "logo", "lonely", "longitudinal",
|
| 805 |
+
"lookout", "loop", "loose", "loosen", "lord", "lose",
|
| 806 |
+
"loss", "loud", "lounge", "lovely", "lover",
|
| 807 |
+
"low", "lower", "loyal", "loyalty", "luck", "lucky",
|
| 808 |
+
"luggage", "lump", "lunch", "lung", "luxury",
|
| 809 |
+
"lyric", "machine", "machinery", "mad", "magazine", "magic",
|
| 810 |
+
"magical", "magnetic", "magnificent", "magnitude", "maid",
|
| 811 |
+
"mail", "mainland", "mainly", "mainstream", "maintain",
|
| 812 |
+
"maintenance", "majesty", "majority", "maker",
|
| 813 |
+
"makeup", "male", "mall", "mama", "mammal", "manage",
|
| 814 |
+
"manageable", "management", "manager", "mandate",
|
| 815 |
+
"mandatory", "maneuver", "manifest", "manipulate",
|
| 816 |
+
"manipulation", "mankind", "manuscript", "maple",
|
| 817 |
+
"marathon", "marble", "march", "margin", "marginal",
|
| 818 |
+
"marine", "mark", "marker", "market", "marketing",
|
| 819 |
+
"marketplace", "marriage", "married", "marry", "mask",
|
| 820 |
+
"mass", "massacre", "massive", "master", "masterpiece",
|
| 821 |
+
"match", "mate", "material", "maternal", "math",
|
| 822 |
+
"mathematical", "mathematics", "matter", "mature",
|
| 823 |
+
"maturity", "maximize", "maximum", "mayor", "meadow",
|
| 824 |
+
"meaning", "meaningful", "means", "meantime",
|
| 825 |
+
"measurable", "measure", "measurement", "mechanic",
|
| 826 |
+
"mechanical", "mechanism", "medal", "media",
|
| 827 |
+
"mediate", "mediation", "medicaid", "medical",
|
| 828 |
+
"medication", "medicine", "medieval", "meditation",
|
| 829 |
+
"medium", "meet", "melody", "melt", "member",
|
| 830 |
+
"membership", "memo", "memoir", "memorandum",
|
| 831 |
+
"memorial", "memorize", "menace",
|
| 832 |
+
"mental", "mentally", "mention", "mentor", "menu",
|
| 833 |
+
"merchandise", "merchant", "mercy", "mere", "merely",
|
| 834 |
+
"merge", "merger", "merit", "merry", "mess",
|
| 835 |
+
"messenger", "metal", "metaphor", "method",
|
| 836 |
+
"methodology", "metric", "metropolitan",
|
| 837 |
+
"microphone", "microscope", "midday", "middle",
|
| 838 |
+
"midnight", "midst", "migrant", "migrate", "migration",
|
| 839 |
+
"mild", "mile", "milestone", "militant", "military",
|
| 840 |
+
"militia", "mill", "millennium", "millimeter",
|
| 841 |
+
"mineral", "mingle", "miniature", "minimal",
|
| 842 |
+
"minimize", "minimum", "mining", "minister",
|
| 843 |
+
"ministry", "minor", "minority", "minute",
|
| 844 |
+
"miracle", "mirror", "miserable", "misery",
|
| 845 |
+
"misleading", "missile", "missing", "mission",
|
| 846 |
+
"missionary", "mist", "mistake", "mistaken",
|
| 847 |
+
"mistress", "misunderstand", "misunderstanding",
|
| 848 |
+
"mixture", "moan", "mobile", "mobility",
|
| 849 |
+
"mobilize", "mode", "moderate", "moderately",
|
| 850 |
+
"moderation", "modern", "modest", "modification",
|
| 851 |
+
"modify", "module", "moisture", "molecule",
|
| 852 |
+
"molest", "moment", "momentum", "monarchy",
|
| 853 |
+
"monastery", "monitor", "monk", "monopoly",
|
| 854 |
+
"monster", "monument", "mood", "moon",
|
| 855 |
+
"moral", "morale", "morality", "moreover",
|
| 856 |
+
"mortal", "mortality", "mortgage", "mosaic",
|
| 857 |
+
"mosque", "mostly", "mother", "motion",
|
| 858 |
+
"motivate", "motivation", "motive", "motor",
|
| 859 |
+
"motorcycle", "mount", "mountain", "mounting",
|
| 860 |
+
"mourn", "mouse", "mouth", "movement",
|
| 861 |
+
"movie", "mud", "multiple", "multiplication",
|
| 862 |
+
"multiply", "multitude", "municipal",
|
| 863 |
+
"municipality", "murder", "murderer", "murmur",
|
| 864 |
+
"muscle", "muscular", "museum", "mushroom",
|
| 865 |
+
"musical", "musician", "muslim", "mutual",
|
| 866 |
+
"mutually", "mysterious", "mystery", "myth",
|
| 867 |
+
"mythology", "nail", "naked", "narrative",
|
| 868 |
+
"narrow", "nasty", "nation", "national",
|
| 869 |
+
"nationalism", "nationalist", "nationality",
|
| 870 |
+
"nationwide", "native", "natural", "naturally",
|
| 871 |
+
"nature", "naval", "navigation", "navy",
|
| 872 |
+
"nearby", "neat", "necessarily", "necessary",
|
| 873 |
+
"necessity", "neck", "necklace", "needle",
|
| 874 |
+
"negative", "neglect", "negotiate",
|
| 875 |
+
"negotiation", "negotiator", "neighbor",
|
| 876 |
+
"neighborhood", "neither", "nerve", "nervous",
|
| 877 |
+
"nest", "net", "network", "neutral", "nevertheless",
|
| 878 |
+
"niche", "nickel", "niece", "night", "nightmare",
|
| 879 |
+
"nitrogen", "noble", "nobody", "nod", "noise",
|
| 880 |
+
"noisy", "nominal", "nominate", "nomination",
|
| 881 |
+
"nominee", "nonprofit", "nonsense", "norm",
|
| 882 |
+
"normal", "normally", "normative", "north",
|
| 883 |
+
"northeast", "northern", "northwest", "notable",
|
| 884 |
+
"notably", "notation", "notebook", "nothing",
|
| 885 |
+
"notice", "noticeable", "notification",
|
| 886 |
+
"notion", "notorious", "novel", "novelist",
|
| 887 |
+
"novelty", "nowhere", "nuclear", "nuance",
|
| 888 |
+
"nucleus", "nuisance", "number", "numerical",
|
| 889 |
+
"numerous", "nurse", "nursery", "nursing",
|
| 890 |
+
"nutrient", "nutrition", "nutritional",
|
| 891 |
+
"nutritious", "nylon", "oak", "obedience",
|
| 892 |
+
"obedient", "obese", "obesity", "obey",
|
| 893 |
+
"objection", "objective", "obligation",
|
| 894 |
+
"oblige", "obscure", "observation", "observe",
|
| 895 |
+
"observer", "obsession", "obstacle",
|
| 896 |
+
"obtain", "obvious", "obviously", "occasion",
|
| 897 |
+
"occasional", "occasionally", "occupation",
|
| 898 |
+
"occupy", "occur", "occurrence",
|
| 899 |
+
"offend", "offense", "offensive", "offer",
|
| 900 |
+
"offering", "officer", "official", "officially",
|
| 901 |
+
"offspring", "olive", "omission",
|
| 902 |
+
"omit", "ongoing", "onion", "onset",
|
| 903 |
+
"opening", "openly", "opera", "operate",
|
| 904 |
+
"operating", "operation", "operational",
|
| 905 |
+
"operator", "opinion", "opponent",
|
| 906 |
+
"opportunity", "oppose", "opposite",
|
| 907 |
+
"opposition", "opt", "optical", "optimism",
|
| 908 |
+
"optimist", "optimistic", "optimum",
|
| 909 |
+
"option", "optional", "oral", "orbit",
|
| 910 |
+
"orchestra", "ordeal", "orderly",
|
| 911 |
+
"ordinarily", "ordinary", "organ",
|
| 912 |
+
"organic", "organization", "organizational",
|
| 913 |
+
"organize", "organized", "organizer",
|
| 914 |
+
"orientation", "origin", "original",
|
| 915 |
+
"originally", "originate", "ornament",
|
| 916 |
+
"orthodox", "other", "otherwise",
|
| 917 |
+
"ought", "ounce", "outbreak",
|
| 918 |
+
"outcome", "outdoor", "outer", "outfit",
|
| 919 |
+
"outing", "outlet", "outline", "outlook",
|
| 920 |
+
"output", "outrage", "outright",
|
| 921 |
+
"outset", "outside", "outsider", "outstanding",
|
| 922 |
+
"outward", "oval", "oven", "overall",
|
| 923 |
+
"overcome", "overlook", "overnight",
|
| 924 |
+
"override", "overseas", "oversee",
|
| 925 |
+
"overturn", "overwhelm", "overwhelming",
|
| 926 |
+
"owe", "own", "owner", "ownership",
|
| 927 |
+
"oxygen", "ozone", "pace", "pack",
|
| 928 |
+
"package", "packaging", "packet", "pad",
|
| 929 |
+
"paddle", "page", "pain", "painful",
|
| 930 |
+
"paint", "painter", "painting", "pair",
|
| 931 |
+
"palace", "pale", "palm", "pan",
|
| 932 |
+
"panel", "panic", "paper", "parade",
|
| 933 |
+
"paradigm", "paradise", "paradox",
|
| 934 |
+
"paragraph", "parallel", "parameter",
|
| 935 |
+
"parcel", "pardon", "parent",
|
| 936 |
+
"parental", "parish", "park",
|
| 937 |
+
"parking", "parliament", "parliamentary",
|
| 938 |
+
"partial", "partially", "participant",
|
| 939 |
+
"participate", "participation",
|
| 940 |
+
"particle", "particular", "particularly",
|
| 941 |
+
"partly", "partner", "partnership",
|
| 942 |
+
"passage", "passenger", "passing",
|
| 943 |
+
"passion", "passionate", "passive",
|
| 944 |
+
"passport", "password", "past",
|
| 945 |
+
"paste", "pastor", "patch", "patent",
|
| 946 |
+
"path", "pathway", "patience",
|
| 947 |
+
"patient", "patrol", "patron",
|
| 948 |
+
"pattern", "pause", "pave", "pavement",
|
| 949 |
+
"paw", "payment", "peace", "peaceful",
|
| 950 |
+
"peak", "peasant", "peculiar", "pedestrian",
|
| 951 |
+
"peer", "penalty", "pencil", "penetrate",
|
| 952 |
+
"peninsula", "pension", "people",
|
| 953 |
+
"pepper", "perceive", "percentage",
|
| 954 |
+
"perception", "perfect", "perfectly",
|
| 955 |
+
"perform", "performance", "performer",
|
| 956 |
+
"perfume", "perhaps", "period",
|
| 957 |
+
"periodic", "peripheral", "permanent",
|
| 958 |
+
"permanently", "permission", "permit",
|
| 959 |
+
"persist", "persistence", "persistent",
|
| 960 |
+
"persona", "personal", "personality",
|
| 961 |
+
"personally", "personnel",
|
| 962 |
+
"perspective", "persuade", "pet",
|
| 963 |
+
"petition", "petroleum", "phase",
|
| 964 |
+
"phenomenon", "philosopher", "philosophical",
|
| 965 |
+
"philosophy", "phone",
|
| 966 |
+
"photograph", "photographer", "photographic",
|
| 967 |
+
"photography", "phrase", "physical",
|
| 968 |
+
"physically", "physician", "physics",
|
| 969 |
+
"piano", "pick", "picture",
|
| 970 |
+
"piece", "pierce", "pig", "pile",
|
| 971 |
+
"pillar", "pillow", "pilot",
|
| 972 |
+
"pin", "pine", "pink", "pioneer",
|
| 973 |
+
"pipe", "pit", "pitch", "pizza",
|
| 974 |
+
"placement", "plain", "plaintiff",
|
| 975 |
+
"plantation", "plate", "platform",
|
| 976 |
+
"plausible", "playback", "playful",
|
| 977 |
+
"playground", "plead", "pleasant",
|
| 978 |
+
"pledge", "plenty", "plot",
|
| 979 |
+
"plug", "plunge", "plural", "plus",
|
| 980 |
+
"pocket", "poem", "poet", "poetic",
|
| 981 |
+
"poetry", "poison", "poisonous",
|
| 982 |
+
"polar", "pole", "police",
|
| 983 |
+
"policeman", "policy", "polish",
|
| 984 |
+
"polite", "political", "politically",
|
| 985 |
+
"politician", "politics",
|
| 986 |
+
"poll", "pollution", "pond",
|
| 987 |
+
"pony", "pool", "pop",
|
| 988 |
+
"pope", "popular", "popularity",
|
| 989 |
+
"population", "porch", "port",
|
| 990 |
+
"portable", "porter", "portion",
|
| 991 |
+
"portrait", "portray", "pose",
|
| 992 |
+
"position", "positive", "positively",
|
| 993 |
+
"possess", "possession", "possessive",
|
| 994 |
+
"possibility", "possible", "possibly",
|
| 995 |
+
"postage", "postal", "poster",
|
| 996 |
+
"potato", "potent", "potential",
|
| 997 |
+
"potentially", "pottery",
|
| 998 |
+
"poverty", "powder", "powerful",
|
| 999 |
+
"practically", "practice",
|
| 1000 |
+
"practitioner", "praise", "pray",
|
| 1001 |
+
"prayer", "preach", "precede",
|
| 1002 |
+
"precedent", "precious", "precise",
|
| 1003 |
+
"precisely", "precision", "predict",
|
| 1004 |
+
"predictable", "prediction",
|
| 1005 |
+
"predominantly", "preface", "prefer",
|
| 1006 |
+
"preference", "pregnancy", "pregnant",
|
| 1007 |
+
"prejudice", "preliminary",
|
| 1008 |
+
"premier", "premise", "premium",
|
| 1009 |
+
"preparation", "prepare", "prepared",
|
| 1010 |
+
"prescription", "presence",
|
| 1011 |
+
"presentation", "presently",
|
| 1012 |
+
"preservation", "preserve",
|
| 1013 |
+
"presidency", "president", "presidential",
|
| 1014 |
+
"pressing", "pressure",
|
| 1015 |
+
"presumably", "presume", "pretend",
|
| 1016 |
+
"pretty", "prevail", "prevalence",
|
| 1017 |
+
"prevalent", "prevention",
|
| 1018 |
+
"preview", "previous", "previously",
|
| 1019 |
+
"prey", "pricing", "pride",
|
| 1020 |
+
"priest", "primarily", "primary",
|
| 1021 |
+
"prime", "primitive", "prince",
|
| 1022 |
+
"princess", "principal", "principle",
|
| 1023 |
+
"print", "printer", "printing",
|
| 1024 |
+
"prior", "priority", "prison",
|
| 1025 |
+
"prisoner", "privacy",
|
| 1026 |
+
"privilege", "privileged",
|
| 1027 |
+
"prize", "proactive", "probable",
|
| 1028 |
+
"probably", "probe", "problem",
|
| 1029 |
+
"problematic", "procedural",
|
| 1030 |
+
"procedure", "proceed", "proceeding",
|
| 1031 |
+
"proceeds", "processor",
|
| 1032 |
+
"proclaim", "produce", "producer",
|
| 1033 |
+
"productive", "productivity",
|
| 1034 |
+
"profession", "professional",
|
| 1035 |
+
"professor", "proficiency",
|
| 1036 |
+
"profile", "profit",
|
| 1037 |
+
"profitable", "profound",
|
| 1038 |
+
"program", "programming",
|
| 1039 |
+
"progressive", "prohibit",
|
| 1040 |
+
"prohibition", "project",
|
| 1041 |
+
"projection", "prominent",
|
| 1042 |
+
"promise", "promising",
|
| 1043 |
+
"promote", "promotion",
|
| 1044 |
+
"prompt", "proof",
|
| 1045 |
+
"propaganda", "proper", "properly",
|
| 1046 |
+
"property", "prophet",
|
| 1047 |
+
"proportion", "proposal",
|
| 1048 |
+
"propose", "proposed",
|
| 1049 |
+
"prosecution", "prosecutor",
|
| 1050 |
+
"prospect", "prosperity",
|
| 1051 |
+
"protect", "protection",
|
| 1052 |
+
"protective", "protein",
|
| 1053 |
+
"protest", "protester",
|
| 1054 |
+
"protocol", "proud",
|
| 1055 |
+
"prove", "proverb",
|
| 1056 |
+
"provide", "provided",
|
| 1057 |
+
"province", "provincial",
|
| 1058 |
+
"provision", "provoke",
|
| 1059 |
+
"proxy", "prudent",
|
| 1060 |
+
"psychiatric", "psychiatry",
|
| 1061 |
+
"psychological", "psychologist",
|
| 1062 |
+
"psychology", "pub",
|
| 1063 |
+
"publication", "publicity",
|
| 1064 |
+
"publicly", "publish",
|
| 1065 |
+
"publisher", "publishing",
|
| 1066 |
+
"pulse", "pump",
|
| 1067 |
+
"punch", "punish",
|
| 1068 |
+
"punishment", "pupil",
|
| 1069 |
+
"purchase", "purchaser",
|
| 1070 |
+
"pure", "purely",
|
| 1071 |
+
"purify", "purple",
|
| 1072 |
+
"purpose", "purse",
|
| 1073 |
+
"pursue", "pursuit",
|
| 1074 |
+
"puzzle", "qualification",
|
| 1075 |
+
"qualified", "qualify",
|
| 1076 |
+
"qualitative", "quantify",
|
| 1077 |
+
"quantitative", "quarterly",
|
| 1078 |
+
"queen", "quest",
|
| 1079 |
+
"questionable", "questionnaire",
|
| 1080 |
+
"queue", "quit",
|
| 1081 |
+
"quiz", "quota",
|
| 1082 |
+
"quotation", "quote",
|
| 1083 |
+
"rabbit", "racial",
|
| 1084 |
+
"racism", "racist",
|
| 1085 |
+
"radiation", "radical",
|
| 1086 |
+
"rage", "raid",
|
| 1087 |
+
"rail", "railroad",
|
| 1088 |
+
"railway", "rain",
|
| 1089 |
+
"rainbow", "rally",
|
| 1090 |
+
"random", "range",
|
| 1091 |
+
"rank", "ranking",
|
| 1092 |
+
"rape", "rapid",
|
| 1093 |
+
"rapidly", "rare",
|
| 1094 |
+
"rarely", "rat",
|
| 1095 |
+
"rate", "rating",
|
| 1096 |
+
"ratio", "rational",
|
| 1097 |
+
"raw", "ray",
|
| 1098 |
+
"react", "reaction",
|
| 1099 |
+
"readily", "reading",
|
| 1100 |
+
"realistic", "reality",
|
| 1101 |
+
"realization", "realize",
|
| 1102 |
+
"realm", "rear",
|
| 1103 |
+
"reason", "reasonable",
|
| 1104 |
+
"reasonably", "reasoning",
|
| 1105 |
+
"reassure", "rebel",
|
| 1106 |
+
"rebellion", "rebuild",
|
| 1107 |
+
"recall", "receipt",
|
| 1108 |
+
"receiver", "recent",
|
| 1109 |
+
"recently", "reception",
|
| 1110 |
+
"recession", "recipe",
|
| 1111 |
+
"recipient", "reckon",
|
| 1112 |
+
"recognition", "recognize",
|
| 1113 |
+
"recommend", "recommendation",
|
| 1114 |
+
"reconcile", "reconstruction",
|
| 1115 |
+
"recording", "recover",
|
| 1116 |
+
"recovery", "recreation",
|
| 1117 |
+
"recruit", "recruitment",
|
| 1118 |
+
"reduction", "redundant",
|
| 1119 |
+
"reef", "refer",
|
| 1120 |
+
"referee", "reference",
|
| 1121 |
+
"referendum", "referral",
|
| 1122 |
+
"reflection", "reform",
|
| 1123 |
+
"refrain", "refresh",
|
| 1124 |
+
"refuge", "refugee",
|
| 1125 |
+
"refund", "refusal",
|
| 1126 |
+
"refuse", "regain",
|
| 1127 |
+
"regard", "regarding",
|
| 1128 |
+
"regardless", "regime",
|
| 1129 |
+
"regiment", "regional",
|
| 1130 |
+
"register", "registration",
|
| 1131 |
+
"regret", "regular",
|
| 1132 |
+
"regularly", "regulate",
|
| 1133 |
+
"regulation", "regulator",
|
| 1134 |
+
"regulatory", "rehabilitation",
|
| 1135 |
+
"reign", "reinforce",
|
| 1136 |
+
"reinforcement", "reject",
|
| 1137 |
+
"rejection", "relate",
|
| 1138 |
+
"relation", "relationship",
|
| 1139 |
+
"relative", "relatively",
|
| 1140 |
+
"relax", "relaxation",
|
| 1141 |
+
"release", "relevant",
|
| 1142 |
+
"reliability", "reliable",
|
| 1143 |
+
"relief", "relieve",
|
| 1144 |
+
"religion", "religious",
|
| 1145 |
+
"reluctant", "reluctantly",
|
| 1146 |
+
"remainder", "remains",
|
| 1147 |
+
"remark", "remarkable",
|
| 1148 |
+
"remarkably", "remedy",
|
| 1149 |
+
"reminder", "remnant",
|
| 1150 |
+
"remote", "removal",
|
| 1151 |
+
"remove", "renaissance",
|
| 1152 |
+
"render", "renew",
|
| 1153 |
+
"renewable", "renewal",
|
| 1154 |
+
"rent", "rental",
|
| 1155 |
+
"repair", "repay",
|
| 1156 |
+
"repeat", "repeatedly",
|
| 1157 |
+
"repent", "repetition",
|
| 1158 |
+
"replace", "replacement",
|
| 1159 |
+
"reportedly", "reporter",
|
| 1160 |
+
"representation", "representative",
|
| 1161 |
+
"repression", "reprint",
|
| 1162 |
+
"reproduce", "reproduction",
|
| 1163 |
+
"republic", "republican",
|
| 1164 |
+
"reputation", "request",
|
| 1165 |
+
"require", "requirement",
|
| 1166 |
+
"rescue", "resemble",
|
| 1167 |
+
"resentment", "reservation",
|
| 1168 |
+
"reserve", "reservoir",
|
| 1169 |
+
"reside", "residence",
|
| 1170 |
+
"residence", "resident",
|
| 1171 |
+
"residential", "residual",
|
| 1172 |
+
"resign", "resignation",
|
| 1173 |
+
"resist", "resistance",
|
| 1174 |
+
"resistant", "resolution",
|
| 1175 |
+
"resolve", "resort",
|
| 1176 |
+
"resource", "respect",
|
| 1177 |
+
"respectable", "respectful",
|
| 1178 |
+
"respective", "respectively",
|
| 1179 |
+
"respond", "respondent",
|
| 1180 |
+
"response", "responsibility",
|
| 1181 |
+
"responsible", "responsive",
|
| 1182 |
+
"restoration", "restore",
|
| 1183 |
+
"restrain", "restraint",
|
| 1184 |
+
"restrict", "restriction",
|
| 1185 |
+
"restrictive", "restructuring",
|
| 1186 |
+
"resume", "retail",
|
| 1187 |
+
"retailer", "retain",
|
| 1188 |
+
"retaliation", "retire",
|
| 1189 |
+
"retirement", "retreat",
|
| 1190 |
+
"retrieval", "retrieve",
|
| 1191 |
+
"revelation", "revenge",
|
| 1192 |
+
"revenue", "reverse",
|
| 1193 |
+
"review", "revise",
|
| 1194 |
+
"revision", "revival",
|
| 1195 |
+
"revive", "revolution",
|
| 1196 |
+
"revolutionary", "reward",
|
| 1197 |
+
"rhetoric", "rhythm",
|
| 1198 |
+
"rib", "ribbon",
|
| 1199 |
+
"rid", "ride",
|
| 1200 |
+
"ridge", "ridiculous",
|
| 1201 |
+
"rifle", "rigid",
|
| 1202 |
+
"riot", "rip",
|
| 1203 |
+
"ripple", "ritual",
|
| 1204 |
+
"rival", "rivalry",
|
| 1205 |
+
"roar", "robbery",
|
| 1206 |
+
"robe", "robot",
|
| 1207 |
+
"robust", "rocket",
|
| 1208 |
+
"rod", "roll",
|
| 1209 |
+
"roller", "romance",
|
| 1210 |
+
"romantic", "rookie",
|
| 1211 |
+
"rope", "rose",
|
| 1212 |
+
"rotate", "rotation",
|
| 1213 |
+
"rotten", "rough",
|
| 1214 |
+
"roughly", "round",
|
| 1215 |
+
"route", "routine",
|
| 1216 |
+
"row", "royal",
|
| 1217 |
+
"royalty", "rub",
|
| 1218 |
+
"rubber", "rug",
|
| 1219 |
+
"ruin", "ruler",
|
| 1220 |
+
"ruling", "rumor",
|
| 1221 |
+
"runner", "running",
|
| 1222 |
+
"rural", "rush",
|
| 1223 |
+
"sacred", "sacrifice",
|
| 1224 |
+
"sad", "saddle",
|
| 1225 |
+
"sadly", "sadness",
|
| 1226 |
+
"sake", "salad",
|
| 1227 |
+
"salary", "sale",
|
| 1228 |
+
"salmon", "salon",
|
| 1229 |
+
"salt", "salute",
|
| 1230 |
+
"salvation", "sample",
|
| 1231 |
+
"sanction", "sanctuary",
|
| 1232 |
+
"sand", "satellite",
|
| 1233 |
+
"satisfaction", "satisfactory",
|
| 1234 |
+
"satisfy", "sauce",
|
| 1235 |
+
"saving", "savings",
|
| 1236 |
+
"scale", "scandal",
|
| 1237 |
+
"scare", "scared",
|
| 1238 |
+
"scary", "scatter",
|
| 1239 |
+
"scenario", "scent",
|
| 1240 |
+
"schedule", "scheme",
|
| 1241 |
+
"scholar", "scholarship",
|
| 1242 |
+
"schooling", "scientific",
|
| 1243 |
+
"scientist", "scope",
|
| 1244 |
+
"score", "scorn",
|
| 1245 |
+
"scrap", "scream",
|
| 1246 |
+
"screen", "screening",
|
| 1247 |
+
"screw", "script",
|
| 1248 |
+
"scrutiny", "seal",
|
| 1249 |
+
"search", "season",
|
| 1250 |
+
"seasonal", "seating",
|
| 1251 |
+
"secular", "secure",
|
| 1252 |
+
"security", "seed",
|
| 1253 |
+
"seek", "segment",
|
| 1254 |
+
"seize", "seizure",
|
| 1255 |
+
"select", "selection",
|
| 1256 |
+
"selective", "self",
|
| 1257 |
+
"seller", "senate",
|
| 1258 |
+
"senator", "senior",
|
| 1259 |
+
"sensation", "sensational",
|
| 1260 |
+
"sensitivity", "sensor",
|
| 1261 |
+
"sentence", "sentiment",
|
| 1262 |
+
"separate", "separation",
|
| 1263 |
+
"sequence", "sequencing",
|
| 1264 |
+
"serial", "series",
|
| 1265 |
+
"session", "settle",
|
| 1266 |
+
"settlement", "settler",
|
| 1267 |
+
"setup", "severe",
|
| 1268 |
+
"severely", "severity",
|
| 1269 |
+
"sew", "sewage",
|
| 1270 |
+
"shade", "shadow",
|
| 1271 |
+
"shaft", "shake",
|
| 1272 |
+
"shall", "shallow",
|
| 1273 |
+
"shame", "shape",
|
| 1274 |
+
"shareholder", "sharing",
|
| 1275 |
+
"shark", "shed",
|
| 1276 |
+
"sheer", "sheet",
|
| 1277 |
+
"shelf", "shell",
|
| 1278 |
+
"shelter", "shield",
|
| 1279 |
+
"shift", "shine",
|
| 1280 |
+
"shipment", "shipping",
|
| 1281 |
+
"shirt", "shock",
|
| 1282 |
+
"shopping", "shortage",
|
| 1283 |
+
"shortly", "shot",
|
| 1284 |
+
"shoulder", "shout",
|
| 1285 |
+
"shove", "shower",
|
| 1286 |
+
"shrimp", "shrink",
|
| 1287 |
+
"shrub", "shrug",
|
| 1288 |
+
"shutter", "sibling",
|
| 1289 |
+
"sickness", "sideways",
|
| 1290 |
+
"siege", "sigh",
|
| 1291 |
+
"sight", "sign",
|
| 1292 |
+
"signal", "signature",
|
| 1293 |
+
"significance", "significant",
|
| 1294 |
+
"significantly", "silence",
|
| 1295 |
+
"silent", "silicon",
|
| 1296 |
+
"silk", "silly",
|
| 1297 |
+
"silver", "similar",
|
| 1298 |
+
"similarity", "similarly",
|
| 1299 |
+
"simmer", "simplicity",
|
| 1300 |
+
"simplify", "simply",
|
| 1301 |
+
"simulation", "simultaneously",
|
| 1302 |
+
"sin", "sincere",
|
| 1303 |
+
"sincerely", "singer",
|
| 1304 |
+
"single", "singular",
|
| 1305 |
+
"sink", "sip",
|
| 1306 |
+
"sister", "situation",
|
| 1307 |
+
"sizable", "size",
|
| 1308 |
+
"sketch", "ski",
|
| 1309 |
+
"skilled", "skillful",
|
| 1310 |
+
"skim", "skin",
|
| 1311 |
+
"skip", "skirt",
|
| 1312 |
+
"skull", "slap",
|
| 1313 |
+
"slash", "slave",
|
| 1314 |
+
"slavery", "sleep",
|
| 1315 |
+
"sleeve", "slice",
|
| 1316 |
+
"slide", "slight",
|
| 1317 |
+
"slightly", "slim",
|
| 1318 |
+
"slip", "slogan",
|
| 1319 |
+
"slope", "slot",
|
| 1320 |
+
"slow", "slowly",
|
| 1321 |
+
"smart", "smell",
|
| 1322 |
+
"smile", "smoke",
|
| 1323 |
+
"smooth", "smoothly",
|
| 1324 |
+
"snap", "sneak",
|
| 1325 |
+
"snapshot", "snow",
|
| 1326 |
+
"soak", "soap",
|
| 1327 |
+
"soar", "soccer",
|
| 1328 |
+
"social", "socialism",
|
| 1329 |
+
"socialist", "societal",
|
| 1330 |
+
"society", "sociological",
|
| 1331 |
+
"sociology", "soda",
|
| 1332 |
+
"software", "soil",
|
| 1333 |
+
"solar", "soldier",
|
| 1334 |
+
"sole", "solely",
|
| 1335 |
+
"solemn", "solicitor",
|
| 1336 |
+
"solidarity", "solitary",
|
| 1337 |
+
"solo", "soluble",
|
| 1338 |
+
"solution", "solve",
|
| 1339 |
+
"somebody", "somehow",
|
| 1340 |
+
"someone", "sometime",
|
| 1341 |
+
"somewhat", "song",
|
| 1342 |
+
"sophisticated", "sore",
|
| 1343 |
+
"sorrow", "sort",
|
| 1344 |
+
"soul", "sound",
|
| 1345 |
+
"soup", "sour",
|
| 1346 |
+
"source", "southeast",
|
| 1347 |
+
"southern", "southwest",
|
| 1348 |
+
"sovereign", "sovereignty",
|
| 1349 |
+
"sow", "spacecraft",
|
| 1350 |
+
"spacing", "span",
|
| 1351 |
+
"spare", "spark",
|
| 1352 |
+
"speak", "speaker",
|
| 1353 |
+
"spear", "special",
|
| 1354 |
+
"specialist", "specialize",
|
| 1355 |
+
"specialty", "species",
|
| 1356 |
+
"specific", "specifically",
|
| 1357 |
+
"specification", "specify",
|
| 1358 |
+
"specimen", "spectacle",
|
| 1359 |
+
"spectacular", "spectator",
|
| 1360 |
+
"spectrum", "speculate",
|
| 1361 |
+
"speculation", "speech",
|
| 1362 |
+
"spell", "spelling",
|
| 1363 |
+
"spend", "sphere",
|
| 1364 |
+
"spill", "spin",
|
| 1365 |
+
"spine", "spiral",
|
| 1366 |
+
"spirit", "spiritual",
|
| 1367 |
+
"spite", "splash",
|
| 1368 |
+
"split", "spokesman",
|
| 1369 |
+
"spokesperson", "spokeswoman",
|
| 1370 |
+
"sponsor", "sponsorship",
|
| 1371 |
+
"spontaneous", "spoon",
|
| 1372 |
+
"sport", "spot",
|
| 1373 |
+
"spouse", "spread",
|
| 1374 |
+
"spring", "sprint",
|
| 1375 |
+
"spur", "spy",
|
| 1376 |
+
"squad", "squadron",
|
| 1377 |
+
"square", "squeeze",
|
| 1378 |
+
"stability", "stabilize",
|
| 1379 |
+
"stable", "stadium",
|
| 1380 |
+
"staff", "stage",
|
| 1381 |
+
"stake", "stakeholder",
|
| 1382 |
+
"stall", "stance",
|
| 1383 |
+
"stand", "standard",
|
| 1384 |
+
"standing", "staple",
|
| 1385 |
+
"stare", "stark",
|
| 1386 |
+
"startup", "starvation",
|
| 1387 |
+
"starve", "statement",
|
| 1388 |
+
"statue", "status",
|
| 1389 |
+
"statute", "statutory",
|
| 1390 |
+
"steady", "steal",
|
| 1391 |
+
"steam", "steel",
|
| 1392 |
+
"steep", "steer",
|
| 1393 |
+
"stem", "stereotype",
|
| 1394 |
+
"sterling", "stern",
|
| 1395 |
+
"steward", "stick",
|
| 1396 |
+
"sticky", "stiff",
|
| 1397 |
+
"stimulate", "stimulus",
|
| 1398 |
+
"stir", "stitch",
|
| 1399 |
+
"stock", "stomach",
|
| 1400 |
+
"stoppage", "storage",
|
| 1401 |
+
"storm", "story",
|
| 1402 |
+
"strain", "strand",
|
| 1403 |
+
"strap", "strategic",
|
| 1404 |
+
"strategically", "strategist",
|
| 1405 |
+
"strategy", "straw",
|
| 1406 |
+
"stream", "street",
|
| 1407 |
+
"strength", "strengthen",
|
| 1408 |
+
"stress", "stretch",
|
| 1409 |
+
"strict", "strictly",
|
| 1410 |
+
"stride", "strike",
|
| 1411 |
+
"striker", "string",
|
| 1412 |
+
"strip", "stripe",
|
| 1413 |
+
"strive", "stroke",
|
| 1414 |
+
"stronghold", "strongly",
|
| 1415 |
+
"structural", "structure",
|
| 1416 |
+
"struggle", "stubborn",
|
| 1417 |
+
"studio", "study",
|
| 1418 |
+
"stuff", "stumble",
|
| 1419 |
+
"stun", "stunning",
|
| 1420 |
+
"stupid", "style",
|
| 1421 |
+
"subject", "subjective",
|
| 1422 |
+
"sublime", "submission",
|
| 1423 |
+
"submit", "subordinate",
|
| 1424 |
+
"subsequent", "subsequently",
|
| 1425 |
+
"subsidy", "substance",
|
| 1426 |
+
"substantial", "substantially",
|
| 1427 |
+
"substantive", "substitute",
|
| 1428 |
+
"substitution", "subtle",
|
| 1429 |
+
"subtlety", "subtract",
|
| 1430 |
+
"suburb", "suburban",
|
| 1431 |
+
"subversion", "subvert",
|
| 1432 |
+
"succeed", "success",
|
| 1433 |
+
"successful", "successfully",
|
| 1434 |
+
"succession", "successive",
|
| 1435 |
+
"successor", "suck",
|
| 1436 |
+
"sudden", "suddenly",
|
| 1437 |
+
"sue", "suffer",
|
| 1438 |
+
"suffering", "sufficient",
|
| 1439 |
+
"sufficiently", "sugar",
|
| 1440 |
+
"suicide", "suit",
|
| 1441 |
+
"suitable", "suite",
|
| 1442 |
+
"sulfur", "sum",
|
| 1443 |
+
"summarize", "summary",
|
| 1444 |
+
"summit", "sunlight",
|
| 1445 |
+
"sunny", "sunrise",
|
| 1446 |
+
"sunset", "sunshine",
|
| 1447 |
+
"superb", "superficial",
|
| 1448 |
+
"superintendent", "superior",
|
| 1449 |
+
"superiority", "supermarket",
|
| 1450 |
+
"supervise", "supervision",
|
| 1451 |
+
"supervisor", "supplement",
|
| 1452 |
+
"supplementary", "supplier",
|
| 1453 |
+
"supply", "support",
|
| 1454 |
+
"supporter", "supportive",
|
| 1455 |
+
"suppose", "supposedly",
|
| 1456 |
+
"suppress", "suppression",
|
| 1457 |
+
"supreme", "surcharge",
|
| 1458 |
+
"surface", "surge",
|
| 1459 |
+
"surgeon", "surgery",
|
| 1460 |
+
"surgical", "surname",
|
| 1461 |
+
"surpass", "surplus",
|
| 1462 |
+
"surprise", "surprised",
|
| 1463 |
+
"surprising", "surprisingly",
|
| 1464 |
+
"surrender", "surround",
|
| 1465 |
+
"surrounding", "surveillance",
|
| 1466 |
+
"survey", "survival",
|
| 1467 |
+
"survive", "survivor",
|
| 1468 |
+
"susceptible", "suspect",
|
| 1469 |
+
"suspend", "suspense",
|
| 1470 |
+
"suspension", "suspicion",
|
| 1471 |
+
"suspicious", "sustain",
|
| 1472 |
+
"sustainable", "sustained",
|
| 1473 |
+
"swap", "swear",
|
| 1474 |
+
"sweep", "sweet",
|
| 1475 |
+
"swell", "swift",
|
| 1476 |
+
"swim", "swimming",
|
| 1477 |
+
"swing", "switch",
|
| 1478 |
+
"sword", "symbol",
|
| 1479 |
+
"symbolic", "symmetry",
|
| 1480 |
+
"sympathetic", "sympathy",
|
| 1481 |
+
"symphony", "symptom",
|
| 1482 |
+
"syndrome", "synthesis",
|
| 1483 |
+
"synthetic", "system",
|
| 1484 |
+
"systematic", "tackle",
|
| 1485 |
+
"tactical", "tactics",
|
| 1486 |
+
"tag", "tail",
|
| 1487 |
+
"takeover", "tale",
|
| 1488 |
+
"talent", "talented",
|
| 1489 |
+
"tank", "tap",
|
| 1490 |
+
"tape", "target",
|
| 1491 |
+
"tariff", "task",
|
| 1492 |
+
"taste", "tax",
|
| 1493 |
+
"taxation", "taxpayer",
|
| 1494 |
+
"teaching", "tear",
|
| 1495 |
+
"tease", "technical",
|
| 1496 |
+
"technically", "technician",
|
| 1497 |
+
"technique", "technological",
|
| 1498 |
+
"technology", "teenage",
|
| 1499 |
+
"teenager", "telecommunications",
|
| 1500 |
+
"telegraph", "telephone",
|
| 1501 |
+
"telescope", "television",
|
| 1502 |
+
"temper", "temperature",
|
| 1503 |
+
"temple", "temporarily",
|
| 1504 |
+
"temporary", "tempt",
|
| 1505 |
+
"temptation", "tenant",
|
| 1506 |
+
"tendency", "tender",
|
| 1507 |
+
"tennis", "tension",
|
| 1508 |
+
"tent", "tenure",
|
| 1509 |
+
"terminal", "terminate",
|
| 1510 |
+
"termination", "term",
|
| 1511 |
+
"terrain", "terrible",
|
| 1512 |
+
"terribly", "terrific",
|
| 1513 |
+
"territorial", "territory",
|
| 1514 |
+
"terror", "terrorism",
|
| 1515 |
+
"terrorist", "testament",
|
| 1516 |
+
"testify", "testimony",
|
| 1517 |
+
"textbook", "textile",
|
| 1518 |
+
"texture", "thankful",
|
| 1519 |
+
"theater", "theatre",
|
| 1520 |
+
"theft", "theological",
|
| 1521 |
+
"theology", "theoretical",
|
| 1522 |
+
"theorist", "theory",
|
| 1523 |
+
"therapist", "therapy",
|
| 1524 |
+
"thereafter", "thereby",
|
| 1525 |
+
"thermal", "thesis",
|
| 1526 |
+
"thickness", "thief",
|
| 1527 |
+
"thigh", "thin",
|
| 1528 |
+
"thinking", "thirst",
|
| 1529 |
+
"thirsty", "thorn",
|
| 1530 |
+
"thorough", "thoroughly",
|
| 1531 |
+
"thoughtful", "thoughtless",
|
| 1532 |
+
"thriller", "thrive",
|
| 1533 |
+
"throat", "throne",
|
| 1534 |
+
"thrust", "thumb",
|
| 1535 |
+
"thunder", "tide",
|
| 1536 |
+
"timber", "timely",
|
| 1537 |
+
"timing", "tissue",
|
| 1538 |
+
"title", "toe",
|
| 1539 |
+
"tolerance", "tolerant",
|
| 1540 |
+
"tolerate", "toll",
|
| 1541 |
+
"tomato", "ton",
|
| 1542 |
+
"tone", "tongue",
|
| 1543 |
+
"tool", "tooth",
|
| 1544 |
+
"topic", "topical",
|
| 1545 |
+
"torch", "torture",
|
| 1546 |
+
"total", "totally",
|
| 1547 |
+
"touch", "tourism",
|
| 1548 |
+
"tourist", "tournament",
|
| 1549 |
+
"tow", "towel",
|
| 1550 |
+
"tower", "toxic",
|
| 1551 |
+
"trace", "track",
|
| 1552 |
+
"tractor", "trade",
|
| 1553 |
+
"trademark", "trader",
|
| 1554 |
+
"trading", "tradition",
|
| 1555 |
+
"traditional", "traditionally",
|
| 1556 |
+
"traffic", "tragedy",
|
| 1557 |
+
"tragic", "trail",
|
| 1558 |
+
"trainer", "training",
|
| 1559 |
+
"trait", "transaction",
|
| 1560 |
+
"transcript", "transfer",
|
| 1561 |
+
"transform", "transformation",
|
| 1562 |
+
"transit", "transition",
|
| 1563 |
+
"translate", "translation",
|
| 1564 |
+
"translator", "transmission",
|
| 1565 |
+
"transmit", "transparency",
|
| 1566 |
+
"transparent", "transplant",
|
| 1567 |
+
"transport", "transportation",
|
| 1568 |
+
"trap", "trash",
|
| 1569 |
+
"trauma", "traumatic",
|
| 1570 |
+
"traveler", "treasure",
|
| 1571 |
+
"treat", "treatment",
|
| 1572 |
+
"treaty", "tremendous",
|
| 1573 |
+
"trend", "trial",
|
| 1574 |
+
"triangle", "tribal",
|
| 1575 |
+
"tribe", "tribunal",
|
| 1576 |
+
"trigger", "trim",
|
| 1577 |
+
"triumph", "troop",
|
| 1578 |
+
"trophy", "tropical",
|
| 1579 |
+
"trouble", "troublesome",
|
| 1580 |
+
"trunk", "trust",
|
| 1581 |
+
"trustee", "truth",
|
| 1582 |
+
"tube", "tuition",
|
| 1583 |
+
"tumor", "tune",
|
| 1584 |
+
"tunnel", "turmoil",
|
| 1585 |
+
"turnover", "turtle",
|
| 1586 |
+
"tutor", "tutorial",
|
| 1587 |
+
"twist", "typical",
|
| 1588 |
+
"typically", "tyranny",
|
| 1589 |
+
"ugly", "ultimate",
|
| 1590 |
+
"ultimately", "ultimatum",
|
| 1591 |
+
"umbrella", "unable",
|
| 1592 |
+
"unacceptable", "unanimous",
|
| 1593 |
+
"unaware", "uncertainty",
|
| 1594 |
+
"uncomfortable", "unconscious",
|
| 1595 |
+
"unconstitutional", "undergo",
|
| 1596 |
+
"undergraduate", "underground",
|
| 1597 |
+
"underline", "underlying",
|
| 1598 |
+
"undermine", "underneath",
|
| 1599 |
+
"underscore", "undertake",
|
| 1600 |
+
"undertaking", "underwear",
|
| 1601 |
+
"undoubtedly", "unemployment",
|
| 1602 |
+
"unexpected", "unexpectedly",
|
| 1603 |
+
"unfair", "unfold",
|
| 1604 |
+
"unfortunate", "unfortunately",
|
| 1605 |
+
"unhappy", "unhealthy",
|
| 1606 |
+
"unified", "uniform",
|
| 1607 |
+
"unilateral", "unintended",
|
| 1608 |
+
"union", "unique",
|
| 1609 |
+
"unity", "universal",
|
| 1610 |
+
"universally", "universe",
|
| 1611 |
+
"unknown", "unlawful",
|
| 1612 |
+
"unlike", "unlikely",
|
| 1613 |
+
"unnecessary", "unpleasant",
|
| 1614 |
+
"unprecedented", "unrest",
|
| 1615 |
+
"unveil", "upcoming",
|
| 1616 |
+
"update", "upgrade",
|
| 1617 |
+
"uphold", "upset",
|
| 1618 |
+
"upturn", "uranium",
|
| 1619 |
+
"urban", "urge",
|
| 1620 |
+
"urgency", "urgent",
|
| 1621 |
+
"usage", "utilize",
|
| 1622 |
+
"utmost", "utter",
|
| 1623 |
+
"utterly", "vacancy",
|
| 1624 |
+
"vacation", "vaccination",
|
| 1625 |
+
"vaccine", "vacuum",
|
| 1626 |
+
"valid", "validate",
|
| 1627 |
+
"validity", "valley",
|
| 1628 |
+
"valuable", "valuation",
|
| 1629 |
+
"valve", "variable",
|
| 1630 |
+
"variation", "varied",
|
| 1631 |
+
"vary", "vast",
|
| 1632 |
+
"vector", "vegetable",
|
| 1633 |
+
"vegetation", "vehicle",
|
| 1634 |
+
"veil", "vein",
|
| 1635 |
+
"velocity", "vendor",
|
| 1636 |
+
"venture", "venue",
|
| 1637 |
+
"verbal", "verdict",
|
| 1638 |
+
"verify", "versatile",
|
| 1639 |
+
"verse", "version",
|
| 1640 |
+
"versus", "vertical",
|
| 1641 |
+
"vessel", "veteran",
|
| 1642 |
+
"veterinary", "viable",
|
| 1643 |
+
"vibrant", "vibration",
|
| 1644 |
+
"vice", "victim",
|
| 1645 |
+
"victorious", "victory",
|
| 1646 |
+
"video", "view",
|
| 1647 |
+
"viewer", "viewpoint",
|
| 1648 |
+
"vigorous", "village",
|
| 1649 |
+
"violate", "violation",
|
| 1650 |
+
"violence", "violent",
|
| 1651 |
+
"virgin", "virtual",
|
| 1652 |
+
"virtually", "virtue",
|
| 1653 |
+
"virus", "visa",
|
| 1654 |
+
"visible", "vision",
|
| 1655 |
+
"visual", "vital",
|
| 1656 |
+
"vitamin", "vivid",
|
| 1657 |
+
"vocabulary", "vocal",
|
| 1658 |
+
"vocational", "voice",
|
| 1659 |
+
"volatile", "volcano",
|
| 1660 |
+
"volume", "voluntary",
|
| 1661 |
+
"volunteer", "vote",
|
| 1662 |
+
"voter", "voting",
|
| 1663 |
+
"vulnerability", "vulnerable",
|
| 1664 |
+
"wage", "wagon",
|
| 1665 |
+
"waist", "wallet",
|
| 1666 |
+
"wander", "ward",
|
| 1667 |
+
"warehouse", "warfare",
|
| 1668 |
+
"warmth", "warn",
|
| 1669 |
+
"warning", "warrant",
|
| 1670 |
+
"warranty", "warrior",
|
| 1671 |
+
"wary", "waterfall",
|
| 1672 |
+
"waterproof", "watershed",
|
| 1673 |
+
"wave", "wavelength",
|
| 1674 |
+
"wax", "weakness",
|
| 1675 |
+
"wealth", "wealthy",
|
| 1676 |
+
"weapon", "wear",
|
| 1677 |
+
"weary", "weather",
|
| 1678 |
+
"weave", "web",
|
| 1679 |
+
"website", "wedding",
|
| 1680 |
+
"weed", "weekday",
|
| 1681 |
+
"weekend", "weekly",
|
| 1682 |
+
"weigh", "weight",
|
| 1683 |
+
"weird", "welcome",
|
| 1684 |
+
"welfare", "wellness",
|
| 1685 |
+
"whatsoever", "wheel",
|
| 1686 |
+
"whenever", "whereas",
|
| 1687 |
+
"whereby", "wherein",
|
| 1688 |
+
"whichever", "whisper",
|
| 1689 |
+
"white", "whoever",
|
| 1690 |
+
"wholesale", "wholly",
|
| 1691 |
+
"widespread", "widow",
|
| 1692 |
+
"width", "willing",
|
| 1693 |
+
"willingness", "wisdom",
|
| 1694 |
+
"withdraw", "withdrawal",
|
| 1695 |
+
"wither", "withhold",
|
| 1696 |
+
"within", "without",
|
| 1697 |
+
"witness", "wolf",
|
| 1698 |
+
"wonder", "wooden",
|
| 1699 |
+
"wool", "workforce",
|
| 1700 |
+
"workout", "workplace",
|
| 1701 |
+
"workshop", "worship",
|
| 1702 |
+
"worst", "worthwhile",
|
| 1703 |
+
"worthy", "wound",
|
| 1704 |
+
"wrap", "wrist",
|
| 1705 |
+
"writer", "writing",
|
| 1706 |
+
"wrongly", "yacht",
|
| 1707 |
+
"yell", "young",
|
| 1708 |
+
"youngster", "zone",
|
| 1709 |
+
]
|
| 1710 |
+
|
| 1711 |
+
# Exclude byte-level chars (they already have IDs 51-306)
|
| 1712 |
+
byte_chars = {byte2char[b] for b in range(256)}
|
| 1713 |
+
|
| 1714 |
+
# Deduplicate while preserving order
|
| 1715 |
+
seen = set()
|
| 1716 |
+
deduped = []
|
| 1717 |
+
for w in common_words:
|
| 1718 |
+
if w not in seen and w not in byte_chars:
|
| 1719 |
+
seen.add(w)
|
| 1720 |
+
deduped.append(w)
|
| 1721 |
+
|
| 1722 |
+
# Truncate to fit total vocab <= 4096 (IDs 307-4095 = 3789 slots)
|
| 1723 |
+
max_words = 4096 - 307
|
| 1724 |
+
if len(deduped) > max_words:
|
| 1725 |
+
deduped = deduped[:max_words]
|
| 1726 |
+
common_words = deduped
|
| 1727 |
+
|
| 1728 |
+
next_id = 307
|
| 1729 |
+
word_tokens = []
|
| 1730 |
+
for w in common_words:
|
| 1731 |
+
word_tokens.append((w, next_id))
|
| 1732 |
+
next_id += 1
|
| 1733 |
+
|
| 1734 |
+
# Build vocab dict
|
| 1735 |
+
vocab = {}
|
| 1736 |
+
for name, idx in special_tokens:
|
| 1737 |
+
if name in vocab:
|
| 1738 |
+
print(f"DUPLICATE: {name!r} @ {vocab[name]} and {idx}")
|
| 1739 |
+
vocab[name] = idx
|
| 1740 |
+
for char, idx in byte_tokens:
|
| 1741 |
+
if char in vocab:
|
| 1742 |
+
print(f"DUPLICATE BYTE: {char!r} (U+{ord(char):04X}) @ {vocab[char]} and {idx}")
|
| 1743 |
+
vocab[char] = idx
|
| 1744 |
+
for name, idx in word_tokens:
|
| 1745 |
+
if name in vocab:
|
| 1746 |
+
print(f"DUPLICATE WORD: {name!r} @ {vocab[name]} and {idx}")
|
| 1747 |
+
vocab[name] = idx
|
| 1748 |
+
|
| 1749 |
+
# Build added_tokens
|
| 1750 |
+
added_tokens = []
|
| 1751 |
+
for name, idx in special_tokens:
|
| 1752 |
+
added_tokens.append({
|
| 1753 |
+
"id": idx,
|
| 1754 |
+
"content": name,
|
| 1755 |
+
"single_word": False,
|
| 1756 |
+
"lstrip": False,
|
| 1757 |
+
"rstrip": False,
|
| 1758 |
+
"normalized": False,
|
| 1759 |
+
"special": True,
|
| 1760 |
+
})
|
| 1761 |
+
|
| 1762 |
+
# Build tokenizer.json
|
| 1763 |
+
tokenizer_json = {
|
| 1764 |
+
"version": "1.0",
|
| 1765 |
+
"truncation": None,
|
| 1766 |
+
"padding": None,
|
| 1767 |
+
"added_tokens": added_tokens,
|
| 1768 |
+
"normalizer": None,
|
| 1769 |
+
"pre_tokenizer": {
|
| 1770 |
+
"type": "ByteLevel",
|
| 1771 |
+
"add_prefix_space": False,
|
| 1772 |
+
"trim_offsets": True,
|
| 1773 |
+
},
|
| 1774 |
+
"post_processor": None,
|
| 1775 |
+
"decoder": {
|
| 1776 |
+
"type": "ByteLevel",
|
| 1777 |
+
"add_prefix_space": False,
|
| 1778 |
+
"trim_offsets": True,
|
| 1779 |
+
},
|
| 1780 |
+
"model": {
|
| 1781 |
+
"type": "BPE",
|
| 1782 |
+
"dropout": None,
|
| 1783 |
+
"unk_token": "<unk>",
|
| 1784 |
+
"byte_fallback": True,
|
| 1785 |
+
"vocab": vocab,
|
| 1786 |
+
"merges": [],
|
| 1787 |
+
},
|
| 1788 |
+
}
|
| 1789 |
+
|
| 1790 |
+
if __name__ == "__main__":
|
| 1791 |
+
with open("tokenizer/tokenizer.json", "w", encoding="utf-8") as f:
|
| 1792 |
+
json.dump(tokenizer_json, f, ensure_ascii=False, separators=(",", ":"))
|
| 1793 |
+
|
| 1794 |
+
with open("tokenizer/special_tokens_map.json", "w", encoding="utf-8") as f:
|
| 1795 |
+
json.dump({
|
| 1796 |
+
"bos_token": "<s>",
|
| 1797 |
+
"eos_token": "</s>",
|
| 1798 |
+
"pad_token": "<pad>",
|
| 1799 |
+
"unk_token": "<unk>",
|
| 1800 |
+
}, f, ensure_ascii=False, indent=2)
|
| 1801 |
+
|
| 1802 |
+
import os
|
| 1803 |
+
size = os.path.getsize("tokenizer/tokenizer.json")
|
| 1804 |
+
print(f"tokenizer.json: {size:,} bytes")
|
| 1805 |
+
print(f"Vocab entries: {len(vocab)}")
|
| 1806 |
+
print(f"Added tokens: {len(added_tokens)}")
|
| 1807 |
+
print(f"Merges: 0")
|
| 1808 |
+
print(f"Byte fallback: True")
|
| 1809 |
+
assert len(vocab) <= 4096, f"Vocab size overflow: {len(vocab)}"
|
| 1810 |
+
print(f"Free slots: {4096 - len(vocab)}")
|
| 1811 |
+
|
| 1812 |
+
from transformers import PreTrainedTokenizerFast
|
| 1813 |
+
from tokenizers import Tokenizer as Tk
|
| 1814 |
+
tok_obj = Tk.from_file("tokenizer/tokenizer.json")
|
| 1815 |
+
tok = PreTrainedTokenizerFast(tokenizer_object=tok_obj)
|
| 1816 |
+
tok.add_special_tokens({"pad_token": "<pad>", "bos_token": "<s>", "eos_token": "</s>", "unk_token": "<unk>"})
|
| 1817 |
+
test = "Hello, how are you?"
|
| 1818 |
+
enc = tok.encode(test)
|
| 1819 |
+
dec = tok.decode(enc)
|
| 1820 |
+
print(f"OK: {enc} -> {dec!r}")
|
| 1821 |
+
|
| 1822 |
+
test2 = "def f(): return 42"
|
| 1823 |
+
enc2 = tok.encode(test2)
|
| 1824 |
+
dec2 = tok.decode(enc2)
|
| 1825 |
+
print(f"OK: {enc2} -> {dec2!r}")
|
| 1826 |
+
|
| 1827 |
+
enc3 = tok.encode("<|system|>Hi<|user|>there")
|
| 1828 |
+
print(f"Special: {enc3} -> {tok.decode(enc3)!r}")
|
| 1829 |
+
|
| 1830 |
+
test4 = "café résumé"
|
| 1831 |
+
enc4 = tok.encode(test4)
|
| 1832 |
+
dec4 = tok.decode(enc4)
|
| 1833 |
+
print(f"Unicode: {enc4} -> {dec4!r}")
|
infer_gguf.py
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Inference with GGUF INT4 model or QLoRA checkpoint.
|
| 3 |
+
|
| 4 |
+
Usage:
|
| 5 |
+
python3 scripts/infer_gguf.py --gguf outputs/tiny-sft/tiny.gguf
|
| 6 |
+
python3 scripts/infer_gguf.py --checkpoint model.pt
|
| 7 |
+
"""
|
| 8 |
+
|
| 9 |
+
import os, sys, argparse
|
| 10 |
+
import gguf
|
| 11 |
+
import torch
|
| 12 |
+
import torch.nn.functional as F
|
| 13 |
+
|
| 14 |
+
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
|
| 15 |
+
from scripts.model_tiny import TinyModel, apply_qlora
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
def quantize_to_q4(tensor):
|
| 19 |
+
t = tensor.float()
|
| 20 |
+
max_val = t.abs().max()
|
| 21 |
+
if max_val < 1e-8:
|
| 22 |
+
return t
|
| 23 |
+
scale = max_val / 7.0
|
| 24 |
+
q = (t / scale).round().clamp(-7, 7).char()
|
| 25 |
+
dq = q.float() * scale
|
| 26 |
+
return dq
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
def load_gguf_model(gguf_path):
|
| 30 |
+
print(f" Loading GGUF: {gguf_path}")
|
| 31 |
+
reader = gguf.GGUFReader(gguf_path)
|
| 32 |
+
|
| 33 |
+
model = TinyModel(
|
| 34 |
+
vocab_size=1757, hidden=128, intermediate=640,
|
| 35 |
+
num_layers=3, num_heads=8, num_kv_heads=4,
|
| 36 |
+
max_seq_len=2048, tie_weights=True,
|
| 37 |
+
)
|
| 38 |
+
model.eval()
|
| 39 |
+
|
| 40 |
+
state = {}
|
| 41 |
+
for tensor in reader.tensors:
|
| 42 |
+
name = tensor.name
|
| 43 |
+
data = torch.from_numpy(tensor.data.copy())
|
| 44 |
+
|
| 45 |
+
if name == "token_embd.weight":
|
| 46 |
+
state["token_embed.weight"] = data
|
| 47 |
+
elif name == "output_norm.weight":
|
| 48 |
+
state["ln_f.weight"] = data
|
| 49 |
+
elif name == "output.weight":
|
| 50 |
+
state["lm_head.weight"] = data
|
| 51 |
+
elif name.startswith("blk."):
|
| 52 |
+
parts = name.split(".")
|
| 53 |
+
blk = int(parts[1])
|
| 54 |
+
sub = parts[2]
|
| 55 |
+
if sub == "attn_norm":
|
| 56 |
+
state[f"blocks.{blk}.ln1.{parts[3]}"] = data
|
| 57 |
+
elif sub == "ffn_norm":
|
| 58 |
+
state[f"blocks.{blk}.ln2.{parts[3]}"] = data
|
| 59 |
+
elif sub == "attn_q":
|
| 60 |
+
state[f"blocks.{blk}.attn.q_proj.weight"] = data
|
| 61 |
+
elif sub == "attn_k":
|
| 62 |
+
state[f"blocks.{blk}.attn.k_proj.weight"] = data
|
| 63 |
+
elif sub == "attn_v":
|
| 64 |
+
state[f"blocks.{blk}.attn.v_proj.weight"] = data
|
| 65 |
+
elif sub == "attn_output":
|
| 66 |
+
state[f"blocks.{blk}.attn.o_proj.weight"] = data
|
| 67 |
+
elif sub == "ffn_gate":
|
| 68 |
+
state[f"blocks.{blk}.mlp.gate.weight"] = data
|
| 69 |
+
elif sub == "ffn_up":
|
| 70 |
+
state[f"blocks.{blk}.mlp.up.weight"] = data
|
| 71 |
+
elif sub == "ffn_down":
|
| 72 |
+
state[f"blocks.{blk}.mlp.down.weight"] = data
|
| 73 |
+
|
| 74 |
+
model.load_state_dict(state, strict=False)
|
| 75 |
+
print(f" Loaded: {len(state)} tensors")
|
| 76 |
+
|
| 77 |
+
for name, param in model.named_parameters():
|
| 78 |
+
if "weight" in name and "norm" not in name and "embed" not in name:
|
| 79 |
+
param.data.copy_(quantize_to_q4(param.data))
|
| 80 |
+
|
| 81 |
+
return model
|
| 82 |
+
|
| 83 |
+
|
| 84 |
+
def load_checkpoint_model(ckpt_path):
|
| 85 |
+
print(f" Loading checkpoint: {ckpt_path}")
|
| 86 |
+
state = torch.load(ckpt_path, map_location="cpu", weights_only=True)
|
| 87 |
+
has_qlora = any("qweight" in k for k in state)
|
| 88 |
+
print(f" Detected: {'QLoRA' if has_qlora else 'full'} checkpoint")
|
| 89 |
+
|
| 90 |
+
model = TinyModel(
|
| 91 |
+
vocab_size=1757, hidden=128, intermediate=640,
|
| 92 |
+
num_layers=3, num_heads=8, num_kv_heads=4,
|
| 93 |
+
max_seq_len=2048, tie_weights=True,
|
| 94 |
+
)
|
| 95 |
+
|
| 96 |
+
if has_qlora:
|
| 97 |
+
model = apply_qlora(model,
|
| 98 |
+
target_modules=["q_proj","k_proj","v_proj","o_proj","gate","up","down"],
|
| 99 |
+
r=8, alpha=16, dropout=0.0, freeze_embeds=True)
|
| 100 |
+
|
| 101 |
+
missing, unexpected = model.load_state_dict(state, strict=False)
|
| 102 |
+
if missing:
|
| 103 |
+
print(f" Missing keys: {missing}")
|
| 104 |
+
if unexpected:
|
| 105 |
+
print(f" Unexpected keys: {unexpected}")
|
| 106 |
+
model.eval()
|
| 107 |
+
return model
|
| 108 |
+
|
| 109 |
+
|
| 110 |
+
def load_tokenizer():
|
| 111 |
+
from tokenizers import Tokenizer as Tk
|
| 112 |
+
tok = Tk.from_file(os.path.join(os.path.dirname(__file__), "..", "tokenizer", "tokenizer.json"))
|
| 113 |
+
return tok
|
| 114 |
+
|
| 115 |
+
|
| 116 |
+
def _build_chat(system, user, tokenizer):
|
| 117 |
+
parts = [f"<|system|>\n{system}", f"<|user|>\n{user}", "<|assistant|>\n"]
|
| 118 |
+
text = "\n".join(parts)
|
| 119 |
+
return tokenizer.encode(text).ids
|
| 120 |
+
|
| 121 |
+
|
| 122 |
+
def main():
|
| 123 |
+
parser = argparse.ArgumentParser()
|
| 124 |
+
parser.add_argument("--gguf", default=None)
|
| 125 |
+
parser.add_argument("--checkpoint", default=None)
|
| 126 |
+
parser.add_argument("--prompt", default="What is 2+2?")
|
| 127 |
+
parser.add_argument("--system", default="You are a helpful AI assistant.")
|
| 128 |
+
parser.add_argument("--max-tokens", type=int, default=128)
|
| 129 |
+
parser.add_argument("--temperature", type=float, default=0.7)
|
| 130 |
+
parser.add_argument("--top-p", type=float, default=0.9)
|
| 131 |
+
args = parser.parse_args()
|
| 132 |
+
|
| 133 |
+
if args.gguf and args.checkpoint:
|
| 134 |
+
print("Specify only one of --gguf or --checkpoint")
|
| 135 |
+
sys.exit(1)
|
| 136 |
+
|
| 137 |
+
model = None
|
| 138 |
+
if args.gguf:
|
| 139 |
+
if not os.path.exists(args.gguf):
|
| 140 |
+
print(f"GGUF not found: {args.gguf}")
|
| 141 |
+
sys.exit(1)
|
| 142 |
+
model = load_gguf_model(args.gguf)
|
| 143 |
+
elif args.checkpoint:
|
| 144 |
+
if not os.path.exists(args.checkpoint):
|
| 145 |
+
print(f"Checkpoint not found: {args.checkpoint}")
|
| 146 |
+
sys.exit(1)
|
| 147 |
+
model = load_checkpoint_model(args.checkpoint)
|
| 148 |
+
else:
|
| 149 |
+
print("Specify --gguf or --checkpoint")
|
| 150 |
+
sys.exit(1)
|
| 151 |
+
|
| 152 |
+
device = "cuda" if torch.cuda.is_available() else "cpu"
|
| 153 |
+
model.to(device)
|
| 154 |
+
print(f" Device: {device}")
|
| 155 |
+
|
| 156 |
+
tok = load_tokenizer()
|
| 157 |
+
input_ids = _build_chat(args.system, args.prompt, tok)
|
| 158 |
+
input_ids = torch.tensor([input_ids], device=device)
|
| 159 |
+
|
| 160 |
+
print("\n" + tok.decode(input_ids[0].tolist()), end="", flush=True)
|
| 161 |
+
|
| 162 |
+
def stream(id_):
|
| 163 |
+
t = tok.decode([id_])
|
| 164 |
+
print(t, end="", flush=True)
|
| 165 |
+
|
| 166 |
+
out = model.generate(
|
| 167 |
+
input_ids,
|
| 168 |
+
max_new_tokens=args.max_tokens,
|
| 169 |
+
temperature=args.temperature,
|
| 170 |
+
top_p=args.top_p,
|
| 171 |
+
stream_callback=stream,
|
| 172 |
+
)
|
| 173 |
+
print()
|
| 174 |
+
|
| 175 |
+
|
| 176 |
+
if __name__ == "__main__":
|
| 177 |
+
main()
|
model_tiny.py
CHANGED
|
@@ -4,23 +4,31 @@ import torch.nn as nn
|
|
| 4 |
import torch.nn.functional as F
|
| 5 |
|
| 6 |
|
| 7 |
-
|
| 8 |
-
n = 2 ** math.ceil(math.log2(num_heads))
|
| 9 |
-
m = torch.tensor([2 ** (-(i + 1)) for i in range(n)])
|
| 10 |
-
m = m[:num_heads]
|
| 11 |
-
return m
|
| 12 |
|
| 13 |
-
|
| 14 |
-
def
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
def __init__(self, hidden: int, num_heads: int, num_kv_heads: int):
|
| 25 |
super().__init__()
|
| 26 |
self.hidden = hidden
|
|
@@ -33,16 +41,7 @@ class ALiBiAttention(nn.Module):
|
|
| 33 |
self.k_proj = nn.Linear(hidden, num_kv_heads * self.head_dim, bias=False)
|
| 34 |
self.v_proj = nn.Linear(hidden, num_kv_heads * self.head_dim, bias=False)
|
| 35 |
self.o_proj = nn.Linear(hidden, hidden, bias=False)
|
| 36 |
-
self.
|
| 37 |
-
self._alibi_seq_len = 0
|
| 38 |
-
|
| 39 |
-
def _get_alibi(self, seq_len: int, device: torch.device, dtype: torch.dtype) -> torch.Tensor:
|
| 40 |
-
if self._alibi_bias is None or seq_len > self._alibi_seq_len:
|
| 41 |
-
bias = build_alibi_bias(self.num_heads, seq_len, device, dtype)
|
| 42 |
-
causal = torch.triu(torch.full((seq_len, seq_len), float('-inf'), device=device, dtype=dtype), diagonal=1)
|
| 43 |
-
self._alibi_bias = bias + causal
|
| 44 |
-
self._alibi_seq_len = seq_len
|
| 45 |
-
return self._alibi_bias[:, :, :seq_len, :seq_len]
|
| 46 |
|
| 47 |
def forward(self, x):
|
| 48 |
B, T, _ = x.shape
|
|
@@ -55,13 +54,41 @@ class ALiBiAttention(nn.Module):
|
|
| 55 |
v = v.repeat_interleave(self.num_groups, dim=1)
|
| 56 |
|
| 57 |
scores = (q @ k.transpose(-2, -1)) / math.sqrt(self.head_dim)
|
| 58 |
-
scores = scores + self.
|
| 59 |
|
| 60 |
attn = F.softmax(scores, dim=-1, dtype=torch.float32).to(x.dtype)
|
| 61 |
out = (attn @ v).transpose(1, 2).contiguous().view(B, T, self.hidden)
|
| 62 |
return self.o_proj(out)
|
| 63 |
|
| 64 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
class RMSNorm(nn.Module):
|
| 66 |
def __init__(self, dim: int, eps: float = 1e-6):
|
| 67 |
super().__init__()
|
|
@@ -73,41 +100,36 @@ class RMSNorm(nn.Module):
|
|
| 73 |
return (x.float() * norm).type_as(x) * self.weight
|
| 74 |
|
| 75 |
|
| 76 |
-
|
| 77 |
-
def __init__(self, hidden: int, intermediate: int):
|
| 78 |
-
super().__init__()
|
| 79 |
-
self.gate = nn.Linear(hidden, intermediate, bias=False)
|
| 80 |
-
self.up = nn.Linear(hidden, intermediate, bias=False)
|
| 81 |
-
self.down = nn.Linear(intermediate, hidden, bias=False)
|
| 82 |
-
|
| 83 |
-
def forward(self, x):
|
| 84 |
-
return self.down(F.silu(self.gate(x)) * self.up(x))
|
| 85 |
-
|
| 86 |
|
| 87 |
class TransformerBlock(nn.Module):
|
| 88 |
-
def __init__(self, hidden: int,
|
| 89 |
super().__init__()
|
| 90 |
self.ln1 = RMSNorm(hidden)
|
| 91 |
-
self.attn =
|
|
|
|
| 92 |
self.ln2 = RMSNorm(hidden)
|
| 93 |
-
self.mlp =
|
|
|
|
| 94 |
|
| 95 |
def forward(self, x):
|
| 96 |
-
x = x
|
| 97 |
-
x = x
|
| 98 |
return x
|
| 99 |
|
| 100 |
|
|
|
|
|
|
|
| 101 |
class TinyModel(nn.Module):
|
| 102 |
-
def __init__(self, vocab_size=
|
| 103 |
-
num_layers=
|
| 104 |
tie_weights=True):
|
| 105 |
super().__init__()
|
| 106 |
self.hidden = hidden
|
| 107 |
self.max_seq_len = max_seq_len
|
| 108 |
self.token_embed = nn.Embedding(vocab_size, hidden)
|
| 109 |
self.blocks = nn.ModuleList([
|
| 110 |
-
TransformerBlock(hidden,
|
| 111 |
for _ in range(num_layers)
|
| 112 |
])
|
| 113 |
self.ln_f = RMSNorm(hidden)
|
|
@@ -115,17 +137,18 @@ class TinyModel(nn.Module):
|
|
| 115 |
if tie_weights:
|
| 116 |
self.lm_head.weight = self.token_embed.weight
|
| 117 |
|
| 118 |
-
def reset_weights(self
|
| 119 |
for m in self.modules():
|
| 120 |
-
if isinstance(m, nn.Linear):
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
elif isinstance(m, nn.Embedding):
|
| 125 |
-
nn.init.normal_(m.weight, mean=0.0, std=std)
|
| 126 |
-
elif isinstance(m, nn.LayerNorm):
|
| 127 |
-
nn.init.ones_(m.weight)
|
| 128 |
nn.init.zeros_(m.bias)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 129 |
|
| 130 |
def forward(self, input_ids, labels=None):
|
| 131 |
x = self.token_embed(input_ids)
|
|
@@ -145,7 +168,7 @@ class TinyModel(nn.Module):
|
|
| 145 |
)
|
| 146 |
return logits, loss
|
| 147 |
|
| 148 |
-
def generate(self, input_ids, max_new_tokens=128, temperature=0.7, top_p=0.9):
|
| 149 |
self.eval()
|
| 150 |
for _ in range(max_new_tokens):
|
| 151 |
seq_len = input_ids.size(1)
|
|
@@ -167,65 +190,66 @@ class TinyModel(nn.Module):
|
|
| 167 |
next_token = torch.multinomial(probs, num_samples=1)
|
| 168 |
input_ids = torch.cat([input_ids, next_token], dim=1)
|
| 169 |
|
|
|
|
|
|
|
|
|
|
| 170 |
if next_token.item() == 2:
|
| 171 |
break
|
| 172 |
return input_ids
|
| 173 |
|
| 174 |
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
print(f"
|
| 214 |
return model
|
| 215 |
|
| 216 |
|
|
|
|
|
|
|
| 217 |
def count_params(model):
|
| 218 |
return sum(p.numel() for p in model.parameters())
|
| 219 |
|
| 220 |
|
| 221 |
def create_model():
|
| 222 |
-
model =
|
| 223 |
-
vocab_size=1757, hidden=128, intermediate=640,
|
| 224 |
-
num_layers=3, num_heads=8, num_kv_heads=4,
|
| 225 |
-
max_seq_len=2048, tie_weights=True,
|
| 226 |
-
)
|
| 227 |
n = count_params(model)
|
| 228 |
-
print(f"TinyModel: {n:,} params ({n/1e6:.2f}M)")
|
| 229 |
return model
|
| 230 |
|
| 231 |
|
|
@@ -236,8 +260,3 @@ if __name__ == "__main__":
|
|
| 236 |
print(f"Forward OK: logits {logits.shape}, loss {loss.item():.4f}")
|
| 237 |
gen = m.generate(x, max_new_tokens=10)
|
| 238 |
print(f"Generate OK: {gen.shape}")
|
| 239 |
-
m2 = create_model()
|
| 240 |
-
apply_lora(m2)
|
| 241 |
-
x2 = torch.randint(0, 100, (1, 16))
|
| 242 |
-
logits2, _ = m2(x2)
|
| 243 |
-
print(f"LoRA forward OK: {logits2.shape}")
|
|
|
|
| 4 |
import torch.nn.functional as F
|
| 5 |
|
| 6 |
|
| 7 |
+
# ─── RPW: Relative Positional Warp (learned Fourier additive bias) ──────────
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
|
| 9 |
+
class RPW(nn.Module):
|
| 10 |
+
def __init__(self, num_heads: int, num_freqs: int = 16, max_seq_len: int = 2048):
|
| 11 |
+
super().__init__()
|
| 12 |
+
self.num_heads = num_heads
|
| 13 |
+
self.num_freqs = num_freqs
|
| 14 |
+
freqs = 1.0 / (10000.0 ** (torch.arange(num_freqs, dtype=torch.float32) / num_freqs))
|
| 15 |
+
self.register_buffer("_freqs", freqs)
|
| 16 |
+
self.W_phi = nn.Parameter(torch.zeros(num_freqs * 2, num_heads))
|
| 17 |
+
nn.init.normal_(self.W_phi, std=0.02)
|
| 18 |
+
def _make_bias(self, seq_len: int, device: torch.device, dtype: torch.dtype) -> torch.Tensor:
|
| 19 |
+
pos = torch.arange(seq_len, device=device, dtype=torch.float32)
|
| 20 |
+
delta = pos.view(1, seq_len) - pos.view(seq_len, 1)
|
| 21 |
+
angles = delta.unsqueeze(-1) * self._freqs.to(device=device)
|
| 22 |
+
phi = torch.cat([angles.sin(), angles.cos()], dim=-1)
|
| 23 |
+
bias = phi @ self.W_phi
|
| 24 |
+
bias = bias.permute(2, 0, 1).unsqueeze(0)
|
| 25 |
+
causal = torch.triu(torch.full((seq_len, seq_len), float('-inf'), device=device, dtype=torch.float32), diagonal=1)
|
| 26 |
+
return (bias + causal.unsqueeze(0).unsqueeze(0)).to(dtype=dtype)
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
# ─── GQA with RPW ──────────────────────────────────────────────────────────
|
| 30 |
+
|
| 31 |
+
class GQAAttention(nn.Module):
|
| 32 |
def __init__(self, hidden: int, num_heads: int, num_kv_heads: int):
|
| 33 |
super().__init__()
|
| 34 |
self.hidden = hidden
|
|
|
|
| 41 |
self.k_proj = nn.Linear(hidden, num_kv_heads * self.head_dim, bias=False)
|
| 42 |
self.v_proj = nn.Linear(hidden, num_kv_heads * self.head_dim, bias=False)
|
| 43 |
self.o_proj = nn.Linear(hidden, hidden, bias=False)
|
| 44 |
+
self.rpw = RPW(num_heads, num_freqs=16)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
|
| 46 |
def forward(self, x):
|
| 47 |
B, T, _ = x.shape
|
|
|
|
| 54 |
v = v.repeat_interleave(self.num_groups, dim=1)
|
| 55 |
|
| 56 |
scores = (q @ k.transpose(-2, -1)) / math.sqrt(self.head_dim)
|
| 57 |
+
scores = scores + self.rpw._make_bias(T, x.device, scores.dtype)
|
| 58 |
|
| 59 |
attn = F.softmax(scores, dim=-1, dtype=torch.float32).to(x.dtype)
|
| 60 |
out = (attn @ v).transpose(1, 2).contiguous().view(B, T, self.hidden)
|
| 61 |
return self.o_proj(out)
|
| 62 |
|
| 63 |
|
| 64 |
+
# ─── GPP: Gated Principal Projection ──────────────────────────────────────
|
| 65 |
+
|
| 66 |
+
class GPP(nn.Module):
|
| 67 |
+
def __init__(self, hidden: int, code_dim: int):
|
| 68 |
+
super().__init__()
|
| 69 |
+
self.down = nn.Linear(hidden, code_dim, bias=False)
|
| 70 |
+
self.up = nn.Linear(code_dim, hidden, bias=False)
|
| 71 |
+
|
| 72 |
+
def forward(self, x):
|
| 73 |
+
return self.up(F.silu(self.down(x)))
|
| 74 |
+
|
| 75 |
+
|
| 76 |
+
# ─── VCR: Variance-Controlled Residual ─────────────────────────────────────
|
| 77 |
+
|
| 78 |
+
class VCR(nn.Module):
|
| 79 |
+
def __init__(self):
|
| 80 |
+
super().__init__()
|
| 81 |
+
self.alpha = nn.Parameter(torch.tensor(1.0))
|
| 82 |
+
self.beta = nn.Parameter(torch.tensor(2.0))
|
| 83 |
+
|
| 84 |
+
def forward(self, x, delta):
|
| 85 |
+
v_exp = delta.float().norm() / x.float().norm().clamp(min=1e-8)
|
| 86 |
+
scale = torch.sigmoid(self.alpha * v_exp + self.beta)
|
| 87 |
+
return x + scale * delta
|
| 88 |
+
|
| 89 |
+
|
| 90 |
+
# ─── RMSNorm ───────────────────────────────────────────────────────────────
|
| 91 |
+
|
| 92 |
class RMSNorm(nn.Module):
|
| 93 |
def __init__(self, dim: int, eps: float = 1e-6):
|
| 94 |
super().__init__()
|
|
|
|
| 100 |
return (x.float() * norm).type_as(x) * self.weight
|
| 101 |
|
| 102 |
|
| 103 |
+
# ─── Transformer Block ────────────────────────────────────────────────────
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 104 |
|
| 105 |
class TransformerBlock(nn.Module):
|
| 106 |
+
def __init__(self, hidden: int, code_dim: int, num_heads: int, num_kv_heads: int):
|
| 107 |
super().__init__()
|
| 108 |
self.ln1 = RMSNorm(hidden)
|
| 109 |
+
self.attn = GQAAttention(hidden, num_heads, num_kv_heads)
|
| 110 |
+
self.vcr_attn = VCR()
|
| 111 |
self.ln2 = RMSNorm(hidden)
|
| 112 |
+
self.mlp = GPP(hidden, code_dim)
|
| 113 |
+
self.vcr_mlp = VCR()
|
| 114 |
|
| 115 |
def forward(self, x):
|
| 116 |
+
x = self.vcr_attn(x, self.attn(self.ln1(x)))
|
| 117 |
+
x = self.vcr_mlp(x, self.mlp(self.ln2(x)))
|
| 118 |
return x
|
| 119 |
|
| 120 |
|
| 121 |
+
# ─── TinyModel V3 ──────────────────────────────────────────────────────────
|
| 122 |
+
|
| 123 |
class TinyModel(nn.Module):
|
| 124 |
+
def __init__(self, vocab_size=4096, hidden=128, code_dim=96,
|
| 125 |
+
num_layers=6, num_heads=8, num_kv_heads=4, max_seq_len=2048,
|
| 126 |
tie_weights=True):
|
| 127 |
super().__init__()
|
| 128 |
self.hidden = hidden
|
| 129 |
self.max_seq_len = max_seq_len
|
| 130 |
self.token_embed = nn.Embedding(vocab_size, hidden)
|
| 131 |
self.blocks = nn.ModuleList([
|
| 132 |
+
TransformerBlock(hidden, code_dim, num_heads, num_kv_heads)
|
| 133 |
for _ in range(num_layers)
|
| 134 |
])
|
| 135 |
self.ln_f = RMSNorm(hidden)
|
|
|
|
| 137 |
if tie_weights:
|
| 138 |
self.lm_head.weight = self.token_embed.weight
|
| 139 |
|
| 140 |
+
def reset_weights(self):
|
| 141 |
for m in self.modules():
|
| 142 |
+
if isinstance(m, (nn.Linear, nn.Embedding)) and m.weight.dim() >= 2:
|
| 143 |
+
fan_in = m.weight.shape[1] if m.weight.dim() >= 2 else 1
|
| 144 |
+
nn.init.normal_(m.weight, std=1.0 / math.sqrt(fan_in))
|
| 145 |
+
elif isinstance(m, nn.Linear) and m.bias is not None:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 146 |
nn.init.zeros_(m.bias)
|
| 147 |
+
elif isinstance(m, RMSNorm):
|
| 148 |
+
nn.init.ones_(m.weight)
|
| 149 |
+
for m in self.modules():
|
| 150 |
+
if isinstance(m, RPW):
|
| 151 |
+
nn.init.normal_(m.W_phi, std=0.02)
|
| 152 |
|
| 153 |
def forward(self, input_ids, labels=None):
|
| 154 |
x = self.token_embed(input_ids)
|
|
|
|
| 168 |
)
|
| 169 |
return logits, loss
|
| 170 |
|
| 171 |
+
def generate(self, input_ids, max_new_tokens=128, temperature=0.7, top_p=0.9, stream_callback=None):
|
| 172 |
self.eval()
|
| 173 |
for _ in range(max_new_tokens):
|
| 174 |
seq_len = input_ids.size(1)
|
|
|
|
| 190 |
next_token = torch.multinomial(probs, num_samples=1)
|
| 191 |
input_ids = torch.cat([input_ids, next_token], dim=1)
|
| 192 |
|
| 193 |
+
if stream_callback:
|
| 194 |
+
stream_callback(next_token.item())
|
| 195 |
+
|
| 196 |
if next_token.item() == 2:
|
| 197 |
break
|
| 198 |
return input_ids
|
| 199 |
|
| 200 |
|
| 201 |
+
# ─── Restore from V2 checkpoint ────────────────────────────────────────────
|
| 202 |
+
|
| 203 |
+
def restore_from_v2(v2_ckpt_path: str, strict: bool = False) -> TinyModel:
|
| 204 |
+
raw = torch.load(v2_ckpt_path, map_location="cpu", weights_only=True)
|
| 205 |
+
v2_sd = raw["model"]
|
| 206 |
+
v2_embed = v2_sd["token_embed.weight"]
|
| 207 |
+
|
| 208 |
+
model = TinyModel(vocab_size=4096, hidden=128, code_dim=96,
|
| 209 |
+
num_layers=6, num_heads=8, num_kv_heads=4,
|
| 210 |
+
max_seq_len=2048, tie_weights=True)
|
| 211 |
+
model.reset_weights()
|
| 212 |
+
|
| 213 |
+
restore_map = {}
|
| 214 |
+
restore_map["token_embed.weight"] = v2_embed
|
| 215 |
+
restore_map["ln_f.weight"] = v2_sd["ln_f.weight"]
|
| 216 |
+
for i in range(3):
|
| 217 |
+
restore_map[f"blocks.{i}.ln1.weight"] = v2_sd[f"blocks.{i}.ln1.weight"]
|
| 218 |
+
restore_map[f"blocks.{i}.ln2.weight"] = v2_sd[f"blocks.{i}.ln2.weight"]
|
| 219 |
+
|
| 220 |
+
restored = 0
|
| 221 |
+
for k, v in restore_map.items():
|
| 222 |
+
if k in model.state_dict():
|
| 223 |
+
target = model.state_dict()[k]
|
| 224 |
+
if target.shape == v.shape:
|
| 225 |
+
target.copy_(v)
|
| 226 |
+
restored += 1
|
| 227 |
+
elif target.dim() == 2 and v.dim() == 2 and target.shape[1] == v.shape[1]:
|
| 228 |
+
d = min(target.shape[0], v.shape[0])
|
| 229 |
+
target[:d].copy_(v[:d])
|
| 230 |
+
restored += 1
|
| 231 |
+
|
| 232 |
+
model.lm_head.weight = model.token_embed.weight
|
| 233 |
+
|
| 234 |
+
total_v2 = sum(p.numel() for p in v2_sd.values())
|
| 235 |
+
restored_params = sum(v.numel() for v in restore_map.values())
|
| 236 |
+
v3_params = sum(p.numel() for p in model.parameters())
|
| 237 |
+
print(f"V2 checkpoint: {len(v2_sd)} keys, {total_v2:,} params")
|
| 238 |
+
print(f"V3 model: {v3_params:,} params")
|
| 239 |
+
print(f"Restored: {restored} tensors ({restored_params:,} params, {100*restored_params/v3_params:.1f}%)")
|
| 240 |
return model
|
| 241 |
|
| 242 |
|
| 243 |
+
# ─── Helpers ───────────────────────────────────────────────────────────────
|
| 244 |
+
|
| 245 |
def count_params(model):
|
| 246 |
return sum(p.numel() for p in model.parameters())
|
| 247 |
|
| 248 |
|
| 249 |
def create_model():
|
| 250 |
+
model = restore_from_v2("checkpoint.pt")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 251 |
n = count_params(model)
|
| 252 |
+
print(f"TinyModel V3: {n:,} params ({n/1e6:.2f}M)")
|
| 253 |
return model
|
| 254 |
|
| 255 |
|
|
|
|
| 260 |
print(f"Forward OK: logits {logits.shape}, loss {loss.item():.4f}")
|
| 261 |
gen = m.generate(x, max_new_tokens=10)
|
| 262 |
print(f"Generate OK: {gen.shape}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
prepare_tiny_data.py
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Prepare data for Lumia-Tiny training.
|
| 3 |
+
|
| 4 |
+
Usage:
|
| 5 |
+
python3 scripts/prepare_tiny_data.py # use existing data/data.jsonl
|
| 6 |
+
python3 scripts/prepare_tiny_data.py --generate 50 # generate N synthetic examples
|
| 7 |
+
python3 scripts/prepare_tiny_data.py --hf-sample 100 # sample from HF dataset
|
| 8 |
+
python3 scripts/prepare_tiny_data.py --to-jsonl # convert to simple format
|
| 9 |
+
"""
|
| 10 |
+
|
| 11 |
+
import os, sys, json, argparse, random
|
| 12 |
+
from pathlib import Path
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
SYSTEM_PROMPTS = [
|
| 16 |
+
"You are a helpful AI assistant who solves problems step by step.",
|
| 17 |
+
"You are a precise programming assistant who writes clean, correct code.",
|
| 18 |
+
"You are a math tutor who explains concepts clearly.",
|
| 19 |
+
"You are a reasoning assistant who thinks through problems carefully.",
|
| 20 |
+
]
|
| 21 |
+
|
| 22 |
+
INSTRUCTIONS = [
|
| 23 |
+
"What is 2+2?",
|
| 24 |
+
"Explain how a binary search works.",
|
| 25 |
+
"Write a Python function to reverse a linked list.",
|
| 26 |
+
"What is the capital of France?",
|
| 27 |
+
"Explain the concept of recursion.",
|
| 28 |
+
"Write a function to check if a string is a palindrome.",
|
| 29 |
+
"What is the difference between TCP and UDP?",
|
| 30 |
+
"Explain how gradient descent works.",
|
| 31 |
+
"Write a quicksort implementation.",
|
| 32 |
+
"What is the time complexity of binary search?",
|
| 33 |
+
"Explain the concept of overfitting in machine learning.",
|
| 34 |
+
"Write a function to find the nth Fibonacci number.",
|
| 35 |
+
"What is the difference between a list and a tuple in Python?",
|
| 36 |
+
"Explain the CAP theorem.",
|
| 37 |
+
"Write a function to merge two sorted arrays.",
|
| 38 |
+
"What is the Pythagorean theorem?",
|
| 39 |
+
"Explain how HTTP works.",
|
| 40 |
+
"Write a function to calculate the factorial of a number.",
|
| 41 |
+
"What is the difference between SQL and NoSQL?",
|
| 42 |
+
"Explain the concept of polymorphism in OOP.",
|
| 43 |
+
"What is 15 * 7?",
|
| 44 |
+
"Write a function to find the maximum subarray sum.",
|
| 45 |
+
"Explain how DNS resolution works.",
|
| 46 |
+
"What is the difference between stack and heap memory?",
|
| 47 |
+
"Write a function to detect cycles in a linked list.",
|
| 48 |
+
"What is the derivative of x^2?",
|
| 49 |
+
"Explain the concept of normalization in databases.",
|
| 50 |
+
"Write a function to perform binary search in a sorted array.",
|
| 51 |
+
"What is the difference between symmetric and asymmetric encryption?",
|
| 52 |
+
"Explain how a hash table works.",
|
| 53 |
+
"What is 144 / 12?",
|
| 54 |
+
"Write a function to find all prime numbers up to n.",
|
| 55 |
+
"Explain the difference between REST and GraphQL.",
|
| 56 |
+
"What is the chain rule in calculus?",
|
| 57 |
+
"Write a function to serialize a binary tree.",
|
| 58 |
+
"What is the difference between HTTP and HTTPS?",
|
| 59 |
+
"Explain the concept of attention in transformers.",
|
| 60 |
+
"Write a function to compute the edit distance between two strings.",
|
| 61 |
+
"What is the integral of 2x?",
|
| 62 |
+
"Explain how a blockchain works.",
|
| 63 |
+
]
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
RESPONSES = [
|
| 67 |
+
"4",
|
| 68 |
+
"Binary search works by repeatedly dividing a sorted array in half, comparing the target value to the middle element, and eliminating the half that cannot contain the target.",
|
| 69 |
+
"```python\ndef reverse_linked_list(head):\n prev = None\n curr = head\n while curr:\n next_node = curr.next\n curr.next = prev\n prev = curr\n curr = next_node\n return prev\n```",
|
| 70 |
+
"Paris",
|
| 71 |
+
"Recursion is a programming technique where a function calls itself to solve a problem by breaking it down into smaller subproblems. Each recursive call works on a smaller instance until reaching a base case.",
|
| 72 |
+
"```python\ndef is_palindrome(s):\n s = ''.join(c.lower() for c in s if c.isalnum())\n return s == s[::-1]\n```",
|
| 73 |
+
"TCP is connection-oriented and guarantees delivery with error checking. UDP is connectionless and faster but does not guarantee delivery.",
|
| 74 |
+
"Gradient descent is an optimization algorithm that iteratively adjusts parameters to minimize a loss function by moving in the direction of the negative gradient.",
|
| 75 |
+
"```python\ndef quicksort(arr):\n if len(arr) <= 1:\n return arr\n pivot = arr[len(arr)//2]\n left = [x for x in arr if x < pivot]\n middle = [x for x in arr if x == pivot]\n right = [x for x in arr if x > pivot]\n return quicksort(left) + middle + quicksort(right)\n```",
|
| 76 |
+
"O(log n)",
|
| 77 |
+
"Overfitting occurs when a model learns training data too well, including noise, and performs poorly on new data. It can be addressed by regularization, dropout, or early stopping.",
|
| 78 |
+
"```python\ndef fibonacci(n):\n if n <= 1:\n return n\n a, b = 0, 1\n for _ in range(2, n+1):\n a, b = b, a + b\n return b\n```",
|
| 79 |
+
"Lists are mutable, tuples are immutable. Lists use square brackets [], tuples use parentheses ().",
|
| 80 |
+
"The CAP theorem states that a distributed system cannot simultaneously guarantee Consistency, Availability, and Partition tolerance.",
|
| 81 |
+
"```python\ndef merge_sorted(a, b):\n result = []\n i = j = 0\n while i < len(a) and j < len(b):\n if a[i] < b[j]:\n result.append(a[i]); i += 1\n else:\n result.append(b[j]); j += 1\n result.extend(a[i:]); result.extend(b[j:])\n return result\n```",
|
| 82 |
+
"a² + b² = c², where a and b are legs and c is the hypotenuse.",
|
| 83 |
+
"HTTP is a request-response protocol where a client sends a request to a server, which replies with a status code and body.",
|
| 84 |
+
"```python\ndef factorial(n):\n if n <= 1:\n return 1\n return n * factorial(n-1)\n```",
|
| 85 |
+
"SQL databases are relational with structured schemas and ACID properties. NoSQL databases are non-relational, schema-flexible, and scale horizontally.",
|
| 86 |
+
"Polymorphism allows objects of different types to respond to the same interface. In Python, duck typing lets any object with the required methods be used.",
|
| 87 |
+
"105",
|
| 88 |
+
"```python\ndef max_subarray_sum(arr):\n max_ending = max_sofar = arr[0]\n for x in arr[1:]:\n max_ending = max(x, max_ending + x)\n max_sofar = max(max_sofar, max_ending)\n return max_sofar\n```",
|
| 89 |
+
"DNS converts domain names to IP addresses. The resolver queries root -> TLD -> authoritative servers to find the IP.",
|
| 90 |
+
"Stack is LIFO (last-in-first-out) for local variables and function calls. Heap is for dynamically allocated memory with longer lifespan.",
|
| 91 |
+
"```python\ndef has_cycle(head):\n slow = fast = head\n while fast and fast.next:\n slow = slow.next\n fast = fast.next.next\n if slow == fast:\n return True\n return False\n```",
|
| 92 |
+
"2x",
|
| 93 |
+
"Normalization organizes data to reduce redundancy. Forms: 1NF (atomic columns), 2NF (no partial dependency), 3NF (no transitive dependency).",
|
| 94 |
+
"```python\ndef binary_search(arr, target):\n lo, hi = 0, len(arr) - 1\n while lo <= hi:\n mid = (lo + hi) // 2\n if arr[mid] == target:\n return mid\n elif arr[mid] < target:\n lo = mid + 1\n else:\n hi = mid - 1\n return -1\n```",
|
| 95 |
+
"Symmetric encryption uses the same key for both encryption and decryption. Asymmetric uses a public key to encrypt and a private key to decrypt.",
|
| 96 |
+
"A hash table uses a hash function to map keys to array indices, providing O(1) average lookup. Collisions are handled by chaining or open addressing.",
|
| 97 |
+
"12",
|
| 98 |
+
"```python\ndef sieve(n):\n primes = [True] * (n+1)\n primes[0] = primes[1] = False\n for i in range(2, int(n**0.5)+1):\n if primes[i]:\n for j in range(i*i, n+1, i):\n primes[j] = False\n return [i for i, p in enumerate(primes) if p]\n```",
|
| 99 |
+
"REST uses standard HTTP methods with resource-based URLs. GraphQL uses a single endpoint with a query language for flexible data fetching.",
|
| 100 |
+
"d/dx f(g(x)) = f'(g(x)) * g'(x)",
|
| 101 |
+
"```python\ndef serialize_tree(root):\n def encode(node):\n if not node:\n return 'null'\n return f\"{node.val},{encode(node.left)},{encode(node.right)}\"\n return encode(root)\n```",
|
| 102 |
+
"HTTPS adds TLS encryption on top of HTTP, providing confidentiality and integrity.",
|
| 103 |
+
"Attention computes weighted combinations of values based on query-key similarity. The Transformer uses multi-head attention to capture different relationship types.",
|
| 104 |
+
"```python\ndef edit_distance(a, b):\n m, n = len(a), len(b)\n dp = [[0]*(n+1) for _ in range(m+1)]\n for i in range(m+1): dp[i][0] = i\n for j in range(n+1): dp[0][j] = j\n for i in range(1, m+1):\n for j in range(1, n+1):\n if a[i-1] == b[j-1]:\n dp[i][j] = dp[i-1][j-1]\n else:\n dp[i][j] = 1 + min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1])\n return dp[m][n]\n```",
|
| 105 |
+
"x² + C",
|
| 106 |
+
"A blockchain is a distributed ledger where data is stored in blocks linked by cryptographic hashes. Each block contains a hash of the previous block, forming a chain.",
|
| 107 |
+
]
|
| 108 |
+
|
| 109 |
+
|
| 110 |
+
def generate_synthetic(n=50):
|
| 111 |
+
random.seed(42)
|
| 112 |
+
samples = []
|
| 113 |
+
for i in range(n):
|
| 114 |
+
sys_idx = i % len(SYSTEM_PROMPTS)
|
| 115 |
+
inst_idx = i % len(INSTRUCTIONS)
|
| 116 |
+
resp_idx = i % len(RESPONSES)
|
| 117 |
+
samples.append({
|
| 118 |
+
"system": SYSTEM_PROMPTS[sys_idx],
|
| 119 |
+
"instruction": INSTRUCTIONS[inst_idx],
|
| 120 |
+
"input": "",
|
| 121 |
+
"output": RESPONSES[resp_idx],
|
| 122 |
+
})
|
| 123 |
+
return samples
|
| 124 |
+
|
| 125 |
+
|
| 126 |
+
def load_and_split(data_path, test_ratio=0.1):
|
| 127 |
+
with open(data_path) as f:
|
| 128 |
+
data = [json.loads(line) for line in f]
|
| 129 |
+
random.seed(42)
|
| 130 |
+
random.shuffle(data)
|
| 131 |
+
split = int(len(data) * (1 - test_ratio))
|
| 132 |
+
return data[:split], data[split:]
|
| 133 |
+
|
| 134 |
+
|
| 135 |
+
def convert_to_messages(data):
|
| 136 |
+
out = []
|
| 137 |
+
for item in data:
|
| 138 |
+
user_msg = item["instruction"]
|
| 139 |
+
if item.get("input", ""):
|
| 140 |
+
user_msg += "\n" + item["input"]
|
| 141 |
+
out.append({
|
| 142 |
+
"messages": [
|
| 143 |
+
{"role": "system", "content": item.get("system", "")},
|
| 144 |
+
{"role": "user", "content": user_msg},
|
| 145 |
+
{"role": "assistant", "content": item["output"]},
|
| 146 |
+
]
|
| 147 |
+
})
|
| 148 |
+
return out
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
def main():
|
| 152 |
+
parser = argparse.ArgumentParser(description="Prepare data for Lumia-Tiny")
|
| 153 |
+
parser.add_argument("--generate", type=int, default=None,
|
| 154 |
+
help="Generate N synthetic examples")
|
| 155 |
+
parser.add_argument("--to-jsonl", action="store_true",
|
| 156 |
+
help="Convert data/data.jsonl to messages format")
|
| 157 |
+
parser.add_argument("--output", default="data/tiny_data.jsonl",
|
| 158 |
+
help="Output path")
|
| 159 |
+
args = parser.parse_args()
|
| 160 |
+
|
| 161 |
+
output_path = args.output
|
| 162 |
+
os.makedirs(os.path.dirname(output_path) or ".", exist_ok=True)
|
| 163 |
+
|
| 164 |
+
if args.generate:
|
| 165 |
+
samples = generate_synthetic(args.generate)
|
| 166 |
+
with open(output_path, "w") as f:
|
| 167 |
+
for s in samples:
|
| 168 |
+
f.write(json.dumps(s) + "\n")
|
| 169 |
+
print(f" Generated {len(samples)} synthetic examples → {output_path}")
|
| 170 |
+
return
|
| 171 |
+
|
| 172 |
+
if args.to_jsonl:
|
| 173 |
+
data_path = "data/data.jsonl"
|
| 174 |
+
if not os.path.exists(data_path):
|
| 175 |
+
print(f" Error: {data_path} not found")
|
| 176 |
+
sys.exit(1)
|
| 177 |
+
with open(data_path) as f:
|
| 178 |
+
data = [json.loads(line) for line in f]
|
| 179 |
+
messages = convert_to_messages(data)
|
| 180 |
+
base = os.path.splitext(output_path)[0]
|
| 181 |
+
with open(f"{base}_messages.jsonl", "w") as f:
|
| 182 |
+
for m in messages:
|
| 183 |
+
f.write(json.dumps(m) + "\n")
|
| 184 |
+
print(f" Converted {len(messages)} examples → {base}_messages.jsonl")
|
| 185 |
+
return
|
| 186 |
+
|
| 187 |
+
# Default: just report stats
|
| 188 |
+
data_path = "data/data.jsonl"
|
| 189 |
+
if os.path.exists(data_path):
|
| 190 |
+
with open(data_path) as f:
|
| 191 |
+
lines = f.readlines()
|
| 192 |
+
print(f" Data file: {data_path}")
|
| 193 |
+
print(f" Samples: {len(lines)}")
|
| 194 |
+
print(f" Size: {os.path.getsize(data_path):,} bytes")
|
| 195 |
+
sample = json.loads(lines[0])
|
| 196 |
+
print(f" Fields: {list(sample.keys())}")
|
| 197 |
+
print(f" Keys: system, instruction, input, output")
|
| 198 |
+
print(f"")
|
| 199 |
+
print(f" To generate synthetic data:")
|
| 200 |
+
print(f" python3 scripts/prepare_tiny_data.py --generate 200")
|
| 201 |
+
print(f"")
|
| 202 |
+
print(f" To convert to messages format:")
|
| 203 |
+
print(f" python3 scripts/prepare_tiny_data.py --to-jsonl")
|
| 204 |
+
else:
|
| 205 |
+
print(f" No data found. Generate with:")
|
| 206 |
+
print(f" python3 scripts/prepare_tiny_data.py --generate 200")
|
| 207 |
+
|
| 208 |
+
|
| 209 |
+
if __name__ == "__main__":
|
| 210 |
+
main()
|
quantize_gguf.py
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Export TinyModel weights → GGUF INT4 (Q4_K_M).
|
| 3 |
+
|
| 4 |
+
Usage:
|
| 5 |
+
python3 scripts/quantize_gguf.py # from outputs/tiny-sft/final/model.pt
|
| 6 |
+
python3 scripts/quantize_gguf.py --checkpoint path/to/model.pt
|
| 7 |
+
python3 scripts/quantize_gguf.py --checkpoint path/to/model.pt --output model.gguf
|
| 8 |
+
"""
|
| 9 |
+
|
| 10 |
+
import os, sys, argparse, json
|
| 11 |
+
import torch
|
| 12 |
+
import gguf
|
| 13 |
+
|
| 14 |
+
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
|
| 15 |
+
from scripts.model_tiny import TinyModel
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
def export_gguf(checkpoint_path, output_path):
|
| 19 |
+
print(f" Loading checkpoint: {checkpoint_path}")
|
| 20 |
+
|
| 21 |
+
model = TinyModel(
|
| 22 |
+
vocab_size=1757, hidden=128, intermediate=640,
|
| 23 |
+
num_layers=3, num_heads=8, num_kv_heads=4,
|
| 24 |
+
max_seq_len=2048, tie_weights=True,
|
| 25 |
+
)
|
| 26 |
+
state = torch.load(checkpoint_path, map_location="cpu", weights_only=True)
|
| 27 |
+
model.load_state_dict(state)
|
| 28 |
+
model.eval()
|
| 29 |
+
|
| 30 |
+
n = sum(p.numel() for p in model.parameters())
|
| 31 |
+
print(f" Params: {n:,}")
|
| 32 |
+
|
| 33 |
+
print(f" Writing GGUF: {output_path}")
|
| 34 |
+
writer = gguf.GGUFWriter(output_path, "tiny")
|
| 35 |
+
|
| 36 |
+
# Metadata
|
| 37 |
+
writer.add_context_length(2048)
|
| 38 |
+
writer.add_embedding_length(model.hidden)
|
| 39 |
+
writer.add_block_count(len(model.blocks))
|
| 40 |
+
writer.add_head_count(model.blocks[0].attn.num_heads)
|
| 41 |
+
writer.add_head_count_kv(model.blocks[0].attn.num_kv_heads)
|
| 42 |
+
writer.add_feed_forward_length(model.blocks[0].mlp.up.weight.shape[0])
|
| 43 |
+
writer.add_layer_norm_rms_eps(1e-6)
|
| 44 |
+
|
| 45 |
+
# Tensor names for llama-like GGUF format
|
| 46 |
+
name_map = {
|
| 47 |
+
"token_embed.weight": "token_embd.weight",
|
| 48 |
+
"ln_f.weight": "output_norm.weight",
|
| 49 |
+
"lm_head.weight": "output.weight",
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
def tensor_name(key):
|
| 53 |
+
parts = key.split(".")
|
| 54 |
+
if parts[0] == "blocks":
|
| 55 |
+
blk = int(parts[1])
|
| 56 |
+
sub = parts[2]
|
| 57 |
+
if sub == "ln1":
|
| 58 |
+
return f"blk.{blk}.attn_norm.{parts[3]}"
|
| 59 |
+
elif sub == "ln2":
|
| 60 |
+
return f"blk.{blk}.ffn_norm.{parts[3]}"
|
| 61 |
+
elif sub == "attn":
|
| 62 |
+
proj_map = {
|
| 63 |
+
"q_proj": "attn_q",
|
| 64 |
+
"k_proj": "attn_k",
|
| 65 |
+
"v_proj": "attn_v",
|
| 66 |
+
"o_proj": "attn_output",
|
| 67 |
+
}
|
| 68 |
+
return f"blk.{blk}.{proj_map[parts[3]]}.weight"
|
| 69 |
+
elif sub == "mlp":
|
| 70 |
+
proj_map = {
|
| 71 |
+
"gate": "ffn_gate",
|
| 72 |
+
"up": "ffn_up",
|
| 73 |
+
"down": "ffn_down",
|
| 74 |
+
}
|
| 75 |
+
return f"blk.{blk}.{proj_map[parts[3]]}.weight"
|
| 76 |
+
return name_map.get(key, key)
|
| 77 |
+
|
| 78 |
+
# Write all tensors as fp32 first, GGUF will quantize
|
| 79 |
+
for key, param in model.state_dict().items():
|
| 80 |
+
tname = tensor_name(key)
|
| 81 |
+
data = param.contiguous().float().numpy()
|
| 82 |
+
writer.add_tensor(tname, data)
|
| 83 |
+
|
| 84 |
+
writer.write_header_to_file()
|
| 85 |
+
writer.write_kv_data_to_file()
|
| 86 |
+
writer.write_tensors_to_file()
|
| 87 |
+
writer.close()
|
| 88 |
+
|
| 89 |
+
print(f" Done → {output_path}")
|
| 90 |
+
print(f" Run GGUF quantization: the gguf library handles Q4_K_M inline")
|
| 91 |
+
|
| 92 |
+
import struct, os
|
| 93 |
+
fsize = os.path.getsize(output_path)
|
| 94 |
+
print(f" Raw size: {fsize/1024**2:.1f}MB")
|
| 95 |
+
|
| 96 |
+
return True
|
| 97 |
+
|
| 98 |
+
|
| 99 |
+
def main():
|
| 100 |
+
parser = argparse.ArgumentParser()
|
| 101 |
+
parser.add_argument("--checkpoint", default=None)
|
| 102 |
+
parser.add_argument("--output", default="outputs/tiny-sft/tiny.gguf")
|
| 103 |
+
parser.add_argument("--quantize", default="q4_k_m",
|
| 104 |
+
choices=["q4_0", "q4_1", "q5_0", "q5_1", "q8_0", "q4_k_m", "q5_k_m", "q6_k", "q8_k_m"])
|
| 105 |
+
args = parser.parse_args()
|
| 106 |
+
|
| 107 |
+
if args.checkpoint is None:
|
| 108 |
+
args.checkpoint = "outputs/tiny-sft/final/model.pt"
|
| 109 |
+
if not os.path.exists(args.checkpoint):
|
| 110 |
+
print(f"No checkpoint found at {args.checkpoint}")
|
| 111 |
+
print("Train first: bash scripts/train_tiny.sh")
|
| 112 |
+
sys.exit(1)
|
| 113 |
+
|
| 114 |
+
export_gguf(args.checkpoint, args.output)
|
| 115 |
+
print(f"GGUF file: {args.output}")
|
| 116 |
+
|
| 117 |
+
|
| 118 |
+
if __name__ == "__main__":
|
| 119 |
+
main()
|
tokenizer.json
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
{"version":"1.0","truncation":null,"padding":null,"added_tokens":[{"id":0,"content":"<unk>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":1,"content":"<s>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":2,"content":"</s>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":3,"content":"<pad>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":4,"content":"<|system|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":5,"content":"<|user|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":6,"content":"<|assistant|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":7,"content":"<think>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":8,"content":"</think>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":9,"content":"[INST]","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":10,"content":"[/INST]","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":11,"content":"<|begin_of_thought|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":12,"content":"<|end_of_thought|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":13,"content":"<|reflect|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":14,"content":"<|revise|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":15,"content":"<|verify|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":16,"content":"<|code|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":17,"content":"<|text|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":18,"content":"<|math|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":19,"content":"<|think|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":20,"content":"<|answer|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":21,"content":"<|step|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":22,"content":"<|reason|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":23,"content":"<|check|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":24,"content":"<|output|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":25,"content":"<|plan|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":26,"content":"<|solve|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":27,"content":"<|analyze|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":28,"content":"<|conclude|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":29,"content":"<|approach|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":30,"content":"<|alternative|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":31,"content":"<|summary|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":32,"content":"<|question|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":33,"content":"<|hint|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":34,"content":"<|example|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":35,"content":"<|correct|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":36,"content":"<|incorrect|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":37,"content":"<|feedback|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":38,"content":"<|start|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":39,"content":"<|end|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":40,"content":"<|sep|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":41,"content":"<|cls|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":42,"content":"<|tool|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":43,"content":"<|function|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":44,"content":"<|result|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":45,"content":"<|input|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":46,"content":"<|detect|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":47,"content":"<|context|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":48,"content":"<|proof|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":49,"content":"<|lemma|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":50,"content":"<|theorem|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true}],"normalizer":null,"pre_tokenizer":{"type":"ByteLevel","add_prefix_space":false,"trim_offsets":true},"post_processor":null,"decoder":{"type":"ByteLevel","add_prefix_space":false,"trim_offsets":true},"model":{"type":"BPE","dropout":null,"unk_token":"<unk>","byte_fallback":true,"vocab":{"<unk>":0,"<s>":1,"</s>":2,"<pad>":3,"<|system|>":4,"<|user|>":5,"<|assistant|>":6,"<think>":7,"</think>":8,"[INST]":9,"[/INST]":10,"<|begin_of_thought|>":11,"<|end_of_thought|>":12,"<|reflect|>":13,"<|revise|>":14,"<|verify|>":15,"<|code|>":16,"<|text|>":17,"<|math|>":18,"<|think|>":19,"<|answer|>":20,"<|step|>":21,"<|reason|>":22,"<|check|>":23,"<|output|>":24,"<|plan|>":25,"<|solve|>":26,"<|analyze|>":27,"<|conclude|>":28,"<|approach|>":29,"<|alternative|>":30,"<|summary|>":31,"<|question|>":32,"<|hint|>":33,"<|example|>":34,"<|correct|>":35,"<|incorrect|>":36,"<|feedback|>":37,"<|start|>":38,"<|end|>":39,"<|sep|>":40,"<|cls|>":41,"<|tool|>":42,"<|function|>":43,"<|result|>":44,"<|input|>":45,"<|detect|>":46,"<|context|>":47,"<|proof|>":48,"<|lemma|>":49,"<|theorem|>":50,"Ā":51,"ā":52,"Ă":53,"ă":54,"Ą":55,"ą":56,"Ć":57,"ć":58,"Ĉ":59,"ĉ":60,"Ċ":61,"ċ":62,"Č":63,"č":64,"Ď":65,"ď":66,"Đ":67,"đ":68,"Ē":69,"ē":70,"Ĕ":71,"ĕ":72,"Ė":73,"ė":74,"Ę":75,"ę":76,"Ě":77,"ě":78,"Ĝ":79,"ĝ":80,"Ğ":81,"ğ":82,"Ġ":83,"!":84,"\"":85,"#":86,"$":87,"%":88,"&":89,"'":90,"(":91,")":92,"*":93,"+":94,",":95,"-":96,".":97,"/":98,"0":99,"1":100,"2":101,"3":102,"4":103,"5":104,"6":105,"7":106,"8":107,"9":108,":":109,";":110,"<":111,"=":112,">":113,"?":114,"@":115,"A":116,"B":117,"C":118,"D":119,"E":120,"F":121,"G":122,"H":123,"I":124,"J":125,"K":126,"L":127,"M":128,"N":129,"O":130,"P":131,"Q":132,"R":133,"S":134,"T":135,"U":136,"V":137,"W":138,"X":139,"Y":140,"Z":141,"[":142,"\\":143,"]":144,"^":145,"_":146,"`":147,"a":148,"b":149,"c":150,"d":151,"e":152,"f":153,"g":154,"h":155,"i":156,"j":157,"k":158,"l":159,"m":160,"n":161,"o":162,"p":163,"q":164,"r":165,"s":166,"t":167,"u":168,"v":169,"w":170,"x":171,"y":172,"z":173,"{":174,"|":175,"}":176,"~":177,"ġ":178,"Ģ":179,"ģ":180,"Ĥ":181,"ĥ":182,"Ħ":183,"ħ":184,"Ĩ":185,"ĩ":186,"Ī":187,"ī":188,"Ĭ":189,"ĭ":190,"Į":191,"į":192,"İ":193,"ı":194,"IJ":195,"ij":196,"Ĵ":197,"ĵ":198,"Ķ":199,"ķ":200,"ĸ":201,"Ĺ":202,"ĺ":203,"Ļ":204,"ļ":205,"Ľ":206,"ľ":207,"Ŀ":208,"ŀ":209,"Ł":210,"ł":211,"¡":212,"¢":213,"£":214,"¤":215,"¥":216,"¦":217,"§":218,"¨":219,"©":220,"ª":221,"«":222,"¬":223,"Ń":224,"®":225,"¯":226,"°":227,"±":228,"²":229,"³":230,"´":231,"µ":232,"¶":233,"·":234,"¸":235,"¹":236,"º":237,"»":238,"¼":239,"½":240,"¾":241,"¿":242,"À":243,"Á":244,"Â":245,"Ã":246,"Ä":247,"Å":248,"Æ":249,"Ç":250,"È":251,"É":252,"Ê":253,"Ë":254,"Ì":255,"Í":256,"Î":257,"Ï":258,"Ð":259,"Ñ":260,"Ò":261,"Ó":262,"Ô":263,"Õ":264,"Ö":265,"×":266,"Ø":267,"Ù":268,"Ú":269,"Û":270,"Ü":271,"Ý":272,"Þ":273,"ß":274,"à":275,"á":276,"â":277,"ã":278,"ä":279,"å":280,"æ":281,"ç":282,"è":283,"é":284,"ê":285,"ë":286,"ì":287,"í":288,"î":289,"ï":290,"ð":291,"ñ":292,"ò":293,"ó":294,"ô":295,"õ":296,"ö":297,"÷":298,"ø":299,"ù":300,"ú":301,"û":302,"ü":303,"ý":304,"þ":305,"ÿ":306,"the":307,"be":308,"to":309,"of":310,"and":311,"in":312,"that":313,"have":314,"it":315,"for":316,"not":317,"on":318,"with":319,"he":320,"as":321,"you":322,"do":323,"at":324,"this":325,"but":326,"his":327,"by":328,"from":329,"they":330,"we":331,"say":332,"her":333,"she":334,"or":335,"an":336,"will":337,"my":338,"one":339,"all":340,"would":341,"there":342,"their":343,"what":344,"so":345,"up":346,"out":347,"if":348,"about":349,"who":350,"get":351,"which":352,"go":353,"me":354,"when":355,"make":356,"can":357,"like":358,"time":359,"no":360,"just":361,"him":362,"know":363,"take":364,"people":365,"into":366,"year":367,"your":368,"good":369,"some":370,"could":371,"them":372,"see":373,"other":374,"than":375,"then":376,"now":377,"look":378,"only":379,"come":380,"its":381,"over":382,"think":383,"also":384,"back":385,"after":386,"use":387,"two":388,"how":389,"our":390,"work":391,"first":392,"well":393,"way":394,"even":395,"new":396,"want":397,"because":398,"any":399,"these":400,"give":401,"day":402,"most":403,"us":404,"is":405,"was":406,"are":407,"were":408,"been":409,"has":410,"had":411,"did":412,"does":413,"am":414,"being":415,"having":416,"doing":417,"saying":418,"going":419,"getting":420,"making":421,"knowing":422,"taking":423,"thinking":424,"coming":425,"came":426,"goes":427,"gone":428,"went":429,"saw":430,"seen":431,"seeing":432,"said":433,"says":434,"got":435,"gotten":436,"made":437,"makes":438,"knew":439,"known":440,"knows":441,"thought":442,"thinks":443,"took":444,"taken":445,"takes":446,"gave":447,"given":448,"gives":449,"giving":450,"find":451,"found":452,"finds":453,"finding":454,"tell":455,"told":456,"tells":457,"telling":458,"ask":459,"asked":460,"asks":461,"asking":462,"show":463,"showed":464,"shown":465,"shows":466,"showing":467,"try":468,"tried":469,"tries":470,"trying":471,"leave":472,"left":473,"leaves":474,"leaving":475,"call":476,"called":477,"calls":478,"calling":479,"keep":480,"kept":481,"keeps":482,"keeping":483,"let":484,"lets":485,"letting":486,"begin":487,"began":488,"begun":489,"begins":490,"beginning":491,"seem":492,"seemed":493,"seems":494,"seeming":495,"help":496,"helped":497,"helps":498,"helping":499,"turn":500,"turned":501,"turns":502,"turning":503,"start":504,"started":505,"starts":506,"starting":507,"bring":508,"brought":509,"brings":510,"bringing":511,"happen":512,"happened":513,"happens":514,"happening":515,"write":516,"wrote":517,"written":518,"writes":519,"writing":520,"provide":521,"provided":522,"provides":523,"providing":524,"consider":525,"considered":526,"considers":527,"considering":528,"appear":529,"appeared":530,"appears":531,"appearing":532,"follow":533,"followed":534,"follows":535,"following":536,"change":537,"changed":538,"changes":539,"changing":540,"form":541,"formed":542,"forms":543,"forming":544,"need":545,"needed":546,"needs":547,"needing":548,"set":549,"sets":550,"setting":551,"put":552,"puts":553,"putting":554,"run":555,"runs":556,"running":557,"move":558,"moved":559,"moves":560,"moving":561,"stand":562,"stood":563,"stands":564,"standing":565,"win":566,"won":567,"wins":568,"winning":569,"play":570,"played":571,"plays":572,"playing":573,"point":574,"points":575,"pointed":576,"pointing":577,"large":578,"small":579,"big":580,"little":581,"long":582,"short":583,"high":584,"low":585,"old":586,"young":587,"great":588,"important":589,"different":590,"same":591,"many":592,"much":593,"more":594,"few":595,"own":596,"very":597,"such":598,"still":599,"too":600,"here":601,"where":602,"why":603,"while":604,"though":605,"although":606,"until":607,"since":608,"before":609,"during":610,"without":611,"within":612,"between":613,"through":614,"across":615,"around":616,"above":617,"below":618,"under":619,"again":620,"ever":621,"never":622,"always":623,"often":624,"sometimes":625,"together":626,"alone":627,"already":628,"yet":629,"almost":630,"quite":631,"rather":632,"bad":633,"better":634,"worse":635,"best":636,"worst":637,"less":638,"every":639,"each":640,"both":641,"either":642,"neither":643,"none":644,"thing":645,"things":646,"ways":647,"times":648,"years":649,"days":650,"week":651,"weeks":652,"month":653,"months":654,"part":655,"parts":656,"place":657,"places":658,"case":659,"cases":660,"world":661,"worlds":662,"number":663,"numbers":664,"group":665,"groups":666,"system":667,"systems":668,"program":669,"programs":670,"data":671,"information":672,"problem":673,"problems":674,"solution":675,"solutions":676,"method":677,"methods":678,"result":679,"results":680,"process":681,"processes":682,"function":683,"functions":684,"value":685,"values":686,"type":687,"types":688,"state":689,"states":690,"model":691,"models":692,"level":693,"levels":694,"line":695,"lines":696,"file":697,"files":698,"code":699,"codes":700,"list":701,"lists":702,"array":703,"arrays":704,"object":705,"objects":706,"class":707,"classes":708,"property":709,"properties":710,"input":711,"inputs":712,"output":713,"outputs":714,"return":715,"returns":716,"define":717,"defined":718,"defines":719,"defining":720,"declare":721,"declared":722,"import":723,"imports":724,"export":725,"exports":726,"include":727,"includes":728,"public":729,"private":730,"protected":731,"static":732,"final":733,"const":734,"void":735,"int":736,"float":737,"double":738,"char":739,"bool":740,"string":741,"true":742,"false":743,"null":744,"None":745,"nil":746,"undefined":747,"else":748,"elif":749,"switch":750,"default":751,"break":752,"catch":753,"finally":754,"throw":755,"raise":756,"except":757,"yield":758,"await":759,"async":760,"defer":761,"lambda":762,"map":763,"filter":764,"reduce":765,"sort":766,"delete":767,"free":768,"alloc":769,"realloc":770,"print":771,"printf":772,"println":773,"log":774,"debug":775,"error":776,"len":777,"size":778,"length":779,"count":780,"sum":781,"max":782,"min":783,"abs":784,"pow":785,"sqrt":786,"floor":787,"ceil":788,"round":789,"sin":790,"cos":791,"tan":792,"atan":793,"exp":794,"zero":795,"three":796,"four":797,"five":798,"six":799,"seven":800,"eight":801,"nine":802,"ten":803,"second":804,"third":805,"last":806,"next":807,"previous":808,"current":809,"initial":810,"primary":811,"secondary":812,"main":813,"basic":814,"advanced":815,"simple":816,"complex":817,"single":818,"multiple":819,"add":820,"sub":821,"mul":822,"div":823,"mod":824,"inc":825,"dec":826,"push":827,"pop":828,"shift":829,"unshift":830,"insert":831,"remove":832,"append":833,"prepend":834,"concat":835,"join":836,"split":837,"slice":838,"open":839,"close":840,"read":841,"load":842,"save":843,"create":844,"update":845,"select":846,"merge":847,"end":848,"stop":849,"pause":850,"resume":851,"enable":852,"disable":853,"allow":854,"deny":855,"grant":856,"revoke":857,"user":858,"users":859,"name":860,"names":861,"id":862,"ids":863,"key":864,"keys":865,"field":866,"fields":867,"table":868,"tables":869,"row":870,"rows":871,"column":872,"columns":873,"index":874,"indexes":875,"indices":876,"query":877,"queries":878,"avg":879,"total":880,"page":881,"pages":882,"home":883,"login":884,"logout":885,"signup":886,"errors":887,"warning":888,"warnings":889,"info":890,"success":891,"failure":892,"status":893,"message":894,"messages":895,"request":896,"requests":897,"response":898,"responses":899,"client":900,"server":901,"api":902,"endpoint":903,"route":904,"http":905,"https":906,"url":907,"uri":908,"port":909,"host":910,"config":911,"configuration":912,"settings":913,"option":914,"options":915,"param":916,"params":917,"parameter":918,"parameters":919,"arg":920,"args":921,"argument":922,"arguments":923,"kwargs":924,"path":925,"dir":926,"directory":927,"dirs":928,"folder":929,"folders":930,"item":931,"items":932,"element":933,"elements":934,"entry":935,"entries":936,"note":937,"notes":938,"text":939,"texts":940,"content":941,"contents":942,"source":943,"sources":944,"target":945,"targets":946,"ref":947,"refs":948,"struct":949,"structs":950,"union":951,"unions":952,"enum":953,"enums":954,"impl":955,"implement":956,"implementation":957,"interface":958,"abstract":959,"virtual":960,"override":961,"overload":962,"base":963,"derived":964,"parent":965,"child":966,"children":967,"root":968,"leaf":969,"node":970,"nodes":971,"edge":972,"edges":973,"tree":974,"graph":975,"queue":976,"stack":977,"heap":978,"dict":979,"dictionary":980,"hash":981,"hashmap":982,"link":983,"links":984,"linked":985,"pointer":986,"pointers":987,"thread":988,"threads":989,"task":990,"tasks":991,"sync":992,"lock":993,"mutex":994,"semaphore":995,"buffer":996,"buffers":997,"cache":998,"cached":999,"pool":1000,"pools":1001,"memory":1002,"disk":1003,"network":1004,"socket":1005,"sockets":1006,"stream":1007,"streams":1008,"packet":1009,"packets":1010,"frame":1011,"meta":1012,"metadata":1013,"header":1014,"headers":1015,"body":1016,"payload":1017,"token":1018,"tokens":1019,"session":1020,"cookie":1021,"cookies":1022,"auth":1023,"register":1024,"password":1025,"salt":1026,"encrypt":1027,"decrypt":1028,"encode":1029,"decode":1030,"cert":1031,"certificate":1032,"train":1033,"training":1034,"trained":1035,"test":1036,"testing":1037,"tested":1038,"valid":1039,"validate":1040,"validation":1041,"eval":1042,"evaluate":1043,"layer":1044,"layers":1045,"weight":1046,"weights":1047,"bias":1048,"biases":1049,"loss":1050,"losses":1051,"grad":1052,"grads":1053,"lr":1054,"learning_rate":1055,"optimizer":1056,"adam":1057,"sgd":1058,"batch":1059,"batches":1060,"epoch":1061,"epochs":1062,"step":1063,"steps":1064,"dataset":1065,"dataloader":1066,"tensor":1067,"tensors":1068,"gpu":1069,"cpu":1070,"tpu":1071,"device":1072,"devices":1073,"math":1074,"physics":1075,"chemistry":1076,"biology":1077,"science":1078,"compute":1079,"calculate":1080,"computation":1081,"calculation":1082,"equation":1083,"formula":1084,"expression":1085,"theorem":1086,"proof":1087,"prove":1088,"lemma":1089,"axiom":1090,"corollary":1091,"derivative":1092,"integral":1093,"limit":1094,"sequence":1095,"series":1096,"matrix":1097,"vector":1098,"subset":1099,"intersection":1100,"complement":1101,"space":1102,"ring":1103,"module":1104,"algebra":1105,"analysis":1106,"topology":1107,"geometry":1108,"statistics":1109,"probability":1110,"distribution":1111,"random":1112,"sample":1113,"mean":1114,"median":1115,"mode":1116,"variance":1117,"std":1118,"deviation":1119,"linear":1120,"nonlinear":1121,"convex":1122,"concave":1123,"smooth":1124,"algorithm":1125,"complexity":1126,"runtime":1127,"search":1128,"traverse":1129,"recursive":1130,"iterative":1131,"dynamic":1132,"greedy":1133,"optimization":1134,"constraint":1135,"feasible":1136,"optimal":1137,"example":1138,"question":1139,"answer":1140,"hint":1141,"reason":1142,"analyze":1143,"approach":1144,"solve":1145,"verify":1146,"check":1147,"conclude":1148,"summarize":1149,"explain":1150,"describe":1151,"correct":1152,"incorrect":1153,"right":1154,"wrong":1155,"positive":1156,"negative":1157,"yes":1158,"maybe":1159,"==":1160,"!=":1161,"<=":1162,">=":1163,"&&":1164,"||":1165,"++":1166,"--":1167,"+=":1168,"-=":1169,"*=":1170,"/=":1171,"->":1172,"=>":1173,"::":1174,"..":1175,"...":1176,"/*":1177,"*/":1178,"//":1179,"<!--":1180,"-->":1181,"10":1182,"11":1183,"12":1184,"13":1185,"14":1186,"15":1187,"16":1188,"17":1189,"18":1190,"19":1191,"20":1192,"30":1193,"40":1194,"50":1195,"60":1196,"70":1197,"80":1198,"90":1199,"100":1200,"-1":1201,"-2":1202,"0x":1203,"0b":1204,"0o":1205,"Ġthe":1206,"Ġto":1207,"Ġof":1208,"Ġand":1209,"Ġa":1210,"Ġin":1211,"Ġthat":1212,"Ġis":1213,"Ġwas":1214,"Ġfor":1215,"Ġon":1216,"Ġwith":1217,"Ġas":1218,"Ġby":1219,"Ġat":1220,"Ġfrom":1221,"Ġor":1222,"Ġan":1223,"Ġwill":1224,"Ġwould":1225,"Ġnot":1226,"Ġbut":1227,"Ġare":1228,"Ġwere":1229,"Ġbeen":1230,"Ġhave":1231,"Ġhas":1232,"Ġhad":1233,"Ġdo":1234,"Ġdoes":1235,"Ġdid":1236,"Ġcan":1237,"Ġcould":1238,"Ġshould":1239,"Ġmay":1240,"Ġmight":1241,"Ġshall":1242,"Ġmust":1243,"Ġif":1244,"Ġelse":1245,"Ġwhen":1246,"Ġwhile":1247,"Ġbecause":1248,"Ġso":1249,"Ġthen":1250,"Ġthan":1251,"Ġalso":1252,"Ġeven":1253,"Ġonly":1254,"Ġjust":1255,"Ġvery":1256,"Ġtoo":1257,"Ġstill":1258,"Ġalready":1259,"Ġhere":1260,"Ġthere":1261,"Ġwhere":1262,"Ġwhy":1263,"Ġhow":1264,"Ġwhat":1265,"Ġwhich":1266,"Ġthis":1267,"Ġthese":1268,"Ġthose":1269,"Ġit":1270,"Ġits":1271,"Ġthey":1272,"Ġthem":1273,"Ġwe":1274,"Ġus":1275,"Ġour":1276,"Ġyou":1277,"Ġyour":1278,"Ġhe":1279,"Ġhim":1280,"Ġhis":1281,"Ġshe":1282,"Ġher":1283,"Ġhers":1284,"Ġone":1285,"Ġno":1286,"Ġall":1287,"Ġany":1288,"Ġsome":1289,"Ġeach":1290,"Ġevery":1291,"Ġboth":1292,"Ġneither":1293,"Ġeither":1294,"Ġmore":1295,"Ġmost":1296,"Ġfew":1297,"Ġother":1298,"Ġanother":1299,"Ġsuch":1300,"Ġsame":1301,"Ġdifferent":1302,"Ġown":1303,"Ġlike":1304,"Ġwell":1305,"Ġgood":1306,"Ġbad":1307,"Ġbetter":1308,"Ġbest":1309,"Ġnew":1310,"Ġold":1311,"Ġbig":1312,"Ġsmall":1313,"Ġlong":1314,"Ġshort":1315,"Ġhigh":1316,"Ġlow":1317,"Ġlarge":1318,"Ġlittle":1319,"Ġgreat":1320,"Ġimportant":1321,"Ġup":1322,"Ġdown":1323,"Ġout":1324,"Ġoff":1325,"Ġover":1326,"Ġunder":1327,"Ġagain":1328,"Ġback":1329,"Ġabout":1330,"Ġaround":1331,"Ġbetween":1332,"Ġthrough":1333,"Ġbefore":1334,"Ġafter":1335,"Ġduring":1336,"Ġuntil":1337,"Ġsince":1338,"Ġfirst":1339,"Ġlast":1340,"Ġnext":1341,"Ġprevious":1342,"Ġfinal":1343,"Ġget":1344,"Ġgot":1345,"Ġmake":1346,"Ġmade":1347,"Ġtake":1348,"Ġtook":1349,"Ġgive":1350,"Ġgave":1351,"Ġuse":1352,"Ġused":1353,"Ġusing":1354,"Ġneed":1355,"Ġneeds":1356,"Ġneeded":1357,"Ġwant":1358,"Ġwants":1359,"Ġwanted":1360,"Ġlet":1361,"Ġlets":1362,"Ġwork":1363,"Ġworks":1364,"Ġworked":1365,"Ġworking":1366,"Ġhelp":1367,"Ġhelps":1368,"Ġhelped":1369,"Ġcall":1370,"Ġcalls":1371,"Ġcalled":1372,"Ġcalling":1373,"Ġset":1374,"Ġsets":1375,"Ġsetting":1376,"Ġput":1377,"Ġputs":1378,"Ġputting":1379,"Ġrun":1380,"Ġruns":1381,"Ġran":1382,"Ġrunning":1383,"Ġkeep":1384,"Ġkeeps":1385,"Ġkept":1386,"Ġfind":1387,"Ġfinds":1388,"Ġfound":1389,"Ġshow":1390,"Ġshows":1391,"Ġtry":1392,"Ġtries":1393,"Ġtried":1394,"Ġtrying":1395,"Ġstart":1396,"Ġstarts":1397,"Ġstarted":1398,"Ġchange":1399,"Ġchanges":1400,"Ġchanged":1401,"Ġchanging":1402,"Ġfollow":1403,"Ġfollows":1404,"Ġknow":1405,"Ġknows":1406,"Ġknown":1407,"Ġthink":1408,"Ġthinks":1409,"Ġthought":1410,"Ġsay":1411,"Ġsays":1412,"Ġsaid":1413,"Ġsee":1414,"Ġsees":1415,"Ġsaw":1416,"Ġseen":1417,"Ġcome":1418,"Ġcomes":1419,"Ġcame":1420,"Ġgo":1421,"Ġgoes":1422,"Ġwent":1423,"Ġgone":1424,"Ġbring":1425,"Ġbrings":1426,"Ġbrought":1427,"Ġtell":1428,"Ġtells":1429,"Ġtold":1430,"Ġleave":1431,"Ġleaves":1432,"Ġleft":1433,"Ġhappen":1434,"Ġhappens":1435,"Ġprovide":1436,"Ġprovides":1437,"Ġprovided":1438,"Ġconsider":1439,"Ġconsiders":1440,"Ġappear":1441,"Ġappears":1442,"Ġappeared":1443,"Ġform":1444,"Ġforms":1445,"Ġformed":1446,"Ġseem":1447,"Ġseems":1448,"Ġseemed":1449,"Ġpoint":1450,"Ġpoints":1451,"Ġpointed":1452,"Ġturn":1453,"Ġturns":1454,"Ġturned":1455,"Ġturning":1456,"Ġplay":1457,"Ġplays":1458,"Ġthings":1459,"Ġthing":1460,"Ġtime":1461,"Ġtimes":1462,"Ġyear":1463,"Ġyears":1464,"Ġpeople":1465,"Ġplace":1466,"Ġplaces":1467,"Ġpart":1468,"Ġparts":1469,"Ġworld":1470,"Ġnumber":1471,"Ġnumbers":1472,"Ġsystem":1473,"Ġsystems":1474,"Ġgroup":1475,"Ġgroups":1476,"Ġline":1477,"Ġlines":1478,"Ġfile":1479,"Ġfiles":1480,"Ġcode":1481,"Ġdata":1482,"Ġfunction":1483,"Ġfunctions":1484,"Ġvalue":1485,"Ġvalues":1486,"Ġtype":1487,"Ġtypes":1488,"Ġclass":1489,"Ġclasses":1490,"Ġobject":1491,"Ġobjects":1492,"Ġmethod":1493,"Ġmethods":1494,"Ġresult":1495,"Ġresults":1496,"Ġprocess":1497,"Ġprocesses":1498,"Ġstate":1499,"Ġstates":1500,"Ġmodel":1501,"Ġmodels":1502,"Ġlevel":1503,"Ġlevels":1504,"Ġcase":1505,"Ġcases":1506,"Ġexample":1507,"Ġexamples":1508,"Ġinput":1509,"Ġinputs":1510,"Ġoutput":1511,"Ġoutputs":1512,"Ġerror":1513,"Ġerrors":1514,"Ġstatus":1515,"Ġmessage":1516,"Ġmessages":1517,"Ġrequest":1518,"Ġrequests":1519,"Ġresponse":1520,"Ġresponses":1521,"Ġreturn":1522,"Ġreturns":1523,"Ġimport":1524,"Ġimports":1525,"Ġexport":1526,"Ġexports":1527,"Ġdefine":1528,"Ġdefines":1529,"Ġdefined":1530,"Ġdeclare":1531,"Ġdeclares":1532,"Ġinclude":1533,"Ġincludes":1534,"Ġconfig":1535,"Ġsettings":1536,"Ġoption":1537,"Ġoptions":1538,"Ġparam":1539,"Ġparams":1540,"Ġargs":1541,"Ġtrue":1542,"Ġfalse":1543,"Ġnull":1544,"ĠNone":1545,"Ġundefined":1546,"Ġlen":1547,"Ġsize":1548,"Ġcount":1549,"Ġsum":1550,"Ġmax":1551,"Ġmin":1552,"Ġprint":1553,"Ġlog":1554,"Ġdebug":1555,"Ġinfo":1556,"Ġwarn":1557,"Ġtrain":1558,"Ġtest":1559,"Ġeval":1560,"Ġvalid":1561,"Ġval":1562,"Ġpage":1563,"Ġhome":1564,"Ġname":1565,"Ġkey":1566,"Ġkeys":1567,"Ġpath":1568,"Ġdir":1569,"Ġroot":1570,"Ġitem":1571,"Ġitems":1572,"Ġsource":1573,"Ġtarget":1574,"Ġbase":1575,"Ġmain":1576,"Ġprimary":1577,"Ġadd":1578,"Ġremove":1579,"Ġcreate":1580,"Ġdelete":1581,"Ġupdate":1582,"Ġopen":1583,"Ġclose":1584,"Ġread":1585,"Ġwrite":1586,"Ġload":1587,"Ġsave":1588,"Ġpush":1589,"Ġpop":1590,"Ġinsert":1591,"Ġappend":1592,"Ġsplit":1593,"Ġbegin":1594,"Ġend":1595,"Ġstop":1596,"Ġenable":1597,"Ġdisable":1598,"Ġuser":1599,"Ġusers":1600,"Ġadmin":1601,"Ġmanager":1602,"Ġstring":1603,"Ġint":1604,"Ġfloat":1605,"Ġdouble":1606,"Ġbool":1607,"Ġvoid":1608,"Ġlist":1609,"Ġdict":1610,"Ġtuple":1611,"Ġarray":1612,"Ġapi":1613,"Ġurl":1614,"Ġuri":1615,"Ġendpoint":1616,"Ġroute":1617,"Ġhttp":1618,"Ġhttps":1619,"Ġclient":1620,"Ġserver":1621,"Ġsocket":1622,"Ġmath":1623,"Ġscience":1624,"Ġanalysis":1625,"Ġtheory":1626,"Ġproof":1627,"Ġtheorem":1628,"Ġlemma":1629,"Ġequation":1630,"Ġformula":1631,"ing":1632,"ed":1633,"ly":1634,"tion":1635,"sion":1636,"ment":1637,"ness":1638,"ity":1639,"able":1640,"ible":1641,"al":1642,"ial":1643,"ical":1644,"ous":1645,"eous":1646,"ious":1647,"ive":1648,"ative":1649,"ful":1650,"wise":1651,"ward":1652,"un":1653,"re":1654,"im":1655,"ir":1656,"il":1657,"dis":1658,"mis":1659,"non":1660,"pre":1661,"pro":1662,"per":1663,"trans":1664,"inter":1665,"intra":1666,"extra":1667,"super":1668,"sur":1669,"semi":1670,"multi":1671,"mono":1672,"bi":1673,"tri":1674,"anti":1675,"counter":1676,"down":1677,"co":1678,"con":1679,"com":1680,"col":1681,"cor":1682,"de":1683,"di":1684,"dif":1685,"ex":1686,"fore":1687,"macro":1688,"micro":1689,"mid":1690,"post":1691,"tele":1692,"ultra":1693,"-ing":1694,"-ed":1695,"-ly":1696,"-tion":1697,"-sion":1698,"-ment":1699,"-ness":1700,"-ity":1701,"-able":1702,"-ible":1703,"-al":1704,"-ous":1705,"-ive":1706,"-ful":1707,"-less":1708,"un-":1709,"re-":1710,"pre-":1711,"non-":1712,"anti-":1713,"counter-":1714,"self-":1715,"all-":1716,"well-":1717,"so-":1718,"to-":1719,"in-":1720,"'t":1721,"'s":1722,"'m":1723,"'re":1724,"'ve":1725,"'ll":1726,"'d":1727,"n't":1728,"don't":1729,"can't":1730,"won't":1731,"isn't":1732,"aren't":1733,"wasn't":1734,"weren't":1735,"hasn't":1736,"haven't":1737,"hadn't":1738,"doesn't":1739,"didn't":1740,"couldn't":1741,"shouldn't":1742,"wouldn't":1743,"mustn't":1744,"needn't":1745,"mightn't":1746,"<-":1747,"\n":1748,"\t":1749," ":1750," ":1751," ":1752," ":1753,"ĠĠ":1754,"ĠĠĠ":1755,"ĠĠĠĠ":1756},"merges":[]}}
|
|
|
|
| 1 |
+
{"version":"1.0","truncation":null,"padding":null,"added_tokens":[{"id":0,"content":"<unk>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":1,"content":"<s>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":2,"content":"</s>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":3,"content":"<pad>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":4,"content":"<|system|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":5,"content":"<|user|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":6,"content":"<|assistant|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":7,"content":"<think>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":8,"content":"</think>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":9,"content":"[INST]","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":10,"content":"[/INST]","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":11,"content":"<|begin_of_thought|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":12,"content":"<|end_of_thought|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":13,"content":"<|reflect|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":14,"content":"<|revise|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":15,"content":"<|verify|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":16,"content":"<|code|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":17,"content":"<|text|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":18,"content":"<|math|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":19,"content":"<|think|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":20,"content":"<|answer|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":21,"content":"<|step|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":22,"content":"<|reason|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":23,"content":"<|check|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":24,"content":"<|output|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":25,"content":"<|plan|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":26,"content":"<|solve|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":27,"content":"<|analyze|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":28,"content":"<|conclude|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":29,"content":"<|approach|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":30,"content":"<|alternative|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":31,"content":"<|summary|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":32,"content":"<|question|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":33,"content":"<|hint|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":34,"content":"<|example|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":35,"content":"<|correct|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":36,"content":"<|incorrect|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":37,"content":"<|feedback|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":38,"content":"<|start|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":39,"content":"<|end|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":40,"content":"<|sep|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":41,"content":"<|cls|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":42,"content":"<|tool|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":43,"content":"<|function|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":44,"content":"<|result|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":45,"content":"<|input|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":46,"content":"<|detect|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":47,"content":"<|context|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":48,"content":"<|proof|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":49,"content":"<|lemma|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true},{"id":50,"content":"<|theorem|>","single_word":false,"lstrip":false,"rstrip":false,"normalized":false,"special":true}],"normalizer":null,"pre_tokenizer":{"type":"ByteLevel","add_prefix_space":false,"trim_offsets":true},"post_processor":null,"decoder":{"type":"ByteLevel","add_prefix_space":false,"trim_offsets":true},"model":{"type":"BPE","dropout":null,"unk_token":"<unk>","byte_fallback":true,"vocab":{"<unk>":0,"<s>":1,"</s>":2,"<pad>":3,"<|system|>":4,"<|user|>":5,"<|assistant|>":6,"<think>":7,"</think>":8,"[INST]":9,"[/INST]":10,"<|begin_of_thought|>":11,"<|end_of_thought|>":12,"<|reflect|>":13,"<|revise|>":14,"<|verify|>":15,"<|code|>":16,"<|text|>":17,"<|math|>":18,"<|think|>":19,"<|answer|>":20,"<|step|>":21,"<|reason|>":22,"<|check|>":23,"<|output|>":24,"<|plan|>":25,"<|solve|>":26,"<|analyze|>":27,"<|conclude|>":28,"<|approach|>":29,"<|alternative|>":30,"<|summary|>":31,"<|question|>":32,"<|hint|>":33,"<|example|>":34,"<|correct|>":35,"<|incorrect|>":36,"<|feedback|>":37,"<|start|>":38,"<|end|>":39,"<|sep|>":40,"<|cls|>":41,"<|tool|>":42,"<|function|>":43,"<|result|>":44,"<|input|>":45,"<|detect|>":46,"<|context|>":47,"<|proof|>":48,"<|lemma|>":49,"<|theorem|>":50,"Ā":51,"ā":52,"Ă":53,"ă":54,"Ą":55,"ą":56,"Ć":57,"ć":58,"Ĉ":59,"ĉ":60,"Ċ":61,"ċ":62,"Č":63,"č":64,"Ď":65,"ď":66,"Đ":67,"đ":68,"Ē":69,"ē":70,"Ĕ":71,"ĕ":72,"Ė":73,"ė":74,"Ę":75,"ę":76,"Ě":77,"ě":78,"Ĝ":79,"ĝ":80,"Ğ":81,"ğ":82,"Ġ":83,"!":84,"\"":85,"#":86,"$":87,"%":88,"&":89,"'":90,"(":91,")":92,"*":93,"+":94,",":95,"-":96,".":97,"/":98,"0":99,"1":100,"2":101,"3":102,"4":103,"5":104,"6":105,"7":106,"8":107,"9":108,":":109,";":110,"<":111,"=":112,">":113,"?":114,"@":115,"A":116,"B":117,"C":118,"D":119,"E":120,"F":121,"G":122,"H":123,"I":124,"J":125,"K":126,"L":127,"M":128,"N":129,"O":130,"P":131,"Q":132,"R":133,"S":134,"T":135,"U":136,"V":137,"W":138,"X":139,"Y":140,"Z":141,"[":142,"\\":143,"]":144,"^":145,"_":146,"`":147,"a":148,"b":149,"c":150,"d":151,"e":152,"f":153,"g":154,"h":155,"i":156,"j":157,"k":158,"l":159,"m":160,"n":161,"o":162,"p":163,"q":164,"r":165,"s":166,"t":167,"u":168,"v":169,"w":170,"x":171,"y":172,"z":173,"{":174,"|":175,"}":176,"~":177,"ġ":178,"Ģ":179,"ģ":180,"Ĥ":181,"ĥ":182,"Ħ":183,"ħ":184,"Ĩ":185,"ĩ":186,"Ī":187,"ī":188,"Ĭ":189,"ĭ":190,"Į":191,"į":192,"İ":193,"ı":194,"IJ":195,"ij":196,"Ĵ":197,"ĵ":198,"Ķ":199,"ķ":200,"ĸ":201,"Ĺ":202,"ĺ":203,"Ļ":204,"ļ":205,"Ľ":206,"ľ":207,"Ŀ":208,"ŀ":209,"Ł":210,"ł":211,"¡":212,"¢":213,"£":214,"¤":215,"¥":216,"¦":217,"§":218,"¨":219,"©":220,"ª":221,"«":222,"¬":223,"Ń":224,"®":225,"¯":226,"°":227,"±":228,"²":229,"³":230,"´":231,"µ":232,"¶":233,"·":234,"¸":235,"¹":236,"º":237,"»":238,"¼":239,"½":240,"¾":241,"¿":242,"À":243,"Á":244,"Â":245,"Ã":246,"Ä":247,"Å":248,"Æ":249,"Ç":250,"È":251,"É":252,"Ê":253,"Ë":254,"Ì":255,"Í":256,"Î":257,"Ï":258,"Ð":259,"Ñ":260,"Ò":261,"Ó":262,"Ô":263,"Õ":264,"Ö":265,"×":266,"Ø":267,"Ù":268,"Ú":269,"Û":270,"Ü":271,"Ý":272,"Þ":273,"ß":274,"à":275,"á":276,"â":277,"ã":278,"ä":279,"å":280,"æ":281,"ç":282,"è":283,"é":284,"ê":285,"ë":286,"ì":287,"í":288,"î":289,"ï":290,"ð":291,"ñ":292,"ò":293,"ó":294,"ô":295,"õ":296,"ö":297,"÷":298,"ø":299,"ù":300,"ú":301,"û":302,"ü":303,"ý":304,"þ":305,"ÿ":306,"the":307,"be":308,"to":309,"of":310,"and":311,"in":312,"that":313,"have":314,"it":315,"for":316,"not":317,"on":318,"with":319,"he":320,"as":321,"you":322,"do":323,"at":324,"this":325,"but":326,"his":327,"by":328,"from":329,"they":330,"we":331,"say":332,"her":333,"she":334,"or":335,"an":336,"will":337,"my":338,"one":339,"all":340,"would":341,"there":342,"their":343,"what":344,"so":345,"up":346,"out":347,"if":348,"about":349,"who":350,"get":351,"which":352,"go":353,"me":354,"when":355,"make":356,"can":357,"like":358,"time":359,"no":360,"just":361,"him":362,"know":363,"take":364,"people":365,"into":366,"year":367,"your":368,"good":369,"some":370,"could":371,"them":372,"see":373,"other":374,"than":375,"then":376,"now":377,"look":378,"only":379,"come":380,"its":381,"over":382,"think":383,"also":384,"back":385,"after":386,"use":387,"two":388,"how":389,"our":390,"work":391,"first":392,"well":393,"way":394,"even":395,"new":396,"want":397,"because":398,"any":399,"these":400,"give":401,"day":402,"most":403,"us":404,"is":405,"was":406,"are":407,"were":408,"been":409,"has":410,"had":411,"did":412,"does":413,"am":414,"being":415,"having":416,"doing":417,"saying":418,"going":419,"getting":420,"making":421,"knowing":422,"taking":423,"thinking":424,"coming":425,"came":426,"goes":427,"gone":428,"went":429,"saw":430,"seen":431,"seeing":432,"said":433,"says":434,"got":435,"gotten":436,"made":437,"makes":438,"knew":439,"known":440,"knows":441,"thought":442,"thinks":443,"took":444,"taken":445,"takes":446,"gave":447,"given":448,"gives":449,"giving":450,"find":451,"found":452,"finds":453,"finding":454,"tell":455,"told":456,"tells":457,"telling":458,"ask":459,"asked":460,"asks":461,"asking":462,"show":463,"showed":464,"shown":465,"shows":466,"showing":467,"try":468,"tried":469,"tries":470,"trying":471,"leave":472,"left":473,"leaves":474,"leaving":475,"call":476,"called":477,"calls":478,"calling":479,"keep":480,"kept":481,"keeps":482,"keeping":483,"let":484,"lets":485,"letting":486,"begin":487,"began":488,"begun":489,"begins":490,"beginning":491,"seem":492,"seemed":493,"seems":494,"seeming":495,"help":496,"helped":497,"helps":498,"helping":499,"turn":500,"turned":501,"turns":502,"turning":503,"start":504,"started":505,"starts":506,"starting":507,"bring":508,"brought":509,"brings":510,"bringing":511,"happen":512,"happened":513,"happens":514,"happening":515,"write":516,"wrote":517,"written":518,"writes":519,"writing":520,"provide":521,"provided":522,"provides":523,"providing":524,"consider":525,"considered":526,"considers":527,"considering":528,"appear":529,"appeared":530,"appears":531,"appearing":532,"follow":533,"followed":534,"follows":535,"following":536,"change":537,"changed":538,"changes":539,"changing":540,"form":541,"formed":542,"forms":543,"forming":544,"need":545,"needed":546,"needs":547,"needing":548,"set":549,"sets":550,"setting":551,"put":552,"puts":553,"putting":554,"run":555,"runs":556,"running":557,"move":558,"moved":559,"moves":560,"moving":561,"stand":562,"stood":563,"stands":564,"standing":565,"win":566,"won":567,"wins":568,"winning":569,"play":570,"played":571,"plays":572,"playing":573,"point":574,"points":575,"pointed":576,"pointing":577,"large":578,"small":579,"big":580,"little":581,"long":582,"short":583,"high":584,"low":585,"old":586,"young":587,"great":588,"important":589,"different":590,"same":591,"many":592,"much":593,"more":594,"few":595,"own":596,"very":597,"such":598,"still":599,"too":600,"here":601,"where":602,"why":603,"while":604,"though":605,"although":606,"until":607,"since":608,"before":609,"during":610,"without":611,"within":612,"between":613,"through":614,"across":615,"around":616,"above":617,"below":618,"under":619,"again":620,"ever":621,"never":622,"always":623,"often":624,"sometimes":625,"together":626,"alone":627,"already":628,"yet":629,"almost":630,"quite":631,"rather":632,"bad":633,"better":634,"worse":635,"best":636,"worst":637,"less":638,"every":639,"each":640,"both":641,"either":642,"neither":643,"none":644,"thing":645,"things":646,"ways":647,"times":648,"years":649,"days":650,"week":651,"weeks":652,"month":653,"months":654,"part":655,"parts":656,"place":657,"places":658,"case":659,"cases":660,"world":661,"worlds":662,"number":663,"numbers":664,"group":665,"groups":666,"system":667,"systems":668,"program":669,"programs":670,"data":671,"information":672,"problem":673,"problems":674,"solution":675,"solutions":676,"method":677,"methods":678,"result":679,"results":680,"process":681,"processes":682,"function":683,"functions":684,"value":685,"values":686,"type":687,"types":688,"state":689,"states":690,"model":691,"models":692,"level":693,"levels":694,"line":695,"lines":696,"file":697,"files":698,"code":699,"codes":700,"list":701,"lists":702,"array":703,"arrays":704,"object":705,"objects":706,"class":707,"classes":708,"property":709,"properties":710,"input":711,"inputs":712,"output":713,"outputs":714,"return":715,"returns":716,"define":717,"defined":718,"defines":719,"defining":720,"declare":721,"declared":722,"import":723,"imports":724,"export":725,"exports":726,"include":727,"includes":728,"public":729,"private":730,"protected":731,"static":732,"final":733,"const":734,"void":735,"int":736,"float":737,"double":738,"char":739,"bool":740,"string":741,"true":742,"false":743,"null":744,"None":745,"nil":746,"undefined":747,"else":748,"elif":749,"switch":750,"default":751,"break":752,"catch":753,"finally":754,"throw":755,"raise":756,"except":757,"yield":758,"await":759,"async":760,"defer":761,"lambda":762,"map":763,"filter":764,"reduce":765,"sort":766,"delete":767,"free":768,"alloc":769,"realloc":770,"print":771,"printf":772,"println":773,"log":774,"debug":775,"error":776,"len":777,"size":778,"length":779,"count":780,"sum":781,"max":782,"min":783,"abs":784,"pow":785,"sqrt":786,"floor":787,"ceil":788,"round":789,"sin":790,"cos":791,"tan":792,"atan":793,"exp":794,"zero":795,"three":796,"four":797,"five":798,"six":799,"seven":800,"eight":801,"nine":802,"ten":803,"second":804,"third":805,"last":806,"next":807,"previous":808,"current":809,"initial":810,"primary":811,"secondary":812,"main":813,"basic":814,"advanced":815,"simple":816,"complex":817,"single":818,"multiple":819,"add":820,"sub":821,"mul":822,"div":823,"mod":824,"inc":825,"dec":826,"push":827,"pop":828,"shift":829,"unshift":830,"insert":831,"remove":832,"append":833,"prepend":834,"concat":835,"join":836,"split":837,"slice":838,"open":839,"close":840,"read":841,"load":842,"save":843,"create":844,"update":845,"select":846,"merge":847,"end":848,"stop":849,"pause":850,"resume":851,"enable":852,"disable":853,"allow":854,"deny":855,"grant":856,"revoke":857,"user":858,"users":859,"name":860,"names":861,"id":862,"ids":863,"key":864,"keys":865,"field":866,"fields":867,"table":868,"tables":869,"row":870,"rows":871,"column":872,"columns":873,"index":874,"indexes":875,"indices":876,"query":877,"queries":878,"avg":879,"total":880,"page":881,"pages":882,"home":883,"login":884,"logout":885,"signup":886,"errors":887,"warning":888,"warnings":889,"info":890,"success":891,"failure":892,"status":893,"message":894,"messages":895,"request":896,"requests":897,"response":898,"responses":899,"client":900,"server":901,"api":902,"endpoint":903,"route":904,"http":905,"https":906,"url":907,"uri":908,"port":909,"host":910,"config":911,"configuration":912,"settings":913,"option":914,"options":915,"param":916,"params":917,"parameter":918,"parameters":919,"arg":920,"args":921,"argument":922,"arguments":923,"kwargs":924,"path":925,"dir":926,"directory":927,"dirs":928,"folder":929,"folders":930,"item":931,"items":932,"element":933,"elements":934,"entry":935,"entries":936,"note":937,"notes":938,"text":939,"texts":940,"content":941,"contents":942,"source":943,"sources":944,"target":945,"targets":946,"ref":947,"refs":948,"struct":949,"structs":950,"union":951,"unions":952,"enum":953,"enums":954,"impl":955,"implement":956,"implementation":957,"interface":958,"abstract":959,"virtual":960,"override":961,"overload":962,"base":963,"derived":964,"parent":965,"child":966,"children":967,"root":968,"leaf":969,"node":970,"nodes":971,"edge":972,"edges":973,"tree":974,"graph":975,"queue":976,"stack":977,"heap":978,"dict":979,"dictionary":980,"hash":981,"hashmap":982,"link":983,"links":984,"linked":985,"pointer":986,"pointers":987,"thread":988,"threads":989,"task":990,"tasks":991,"sync":992,"lock":993,"mutex":994,"semaphore":995,"buffer":996,"buffers":997,"cache":998,"cached":999,"pool":1000,"pools":1001,"memory":1002,"disk":1003,"network":1004,"socket":1005,"sockets":1006,"stream":1007,"streams":1008,"packet":1009,"packets":1010,"frame":1011,"meta":1012,"metadata":1013,"header":1014,"headers":1015,"body":1016,"payload":1017,"token":1018,"tokens":1019,"session":1020,"cookie":1021,"cookies":1022,"auth":1023,"register":1024,"password":1025,"salt":1026,"encrypt":1027,"decrypt":1028,"encode":1029,"decode":1030,"cert":1031,"certificate":1032,"train":1033,"training":1034,"trained":1035,"test":1036,"testing":1037,"tested":1038,"valid":1039,"validate":1040,"validation":1041,"eval":1042,"evaluate":1043,"layer":1044,"layers":1045,"weight":1046,"weights":1047,"bias":1048,"biases":1049,"loss":1050,"losses":1051,"grad":1052,"grads":1053,"lr":1054,"learning_rate":1055,"optimizer":1056,"adam":1057,"sgd":1058,"batch":1059,"batches":1060,"epoch":1061,"epochs":1062,"step":1063,"steps":1064,"dataset":1065,"dataloader":1066,"tensor":1067,"tensors":1068,"gpu":1069,"cpu":1070,"tpu":1071,"device":1072,"devices":1073,"math":1074,"physics":1075,"chemistry":1076,"biology":1077,"science":1078,"compute":1079,"calculate":1080,"computation":1081,"calculation":1082,"equation":1083,"formula":1084,"expression":1085,"theorem":1086,"proof":1087,"prove":1088,"lemma":1089,"axiom":1090,"corollary":1091,"derivative":1092,"integral":1093,"limit":1094,"sequence":1095,"series":1096,"matrix":1097,"vector":1098,"subset":1099,"intersection":1100,"complement":1101,"space":1102,"ring":1103,"module":1104,"algebra":1105,"analysis":1106,"topology":1107,"geometry":1108,"statistics":1109,"probability":1110,"distribution":1111,"random":1112,"sample":1113,"mean":1114,"median":1115,"mode":1116,"variance":1117,"std":1118,"deviation":1119,"linear":1120,"nonlinear":1121,"convex":1122,"concave":1123,"smooth":1124,"algorithm":1125,"complexity":1126,"runtime":1127,"search":1128,"traverse":1129,"recursive":1130,"iterative":1131,"dynamic":1132,"greedy":1133,"optimization":1134,"constraint":1135,"feasible":1136,"optimal":1137,"example":1138,"question":1139,"answer":1140,"hint":1141,"reason":1142,"analyze":1143,"approach":1144,"solve":1145,"verify":1146,"check":1147,"conclude":1148,"summarize":1149,"explain":1150,"describe":1151,"correct":1152,"incorrect":1153,"right":1154,"wrong":1155,"positive":1156,"negative":1157,"yes":1158,"maybe":1159,"==":1160,"!=":1161,"<=":1162,">=":1163,"&&":1164,"||":1165,"++":1166,"--":1167,"+=":1168,"-=":1169,"*=":1170,"/=":1171,"->":1172,"=>":1173,"::":1174,"..":1175,"...":1176,"/*":1177,"*/":1178,"//":1179,"<!--":1180,"-->":1181,"10":1182,"11":1183,"12":1184,"13":1185,"14":1186,"15":1187,"16":1188,"17":1189,"18":1190,"19":1191,"20":1192,"30":1193,"40":1194,"50":1195,"60":1196,"70":1197,"80":1198,"90":1199,"100":1200,"-1":1201,"-2":1202,"0x":1203,"0b":1204,"0o":1205,"Ġthe":1206,"Ġto":1207,"Ġof":1208,"Ġand":1209,"Ġa":1210,"Ġin":1211,"Ġthat":1212,"Ġis":1213,"Ġwas":1214,"Ġfor":1215,"Ġon":1216,"Ġwith":1217,"Ġas":1218,"Ġby":1219,"Ġat":1220,"Ġfrom":1221,"Ġor":1222,"Ġan":1223,"Ġwill":1224,"Ġwould":1225,"Ġnot":1226,"Ġbut":1227,"Ġare":1228,"Ġwere":1229,"Ġbeen":1230,"Ġhave":1231,"Ġhas":1232,"Ġhad":1233,"Ġdo":1234,"Ġdoes":1235,"Ġdid":1236,"Ġcan":1237,"Ġcould":1238,"Ġshould":1239,"Ġmay":1240,"Ġmight":1241,"Ġshall":1242,"Ġmust":1243,"Ġif":1244,"Ġelse":1245,"Ġwhen":1246,"Ġwhile":1247,"Ġbecause":1248,"Ġso":1249,"Ġthen":1250,"Ġthan":1251,"Ġalso":1252,"Ġeven":1253,"Ġonly":1254,"Ġjust":1255,"Ġvery":1256,"Ġtoo":1257,"Ġstill":1258,"Ġalready":1259,"Ġhere":1260,"Ġthere":1261,"Ġwhere":1262,"Ġwhy":1263,"Ġhow":1264,"Ġwhat":1265,"Ġwhich":1266,"Ġthis":1267,"Ġthese":1268,"Ġthose":1269,"Ġit":1270,"Ġits":1271,"Ġthey":1272,"Ġthem":1273,"Ġwe":1274,"Ġus":1275,"Ġour":1276,"Ġyou":1277,"Ġyour":1278,"Ġhe":1279,"Ġhim":1280,"Ġhis":1281,"Ġshe":1282,"Ġher":1283,"Ġhers":1284,"Ġone":1285,"Ġno":1286,"Ġall":1287,"Ġany":1288,"Ġsome":1289,"Ġeach":1290,"Ġevery":1291,"Ġboth":1292,"Ġneither":1293,"Ġeither":1294,"Ġmore":1295,"Ġmost":1296,"Ġfew":1297,"Ġother":1298,"Ġanother":1299,"Ġsuch":1300,"Ġsame":1301,"Ġdifferent":1302,"Ġown":1303,"Ġlike":1304,"Ġwell":1305,"Ġgood":1306,"Ġbad":1307,"Ġbetter":1308,"Ġbest":1309,"Ġnew":1310,"Ġold":1311,"Ġbig":1312,"Ġsmall":1313,"Ġlong":1314,"Ġshort":1315,"Ġhigh":1316,"Ġlow":1317,"Ġlarge":1318,"Ġlittle":1319,"Ġgreat":1320,"Ġimportant":1321,"Ġup":1322,"Ġdown":1323,"Ġout":1324,"Ġoff":1325,"Ġover":1326,"Ġunder":1327,"Ġagain":1328,"Ġback":1329,"Ġabout":1330,"Ġaround":1331,"Ġbetween":1332,"Ġthrough":1333,"Ġbefore":1334,"Ġafter":1335,"Ġduring":1336,"Ġuntil":1337,"Ġsince":1338,"Ġfirst":1339,"Ġlast":1340,"Ġnext":1341,"Ġprevious":1342,"Ġfinal":1343,"Ġget":1344,"Ġgot":1345,"Ġmake":1346,"Ġmade":1347,"Ġtake":1348,"Ġtook":1349,"Ġgive":1350,"Ġgave":1351,"Ġuse":1352,"Ġused":1353,"Ġusing":1354,"Ġneed":1355,"Ġneeds":1356,"Ġneeded":1357,"Ġwant":1358,"Ġwants":1359,"Ġwanted":1360,"Ġlet":1361,"Ġlets":1362,"Ġwork":1363,"Ġworks":1364,"Ġworked":1365,"Ġworking":1366,"Ġhelp":1367,"Ġhelps":1368,"Ġhelped":1369,"Ġcall":1370,"Ġcalls":1371,"Ġcalled":1372,"Ġcalling":1373,"Ġset":1374,"Ġsets":1375,"Ġsetting":1376,"Ġput":1377,"Ġputs":1378,"Ġputting":1379,"Ġrun":1380,"Ġruns":1381,"Ġran":1382,"Ġrunning":1383,"Ġkeep":1384,"Ġkeeps":1385,"Ġkept":1386,"Ġfind":1387,"Ġfinds":1388,"Ġfound":1389,"Ġshow":1390,"Ġshows":1391,"Ġtry":1392,"Ġtries":1393,"Ġtried":1394,"Ġtrying":1395,"Ġstart":1396,"Ġstarts":1397,"Ġstarted":1398,"Ġchange":1399,"Ġchanges":1400,"Ġchanged":1401,"Ġchanging":1402,"Ġfollow":1403,"Ġfollows":1404,"Ġknow":1405,"Ġknows":1406,"Ġknown":1407,"Ġthink":1408,"Ġthinks":1409,"Ġthought":1410,"Ġsay":1411,"Ġsays":1412,"Ġsaid":1413,"Ġsee":1414,"Ġsees":1415,"Ġsaw":1416,"Ġseen":1417,"Ġcome":1418,"Ġcomes":1419,"Ġcame":1420,"Ġgo":1421,"Ġgoes":1422,"Ġwent":1423,"Ġgone":1424,"Ġbring":1425,"Ġbrings":1426,"Ġbrought":1427,"Ġtell":1428,"Ġtells":1429,"Ġtold":1430,"Ġleave":1431,"Ġleaves":1432,"Ġleft":1433,"Ġhappen":1434,"Ġhappens":1435,"Ġprovide":1436,"Ġprovides":1437,"Ġprovided":1438,"Ġconsider":1439,"Ġconsiders":1440,"Ġappear":1441,"Ġappears":1442,"Ġappeared":1443,"Ġform":1444,"Ġforms":1445,"Ġformed":1446,"Ġseem":1447,"Ġseems":1448,"Ġseemed":1449,"Ġpoint":1450,"Ġpoints":1451,"Ġpointed":1452,"Ġturn":1453,"Ġturns":1454,"Ġturned":1455,"Ġturning":1456,"Ġplay":1457,"Ġplays":1458,"Ġthings":1459,"Ġthing":1460,"Ġtime":1461,"Ġtimes":1462,"Ġyear":1463,"Ġyears":1464,"Ġpeople":1465,"Ġplace":1466,"Ġplaces":1467,"Ġpart":1468,"Ġparts":1469,"Ġworld":1470,"Ġnumber":1471,"Ġnumbers":1472,"Ġsystem":1473,"Ġsystems":1474,"Ġgroup":1475,"Ġgroups":1476,"Ġline":1477,"Ġlines":1478,"Ġfile":1479,"Ġfiles":1480,"Ġcode":1481,"Ġdata":1482,"Ġfunction":1483,"Ġfunctions":1484,"Ġvalue":1485,"Ġvalues":1486,"Ġtype":1487,"Ġtypes":1488,"Ġclass":1489,"Ġclasses":1490,"Ġobject":1491,"Ġobjects":1492,"Ġmethod":1493,"Ġmethods":1494,"Ġresult":1495,"Ġresults":1496,"Ġprocess":1497,"Ġprocesses":1498,"Ġstate":1499,"Ġstates":1500,"Ġmodel":1501,"Ġmodels":1502,"Ġlevel":1503,"Ġlevels":1504,"Ġcase":1505,"Ġcases":1506,"Ġexample":1507,"Ġexamples":1508,"Ġinput":1509,"Ġinputs":1510,"Ġoutput":1511,"Ġoutputs":1512,"Ġerror":1513,"Ġerrors":1514,"Ġstatus":1515,"Ġmessage":1516,"Ġmessages":1517,"Ġrequest":1518,"Ġrequests":1519,"Ġresponse":1520,"Ġresponses":1521,"Ġreturn":1522,"Ġreturns":1523,"Ġimport":1524,"Ġimports":1525,"Ġexport":1526,"Ġexports":1527,"Ġdefine":1528,"Ġdefines":1529,"Ġdefined":1530,"Ġdeclare":1531,"Ġdeclares":1532,"Ġinclude":1533,"Ġincludes":1534,"Ġconfig":1535,"Ġsettings":1536,"Ġoption":1537,"Ġoptions":1538,"Ġparam":1539,"Ġparams":1540,"Ġargs":1541,"Ġtrue":1542,"Ġfalse":1543,"Ġnull":1544,"ĠNone":1545,"Ġundefined":1546,"Ġlen":1547,"Ġsize":1548,"Ġcount":1549,"Ġsum":1550,"Ġmax":1551,"Ġmin":1552,"Ġprint":1553,"Ġlog":1554,"Ġdebug":1555,"Ġinfo":1556,"Ġwarn":1557,"Ġtrain":1558,"Ġtest":1559,"Ġeval":1560,"Ġvalid":1561,"Ġval":1562,"Ġpage":1563,"Ġhome":1564,"Ġname":1565,"Ġkey":1566,"Ġkeys":1567,"Ġpath":1568,"Ġdir":1569,"Ġroot":1570,"Ġitem":1571,"Ġitems":1572,"Ġsource":1573,"Ġtarget":1574,"Ġbase":1575,"Ġmain":1576,"Ġprimary":1577,"Ġadd":1578,"Ġremove":1579,"Ġcreate":1580,"Ġdelete":1581,"Ġupdate":1582,"Ġopen":1583,"Ġclose":1584,"Ġread":1585,"Ġwrite":1586,"Ġload":1587,"Ġsave":1588,"Ġpush":1589,"Ġpop":1590,"Ġinsert":1591,"Ġappend":1592,"Ġsplit":1593,"Ġbegin":1594,"Ġend":1595,"Ġstop":1596,"Ġenable":1597,"Ġdisable":1598,"Ġuser":1599,"Ġusers":1600,"Ġadmin":1601,"Ġmanager":1602,"Ġstring":1603,"Ġint":1604,"Ġfloat":1605,"Ġdouble":1606,"Ġbool":1607,"Ġvoid":1608,"Ġlist":1609,"Ġdict":1610,"Ġtuple":1611,"Ġarray":1612,"Ġapi":1613,"Ġurl":1614,"Ġuri":1615,"Ġendpoint":1616,"Ġroute":1617,"Ġhttp":1618,"Ġhttps":1619,"Ġclient":1620,"Ġserver":1621,"Ġsocket":1622,"Ġmath":1623,"Ġscience":1624,"Ġanalysis":1625,"Ġtheory":1626,"Ġproof":1627,"Ġtheorem":1628,"Ġlemma":1629,"Ġequation":1630,"Ġformula":1631,"ing":1632,"ed":1633,"ly":1634,"tion":1635,"sion":1636,"ment":1637,"ness":1638,"ity":1639,"able":1640,"ible":1641,"al":1642,"ial":1643,"ical":1644,"ous":1645,"eous":1646,"ious":1647,"ive":1648,"ative":1649,"ful":1650,"wise":1651,"ward":1652,"un":1653,"re":1654,"im":1655,"ir":1656,"il":1657,"dis":1658,"mis":1659,"non":1660,"pre":1661,"pro":1662,"per":1663,"trans":1664,"inter":1665,"intra":1666,"extra":1667,"super":1668,"sur":1669,"semi":1670,"multi":1671,"mono":1672,"bi":1673,"tri":1674,"anti":1675,"counter":1676,"down":1677,"co":1678,"con":1679,"com":1680,"col":1681,"cor":1682,"de":1683,"di":1684,"dif":1685,"ex":1686,"fore":1687,"macro":1688,"micro":1689,"mid":1690,"post":1691,"tele":1692,"ultra":1693,"-ing":1694,"-ed":1695,"-ly":1696,"-tion":1697,"-sion":1698,"-ment":1699,"-ness":1700,"-ity":1701,"-able":1702,"-ible":1703,"-al":1704,"-ous":1705,"-ive":1706,"-ful":1707,"-less":1708,"un-":1709,"re-":1710,"pre-":1711,"non-":1712,"anti-":1713,"counter-":1714,"self-":1715,"all-":1716,"well-":1717,"so-":1718,"to-":1719,"in-":1720,"'t":1721,"'s":1722,"'m":1723,"'re":1724,"'ve":1725,"'ll":1726,"'d":1727,"n't":1728,"don't":1729,"can't":1730,"won't":1731,"isn't":1732,"aren't":1733,"wasn't":1734,"weren't":1735,"hasn't":1736,"haven't":1737,"hadn't":1738,"doesn't":1739,"didn't":1740,"couldn't":1741,"shouldn't":1742,"wouldn't":1743,"mustn't":1744,"needn't":1745,"mightn't":1746,"<-":1747,"\n":1748,"\t":1749," ":1750," ":1751," ":1752," ":1753,"ĠĠ":1754,"ĠĠĠ":1755,"ĠĠĠĠ":1756,"action":1757,"actually":1758,"address":1759,"agree":1760,"along":1761,"American":1762,"among":1763,"amount":1764,"animal":1765,"another":1766,"anything":1767,"area":1768,"argue":1769,"arm":1770,"article":1771,"artist":1772,"author":1773,"available":1774,"avoid":1775,"away":1776,"ball":1777,"bank":1778,"bar":1779,"battle":1780,"beauty":1781,"become":1782,"became":1783,"becoming":1784,"bed":1785,"behavior":1786,"behind":1787,"believe":1788,"benefit":1789,"beyond":1790,"bit":1791,"black":1792,"blood":1793,"board":1794,"book":1795,"born":1796,"boss":1797,"bother":1798,"bottle":1799,"bottom":1800,"box":1801,"boy":1802,"brain":1803,"bridge":1804,"brief":1805,"bright":1806,"broad":1807,"brother":1808,"budget":1809,"build":1810,"building":1811,"burn":1812,"business":1813,"buy":1814,"campaign":1815,"capital":1816,"car":1817,"care":1818,"career":1819,"carry":1820,"category":1821,"cause":1822,"central":1823,"century":1824,"certain":1825,"chair":1826,"chairman":1827,"challenge":1828,"chance":1829,"character":1830,"charge":1831,"choice":1832,"choose":1833,"chosen":1834,"church":1835,"citizen":1836,"city":1837,"civil":1838,"claim":1839,"clear":1840,"clearly":1841,"club":1842,"coach":1843,"cold":1844,"collection":1845,"college":1846,"color":1847,"comfortable":1848,"comment":1849,"committee":1850,"common":1851,"community":1852,"company":1853,"compare":1854,"competition":1855,"complete":1856,"completely":1857,"condition":1858,"conference":1859,"Congress":1860,"connect":1861,"conscious":1862,"contain":1863,"continue":1864,"contract":1865,"control":1866,"conversation":1867,"cost":1868,"country":1869,"couple":1870,"course":1871,"court":1872,"cover":1873,"crime":1874,"cultural":1875,"culture":1876,"cup":1877,"customer":1878,"cut":1879,"dark":1880,"daughter":1881,"deal":1882,"death":1883,"debate":1884,"decade":1885,"decide":1886,"decision":1887,"deep":1888,"defense":1889,"degree":1890,"democrat":1891,"democratic":1892,"design":1893,"despite":1894,"detail":1895,"determine":1896,"develop":1897,"development":1898,"die":1899,"difference":1900,"difficult":1901,"dinner":1902,"direction":1903,"director":1904,"discover":1905,"discuss":1906,"discussion":1907,"disease":1908,"dog":1909,"door":1910,"doubt":1911,"draw":1912,"dream":1913,"drive":1914,"driver":1915,"drop":1916,"drug":1917,"early":1918,"east":1919,"eat":1920,"economic":1921,"economy":1922,"edition":1923,"editor":1924,"education":1925,"effect":1926,"effort":1927,"election":1928,"employee":1929,"encourage":1930,"enemy":1931,"energy":1932,"enjoy":1933,"enough":1934,"enter":1935,"entire":1936,"environment":1937,"environmental":1938,"especially":1939,"establish":1940,"evening":1941,"event":1942,"everybody":1943,"everyone":1944,"everything":1945,"evidence":1946,"exactly":1947,"examine":1948,"executive":1949,"exist":1950,"expect":1951,"experience":1952,"explanation":1953,"extremely":1954,"eye":1955,"face":1956,"fact":1957,"factor":1958,"fail":1959,"fall":1960,"family":1961,"far":1962,"fast":1963,"father":1964,"fear":1965,"feature":1966,"federal":1967,"feel":1968,"feeling":1969,"fight":1970,"figure":1971,"fill":1972,"film":1973,"financial":1974,"fine":1975,"finish":1976,"firm":1977,"fish":1978,"fly":1979,"focus":1980,"food":1981,"foot":1982,"force":1983,"foreign":1984,"forget":1985,"former":1986,"forward":1987,"freedom":1988,"friendly":1989,"front":1990,"full":1991,"fund":1992,"future":1993,"game":1994,"garden":1995,"gas":1996,"general":1997,"generation":1998,"gentleman":1999,"girl":2000,"glad":2001,"glass":2002,"goal":2003,"god":2004,"gold":2005,"government":2006,"governor":2007,"green":2008,"ground":2009,"grow":2010,"growth":2011,"guess":2012,"gun":2013,"guy":2014,"half":2015,"hand":2016,"handle":2017,"hang":2018,"happy":2019,"hard":2020,"head":2021,"health":2022,"hear":2023,"heart":2024,"heat":2025,"heavy":2026,"hell":2027,"herself":2028,"hide":2029,"history":2030,"hit":2031,"hold":2032,"honest":2033,"hope":2034,"hospital":2035,"hotel":2036,"house":2037,"huge":2038,"human":2039,"hundred":2040,"husband":2041,"idea":2042,"identify":2043,"image":2044,"imagine":2045,"impact":2046,"imply":2047,"improve":2048,"including":2049,"increase":2050,"indeed":2051,"indicate":2052,"individual":2053,"industry":2054,"influence":2055,"inform":2056,"inside":2057,"instead":2058,"institution":2059,"interest":2060,"international":2061,"interview":2062,"introduce":2063,"investment":2064,"involve":2065,"issue":2066,"itself":2067,"job":2068,"journal":2069,"journey":2070,"judge":2071,"jump":2072,"justice":2073,"kill":2074,"kind":2075,"kitchen":2076,"knowledge":2077,"land":2078,"language":2079,"late":2080,"later":2081,"latter":2082,"laugh":2083,"launch":2084,"law":2085,"lawyer":2086,"lay":2087,"lead":2088,"leader":2089,"leading":2090,"learn":2091,"least":2092,"legal":2093,"letter":2094,"lie":2095,"life":2096,"lift":2097,"light":2098,"likely":2099,"listen":2100,"live":2101,"local":2102,"lord":2103,"lose":2104,"lost":2105,"lot":2106,"love":2107,"luck":2108,"lunch":2109,"machine":2110,"maintain":2111,"major":2112,"majority":2113,"manage":2114,"management":2115,"manager":2116,"manner":2117,"manufacturer":2118,"mark":2119,"market":2120,"marriage":2121,"master":2122,"material":2123,"matter":2124,"may":2125,"meaning":2126,"measure":2127,"media":2128,"medical":2129,"meet":2130,"meeting":2131,"member":2132,"mention":2133,"middle":2134,"might":2135,"military":2136,"million":2137,"mind":2138,"minute":2139,"miss":2140,"mission":2141,"mistake":2142,"mix":2143,"modern":2144,"mom":2145,"moment":2146,"money":2147,"moral":2148,"morning":2149,"mother":2150,"motion":2151,"movement":2152,"movie":2153,"music":2154,"narrative":2155,"nation":2156,"national":2157,"native":2158,"natural":2159,"nature":2160,"near":2161,"nearly":2162,"necessarily":2163,"necessary":2164,"neck":2165,"neighbor":2166,"nevertheless":2167,"night":2168,"nor":2169,"normal":2170,"north":2171,"nothing":2172,"notice":2173,"notion":2174,"nowhere":2175,"nuclear":2176,"occur":2177,"ocean":2178,"offer":2179,"office":2180,"officer":2181,"official":2182,"oil":2183,"OK":2184,"once":2185,"online":2186,"operate":2187,"operation":2188,"opinion":2189,"opportunity":2190,"opposition":2191,"order":2192,"organization":2193,"original":2194,"otherwise":2195,"ought":2196,"outside":2197,"overcome":2198,"owner":2199,"pain":2200,"paint":2201,"pair":2202,"paper":2203,"park":2204,"parliament":2205,"participant":2206,"particular":2207,"particularly":2208,"partner":2209,"party":2210,"pass":2211,"passage":2212,"past":2213,"patient":2214,"pattern":2215,"pay":2216,"peace":2217,"pension":2218,"percent":2219,"perfect":2220,"perform":2221,"performance":2222,"perhaps":2223,"period":2224,"permit":2225,"person":2226,"personal":2227,"perspective":2228,"phone":2229,"physical":2230,"pick":2231,"picture":2232,"piece":2233,"plan":2234,"plant":2235,"player":2236,"please":2237,"pleasure":2238,"plus":2239,"pocket":2240,"police":2241,"policy":2242,"political":2243,"politician":2244,"politics":2245,"poor":2246,"popular":2247,"population":2248,"position":2249,"possibility":2250,"possible":2251,"potentially":2252,"power":2253,"practice":2254,"prepare":2255,"presence":2256,"present":2257,"president":2258,"pressure":2259,"pretty":2260,"prevent":2261,"price":2262,"principle":2263,"prison":2264,"privilege":2265,"probably":2266,"procedure":2267,"produce":2268,"product":2269,"production":2270,"professional":2271,"professor":2272,"profile":2273,"profit":2274,"project":2275,"promise":2276,"promote":2277,"proper":2278,"proposal":2279,"propose":2280,"protect":2281,"protection":2282,"publication":2283,"publish":2284,"pull":2285,"purpose":2286,"pursue":2287,"quality":2288,"quarter":2289,"quick":2290,"quickly":2291,"quiet":2292,"race":2293,"radio":2294,"range":2295,"rate":2296,"reach":2297,"react":2298,"reaction":2299,"reader":2300,"reading":2301,"ready":2302,"real":2303,"reality":2304,"realize":2305,"really":2306,"reasonable":2307,"receive":2308,"recent":2309,"recently":2310,"recognize":2311,"recommend":2312,"record":2313,"recover":2314,"red":2315,"reflect":2316,"reform":2317,"region":2318,"relate":2319,"relationship":2320,"relative":2321,"relatively":2322,"release":2323,"relevant":2324,"relief":2325,"religion":2326,"religious":2327,"rely":2328,"remain":2329,"remember":2330,"remind":2331,"repeat":2332,"replace":2333,"report":2334,"reporter":2335,"represent":2336,"representation":2337,"republican":2338,"reputation":2339,"require":2340,"research":2341,"resource":2342,"respond":2343,"responsibility":2344,"responsible":2345,"rest":2346,"restaurant":2347,"retain":2348,"retire":2349,"reveal":2350,"review":2351,"revolution":2352,"rich":2353,"ride":2354,"rise":2355,"risk":2356,"river":2357,"road":2358,"rock":2359,"role":2360,"roll":2361,"room":2362,"rule":2363,"safe":2364,"safety":2365,"sale":2366,"scale":2367,"scene":2368,"schedule":2369,"school":2370,"scientist":2371,"score":2372,"screen":2373,"sea":2374,"season":2375,"seat":2376,"secret":2377,"section":2378,"security":2379,"seed":2380,"seek":2381,"self":2382,"sell":2383,"senate":2384,"senator":2385,"send":2386,"sense":2387,"serious":2388,"serve":2389,"service":2390,"settle":2391,"sexual":2392,"shadow":2393,"shape":2394,"share":2395,"sharp":2396,"sheet":2397,"ship":2398,"shock":2399,"shoe":2400,"shoot":2401,"shop":2402,"shot":2403,"shoulder":2404,"shut":2405,"sick":2406,"side":2407,"sight":2408,"sign":2409,"signal":2410,"significance":2411,"significant":2412,"silence":2413,"similar":2414,"simply":2415,"sing":2416,"sister":2417,"sit":2418,"site":2419,"situation":2420,"skill":2421,"skin":2422,"smile":2423,"society":2424,"soft":2425,"soldier":2426,"solid":2427,"somebody":2428,"somehow":2429,"someone":2430,"something":2431,"somewhat":2432,"son":2433,"song":2434,"soon":2435,"sound":2436,"south":2437,"speak":2438,"speaker":2439,"special":2440,"specific":2441,"speech":2442,"speed":2443,"spend":2444,"spin":2445,"spirit":2446,"spiritual":2447,"spokesman":2448,"sport":2449,"spot":2450,"spread":2451,"spring":2452,"staff":2453,"stage":2454,"standard":2455,"star":2456,"statement":2457,"station":2458,"stay":2459,"stick":2460,"stock":2461,"store":2462,"story":2463,"straight":2464,"strange":2465,"strategic":2466,"strategy":2467,"street":2468,"strength":2469,"stress":2470,"stretch":2471,"strike":2472,"strong":2473,"structure":2474,"struggle":2475,"student":2476,"study":2477,"subject":2478,"succeed":2479,"successful":2480,"suddenly":2481,"suffer":2482,"sufficient":2483,"suggest":2484,"suggestion":2485,"summer":2486,"supply":2487,"support":2488,"suppose":2489,"sure":2490,"surface":2491,"surgery":2492,"surprise":2493,"survey":2494,"survive":2495,"suspect":2496,"sustain":2497,"symbol":2498,"talent":2499,"talk":2500,"tape":2501,"taste":2502,"tax":2503,"teach":2504,"teacher":2505,"teaching":2506,"team":2507,"tear":2508,"technical":2509,"technique":2510,"technology":2511,"telephone":2512,"television":2513,"temperature":2514,"tend":2515,"term":2516,"testify":2517,"thank":2518,"themselves":2519,"therefore":2520,"thick":2521,"thin":2522,"thirty":2523,"threat":2524,"threaten":2525,"thus":2526,"ticket":2527,"tight":2528,"till":2529,"tiny":2530,"tip":2531,"title":2532,"today":2533,"tomorrow":2534,"tone":2535,"tonight":2536,"tool":2537,"top":2538,"totally":2539,"touch":2540,"tough":2541,"tour":2542,"toward":2543,"town":2544,"track":2545,"trade":2546,"tradition":2547,"traditional":2548,"traffic":2549,"transfer":2550,"transform":2551,"travel":2552,"treat":2553,"treatment":2554,"trial":2555,"trip":2556,"troop":2557,"trouble":2558,"truck":2559,"truly":2560,"trust":2561,"truth":2562,"tube":2563,"twice":2564,"typical":2565,"uncle":2566,"understand":2567,"understanding":2568,"unfortunately":2569,"unique":2570,"unit":2571,"United":2572,"universe":2573,"university":2574,"unless":2575,"unlike":2576,"unlikely":2577,"unusual":2578,"upper":2579,"urban":2580,"urge":2581,"used":2582,"useful":2583,"usual":2584,"usually":2585,"variety":2586,"various":2587,"vehicle":2588,"version":2589,"veteran":2590,"victim":2591,"victory":2592,"video":2593,"view":2594,"village":2595,"violence":2596,"visit":2597,"voice":2598,"volume":2599,"vote":2600,"voter":2601,"wage":2602,"wait":2603,"walk":2604,"wall":2605,"war":2606,"warm":2607,"warn":2608,"wash":2609,"watch":2610,"water":2611,"wave":2612,"weak":2613,"weapon":2614,"wear":2615,"weather":2616,"web":2617,"wedding":2618,"weekend":2619,"welcome":2620,"welfare":2621,"west":2622,"western":2623,"whatever":2624,"wheel":2625,"whenever":2626,"whereas":2627,"whether":2628,"white":2629,"whole":2630,"whom":2631,"whose":2632,"wide":2633,"widely":2634,"wife":2635,"wild":2636,"wind":2637,"window":2638,"wine":2639,"wing":2640,"winner":2641,"winter":2642,"wire":2643,"wish":2644,"woman":2645,"wonder":2646,"wonderful":2647,"wood":2648,"word":2649,"worker":2650,"working":2651,"works":2652,"worry":2653,"worth":2654,"writer":2655,"yard":2656,"yeah":2657,"youth":2658,"zone":2659,"ability":2660,"abroad":2661,"absent":2662,"absolute":2663,"absorb":2664,"abuse":2665,"academic":2666,"accept":2667,"access":2668,"accident":2669,"accompany":2670,"accomplish":2671,"account":2672,"accurate":2673,"accuse":2674,"achieve":2675,"acknowledge":2676,"acquire":2677,"adapt":2678,"addition":2679,"adjust":2680,"administration":2681,"admit":2682,"adopt":2683,"advance":2684,"advantage":2685,"adventure":2686,"advertise":2687,"advice":2688,"advise":2689,"advocate":2690,"affair":2691,"affect":2692,"afford":2693,"agency":2694,"agenda":2695,"agent":2696,"aggression":2697,"aggressive":2698,"aid":2699,"aim":2700,"air":2701,"airport":2702,"alarm":2703,"alcohol":2704,"alert":2705,"alive":2706,"alliance":2707,"allocate":2708,"ally":2709,"alter":2710,"alternative":2711,"amaze":2712,"ambition":2713,"amendment":2714,"amid":2715,"amongst":2716,"analyst":2717,"angle":2718,"angry":2719,"anniversary":2720,"announce":2721,"annual":2722,"anticipate":2723,"anxiety":2724,"anxious":2725,"apart":2726,"apartment":2727,"apologize":2728,"apparent":2729,"appeal":2730,"appearance":2731,"appetite":2732,"apple":2733,"applicant":2734,"application":2735,"apply":2736,"appoint":2737,"appreciate":2738,"appropriate":2739,"approval":2740,"approve":2741,"architecture":2742,"archive":2743,"arrange":2744,"arrangement":2745,"arrest":2746,"arrival":2747,"arrive":2748,"arrow":2749,"articulate":2750,"artificial":2751,"aside":2752,"aspect":2753,"assault":2754,"assemble":2755,"assembly":2756,"assert":2757,"assess":2758,"assessment":2759,"asset":2760,"assign":2761,"assist":2762,"assistance":2763,"associate":2764,"association":2765,"assume":2766,"assumption":2767,"atmosphere":2768,"attach":2769,"attack":2770,"attempt":2771,"attend":2772,"attention":2773,"attitude":2774,"attorney":2775,"attract":2776,"attraction":2777,"attractive":2778,"attribute":2779,"audience":2780,"auto":2781,"automatic":2782,"automatically":2783,"autonomy":2784,"avenue":2785,"average":2786,"award":2787,"aware":2788,"awareness":2789,"awful":2790,"background":2791,"bacteria":2792,"balance":2793,"bare":2794,"barely":2795,"barrier":2796,"basis":2797,"basket":2798,"bath":2799,"battery":2800,"bay":2801,"beach":2802,"bean":2803,"bear":2804,"beat":2805,"beautiful":2806,"bedroom":2807,"beer":2808,"behalf":2809,"behave":2810,"belief":2811,"believable":2812,"bell":2813,"belong":2814,"bench":2815,"bend":2816,"beneath":2817,"beneficial":2818,"beside":2819,"bet":2820,"betray":2821,"bible":2822,"bicycle":2823,"bid":2824,"bike":2825,"bill":2826,"bind":2827,"biological":2828,"birth":2829,"biscuit":2830,"bishop":2831,"bite":2832,"bitter":2833,"blade":2834,"blame":2835,"blank":2836,"blast":2837,"bleed":2838,"blend":2839,"bless":2840,"blind":2841,"block":2842,"blow":2843,"blue":2844,"blur":2845,"boast":2846,"boat":2847,"bomb":2848,"bond":2849,"bone":2850,"bonus":2851,"boom":2852,"boost":2853,"border":2854,"bore":2855,"borrow":2856,"bound":2857,"boundary":2858,"bowl":2859,"branch":2860,"brand":2861,"brave":2862,"bread":2863,"breadth":2864,"breast":2865,"breath":2866,"breathe":2867,"breathing":2868,"breed":2869,"brick":2870,"bride":2871,"briefly":2872,"brilliant":2873,"broadcast":2874,"broken":2875,"bronze":2876,"brow":2877,"brown":2878,"brush":2879,"bubble":2880,"bucket":2881,"buddy":2882,"buffalo":2883,"bunch":2884,"burden":2885,"burglar":2886,"burst":2887,"bury":2888,"bus":2889,"butter":2890,"button":2891,"cabin":2892,"cabinet":2893,"cable":2894,"cake":2895,"calendar":2896,"calm":2897,"camera":2898,"camp":2899,"campus":2900,"canal":2901,"cancel":2902,"candidate":2903,"candle":2904,"cap":2905,"capable":2906,"capacity":2907,"captain":2908,"capture":2909,"carbon":2910,"card":2911,"careful":2912,"carefully":2913,"carrier":2914,"cart":2915,"carve":2916,"cast":2917,"castle":2918,"casualty":2919,"catalog":2920,"catalogue":2921,"cattle":2922,"celebrate":2923,"celebration":2924,"cell":2925,"cellular":2926,"census":2927,"centimeter":2928,"ceremony":2929,"certainly":2930,"chain":2931,"chamber":2932,"champion":2933,"championship":2934,"channel":2935,"chapter":2936,"characteristic":2937,"charity":2938,"chart":2939,"chase":2940,"cheap":2941,"cheat":2942,"cheek":2943,"cheese":2944,"chemical":2945,"chest":2946,"chicken":2947,"chief":2948,"childhood":2949,"chip":2950,"chocolate":2951,"chorus":2952,"christian":2953,"Christmas":2954,"chronic":2955,"chunk":2956,"circle":2957,"circuit":2958,"circumstance":2959,"cite":2960,"civilian":2961,"clarify":2962,"clarity":2963,"clash":2964,"classic":2965,"classical":2966,"classification":2967,"classroom":2968,"clause":2969,"clean":2970,"clever":2971,"click":2972,"cliff":2973,"climate":2974,"climb":2975,"clinic":2976,"clinical":2977,"clock":2978,"clone":2979,"closed":2980,"closely":2981,"closer":2982,"closet":2983,"closing":2984,"cloth":2985,"clothe":2986,"clothes":2987,"clothing":2988,"cloud":2989,"cluster":2990,"coal":2991,"coalition":2992,"coast":2993,"coat":2994,"coffee":2995,"cognitive":2996,"coin":2997,"collapse":2998,"collar":2999,"colleague":3000,"collect":3001,"collective":3002,"colonial":3003,"colony":3004,"combat":3005,"combine":3006,"combined":3007,"comedy":3008,"comfort":3009,"command":3010,"commander":3011,"commerce":3012,"commercial":3013,"commission":3014,"commit":3015,"commitment":3016,"commodity":3017,"communicate":3018,"communication":3019,"communist":3020,"compact":3021,"companion":3022,"comparison":3023,"compel":3024,"compensate":3025,"compensation":3026,"compete":3027,"competitive":3028,"competitor":3029,"complain":3030,"complaint":3031,"complicate":3032,"complicated":3033,"comply":3034,"component":3035,"compose":3036,"composition":3037,"compound":3038,"comprehensive":3039,"comprise":3040,"compromise":3041,"compulsory":3042,"computer":3043,"conceal":3044,"concede":3045,"conceive":3046,"concentrate":3047,"concentration":3048,"concept":3049,"conception":3050,"concern":3051,"concerning":3052,"concert":3053,"conclusion":3054,"concrete":3055,"condemn":3056,"conduct":3057,"confess":3058,"confession":3059,"confidence":3060,"confident":3061,"confidential":3062,"confine":3063,"confirm":3064,"conflict":3065,"confront":3066,"confusion":3067,"congratulate":3068,"congress":3069,"connection":3070,"consciousness":3071,"consecutive":3072,"consensus":3073,"consent":3074,"consequence":3075,"consequently":3076,"conservation":3077,"conservative":3078,"considerable":3079,"considerably":3080,"consist":3081,"consistent":3082,"consistently":3083,"constant":3084,"constantly":3085,"constitute":3086,"constitution":3087,"constitutional":3088,"construct":3089,"construction":3090,"consult":3091,"consultant":3092,"consume":3093,"consumer":3094,"consumption":3095,"contact":3096,"contemporary":3097,"contend":3098,"contest":3099,"context":3100,"continent":3101,"continually":3102,"continuity":3103,"continuous":3104,"continuously":3105,"contradiction":3106,"contrary":3107,"contribute":3108,"contribution":3109,"contributor":3110,"controversial":3111,"controversy":3112,"convenience":3113,"convenient":3114,"convention":3115,"conventional":3116,"conversion":3117,"convert":3118,"convey":3119,"convict":3120,"conviction":3121,"convince":3122,"cook":3123,"cool":3124,"cooperate":3125,"cooperation":3126,"coordinate":3127,"coordination":3128,"cope":3129,"copper":3130,"copy":3131,"copyright":3132,"core":3133,"corn":3134,"corner":3135,"corporate":3136,"corporation":3137,"correction":3138,"correctly":3139,"correlate":3140,"correlation":3141,"correspond":3142,"correspondent":3143,"corridor":3144,"corruption":3145,"costly":3146,"cotton":3147,"council":3148,"counsel":3149,"counselor":3150,"counterpart":3151,"county":3152,"coup":3153,"courage":3154,"cousin":3155,"coverage":3156,"crack":3157,"craft":3158,"crash":3159,"creative":3160,"creativity":3161,"creator":3162,"creature":3163,"credibility":3164,"credit":3165,"creep":3166,"crew":3167,"criminal":3168,"crisis":3169,"criterion":3170,"critic":3171,"critical":3172,"criticism":3173,"criticize":3174,"crop":3175,"cross":3176,"crowd":3177,"crown":3178,"crucial":3179,"crude":3180,"cruel":3181,"cruise":3182,"crush":3183,"cry":3184,"crystal":3185,"cube":3186,"cuisine":3187,"cultivate":3188,"curious":3189,"currency":3190,"curriculum":3191,"curtain":3192,"curve":3193,"custody":3194,"custom":3195,"customary":3196,"cutting":3197,"cycle":3198,"dad":3199,"damage":3200,"damn":3201,"dance":3202,"danger":3203,"dangerous":3204,"dare":3205,"database":3206,"dawn":3207,"dead":3208,"deadline":3209,"deadly":3210,"deaf":3211,"dealer":3212,"dear":3213,"debt":3214,"decay":3215,"deceive":3216,"decent":3217,"decisive":3218,"deck":3219,"declaration":3220,"decline":3221,"decorate":3222,"decrease":3223,"decree":3224,"dedicate":3225,"deem":3226,"defeat":3227,"defend":3228,"defendant":3229,"defender":3230,"defensive":3231,"deficit":3232,"definite":3233,"definitely":3234,"definition":3235,"defy":3236,"delay":3237,"delegate":3238,"delegation":3239,"deliberate":3240,"deliberately":3241,"delicate":3242,"delicious":3243,"delight":3244,"deliver":3245,"delivery":3246,"demand":3247,"democracy":3248,"demographic":3249,"demonstrate":3250,"demonstration":3251,"denial":3252,"denote":3253,"depart":3254,"department":3255,"departure":3256,"depend":3257,"dependence":3258,"dependent":3259,"depict":3260,"deposit":3261,"depress":3262,"depression":3263,"deprive":3264,"depth":3265,"deputy":3266,"derive":3267,"descend":3268,"description":3269,"desert":3270,"deserve":3271,"designate":3272,"designer":3273,"desirable":3274,"desire":3275,"desk":3276,"desperate":3277,"desperately":3278,"destination":3279,"destroy":3280,"destruction":3281,"detailed":3282,"detain":3283,"detect":3284,"detection":3285,"detective":3286,"detention":3287,"deteriorate":3288,"determination":3289,"determined":3290,"developmental":3291,"devote":3292,"diabetes":3293,"diagnose":3294,"diagnosis":3295,"dialogue":3296,"diameter":3297,"diamond":3298,"diary":3299,"dictate":3300,"diet":3301,"differ":3302,"differentiate":3303,"differently":3304,"difficulty":3305,"dig":3306,"digest":3307,"digital":3308,"dignity":3309,"dilemma":3310,"dimension":3311,"diminish":3312,"dioxide":3313,"dip":3314,"diplomat":3315,"diplomatic":3316,"direct":3317,"directly":3318,"dirty":3319,"disability":3320,"disadvantage":3321,"disagree":3322,"disappear":3323,"disappoint":3324,"disappointment":3325,"disaster":3326,"disastrous":3327,"disc":3328,"discharge":3329,"discipline":3330,"disclose":3331,"discount":3332,"discourse":3333,"discovery":3334,"discrepancy":3335,"discretion":3336,"discrimination":3337,"dismiss":3338,"disorder":3339,"dispatch":3340,"display":3341,"disposal":3342,"dispose":3343,"dispute":3344,"disrupt":3345,"dissolve":3346,"distance":3347,"distant":3348,"distinct":3349,"distinction":3350,"distinctive":3351,"distinguish":3352,"distort":3353,"distract":3354,"distress":3355,"distribute":3356,"distributor":3357,"district":3358,"disturb":3359,"dive":3360,"diverse":3361,"diversity":3362,"divide":3363,"division":3364,"divorce":3365,"dock":3366,"doctor":3367,"doctrine":3368,"document":3369,"documentary":3370,"dollar":3371,"domain":3372,"dome":3373,"domestic":3374,"dominant":3375,"dominate":3376,"donation":3377,"donor":3378,"dose":3379,"dot":3380,"doubtful":3381,"downtown":3382,"draft":3383,"drag":3384,"drain":3385,"drama":3386,"dramatic":3387,"dramatically":3388,"drastic":3389,"drawing":3390,"drink":3391,"drought":3392,"drown":3393,"drum":3394,"drunk":3395,"dry":3396,"dual":3397,"dubious":3398,"duck":3399,"due":3400,"dull":3401,"dump":3402,"durable":3403,"duration":3404,"dust":3405,"duty":3406,"dynamics":3407,"eager":3408,"eagle":3409,"ear":3410,"earning":3411,"earth":3412,"ease":3413,"easily":3414,"eastern":3415,"echo":3416,"eclipse":3417,"ecological":3418,"ecology":3419,"economics":3420,"economist":3421,"ecosystem":3422,"edit":3423,"editorial":3424,"educate":3425,"educational":3426,"educator":3427,"effective":3428,"effectively":3429,"effectiveness":3430,"efficiency":3431,"efficient":3432,"efficiently":3433,"elaborate":3434,"elbow":3435,"elderly":3436,"elect":3437,"electoral":3438,"electric":3439,"electrical":3440,"electricity":3441,"electronic":3442,"electronics":3443,"elegant":3444,"elementary":3445,"eliminate":3446,"elimination":3447,"elite":3448,"elsewhere":3449,"email":3450,"embargo":3451,"embark":3452,"embarrass":3453,"embassy":3454,"embed":3455,"embody":3456,"embrace":3457,"emerge":3458,"emergence":3459,"emergency":3460,"emission":3461,"emotion":3462,"emotional":3463,"emphasis":3464,"emphasize":3465,"empire":3466,"empirical":3467,"employ":3468,"employer":3469,"employment":3470,"empower":3471,"enact":3472,"encompass":3473,"encounter":3474,"encouragement":3475,"endanger":3476,"endeavor":3477,"endorse":3478,"endorsement":3479,"endure":3480,"enforce":3481,"enforcement":3482,"engage":3483,"engagement":3484,"engine":3485,"engineering":3486,"enhance":3487,"enjoyment":3488,"enlarge":3489,"enormous":3490,"enrich":3491,"enroll":3492,"ensemble":3493,"ensure":3494,"enterprise":3495,"entertain":3496,"entertainment":3497,"enthusiasm":3498,"enthusiast":3499,"enthusiastic":3500,"entirely":3501,"entitle":3502,"entity":3503,"entrepreneur":3504,"envelope":3505,"epidemic":3506,"episode":3507,"equal":3508,"equality":3509,"equip":3510,"equipment":3511,"equivalent":3512,"era":3513,"erect":3514,"erupt":3515,"escalate":3516,"escape":3517,"essay":3518,"essence":3519,"essential":3520,"essentially":3521,"establishment":3522,"estate":3523,"estimate":3524,"estimation":3525,"eternal":3526,"ethical":3527,"ethics":3528,"ethnic":3529,"evacuate":3530,"evaluation":3531,"evenly":3532,"eventually":3533,"everyday":3534,"evident":3535,"evil":3536,"evoke":3537,"evolution":3538,"evolutionary":3539,"evolve":3540,"exact":3541,"exaggerate":3542,"examination":3543,"exceed":3544,"excellence":3545,"excellent":3546,"exception":3547,"exceptional":3548,"excess":3549,"excessive":3550,"exchange":3551,"excite":3552,"excitement":3553,"exciting":3554,"exclude":3555,"exclusion":3556,"exclusive":3557,"exclusively":3558,"excuse":3559,"execute":3560,"execution":3561,"exemplify":3562,"exercise":3563,"exert":3564,"exhaust":3565,"exhibit":3566,"exhibition":3567,"exile":3568,"existence":3569,"exit":3570,"expand":3571,"expansion":3572,"expectation":3573,"expedition":3574,"expel":3575,"expenditure":3576,"expense":3577,"expensive":3578,"expert":3579,"expertise":3580,"explicit":3581,"explicitly":3582,"explode":3583,"exploit":3584,"exploitation":3585,"exploration":3586,"explore":3587,"explosion":3588,"explosive":3589,"expose":3590,"exposure":3591,"express":3592,"extend":3593,"extension":3594,"extensive":3595,"extensively":3596,"extent":3597,"external":3598,"extinct":3599,"extinction":3600,"extract":3601,"extraordinary":3602,"extreme":3603,"fabric":3604,"fabulous":3605,"facade":3606,"facial":3607,"facilitate":3608,"facility":3609,"faction":3610,"faculty":3611,"fade":3612,"fair":3613,"fairly":3614,"fairness":3615,"faith":3616,"faithful":3617,"fake":3618,"fame":3619,"familiar":3620,"famine":3621,"fan":3622,"fancy":3623,"fantasy":3624,"fare":3625,"fascinate":3626,"fascinating":3627,"fashion":3628,"fat":3629,"fate":3630,"fatigue":3631,"fault":3632,"favor":3633,"favorable":3634,"favorite":3635,"fax":3636,"feast":3637,"feather":3638,"federation":3639,"fee":3640,"feed":3641,"feedback":3642,"fellow":3643,"fellowship":3644,"female":3645,"fence":3646,"fertile":3647,"fertilizer":3648,"festival":3649,"fetch":3650,"fever":3651,"fiber":3652,"fiction":3653,"fierce":3654,"fifteen":3655,"fifty":3656,"fig":3657,"fighter":3658,"finance":3659,"financially":3660,"financing":3661,"finger":3662,"finished":3663,"fire":3664,"firmly":3665,"fiscal":3666,"fisherman":3667,"fishing":3668,"fitness":3669,"fix":3670,"fixture":3671,"flag":3672,"flame":3673,"flash":3674,"flat":3675,"flavor":3676,"flee":3677,"fleet":3678,"flesh":3679,"flexibility":3680,"flexible":3681,"flight":3682,"flock":3683,"flood":3684,"flour":3685,"flow":3686,"flower":3687,"fluid":3688,"flush":3689,"folk":3690,"football":3691,"footnote":3692,"footstep":3693,"forbid":3694,"forbidden":3695,"forecast":3696,"forehead":3697,"foreigner":3698,"forest":3699,"forever":3700,"forge":3701,"forgive":3702,"fork":3703,"formal":3704,"format":3705,"formation":3706,"formulate":3707,"fort":3708,"forth":3709,"fortunate":3710,"fortune":3711,"forum":3712,"fossil":3713,"foster":3714,"foundation":3715,"founder":3716,"fountain":3717,"fraction":3718,"fracture":3719,"fragile":3720,"fragment":3721,"framework":3722,"franchise":3723,"frank":3724,"frankly":3725,"fraud":3726,"freely":3727,"freeze":3728,"freight":3729,"frequency":3730,"frequent":3731,"frequently":3732,"fresh":3733,"freshman":3734,"friction":3735,"friendship":3736,"frighten":3737,"frog":3738,"frontier":3739,"frost":3740,"frown":3741,"frozen":3742,"fruit":3743,"frustrate":3744,"frustration":3745,"fuel":3746,"fulfill":3747,"fun":3748,"functional":3749,"fundamental":3750,"funding":3751,"funeral":3752,"funny":3753,"fur":3754,"furious":3755,"furniture":3756,"further":3757,"furthermore":3758,"fury":3759,"fusion":3760,"gain":3761,"galaxy":3762,"gallery":3763,"gallon":3764,"gambling":3765,"gap":3766,"garage":3767,"garbage":3768,"garlic":3769,"garment":3770,"gasoline":3771,"gate":3772,"gather":3773,"gathering":3774,"gauge":3775,"gaze":3776,"gear":3777,"gender":3778,"gene":3779,"generally":3780,"generate":3781,"generator":3782,"generous":3783,"genetic":3784,"genetics":3785,"genius":3786,"genocide":3787,"genre":3788,"gentle":3789,"gently":3790,"genuine":3791,"genuinely":3792,"gesture":3793,"giant":3794,"gift":3795,"gigantic":3796,"glimpse":3797,"global":3798,"globalization":3799,"globe":3800,"glory":3801,"glove":3802,"glow":3803,"glucose":3804,"goddess":3805,"golden":3806,"golf":3807,"goodness":3808,"goods":3809,"gorgeous":3810,"gospel":3811,"gossip":3812,"govern":3813,"governance":3814,"grab":3815,"grace":3816,"grade":3817,"gradually":3818,"graduate":3819,"graduation":3820,"grain":3821,"gram":3822,"grammar":3823,"grand":3824,"grandfather":3825,"grandmother":3826,"graphic":3827,"grasp":3828,"grass":3829,"grateful":3830,"grave":3831,"gravity":3832,"gray":3833,"greatly":3834,"greenhouse":3835,"greet":3836,"grief":3837,"grin":3838,"grind":3839,"grip":3840,"grocery":3841,"gross":3842,"groundwater":3843,"guarantee":3844,"guard":3845,"guardian":3846,"guest":3847,"guidance":3848,"guide":3849,"guideline":3850,"guilty":3851,"guitar":3852,"gulf":3853,"gut":3854,"gym":3855,"habit":3856,"habitat":3857,"hair":3858,"hall":3859,"halt":3860,"hammer":3861,"handful":3862,"handling":3863,"handwriting":3864,"handy":3865,"happiness":3866,"harassment":3867,"harbor":3868,"hardly":3869,"hardware":3870,"harm":3871,"harmful":3872,"harmony":3873,"harvest":3874,"hat":3875,"hate":3876,"haul":3877,"hay":3878,"hazard":3879,"headache":3880,"headline":3881,"headquarters":3882,"heal":3883,"healthcare":3884,"healthy":3885,"hearing":3886,"heating":3887,"heaven":3888,"heavily":3889,"hedge":3890,"heel":3891,"height":3892,"helicopter":3893,"helmet":3894,"helpful":3895,"herb":3896,"heritage":3897,"hero":3898,"heroin":3899,"hesitate":3900,"hidden":3901,"hierarchy":3902,"highlight":3903,"highly":3904,"highway":3905,"hike":3906,"hill":3907,"himself":3908,"hip":3909,"hire":3910,"historian":3911,"historic":3912,"historical":3913,"hobby":3914,"holder":3915,"holding":3916,"hole":3917,"holiday":3918,"hollow":3919,"holy":3920,"homeland":3921,"homeless":3922,"homework":3923,"honesty":3924,"honey":3925,"honor":3926,"hook":3927,"hopeful":3928,"hopefully":3929,"horizon":3930,"horizontal":3931,"hormone":3932,"horn":3933,"horrible":3934,"horror":3935,"horse":3936,"hospitality":3937,"hostage":3938,"hostile":3939,"hot":3940,"hotline":3941,"hour":3942,"housing":3943,"hover":3944,"humane":3945,"humanitarian":3946,"humanity":3947,"humor":3948,"hunger":3949,"hungry":3950,"hunt":3951,"hunter":3952,"hunting":3953,"hurt":3954,"hut":3955,"hydrogen":3956,"hygiene":3957,"hypothesis":3958,"ice":3959,"icon":3960,"ideal":3961,"identical":3962,"identification":3963,"identity":3964,"ideology":3965,"ignorance":3966,"ignore":3967,"ill":3968,"illegal":3969,"illness":3970,"illusion":3971,"illustrate":3972,"illustration":3973,"imaginary":3974,"imagination":3975,"imitate":3976,"immediate":3977,"immediately":3978,"immense":3979,"immigrant":3980,"immigration":3981,"immune":3982,"immunity":3983,"implication":3984,"implicit":3985,"importance":3986,"impose":3987,"impossible":3988,"impress":3989,"impression":3990,"impressive":3991,"imprison":3992,"improbable":3993,"improvement":3994,"impulse":3995,"inability":3996,"inappropriate":3997,"incentive":3998,"incidence":3999,"incident":4000,"inclination":4001,"incline":4002,"inclusion":4003,"inclusive":4004,"income":4005,"incorporate":4006,"increasingly":4007,"incredible":4008,"incur":4009,"independence":4010,"independent":4011,"independently":4012,"indication":4013,"indicator":4014,"indictment":4015,"indigenous":4016,"indirect":4017,"indispensable":4018,"individuality":4019,"indoor":4020,"induce":4021,"indulge":4022,"industrial":4023,"industrialize":4024,"inequality":4025,"inevitable":4026,"inevitably":4027,"infant":4028,"infect":4029,"infection":4030,"infer":4031,"inference":4032,"inferior":4033,"infinite":4034,"infinity":4035,"inflation":4036,"inflict":4037,"influential":4038,"informal":4039,"infrastructure":4040,"ingredient":4041,"inhabit":4042,"inhabitant":4043,"inherent":4044,"inherit":4045,"inhibit":4046,"initially":4047,"initiate":4048,"initiative":4049,"inject":4050,"injection":4051,"injure":4052,"injury":4053,"inmate":4054,"inner":4055,"innocent":4056,"innovation":4057,"innovative":4058,"inquiry":4059,"insect":4060,"insertion":4061,"insight":4062,"insist":4063,"inspect":4064,"inspection":4065,"inspector":4066,"inspiration":4067,"inspire":4068,"install":4069,"installation":4070,"installment":4071,"instance":4072,"instant":4073,"instantly":4074,"instinct":4075,"institute":4076,"institutional":4077,"instruct":4078,"instruction":4079,"instructor":4080,"instrument":4081,"instrumental":4082,"insufficient":4083,"insult":4084,"insurance":4085,"intact":4086,"integrate":4087,"integration":4088,"integrity":4089,"intellectual":4090,"intelligence":4091,"intelligent":4092,"intend":4093,"intense":4094,"intensity":4095},"merges":[]}}
|
train_tiny.py
CHANGED
|
@@ -6,10 +6,12 @@ from torch.optim import AdamW
|
|
| 6 |
from torch.optim.lr_scheduler import LambdaLR
|
| 7 |
|
| 8 |
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
|
| 9 |
-
from scripts.model_tiny import
|
| 10 |
|
| 11 |
|
| 12 |
def _format_item(item, tokenizer):
|
|
|
|
|
|
|
| 13 |
if "messages" in item:
|
| 14 |
return tokenizer.apply_chat_template(item["messages"], tokenize=False)
|
| 15 |
system = item.get("system", "")
|
|
@@ -150,14 +152,8 @@ def train():
|
|
| 150 |
vocab_size = tok.vocab_size
|
| 151 |
max_seq = d_cfg.get("max_seq_length", 2048)
|
| 152 |
|
| 153 |
-
model
|
| 154 |
-
|
| 155 |
-
num_layers=3, num_heads=8, num_kv_heads=4,
|
| 156 |
-
max_seq_len=max_seq, tie_weights=True,
|
| 157 |
-
).to(device)
|
| 158 |
-
model.reset_weights()
|
| 159 |
-
n_params = sum(p.numel() for p in model.parameters())
|
| 160 |
-
print(f"Params: {n_params:,}")
|
| 161 |
|
| 162 |
hf_repo = d_cfg.get("hf_repo")
|
| 163 |
is_streaming = bool(hf_repo)
|
|
@@ -177,11 +173,11 @@ def train():
|
|
| 177 |
eval_ds = ListDataset([_encode(_format_item(x, tok), tok, max_seq) for x in eval_raw])
|
| 178 |
print(f"Train: {len(train_ds.samples)} Eval: {len(eval_ds.samples)}")
|
| 179 |
|
| 180 |
-
bs = t_cfg.get("per_device_train_batch_size",
|
| 181 |
-
eval_bs = t_cfg.get("per_device_eval_batch_size",
|
| 182 |
-
ga_steps = t_cfg.get("gradient_accumulation_steps",
|
| 183 |
-
lr = t_cfg.get("learning_rate",
|
| 184 |
-
epochs = t_cfg.get("num_train_epochs",
|
| 185 |
max_grad_norm = t_cfg.get("max_grad_norm", 1.0)
|
| 186 |
log_steps = t_cfg.get("logging_steps", 5)
|
| 187 |
save_steps = t_cfg.get("save_steps", 200)
|
|
@@ -194,8 +190,8 @@ def train():
|
|
| 194 |
hf_repo_id = t_cfg.get("hf_repo_id", "")
|
| 195 |
hf_token = os.environ.get("HF_TOKEN", "")
|
| 196 |
|
| 197 |
-
|
| 198 |
-
|
| 199 |
step = 0
|
| 200 |
opt_step = 0
|
| 201 |
start_epoch = 1
|
|
@@ -203,15 +199,20 @@ def train():
|
|
| 203 |
best_acc = 0.0
|
| 204 |
cumul_tokens = 0
|
| 205 |
global_step_offset = 0
|
|
|
|
| 206 |
|
| 207 |
-
#
|
| 208 |
decay_params = []
|
| 209 |
no_decay_params = []
|
| 210 |
for name, param in model.named_parameters():
|
|
|
|
|
|
|
| 211 |
if "norm" in name or "ln_" in name:
|
| 212 |
no_decay_params.append(param)
|
| 213 |
else:
|
| 214 |
decay_params.append(param)
|
|
|
|
|
|
|
| 215 |
optimizer = AdamW([
|
| 216 |
{"params": decay_params, "weight_decay": t_cfg.get("weight_decay", 0.1)},
|
| 217 |
{"params": no_decay_params, "weight_decay": 0.0},
|
|
@@ -257,9 +258,9 @@ def train():
|
|
| 257 |
eff_bs = bs * ga_steps
|
| 258 |
print()
|
| 259 |
print("=" * 72)
|
| 260 |
-
print(f"
|
| 261 |
print(f" Model: {n_params:,} params | Device: {device.upper()}")
|
| 262 |
-
print(f" Vocab: {vocab_size} | Depth:
|
| 263 |
print(f" Epochs: {epochs} | Batch: {bs} | GA: {ga_steps} | Eff BS: {eff_bs} | LR: {lr}")
|
| 264 |
print(f" Warmup: {warmup_opt_steps} opt steps | Total: {total_opt_steps} opt steps")
|
| 265 |
print("=" * 72)
|
|
|
|
| 6 |
from torch.optim.lr_scheduler import LambdaLR
|
| 7 |
|
| 8 |
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
|
| 9 |
+
from scripts.model_tiny import restore_from_v2
|
| 10 |
|
| 11 |
|
| 12 |
def _format_item(item, tokenizer):
|
| 13 |
+
if "text" in item:
|
| 14 |
+
return item["text"]
|
| 15 |
if "messages" in item:
|
| 16 |
return tokenizer.apply_chat_template(item["messages"], tokenize=False)
|
| 17 |
system = item.get("system", "")
|
|
|
|
| 152 |
vocab_size = tok.vocab_size
|
| 153 |
max_seq = d_cfg.get("max_seq_length", 2048)
|
| 154 |
|
| 155 |
+
# ── Create model with V2 restoration ────────────────────────────────────
|
| 156 |
+
model = restore_from_v2("checkpoint.pt").to(device)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 157 |
|
| 158 |
hf_repo = d_cfg.get("hf_repo")
|
| 159 |
is_streaming = bool(hf_repo)
|
|
|
|
| 173 |
eval_ds = ListDataset([_encode(_format_item(x, tok), tok, max_seq) for x in eval_raw])
|
| 174 |
print(f"Train: {len(train_ds.samples)} Eval: {len(eval_ds.samples)}")
|
| 175 |
|
| 176 |
+
bs = t_cfg.get("per_device_train_batch_size", 8)
|
| 177 |
+
eval_bs = t_cfg.get("per_device_eval_batch_size", 8)
|
| 178 |
+
ga_steps = t_cfg.get("gradient_accumulation_steps", 4)
|
| 179 |
+
lr = t_cfg.get("learning_rate", 3e-4)
|
| 180 |
+
epochs = t_cfg.get("num_train_epochs", 1)
|
| 181 |
max_grad_norm = t_cfg.get("max_grad_norm", 1.0)
|
| 182 |
log_steps = t_cfg.get("logging_steps", 5)
|
| 183 |
save_steps = t_cfg.get("save_steps", 200)
|
|
|
|
| 190 |
hf_repo_id = t_cfg.get("hf_repo_id", "")
|
| 191 |
hf_token = os.environ.get("HF_TOKEN", "")
|
| 192 |
|
| 193 |
+
n_params = sum(p.numel() for p in model.parameters())
|
| 194 |
+
|
| 195 |
step = 0
|
| 196 |
opt_step = 0
|
| 197 |
start_epoch = 1
|
|
|
|
| 199 |
best_acc = 0.0
|
| 200 |
cumul_tokens = 0
|
| 201 |
global_step_offset = 0
|
| 202 |
+
ckpt_path = os.path.join(output_dir, "checkpoint.pt")
|
| 203 |
|
| 204 |
+
# ── Optimiser ──────────────────────────────────────────────────────────
|
| 205 |
decay_params = []
|
| 206 |
no_decay_params = []
|
| 207 |
for name, param in model.named_parameters():
|
| 208 |
+
if not param.requires_grad:
|
| 209 |
+
continue
|
| 210 |
if "norm" in name or "ln_" in name:
|
| 211 |
no_decay_params.append(param)
|
| 212 |
else:
|
| 213 |
decay_params.append(param)
|
| 214 |
+
if not decay_params and not no_decay_params:
|
| 215 |
+
print("[WARNING] No trainable parameters found!")
|
| 216 |
optimizer = AdamW([
|
| 217 |
{"params": decay_params, "weight_decay": t_cfg.get("weight_decay", 0.1)},
|
| 218 |
{"params": no_decay_params, "weight_decay": 0.0},
|
|
|
|
| 258 |
eff_bs = bs * ga_steps
|
| 259 |
print()
|
| 260 |
print("=" * 72)
|
| 261 |
+
print(f" PCT-V3 Training")
|
| 262 |
print(f" Model: {n_params:,} params | Device: {device.upper()}")
|
| 263 |
+
print(f" Vocab: {vocab_size} | Depth: 6 | Hidden: 128 | Code: 96 | Heads: 8/4 | RPW+GPP+VCR")
|
| 264 |
print(f" Epochs: {epochs} | Batch: {bs} | GA: {ga_steps} | Eff BS: {eff_bs} | LR: {lr}")
|
| 265 |
print(f" Warmup: {warmup_opt_steps} opt steps | Total: {total_opt_steps} opt steps")
|
| 266 |
print("=" * 72)
|
train_tiny.yaml
CHANGED
|
@@ -1,39 +1,27 @@
|
|
| 1 |
-
#
|
| 2 |
# Script: scripts/model_tiny.py
|
| 3 |
|
| 4 |
-
model:
|
| 5 |
-
name_or_path: "tiny-custom-pytorch-v2"
|
| 6 |
-
|
| 7 |
data:
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
eval_split_ratio: 0.1
|
| 11 |
-
|
| 12 |
-
# HF streaming (overrides train_file when set)
|
| 13 |
-
hf_repo: "trl-lib/Capybara"
|
| 14 |
-
hf_repo_name: ~
|
| 15 |
hf_split: "train"
|
| 16 |
hf_num_eval: 50
|
| 17 |
-
|
| 18 |
max_seq_length: 2048
|
| 19 |
|
| 20 |
training:
|
| 21 |
output_dir: "outputs/tiny-sft"
|
| 22 |
-
run_name: "
|
| 23 |
-
per_device_train_batch_size:
|
| 24 |
-
per_device_eval_batch_size:
|
| 25 |
-
gradient_accumulation_steps:
|
| 26 |
max_grad_norm: 1.0
|
| 27 |
-
num_train_epochs:
|
| 28 |
max_steps: 50000
|
| 29 |
-
learning_rate:
|
| 30 |
lr_scheduler_type: "cosine"
|
| 31 |
-
warmup_ratio: 0.
|
| 32 |
weight_decay: 0.1
|
| 33 |
use_cpu: false
|
| 34 |
logging_steps: 5
|
| 35 |
-
save_steps:
|
| 36 |
-
save_total_limit: 3
|
| 37 |
-
eval_steps: 200
|
| 38 |
seed: 42
|
| 39 |
-
hf_repo_id: "samcheng0/lumia-tiny"
|
|
|
|
| 1 |
+
# PCT-V3 Training Config — RPW+GPP+VCR
|
| 2 |
# Script: scripts/model_tiny.py
|
| 3 |
|
|
|
|
|
|
|
|
|
|
| 4 |
data:
|
| 5 |
+
hf_repo: "HuggingFaceFW/fineweb-edu"
|
| 6 |
+
hf_repo_name: "sample-100BT"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
hf_split: "train"
|
| 8 |
hf_num_eval: 50
|
|
|
|
| 9 |
max_seq_length: 2048
|
| 10 |
|
| 11 |
training:
|
| 12 |
output_dir: "outputs/tiny-sft"
|
| 13 |
+
run_name: "pct-v3-fwe"
|
| 14 |
+
per_device_train_batch_size: 8
|
| 15 |
+
per_device_eval_batch_size: 8
|
| 16 |
+
gradient_accumulation_steps: 4
|
| 17 |
max_grad_norm: 1.0
|
| 18 |
+
num_train_epochs: 1
|
| 19 |
max_steps: 50000
|
| 20 |
+
learning_rate: 3.0e-4
|
| 21 |
lr_scheduler_type: "cosine"
|
| 22 |
+
warmup_ratio: 0.01
|
| 23 |
weight_decay: 0.1
|
| 24 |
use_cpu: false
|
| 25 |
logging_steps: 5
|
| 26 |
+
save_steps: 500
|
|
|
|
|
|
|
| 27 |
seed: 42
|
|
|