servantofares Facico commited on
Commit
667c3fe
·
0 Parent(s):

Duplicate from ByteDance-Seed/Stable-DiffCoder-8B-Base

Browse files

Co-authored-by: Chenghao Fan <Facico@users.noreply.huggingface.co>

.gitattributes ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ imgs/intro_performance.png filter=lfs diff=lfs merge=lfs -text
37
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ pipeline_tag: text-generation
4
+ library_name: transformers
5
+ ---
6
+
7
+ # Stable-DiffCoder-8B-Base
8
+
9
+ <div align="left" style="line-height: 1;">
10
+ <a href="https://bytedance-seed.github.io/Stable-DiffCoder/" target="_blank" style="margin: 2px;">
11
+ <img alt="Homepage" src="https://img.shields.io/badge/Stable--DiffCoder-Homepage-a468fe?color=a468fe&logoColor=white" style="display: inline-block; vertical-align: middle;"/>
12
+ </a>
13
+
14
+ <a href="https://arxiv.org/abs/2601.15892" target="_blank" style="margin: 2px;">
15
+ <img alt="Technical Report" src="https://img.shields.io/badge/arXiv-Technical%20Report-brightgreen?logo=arxiv&logoColor=white" style="display: inline-block; vertical-align: middle;"/>
16
+ </a>
17
+
18
+ <a href="https://huggingface.co/ByteDance-Seed" target="_blank" style="margin: 2px;">
19
+ <img alt="Hugging Face" src="https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-ByteDance%20Seed-536af5?color=536af5&logoColor=white" style="display: inline-block; vertical-align: middle;"/>
20
+ </a>
21
+
22
+ <a href="https://github.com/ByteDance-Seed/Stable-DiffCoder/blob/master/LICENSE" style="margin: 2px;">
23
+ <img alt="License" src="https://img.shields.io/badge/License-MIT-f5de53?color=f5de53&logoColor=white" style="display: inline-block; vertical-align: middle;"/>
24
+ </a>
25
+ </div>
26
+
27
+
28
+ ## Introduction
29
+ We are thrilled to introduce Stable-DiffCoder, which is a strong code diffusion large language model. Built directly on the Seed-Coder architecture, data, and training pipeline, it introduces a block diffusion continual pretraining (CPT) stage with a tailored warmup and block-wise clipped noise schedule.
30
+
31
+ Under identical architecture and data settings, we systematically analyze and design an efficient diffusion training pipeline that is not only stable but also potentially lifts the model’s performance ceiling. With this recipe, Stable-DiffCoder demonstrates overall performance improvements compared to its autoregressive (AR) counterpart across a broad set of code benchmarks, while any-order modeling improves structured code handling for editing and reasoning, and diffusion-based corruption aids learning for low-resource programming languages.
32
+
33
+ Notably, with only CPT followed by supervised fine-tuning, Stable-DiffCoder further surpasses many strong ∼8B AR and diffusion-based code models. These results demonstrate that diffusion-based training can improve code modeling quality beyond what AR training alone can achieve, even under tightly controlled data and architecture constraints.
34
+
35
+ <p align="center">
36
+ <img width="100%" src="imgs/intro_performance.png">
37
+ </p>
38
+
39
+ This repo contains the **Stable-DiffCoder-8B-Base** model, which has the following features:
40
+ - Type: Mask Diffusion Language Models
41
+ - Training Stage: Pretraining
42
+ - Data Source: GitHub data, code-related web data
43
+ - Training Tokens: 1.3 trillion
44
+ - Supports: Code completion, code infilling (Fill-in-the-Middle)
45
+ - Context Length: 8192
46
+
47
+
48
+ ## Model Downloads
49
+ | Model Name | Length | Download | Notes |
50
+ |---------------------------------------------------------|--------|------------------------------------|-----------------------|
51
+ | 👉 **Stable-DiffCoder-8B-Base** | 8K | 🤗 [Model](https://huggingface.co/ByteDance-Seed/Stable-DiffCoder-8B-Base) | Pretrained on our model-centric code data. |
52
+ | Stable-DiffCoder-8B-Instruct | 8K | 🤗 [Model](https://huggingface.co/ByteDance-Seed/Stable-DiffCoder-8B-Instruct) | Instruction-tuned for alignment with user intent. |
53
+
54
+ ## Requirements
55
+ Current (v5.3.0) `transformers` is available for inference:
56
+ ```bash
57
+ pip install transformers~=5.3.0
58
+ ```
59
+ ## Explanation of Inference Parameters
60
+ - `steps`: Number of steps for diffusion generation
61
+ - `gen_length`: Maximum length of the generated output
62
+ - `block_length`: Length of the diffusion block, with a default value of 4
63
+ - `temperature`: Temperature for generation, with a default value of 0.0
64
+ - `remasking`: Remasking strategy, optional values are 'low_confidence' or 'random', default value is 'low_confidence' (for principle, refer to [LLADA](https://github.com/ML-GSAI/LLaDA))
65
+ - `tokenizer`: Tokenizer used for text encoding and decoding
66
+ - `shift`: Whether to shift the output to the right by one position (similar to AutoRegressive/AR), default value is False
67
+ - `threshold`: Threshold for decoding (range: 0-1.0), default value is None; a smaller value results in faster decoding speed (for principle, refer to [Fast-DLLM](https://github.com/NVlabs/Fast-dLLM))
68
+ - `eos_id`: ID of the end-of-sequence token, default value is `tokenizer.eos_token_id`
69
+
70
+ ## Quickstart
71
+
72
+ Here is a simple example demonstrating how to load the model and generate code.
73
+
74
+ ```python
75
+ from transformers import AutoTokenizer, AutoModelForCausalLM
76
+ import torch
77
+
78
+ device = 'cuda'
79
+ model = AutoModelForCausalLM.from_pretrained('Stable_DiffCoder-8B-Base', trust_remote_code=True, torch_dtype=torch.bfloat16).to(device).eval()
80
+ tokenizer = AutoTokenizer.from_pretrained('Stable_DiffCoder-8B-Base', trust_remote_code=True)
81
+
82
+ prompt = 'Write a quick sort algorithm.'
83
+ input_ids = tokenizer(prompt)['input_ids']
84
+ input_ids = torch.tensor(input_ids).to(device).unsqueeze(0)
85
+
86
+ out = model.generate(input_ids, steps=128, gen_length=128, block_length=4, temperature=0., remasking='low_confidence', tokenizer=tokenizer, shift=False, threshold=None, eos_id=tokenizer.eos_token_id)
87
+ print(tokenizer.decode(out[0][input_ids.shape[1]:], skip_special_tokens=True))
88
+ ```
89
+
90
+ ## Fill-in-the-Middle (FIM) Example
91
+ Stable-DiffCoder-8B-Base natively supports Fill-in-the-Middle (FIM) tasks, where the model is given a prefix and a suffix and asked to predict the missing middle content. This allows for code infilling scenarios such as completing a function body or inserting missing logic between two pieces of code.
92
+
93
+ ```python
94
+ from transformers import AutoTokenizer, AutoModelForCausalLM
95
+ import torch
96
+
97
+ device = 'cuda'
98
+ model = AutoModelForCausalLM.from_pretrained('ByteDance-Seed/Stable-DiffCoder-8B-Base', trust_remote_code=True, torch_dtype=torch.bfloat16).to(device).eval()
99
+ tokenizer = AutoTokenizer.from_pretrained('ByteDance-Seed/Stable-DiffCoder-8B-Base', trust_remote_code=True)
100
+
101
+ prefix = "def add_numbers(a, b):\n "
102
+ suffix = "\n return result"
103
+
104
+ # Combine prefix and suffix following the FIM format
105
+ prompt = '<[fim-suffix]>' + suffix + '<[fim-prefix]>' + prefix + '<[fim-middle]>'
106
+ input_ids = tokenizer(prompt)['input_ids']
107
+ input_ids = torch.tensor(input_ids).to(device).unsqueeze(0)
108
+
109
+ out = model.generate(input_ids, steps=64, gen_length=64, block_length=4, temperature=0., remasking='low_confidence', tokenizer=tokenizer, shift=False, threshold=None, eos_id=tokenizer.eos_token_id)
110
+ print(tokenizer.decode(out[0][input_ids.shape[1]:], skip_special_tokens=True))
111
+
112
+ ```
113
+
114
+ ## Evaluation
115
+
116
+ Stable-DiffCoder-8B-Base has been evaluated on code generation, code completion, and code reasoning benchmarks, achieving state-of-the-art performance among ~8B open-source models.
117
+
118
+
119
+ | | DeepSeek-Coder-6.7B-Base | OpenCoder-8B-Base | Qwen2.5-Coder-7B | Seed-Coder-8B-Base | Stable-DiffCoder-8B-Base |
120
+ |------------|:------------------------:|:-----------------:|:----------------:|:------------------:|:------------------------:|
121
+ | HumanEval | 47.6 | 66.5 | 72.0 | 77.4 | **79.3** |
122
+ | MBPP | 70.2 | 79.9 | 79.4 | 82.0 | **83.6** |
123
+ | MultiPL-E | 44.7 | 61.0 | 58.8 | 67.6 | **71.2** |
124
+ | CRUXEval-O | 41.0 | 43.9 | 56.0 | 54.8 | **60.0** |
125
+
126
+
127
+ For detailed benchmark performance, please refer to our [📑 Technical Report](https://github.com/ByteDance-Seed/Stable-DiffCoder/blob/master/Stable_DiffCoder.pdf).
128
+
129
+ ## License
130
+
131
+ This project is licensed under the MIT License. See the [LICENSE file](https://github.com/ByteDance-Seed/Stable-DiffCoder/blob/master/LICENSE) for details.
132
+
133
+ ## Citation
134
+
135
+ If you find our work helpful, feel free to give us a cite.
136
+
137
+ ```
138
+ @misc{fan2026stablediffcoderpushingfrontiercode,
139
+ title={Stable-DiffCoder: Pushing the Frontier of Code Diffusion Large Language Model},
140
+ author={Chenghao Fan and Wen Heng and Bo Li and Sichen Liu and Yuxuan Song and Jing Su and Xiaoye Qu and Kai Shen and Wei Wei},
141
+ year={2026},
142
+ eprint={2601.15892},
143
+ archivePrefix={arXiv},
144
+ primaryClass={cs.CL},
145
+ url={https://arxiv.org/abs/2601.15892},
146
+ }
147
+ ```
config.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": ["StableDiffcoderForCausalLM"],
3
+ "auto_map": {
4
+ "AutoModel": "modeling_stable_diffcoder.StableDiffcoderForCausalLM",
5
+ "AutoModelForCausalLM": "modeling_stable_diffcoder.StableDiffcoderForCausalLM"
6
+ },
7
+ "attention_bias": false,
8
+ "attention_dropout": 0.1,
9
+ "bos_token_id": 0,
10
+ "eos_token_id": 2,
11
+ "hidden_act": "silu",
12
+ "hidden_size": 4096,
13
+ "initializer_range": 0.009882118,
14
+ "intermediate_size": 14336,
15
+ "layer_norm_eps": null,
16
+ "max_position_embeddings": 8192,
17
+ "mlp_bias": false,
18
+ "model_type": "llama",
19
+ "num_attention_heads": 32,
20
+ "num_hidden_layers": 32,
21
+ "num_key_value_heads": 8,
22
+ "resid_pdrop": 0.1,
23
+ "rms_norm_eps": 1e-6,
24
+ "rope_theta": 500000.0,
25
+ "tie_word_embeddings": false,
26
+ "torch_dtype": "bfloat16",
27
+ "transformers_version": "5.3.0",
28
+ "use_cache": true,
29
+ "vocab_size": 155136
30
+ }
imgs/intro_performance.png ADDED

Git LFS Details

  • SHA256: b3936701225ed300472efa594ddc153dbbb3dce4cf79aff8a5221fb15ee9a7bf
  • Pointer size: 131 Bytes
  • Size of remote file: 114 kB
model-00001-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ed279541b5d4a6dfa50913b9cb9b268a79b9eb37f672e336a05f18c586686bc0
3
+ size 4924209128
model-00002-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0c3342e1e2b285ba21a8ed28310a18840aa12f18642b6fd19677308b7acbae5a
3
+ size 4915916128
model-00003-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6b6c5e15d70de98a015cacbaab4c10ca01527893ed5200095cd3941de26e06e4
3
+ size 4999819336
model-00004-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6499ae443f6c54d23f4b752a4cd426d7cdf6ce40f812454aca9696866f4493b2
3
+ size 1661013648
model.safetensors.index.json ADDED
@@ -0,0 +1,298 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "metadata": {
3
+ "total_size": 16500924416
4
+ },
5
+ "weight_map": {
6
+ "lm_head.weight": "model-00001-of-00004.safetensors",
7
+ "model.embed_tokens.weight": "model-00001-of-00004.safetensors",
8
+ "model.layers.0.input_layernorm.weight": "model-00001-of-00004.safetensors",
9
+ "model.layers.0.mlp.down_proj.weight": "model-00001-of-00004.safetensors",
10
+ "model.layers.0.mlp.gate_proj.weight": "model-00001-of-00004.safetensors",
11
+ "model.layers.0.mlp.up_proj.weight": "model-00001-of-00004.safetensors",
12
+ "model.layers.0.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
13
+ "model.layers.0.self_attn.k_proj.weight": "model-00001-of-00004.safetensors",
14
+ "model.layers.0.self_attn.o_proj.weight": "model-00001-of-00004.safetensors",
15
+ "model.layers.0.self_attn.q_proj.weight": "model-00001-of-00004.safetensors",
16
+ "model.layers.0.self_attn.v_proj.weight": "model-00001-of-00004.safetensors",
17
+ "model.layers.1.input_layernorm.weight": "model-00001-of-00004.safetensors",
18
+ "model.layers.1.mlp.down_proj.weight": "model-00001-of-00004.safetensors",
19
+ "model.layers.1.mlp.gate_proj.weight": "model-00001-of-00004.safetensors",
20
+ "model.layers.1.mlp.up_proj.weight": "model-00001-of-00004.safetensors",
21
+ "model.layers.1.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
22
+ "model.layers.1.self_attn.k_proj.weight": "model-00001-of-00004.safetensors",
23
+ "model.layers.1.self_attn.o_proj.weight": "model-00001-of-00004.safetensors",
24
+ "model.layers.1.self_attn.q_proj.weight": "model-00001-of-00004.safetensors",
25
+ "model.layers.1.self_attn.v_proj.weight": "model-00001-of-00004.safetensors",
26
+ "model.layers.10.input_layernorm.weight": "model-00002-of-00004.safetensors",
27
+ "model.layers.10.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
28
+ "model.layers.10.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
29
+ "model.layers.10.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
30
+ "model.layers.10.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
31
+ "model.layers.10.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
32
+ "model.layers.10.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
33
+ "model.layers.10.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
34
+ "model.layers.10.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
35
+ "model.layers.11.input_layernorm.weight": "model-00002-of-00004.safetensors",
36
+ "model.layers.11.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
37
+ "model.layers.11.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
38
+ "model.layers.11.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
39
+ "model.layers.11.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
40
+ "model.layers.11.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
41
+ "model.layers.11.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
42
+ "model.layers.11.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
43
+ "model.layers.11.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
44
+ "model.layers.12.input_layernorm.weight": "model-00002-of-00004.safetensors",
45
+ "model.layers.12.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
46
+ "model.layers.12.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
47
+ "model.layers.12.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
48
+ "model.layers.12.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
49
+ "model.layers.12.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
50
+ "model.layers.12.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
51
+ "model.layers.12.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
52
+ "model.layers.12.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
53
+ "model.layers.13.input_layernorm.weight": "model-00002-of-00004.safetensors",
54
+ "model.layers.13.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
55
+ "model.layers.13.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
56
+ "model.layers.13.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
57
+ "model.layers.13.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
58
+ "model.layers.13.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
59
+ "model.layers.13.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
60
+ "model.layers.13.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
61
+ "model.layers.13.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
62
+ "model.layers.14.input_layernorm.weight": "model-00002-of-00004.safetensors",
63
+ "model.layers.14.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
64
+ "model.layers.14.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
65
+ "model.layers.14.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
66
+ "model.layers.14.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
67
+ "model.layers.14.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
68
+ "model.layers.14.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
69
+ "model.layers.14.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
70
+ "model.layers.14.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
71
+ "model.layers.15.input_layernorm.weight": "model-00002-of-00004.safetensors",
72
+ "model.layers.15.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
73
+ "model.layers.15.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
74
+ "model.layers.15.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
75
+ "model.layers.15.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
76
+ "model.layers.15.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
77
+ "model.layers.15.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
78
+ "model.layers.15.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
79
+ "model.layers.15.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
80
+ "model.layers.16.input_layernorm.weight": "model-00003-of-00004.safetensors",
81
+ "model.layers.16.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
82
+ "model.layers.16.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
83
+ "model.layers.16.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
84
+ "model.layers.16.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
85
+ "model.layers.16.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
86
+ "model.layers.16.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
87
+ "model.layers.16.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
88
+ "model.layers.16.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
89
+ "model.layers.17.input_layernorm.weight": "model-00003-of-00004.safetensors",
90
+ "model.layers.17.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
91
+ "model.layers.17.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
92
+ "model.layers.17.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
93
+ "model.layers.17.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
94
+ "model.layers.17.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
95
+ "model.layers.17.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
96
+ "model.layers.17.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
97
+ "model.layers.17.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
98
+ "model.layers.18.input_layernorm.weight": "model-00003-of-00004.safetensors",
99
+ "model.layers.18.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
100
+ "model.layers.18.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
101
+ "model.layers.18.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
102
+ "model.layers.18.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
103
+ "model.layers.18.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
104
+ "model.layers.18.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
105
+ "model.layers.18.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
106
+ "model.layers.18.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
107
+ "model.layers.19.input_layernorm.weight": "model-00003-of-00004.safetensors",
108
+ "model.layers.19.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
109
+ "model.layers.19.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
110
+ "model.layers.19.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
111
+ "model.layers.19.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
112
+ "model.layers.19.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
113
+ "model.layers.19.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
114
+ "model.layers.19.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
115
+ "model.layers.19.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
116
+ "model.layers.2.input_layernorm.weight": "model-00001-of-00004.safetensors",
117
+ "model.layers.2.mlp.down_proj.weight": "model-00001-of-00004.safetensors",
118
+ "model.layers.2.mlp.gate_proj.weight": "model-00001-of-00004.safetensors",
119
+ "model.layers.2.mlp.up_proj.weight": "model-00001-of-00004.safetensors",
120
+ "model.layers.2.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
121
+ "model.layers.2.self_attn.k_proj.weight": "model-00001-of-00004.safetensors",
122
+ "model.layers.2.self_attn.o_proj.weight": "model-00001-of-00004.safetensors",
123
+ "model.layers.2.self_attn.q_proj.weight": "model-00001-of-00004.safetensors",
124
+ "model.layers.2.self_attn.v_proj.weight": "model-00001-of-00004.safetensors",
125
+ "model.layers.20.input_layernorm.weight": "model-00003-of-00004.safetensors",
126
+ "model.layers.20.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
127
+ "model.layers.20.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
128
+ "model.layers.20.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
129
+ "model.layers.20.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
130
+ "model.layers.20.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
131
+ "model.layers.20.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
132
+ "model.layers.20.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
133
+ "model.layers.20.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
134
+ "model.layers.21.input_layernorm.weight": "model-00003-of-00004.safetensors",
135
+ "model.layers.21.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
136
+ "model.layers.21.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
137
+ "model.layers.21.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
138
+ "model.layers.21.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
139
+ "model.layers.21.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
140
+ "model.layers.21.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
141
+ "model.layers.21.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
142
+ "model.layers.21.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
143
+ "model.layers.22.input_layernorm.weight": "model-00003-of-00004.safetensors",
144
+ "model.layers.22.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
145
+ "model.layers.22.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
146
+ "model.layers.22.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
147
+ "model.layers.22.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
148
+ "model.layers.22.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
149
+ "model.layers.22.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
150
+ "model.layers.22.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
151
+ "model.layers.22.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
152
+ "model.layers.23.input_layernorm.weight": "model-00003-of-00004.safetensors",
153
+ "model.layers.23.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
154
+ "model.layers.23.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
155
+ "model.layers.23.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
156
+ "model.layers.23.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
157
+ "model.layers.23.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
158
+ "model.layers.23.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
159
+ "model.layers.23.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
160
+ "model.layers.23.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
161
+ "model.layers.24.input_layernorm.weight": "model-00003-of-00004.safetensors",
162
+ "model.layers.24.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
163
+ "model.layers.24.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
164
+ "model.layers.24.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
165
+ "model.layers.24.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
166
+ "model.layers.24.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
167
+ "model.layers.24.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
168
+ "model.layers.24.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
169
+ "model.layers.24.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
170
+ "model.layers.25.input_layernorm.weight": "model-00003-of-00004.safetensors",
171
+ "model.layers.25.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
172
+ "model.layers.25.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
173
+ "model.layers.25.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
174
+ "model.layers.25.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
175
+ "model.layers.25.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
176
+ "model.layers.25.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
177
+ "model.layers.25.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
178
+ "model.layers.25.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
179
+ "model.layers.26.input_layernorm.weight": "model-00003-of-00004.safetensors",
180
+ "model.layers.26.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
181
+ "model.layers.26.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
182
+ "model.layers.26.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
183
+ "model.layers.26.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
184
+ "model.layers.26.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
185
+ "model.layers.26.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
186
+ "model.layers.26.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
187
+ "model.layers.26.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
188
+ "model.layers.27.input_layernorm.weight": "model-00003-of-00004.safetensors",
189
+ "model.layers.27.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
190
+ "model.layers.27.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
191
+ "model.layers.27.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
192
+ "model.layers.27.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
193
+ "model.layers.27.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
194
+ "model.layers.27.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
195
+ "model.layers.27.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
196
+ "model.layers.27.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
197
+ "model.layers.28.input_layernorm.weight": "model-00004-of-00004.safetensors",
198
+ "model.layers.28.mlp.down_proj.weight": "model-00004-of-00004.safetensors",
199
+ "model.layers.28.mlp.gate_proj.weight": "model-00004-of-00004.safetensors",
200
+ "model.layers.28.mlp.up_proj.weight": "model-00004-of-00004.safetensors",
201
+ "model.layers.28.post_attention_layernorm.weight": "model-00004-of-00004.safetensors",
202
+ "model.layers.28.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
203
+ "model.layers.28.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
204
+ "model.layers.28.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
205
+ "model.layers.28.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
206
+ "model.layers.29.input_layernorm.weight": "model-00004-of-00004.safetensors",
207
+ "model.layers.29.mlp.down_proj.weight": "model-00004-of-00004.safetensors",
208
+ "model.layers.29.mlp.gate_proj.weight": "model-00004-of-00004.safetensors",
209
+ "model.layers.29.mlp.up_proj.weight": "model-00004-of-00004.safetensors",
210
+ "model.layers.29.post_attention_layernorm.weight": "model-00004-of-00004.safetensors",
211
+ "model.layers.29.self_attn.k_proj.weight": "model-00004-of-00004.safetensors",
212
+ "model.layers.29.self_attn.o_proj.weight": "model-00004-of-00004.safetensors",
213
+ "model.layers.29.self_attn.q_proj.weight": "model-00004-of-00004.safetensors",
214
+ "model.layers.29.self_attn.v_proj.weight": "model-00004-of-00004.safetensors",
215
+ "model.layers.3.input_layernorm.weight": "model-00001-of-00004.safetensors",
216
+ "model.layers.3.mlp.down_proj.weight": "model-00001-of-00004.safetensors",
217
+ "model.layers.3.mlp.gate_proj.weight": "model-00001-of-00004.safetensors",
218
+ "model.layers.3.mlp.up_proj.weight": "model-00001-of-00004.safetensors",
219
+ "model.layers.3.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
220
+ "model.layers.3.self_attn.k_proj.weight": "model-00001-of-00004.safetensors",
221
+ "model.layers.3.self_attn.o_proj.weight": "model-00001-of-00004.safetensors",
222
+ "model.layers.3.self_attn.q_proj.weight": "model-00001-of-00004.safetensors",
223
+ "model.layers.3.self_attn.v_proj.weight": "model-00001-of-00004.safetensors",
224
+ "model.layers.30.input_layernorm.weight": "model-00004-of-00004.safetensors",
225
+ "model.layers.30.mlp.down_proj.weight": "model-00004-of-00004.safetensors",
226
+ "model.layers.30.mlp.gate_proj.weight": "model-00004-of-00004.safetensors",
227
+ "model.layers.30.mlp.up_proj.weight": "model-00004-of-00004.safetensors",
228
+ "model.layers.30.post_attention_layernorm.weight": "model-00004-of-00004.safetensors",
229
+ "model.layers.30.self_attn.k_proj.weight": "model-00004-of-00004.safetensors",
230
+ "model.layers.30.self_attn.o_proj.weight": "model-00004-of-00004.safetensors",
231
+ "model.layers.30.self_attn.q_proj.weight": "model-00004-of-00004.safetensors",
232
+ "model.layers.30.self_attn.v_proj.weight": "model-00004-of-00004.safetensors",
233
+ "model.layers.31.input_layernorm.weight": "model-00004-of-00004.safetensors",
234
+ "model.layers.31.mlp.down_proj.weight": "model-00004-of-00004.safetensors",
235
+ "model.layers.31.mlp.gate_proj.weight": "model-00004-of-00004.safetensors",
236
+ "model.layers.31.mlp.up_proj.weight": "model-00004-of-00004.safetensors",
237
+ "model.layers.31.post_attention_layernorm.weight": "model-00004-of-00004.safetensors",
238
+ "model.layers.31.self_attn.k_proj.weight": "model-00004-of-00004.safetensors",
239
+ "model.layers.31.self_attn.o_proj.weight": "model-00004-of-00004.safetensors",
240
+ "model.layers.31.self_attn.q_proj.weight": "model-00004-of-00004.safetensors",
241
+ "model.layers.31.self_attn.v_proj.weight": "model-00004-of-00004.safetensors",
242
+ "model.layers.4.input_layernorm.weight": "model-00001-of-00004.safetensors",
243
+ "model.layers.4.mlp.down_proj.weight": "model-00001-of-00004.safetensors",
244
+ "model.layers.4.mlp.gate_proj.weight": "model-00001-of-00004.safetensors",
245
+ "model.layers.4.mlp.up_proj.weight": "model-00001-of-00004.safetensors",
246
+ "model.layers.4.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
247
+ "model.layers.4.self_attn.k_proj.weight": "model-00001-of-00004.safetensors",
248
+ "model.layers.4.self_attn.o_proj.weight": "model-00001-of-00004.safetensors",
249
+ "model.layers.4.self_attn.q_proj.weight": "model-00001-of-00004.safetensors",
250
+ "model.layers.4.self_attn.v_proj.weight": "model-00001-of-00004.safetensors",
251
+ "model.layers.5.input_layernorm.weight": "model-00002-of-00004.safetensors",
252
+ "model.layers.5.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
253
+ "model.layers.5.mlp.gate_proj.weight": "model-00001-of-00004.safetensors",
254
+ "model.layers.5.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
255
+ "model.layers.5.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
256
+ "model.layers.5.self_attn.k_proj.weight": "model-00001-of-00004.safetensors",
257
+ "model.layers.5.self_attn.o_proj.weight": "model-00001-of-00004.safetensors",
258
+ "model.layers.5.self_attn.q_proj.weight": "model-00001-of-00004.safetensors",
259
+ "model.layers.5.self_attn.v_proj.weight": "model-00001-of-00004.safetensors",
260
+ "model.layers.6.input_layernorm.weight": "model-00002-of-00004.safetensors",
261
+ "model.layers.6.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
262
+ "model.layers.6.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
263
+ "model.layers.6.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
264
+ "model.layers.6.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
265
+ "model.layers.6.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
266
+ "model.layers.6.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
267
+ "model.layers.6.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
268
+ "model.layers.6.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
269
+ "model.layers.7.input_layernorm.weight": "model-00002-of-00004.safetensors",
270
+ "model.layers.7.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
271
+ "model.layers.7.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
272
+ "model.layers.7.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
273
+ "model.layers.7.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
274
+ "model.layers.7.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
275
+ "model.layers.7.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
276
+ "model.layers.7.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
277
+ "model.layers.7.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
278
+ "model.layers.8.input_layernorm.weight": "model-00002-of-00004.safetensors",
279
+ "model.layers.8.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
280
+ "model.layers.8.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
281
+ "model.layers.8.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
282
+ "model.layers.8.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
283
+ "model.layers.8.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
284
+ "model.layers.8.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
285
+ "model.layers.8.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
286
+ "model.layers.8.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
287
+ "model.layers.9.input_layernorm.weight": "model-00002-of-00004.safetensors",
288
+ "model.layers.9.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
289
+ "model.layers.9.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
290
+ "model.layers.9.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
291
+ "model.layers.9.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
292
+ "model.layers.9.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
293
+ "model.layers.9.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
294
+ "model.layers.9.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
295
+ "model.layers.9.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
296
+ "model.norm.weight": "model-00001-of-00004.safetensors"
297
+ }
298
+ }
modeling_stable_diffcoder.py ADDED
@@ -0,0 +1,274 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) 2026 ByteDance Ltd. and/or its affiliates
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ import numpy as np
5
+ import torch
6
+ from torch import nn
7
+ import torch.nn.functional as F
8
+ from transformers import AutoTokenizer, AutoModel, AutoModelForCausalLM, DynamicCache
9
+ from transformers.models.llama.modeling_llama import LlamaForCausalLM
10
+ from transformers.generation.utils import GenerationConfig
11
+
12
+
13
+ class StableDiffcoderForCausalLM(LlamaForCausalLM):
14
+ def _get_num_transfer_tokens(self, mask_map, steps):
15
+ # Only bs == 1 is supported for now
16
+ mask_num = mask_map.sum().long().item()
17
+
18
+ base = mask_num // steps
19
+ remainder = mask_num % steps
20
+
21
+ num_transfer_tokens = torch.full(
22
+ (steps,), fill_value=base, device=mask_map.device, dtype=torch.long
23
+ )
24
+
25
+ num_transfer_tokens[:remainder] += 1
26
+
27
+ return num_transfer_tokens
28
+
29
+ def _make_block_causal_mask(
30
+ self, seq_len, block_size=2, device=None, dtype=torch.bfloat16
31
+ ):
32
+ num_blocks = (seq_len + block_size - 1) // block_size
33
+ block_mask = torch.tril(
34
+ torch.ones((num_blocks, num_blocks), dtype=torch.bool, device=device)
35
+ )
36
+ local_block = torch.ones(
37
+ (block_size, block_size), dtype=torch.bool, device=device
38
+ )
39
+ mask = block_mask.kron(local_block)[:seq_len, :seq_len]
40
+
41
+ attention_mask = mask.float()
42
+ attention_mask.masked_fill_(~mask, -torch.inf)
43
+ attention_mask = attention_mask.unsqueeze(0).unsqueeze(0).to(dtype)
44
+ return attention_mask
45
+
46
+ def _get_transfer_index(
47
+ self,
48
+ logits,
49
+ temperature,
50
+ remasking,
51
+ mask_index,
52
+ x,
53
+ num_transfer_token,
54
+ threshold=None,
55
+ shift=False,
56
+ ):
57
+ def add_gumbel_noise(logits, temperature):
58
+ if temperature == 0:
59
+ return logits
60
+ logits = logits.to(torch.float64)
61
+ noise = torch.rand_like(logits, dtype=torch.float64)
62
+ gumbel_noise = (-torch.log(noise)) ** temperature
63
+ return logits.exp() / gumbel_noise
64
+
65
+ logits_with_noise = add_gumbel_noise(logits, temperature=temperature)
66
+ x0 = torch.argmax(logits_with_noise, dim=-1) # b, l
67
+ if shift:
68
+ x0 = torch.cat([x[:, :1], x0[:, :-1]], dim=-1)
69
+ pad = torch.zeros_like(logits[:, :1])
70
+ logits = torch.cat([pad, logits[:, :-1]], dim=1)
71
+ if remasking == "low_confidence":
72
+ p = F.softmax(logits.to(torch.float64), dim=-1)
73
+ x0_p = torch.squeeze(
74
+ torch.gather(p, dim=-1, index=torch.unsqueeze(x0, -1)), -1
75
+ ) # b, l
76
+ elif remasking == "random":
77
+ x0_p = torch.rand((x0.shape[0], x0.shape[1]), device=x0.device)
78
+ else:
79
+ raise NotImplementedError(remasking)
80
+
81
+ x0 = torch.where(mask_index, x0, x)
82
+ confidence = torch.where(mask_index, x0_p, -np.inf)
83
+
84
+ transfer_map = torch.zeros_like(x0, dtype=torch.bool, device=x0.device)
85
+ if threshold is not None:
86
+ num_transfer_token = mask_index.sum(dim=1, keepdim=True)
87
+ _, select_index = torch.topk(confidence[0], k=num_transfer_token)
88
+ transfer_map[0, select_index] = True
89
+ if threshold is not None:
90
+ for k in range(1, num_transfer_token):
91
+ if confidence[0, select_index[k]] < threshold:
92
+ transfer_map[0, select_index[k]] = False
93
+ return x0, transfer_map
94
+
95
+ @torch.no_grad()
96
+ def generate_block(
97
+ self,
98
+ input_ids: torch.LongTensor,
99
+ steps=128,
100
+ gen_length=128,
101
+ block_length=4,
102
+ temperature=0.0,
103
+ remasking="low_confidence",
104
+ tokenizer=None,
105
+ mask_id=5,
106
+ threshold=0.95,
107
+ shift=False,
108
+ eos_id=None,
109
+ ):
110
+ x = torch.cat(
111
+ [
112
+ input_ids,
113
+ torch.full(
114
+ (input_ids.shape[0], gen_length),
115
+ mask_id,
116
+ dtype=torch.long,
117
+ device=input_ids.device,
118
+ ),
119
+ ],
120
+ dim=1,
121
+ )
122
+
123
+ assert gen_length % block_length == 0, (
124
+ "gen_length must be divisible by block_length"
125
+ )
126
+ gen_blocks = gen_length // block_length
127
+
128
+ assert steps % gen_blocks == 0, (
129
+ "steps must be divisible by the number of generation blocks"
130
+ )
131
+ steps = steps // gen_blocks
132
+
133
+ assert x.shape[0] == 1, (
134
+ "Only batch size of 1 is supported for block-wise generation currently."
135
+ )
136
+
137
+ prompt_length = input_ids.shape[1]
138
+ gen_block_list = [block_length for _ in range(gen_blocks)]
139
+
140
+ # Fix 3: Only handle residual blocks if the prompt length is NOT cleanly divisible
141
+ remainder = prompt_length % block_length
142
+ if remainder != 0:
143
+ res_block = block_length - remainder
144
+ gen_block_list = [res_block] + gen_block_list
145
+ gen_block_list[-1] = block_length - res_block
146
+ gen_blocks += 1
147
+ cum_block = [sum(gen_block_list[: i + 1]) for i in range(len(gen_block_list))]
148
+
149
+ block_diffusion_attention_mask = self._make_block_causal_mask(
150
+ prompt_length + gen_length,
151
+ block_length,
152
+ self.device,
153
+ dtype=torch.bfloat16,
154
+ )
155
+
156
+ past_key_values = DynamicCache()
157
+
158
+ nfe = 0
159
+ final_flag = False
160
+ prefill_length = prompt_length // block_length * block_length
161
+
162
+ if prefill_length > 0:
163
+ cur_attn_mask = block_diffusion_attention_mask[
164
+ ..., :prefill_length, :prefill_length
165
+ ]
166
+ # Fix 1: Explicitly pass cache_position for newer transformers prefill
167
+ # actually not necessary since transformers will automatically generate it for prefilling
168
+ # if unspecified, but the official `generate` method does pass it,
169
+ # so we follow that for consistency and to avoid potential issues in future transformers updates
170
+ cache_pos = torch.arange(prefill_length, device=x.device)
171
+ self(
172
+ x[:, :prefill_length],
173
+ past_key_values=past_key_values,
174
+ attention_mask=cur_attn_mask,
175
+ use_cache=True,
176
+ cache_position=cache_pos,
177
+ )
178
+
179
+ for block_id, block_size in enumerate(gen_block_list):
180
+ block_start = (
181
+ prompt_length + cum_block[block_id - 1]
182
+ if block_id > 0
183
+ else prefill_length
184
+ )
185
+ block_end = prompt_length + cum_block[block_id]
186
+
187
+ block_mask_map = x[:, block_start:block_end] == mask_id
188
+ num_transfer_tokens = self._get_num_transfer_tokens(block_mask_map, steps)
189
+
190
+ replace_position = torch.zeros_like(x, dtype=torch.bool)
191
+ replace_position[:, block_start:block_end] = True
192
+
193
+ for token_count in num_transfer_tokens:
194
+ if token_count > 0:
195
+ nfe += 1
196
+ mask_map = x[:, block_start:block_end] == mask_id
197
+ attention_mask = block_diffusion_attention_mask[
198
+ ..., block_start:block_end, :block_end
199
+ ]
200
+ output = self(
201
+ x[:, block_start:block_end],
202
+ attention_mask=attention_mask,
203
+ past_key_values=past_key_values,
204
+ use_cache=True,
205
+ cache_position=replace_position.nonzero(as_tuple=True)[1],
206
+ )
207
+ logits = output.logits
208
+
209
+ past_key_values.crop(block_start)
210
+
211
+ x0, transfer_map = self._get_transfer_index(
212
+ logits,
213
+ temperature,
214
+ remasking,
215
+ mask_map,
216
+ x[:, block_start:block_end],
217
+ token_count.item() if threshold is None else None,
218
+ threshold,
219
+ shift=shift,
220
+ )
221
+ x[:, block_start:block_end][transfer_map] = x0[transfer_map]
222
+
223
+ if (x[:, block_start:block_end] == mask_id).sum() == 0:
224
+
225
+ # Fix 2: Calculate where the generated tokens ACTUALLY start in this block
226
+ gen_start = max(block_start, prompt_length)
227
+
228
+ if (
229
+ eos_id is not None
230
+ and gen_start < block_end
231
+ and (x[:, gen_start:block_end] == eos_id).sum() > 0
232
+ ):
233
+ final_flag = True
234
+ x = x[:, :block_end]
235
+ eos_pos = (x[:, gen_start:block_end] == eos_id).nonzero(as_tuple=True)[1][0].item() + gen_start
236
+ x[0, eos_pos:] = eos_id
237
+ break
238
+
239
+ nfe += 1
240
+ self(
241
+ x[:, block_start:block_end],
242
+ attention_mask=block_diffusion_attention_mask[
243
+ ..., block_start:block_end, :block_end
244
+ ],
245
+ past_key_values=past_key_values,
246
+ use_cache=True,
247
+ cache_position=replace_position.nonzero(as_tuple=True)[1],
248
+ )
249
+ break
250
+
251
+ if final_flag:
252
+ break
253
+
254
+ return x, nfe
255
+
256
+ @torch.no_grad()
257
+ def generate(
258
+ self,
259
+ input_ids=None,
260
+ generation_config: GenerationConfig = None,
261
+ **kwargs,
262
+ ):
263
+ if input_ids is None:
264
+ raise ValueError("input_ids must be provided")
265
+
266
+ if generation_config is None:
267
+ generation_config = self.generation_config
268
+
269
+ output_ids, nfe = self.generate_block(
270
+ input_ids=input_ids,
271
+ **kwargs,
272
+ )
273
+
274
+ return output_ids
special_tokens_map.json ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": {
3
+ "content": "<[begin▁of▁sentence]>",
4
+ "lstrip": false,
5
+ "normalized": false,
6
+ "rstrip": false,
7
+ "single_word": false
8
+ },
9
+ "eos_token": {
10
+ "content": "<[end▁of▁sentence]>",
11
+ "lstrip": false,
12
+ "normalized": false,
13
+ "rstrip": false,
14
+ "single_word": false
15
+ },
16
+ "pad_token": {
17
+ "content": "<[PAD▁TOKEN]>",
18
+ "lstrip": false,
19
+ "normalized": false,
20
+ "rstrip": false,
21
+ "single_word": false
22
+ },
23
+ "sep_token": {
24
+ "content": "<[SEP▁TOKEN]>",
25
+ "lstrip": false,
26
+ "normalized": false,
27
+ "rstrip": false,
28
+ "single_word": false
29
+ },
30
+ "mask_token": {
31
+ "content": "<[MASK_TOKEN]>",
32
+ "lstrip": false,
33
+ "normalized": false,
34
+ "rstrip": false,
35
+ "single_word": false
36
+ }
37
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2c9765e3f23ba5809c82adcaf0851d83f6b294f2503f6956fcaa31f62c4dac6d
3
+ size 11891620
tokenizer_config.json ADDED
@@ -0,0 +1,1036 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "added_tokens_decoder": {
3
+ "0": {
4
+ "content": "<[begin▁of▁sentence]>",
5
+ "lstrip": false,
6
+ "normalized": false,
7
+ "rstrip": false,
8
+ "single_word": false,
9
+ "special": true
10
+ },
11
+ "1": {
12
+ "content": "<[PAD▁TOKEN]>",
13
+ "lstrip": false,
14
+ "normalized": false,
15
+ "rstrip": false,
16
+ "single_word": false,
17
+ "special": true
18
+ },
19
+ "2": {
20
+ "content": "<[end▁of▁sentence]>",
21
+ "lstrip": false,
22
+ "normalized": false,
23
+ "rstrip": false,
24
+ "single_word": false,
25
+ "special": true
26
+ },
27
+ "3": {
28
+ "content": "<[UNK_never_used_51bce0c785ca2f68081bfa7d91973934]>",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false,
33
+ "special": true
34
+ },
35
+ "4": {
36
+ "content": "<[CLS_never_used_51bce0c785ca2f68081bfa7d91973934]>",
37
+ "lstrip": false,
38
+ "normalized": false,
39
+ "rstrip": false,
40
+ "single_word": false,
41
+ "special": true
42
+ },
43
+ "5": {
44
+ "content": "<[MASK_TOKEN]>",
45
+ "lstrip": false,
46
+ "normalized": false,
47
+ "rstrip": false,
48
+ "single_word": false,
49
+ "special": true
50
+ },
51
+ "6": {
52
+ "content": "<[SEP▁TOKEN]>",
53
+ "lstrip": false,
54
+ "normalized": false,
55
+ "rstrip": false,
56
+ "single_word": false,
57
+ "special": true
58
+ },
59
+ "7": {
60
+ "content": "<[PLHD7_never_used_51bce0c785ca2f68081bfa7d91973934]>",
61
+ "lstrip": false,
62
+ "normalized": false,
63
+ "rstrip": false,
64
+ "single_word": false,
65
+ "special": true
66
+ },
67
+ "8": {
68
+ "content": "<[PLHD8_never_used_51bce0c785ca2f68081bfa7d91973934]>",
69
+ "lstrip": false,
70
+ "normalized": false,
71
+ "rstrip": false,
72
+ "single_word": false,
73
+ "special": true
74
+ },
75
+ "9": {
76
+ "content": "<[PLHD9_never_used_51bce0c785ca2f68081bfa7d91973934]>",
77
+ "lstrip": false,
78
+ "normalized": false,
79
+ "rstrip": false,
80
+ "single_word": false,
81
+ "special": true
82
+ },
83
+ "10": {
84
+ "content": "<[PLHD10_never_used_51bce0c785ca2f68081bfa7d91973934]>",
85
+ "lstrip": false,
86
+ "normalized": false,
87
+ "rstrip": false,
88
+ "single_word": false,
89
+ "special": true
90
+ },
91
+ "11": {
92
+ "content": "<[PLHD11_never_used_51bce0c785ca2f68081bfa7d91973934]>",
93
+ "lstrip": false,
94
+ "normalized": false,
95
+ "rstrip": false,
96
+ "single_word": false,
97
+ "special": true
98
+ },
99
+ "12": {
100
+ "content": "<[PLHD12_never_used_51bce0c785ca2f68081bfa7d91973934]>",
101
+ "lstrip": false,
102
+ "normalized": false,
103
+ "rstrip": false,
104
+ "single_word": false,
105
+ "special": true
106
+ },
107
+ "13": {
108
+ "content": "<[PLHD13_never_used_51bce0c785ca2f68081bfa7d91973934]>",
109
+ "lstrip": false,
110
+ "normalized": false,
111
+ "rstrip": false,
112
+ "single_word": false,
113
+ "special": true
114
+ },
115
+ "14": {
116
+ "content": "<[PLHD14_never_used_51bce0c785ca2f68081bfa7d91973934]>",
117
+ "lstrip": false,
118
+ "normalized": false,
119
+ "rstrip": false,
120
+ "single_word": false,
121
+ "special": true
122
+ },
123
+ "15": {
124
+ "content": "<[PLHD15_never_used_51bce0c785ca2f68081bfa7d91973934]>",
125
+ "lstrip": false,
126
+ "normalized": false,
127
+ "rstrip": false,
128
+ "single_word": false,
129
+ "special": true
130
+ },
131
+ "16": {
132
+ "content": "<[PLHD16_never_used_51bce0c785ca2f68081bfa7d91973934]>",
133
+ "lstrip": false,
134
+ "normalized": false,
135
+ "rstrip": false,
136
+ "single_word": false,
137
+ "special": true
138
+ },
139
+ "17": {
140
+ "content": "<[PLHD17_never_used_51bce0c785ca2f68081bfa7d91973934]>",
141
+ "lstrip": false,
142
+ "normalized": false,
143
+ "rstrip": false,
144
+ "single_word": false,
145
+ "special": true
146
+ },
147
+ "18": {
148
+ "content": "<[PLHD18_never_used_51bce0c785ca2f68081bfa7d91973934]>",
149
+ "lstrip": false,
150
+ "normalized": false,
151
+ "rstrip": false,
152
+ "single_word": false,
153
+ "special": true
154
+ },
155
+ "19": {
156
+ "content": "<[PLHD19_never_used_51bce0c785ca2f68081bfa7d91973934]>",
157
+ "lstrip": false,
158
+ "normalized": false,
159
+ "rstrip": false,
160
+ "single_word": false,
161
+ "special": true
162
+ },
163
+ "20": {
164
+ "content": "<[PLHD20_never_used_51bce0c785ca2f68081bfa7d91973934]>",
165
+ "lstrip": false,
166
+ "normalized": false,
167
+ "rstrip": false,
168
+ "single_word": false,
169
+ "special": true
170
+ },
171
+ "21": {
172
+ "content": "<[PLHD21_never_used_51bce0c785ca2f68081bfa7d91973934]>",
173
+ "lstrip": false,
174
+ "normalized": false,
175
+ "rstrip": false,
176
+ "single_word": false,
177
+ "special": true
178
+ },
179
+ "22": {
180
+ "content": "<[PLHD22_never_used_51bce0c785ca2f68081bfa7d91973934]>",
181
+ "lstrip": false,
182
+ "normalized": false,
183
+ "rstrip": false,
184
+ "single_word": false,
185
+ "special": true
186
+ },
187
+ "23": {
188
+ "content": "<[PLHD23_never_used_51bce0c785ca2f68081bfa7d91973934]>",
189
+ "lstrip": false,
190
+ "normalized": false,
191
+ "rstrip": false,
192
+ "single_word": false,
193
+ "special": true
194
+ },
195
+ "24": {
196
+ "content": "<[PLHD24_never_used_51bce0c785ca2f68081bfa7d91973934]>",
197
+ "lstrip": false,
198
+ "normalized": false,
199
+ "rstrip": false,
200
+ "single_word": false,
201
+ "special": true
202
+ },
203
+ "25": {
204
+ "content": "<[PLHD25_never_used_51bce0c785ca2f68081bfa7d91973934]>",
205
+ "lstrip": false,
206
+ "normalized": false,
207
+ "rstrip": false,
208
+ "single_word": false,
209
+ "special": true
210
+ },
211
+ "26": {
212
+ "content": "<[PLHD26_never_used_51bce0c785ca2f68081bfa7d91973934]>",
213
+ "lstrip": false,
214
+ "normalized": false,
215
+ "rstrip": false,
216
+ "single_word": false,
217
+ "special": true
218
+ },
219
+ "27": {
220
+ "content": "<[PLHD27_never_used_51bce0c785ca2f68081bfa7d91973934]>",
221
+ "lstrip": false,
222
+ "normalized": false,
223
+ "rstrip": false,
224
+ "single_word": false,
225
+ "special": true
226
+ },
227
+ "28": {
228
+ "content": "<[PLHD28_never_used_51bce0c785ca2f68081bfa7d91973934]>",
229
+ "lstrip": false,
230
+ "normalized": false,
231
+ "rstrip": false,
232
+ "single_word": false,
233
+ "special": true
234
+ },
235
+ "29": {
236
+ "content": "<[PLHD29_never_used_51bce0c785ca2f68081bfa7d91973934]>",
237
+ "lstrip": false,
238
+ "normalized": false,
239
+ "rstrip": false,
240
+ "single_word": false,
241
+ "special": true
242
+ },
243
+ "30": {
244
+ "content": "<[PLHD30_never_used_51bce0c785ca2f68081bfa7d91973934]>",
245
+ "lstrip": false,
246
+ "normalized": false,
247
+ "rstrip": false,
248
+ "single_word": false,
249
+ "special": true
250
+ },
251
+ "31": {
252
+ "content": "<[PLHD31_never_used_51bce0c785ca2f68081bfa7d91973934]>",
253
+ "lstrip": false,
254
+ "normalized": false,
255
+ "rstrip": false,
256
+ "single_word": false,
257
+ "special": true
258
+ },
259
+ "32": {
260
+ "content": "<[PLHD32_never_used_51bce0c785ca2f68081bfa7d91973934]>",
261
+ "lstrip": false,
262
+ "normalized": false,
263
+ "rstrip": false,
264
+ "single_word": false,
265
+ "special": true
266
+ },
267
+ "33": {
268
+ "content": "<[PLHD33_never_used_51bce0c785ca2f68081bfa7d91973934]>",
269
+ "lstrip": false,
270
+ "normalized": false,
271
+ "rstrip": false,
272
+ "single_word": false,
273
+ "special": true
274
+ },
275
+ "34": {
276
+ "content": "<[PLHD34_never_used_51bce0c785ca2f68081bfa7d91973934]>",
277
+ "lstrip": false,
278
+ "normalized": false,
279
+ "rstrip": false,
280
+ "single_word": false,
281
+ "special": true
282
+ },
283
+ "35": {
284
+ "content": "<[PLHD35_never_used_51bce0c785ca2f68081bfa7d91973934]>",
285
+ "lstrip": false,
286
+ "normalized": false,
287
+ "rstrip": false,
288
+ "single_word": false,
289
+ "special": true
290
+ },
291
+ "36": {
292
+ "content": "<[PLHD36_never_used_51bce0c785ca2f68081bfa7d91973934]>",
293
+ "lstrip": false,
294
+ "normalized": false,
295
+ "rstrip": false,
296
+ "single_word": false,
297
+ "special": true
298
+ },
299
+ "37": {
300
+ "content": "<[PLHD37_never_used_51bce0c785ca2f68081bfa7d91973934]>",
301
+ "lstrip": false,
302
+ "normalized": false,
303
+ "rstrip": false,
304
+ "single_word": false,
305
+ "special": true
306
+ },
307
+ "38": {
308
+ "content": "<[PLHD38_never_used_51bce0c785ca2f68081bfa7d91973934]>",
309
+ "lstrip": false,
310
+ "normalized": false,
311
+ "rstrip": false,
312
+ "single_word": false,
313
+ "special": true
314
+ },
315
+ "39": {
316
+ "content": "<[PLHD39_never_used_51bce0c785ca2f68081bfa7d91973934]>",
317
+ "lstrip": false,
318
+ "normalized": false,
319
+ "rstrip": false,
320
+ "single_word": false,
321
+ "special": true
322
+ },
323
+ "40": {
324
+ "content": "<[PLHD40_never_used_51bce0c785ca2f68081bfa7d91973934]>",
325
+ "lstrip": false,
326
+ "normalized": false,
327
+ "rstrip": false,
328
+ "single_word": false,
329
+ "special": true
330
+ },
331
+ "41": {
332
+ "content": "<[PLHD41_never_used_51bce0c785ca2f68081bfa7d91973934]>",
333
+ "lstrip": false,
334
+ "normalized": false,
335
+ "rstrip": false,
336
+ "single_word": false,
337
+ "special": true
338
+ },
339
+ "42": {
340
+ "content": "<[PLHD42_never_used_51bce0c785ca2f68081bfa7d91973934]>",
341
+ "lstrip": false,
342
+ "normalized": false,
343
+ "rstrip": false,
344
+ "single_word": false,
345
+ "special": true
346
+ },
347
+ "43": {
348
+ "content": "<[PLHD43_never_used_51bce0c785ca2f68081bfa7d91973934]>",
349
+ "lstrip": false,
350
+ "normalized": false,
351
+ "rstrip": false,
352
+ "single_word": false,
353
+ "special": true
354
+ },
355
+ "44": {
356
+ "content": "<[PLHD44_never_used_51bce0c785ca2f68081bfa7d91973934]>",
357
+ "lstrip": false,
358
+ "normalized": false,
359
+ "rstrip": false,
360
+ "single_word": false,
361
+ "special": true
362
+ },
363
+ "45": {
364
+ "content": "<[PLHD45_never_used_51bce0c785ca2f68081bfa7d91973934]>",
365
+ "lstrip": false,
366
+ "normalized": false,
367
+ "rstrip": false,
368
+ "single_word": false,
369
+ "special": true
370
+ },
371
+ "46": {
372
+ "content": "<[PLHD46_never_used_51bce0c785ca2f68081bfa7d91973934]>",
373
+ "lstrip": false,
374
+ "normalized": false,
375
+ "rstrip": false,
376
+ "single_word": false,
377
+ "special": true
378
+ },
379
+ "47": {
380
+ "content": "<[PLHD47_never_used_51bce0c785ca2f68081bfa7d91973934]>",
381
+ "lstrip": false,
382
+ "normalized": false,
383
+ "rstrip": false,
384
+ "single_word": false,
385
+ "special": true
386
+ },
387
+ "48": {
388
+ "content": "<[PLHD48_never_used_51bce0c785ca2f68081bfa7d91973934]>",
389
+ "lstrip": false,
390
+ "normalized": false,
391
+ "rstrip": false,
392
+ "single_word": false,
393
+ "special": true
394
+ },
395
+ "49": {
396
+ "content": "<[PLHD49_never_used_51bce0c785ca2f68081bfa7d91973934]>",
397
+ "lstrip": false,
398
+ "normalized": false,
399
+ "rstrip": false,
400
+ "single_word": false,
401
+ "special": true
402
+ },
403
+ "50": {
404
+ "content": "<[PLHD50_never_used_51bce0c785ca2f68081bfa7d91973934]>",
405
+ "lstrip": false,
406
+ "normalized": false,
407
+ "rstrip": false,
408
+ "single_word": false,
409
+ "special": true
410
+ },
411
+ "51": {
412
+ "content": "<[PLHD51_never_used_51bce0c785ca2f68081bfa7d91973934]>",
413
+ "lstrip": false,
414
+ "normalized": false,
415
+ "rstrip": false,
416
+ "single_word": false,
417
+ "special": true
418
+ },
419
+ "52": {
420
+ "content": "<[PLHD52_never_used_51bce0c785ca2f68081bfa7d91973934]>",
421
+ "lstrip": false,
422
+ "normalized": false,
423
+ "rstrip": false,
424
+ "single_word": false,
425
+ "special": true
426
+ },
427
+ "53": {
428
+ "content": "<[PLHD53_never_used_51bce0c785ca2f68081bfa7d91973934]>",
429
+ "lstrip": false,
430
+ "normalized": false,
431
+ "rstrip": false,
432
+ "single_word": false,
433
+ "special": true
434
+ },
435
+ "54": {
436
+ "content": "<[PLHD54_never_used_51bce0c785ca2f68081bfa7d91973934]>",
437
+ "lstrip": false,
438
+ "normalized": false,
439
+ "rstrip": false,
440
+ "single_word": false,
441
+ "special": true
442
+ },
443
+ "55": {
444
+ "content": "<[PLHD55_never_used_51bce0c785ca2f68081bfa7d91973934]>",
445
+ "lstrip": false,
446
+ "normalized": false,
447
+ "rstrip": false,
448
+ "single_word": false,
449
+ "special": true
450
+ },
451
+ "56": {
452
+ "content": "<[PLHD56_never_used_51bce0c785ca2f68081bfa7d91973934]>",
453
+ "lstrip": false,
454
+ "normalized": false,
455
+ "rstrip": false,
456
+ "single_word": false,
457
+ "special": true
458
+ },
459
+ "57": {
460
+ "content": "<[PLHD57_never_used_51bce0c785ca2f68081bfa7d91973934]>",
461
+ "lstrip": false,
462
+ "normalized": false,
463
+ "rstrip": false,
464
+ "single_word": false,
465
+ "special": true
466
+ },
467
+ "58": {
468
+ "content": "<[PLHD58_never_used_51bce0c785ca2f68081bfa7d91973934]>",
469
+ "lstrip": false,
470
+ "normalized": false,
471
+ "rstrip": false,
472
+ "single_word": false,
473
+ "special": true
474
+ },
475
+ "59": {
476
+ "content": "<[PLHD59_never_used_51bce0c785ca2f68081bfa7d91973934]>",
477
+ "lstrip": false,
478
+ "normalized": false,
479
+ "rstrip": false,
480
+ "single_word": false,
481
+ "special": true
482
+ },
483
+ "60": {
484
+ "content": "<[PLHD60_never_used_51bce0c785ca2f68081bfa7d91973934]>",
485
+ "lstrip": false,
486
+ "normalized": false,
487
+ "rstrip": false,
488
+ "single_word": false,
489
+ "special": true
490
+ },
491
+ "61": {
492
+ "content": "<[PLHD61_never_used_51bce0c785ca2f68081bfa7d91973934]>",
493
+ "lstrip": false,
494
+ "normalized": false,
495
+ "rstrip": false,
496
+ "single_word": false,
497
+ "special": true
498
+ },
499
+ "62": {
500
+ "content": "<[PLHD62_never_used_51bce0c785ca2f68081bfa7d91973934]>",
501
+ "lstrip": false,
502
+ "normalized": false,
503
+ "rstrip": false,
504
+ "single_word": false,
505
+ "special": true
506
+ },
507
+ "63": {
508
+ "content": "<[PLHD63_never_used_51bce0c785ca2f68081bfa7d91973934]>",
509
+ "lstrip": false,
510
+ "normalized": false,
511
+ "rstrip": false,
512
+ "single_word": false,
513
+ "special": true
514
+ },
515
+ "64": {
516
+ "content": "<[PLHD64_never_used_51bce0c785ca2f68081bfa7d91973934]>",
517
+ "lstrip": false,
518
+ "normalized": false,
519
+ "rstrip": false,
520
+ "single_word": false,
521
+ "special": true
522
+ },
523
+ "65": {
524
+ "content": "<[PLHD65_never_used_51bce0c785ca2f68081bfa7d91973934]>",
525
+ "lstrip": false,
526
+ "normalized": false,
527
+ "rstrip": false,
528
+ "single_word": false,
529
+ "special": true
530
+ },
531
+ "66": {
532
+ "content": "<[PLHD66_never_used_51bce0c785ca2f68081bfa7d91973934]>",
533
+ "lstrip": false,
534
+ "normalized": false,
535
+ "rstrip": false,
536
+ "single_word": false,
537
+ "special": true
538
+ },
539
+ "67": {
540
+ "content": "<[PLHD67_never_used_51bce0c785ca2f68081bfa7d91973934]>",
541
+ "lstrip": false,
542
+ "normalized": false,
543
+ "rstrip": false,
544
+ "single_word": false,
545
+ "special": true
546
+ },
547
+ "68": {
548
+ "content": "<[PLHD68_never_used_51bce0c785ca2f68081bfa7d91973934]>",
549
+ "lstrip": false,
550
+ "normalized": false,
551
+ "rstrip": false,
552
+ "single_word": false,
553
+ "special": true
554
+ },
555
+ "69": {
556
+ "content": "<[PLHD69_never_used_51bce0c785ca2f68081bfa7d91973934]>",
557
+ "lstrip": false,
558
+ "normalized": false,
559
+ "rstrip": false,
560
+ "single_word": false,
561
+ "special": true
562
+ },
563
+ "70": {
564
+ "content": "<[PLHD70_never_used_51bce0c785ca2f68081bfa7d91973934]>",
565
+ "lstrip": false,
566
+ "normalized": false,
567
+ "rstrip": false,
568
+ "single_word": false,
569
+ "special": true
570
+ },
571
+ "71": {
572
+ "content": "<[PLHD71_never_used_51bce0c785ca2f68081bfa7d91973934]>",
573
+ "lstrip": false,
574
+ "normalized": false,
575
+ "rstrip": false,
576
+ "single_word": false,
577
+ "special": true
578
+ },
579
+ "72": {
580
+ "content": "<[PLHD72_never_used_51bce0c785ca2f68081bfa7d91973934]>",
581
+ "lstrip": false,
582
+ "normalized": false,
583
+ "rstrip": false,
584
+ "single_word": false,
585
+ "special": true
586
+ },
587
+ "73": {
588
+ "content": "<[PLHD73_never_used_51bce0c785ca2f68081bfa7d91973934]>",
589
+ "lstrip": false,
590
+ "normalized": false,
591
+ "rstrip": false,
592
+ "single_word": false,
593
+ "special": true
594
+ },
595
+ "74": {
596
+ "content": "<[PLHD74_never_used_51bce0c785ca2f68081bfa7d91973934]>",
597
+ "lstrip": false,
598
+ "normalized": false,
599
+ "rstrip": false,
600
+ "single_word": false,
601
+ "special": true
602
+ },
603
+ "75": {
604
+ "content": "<[PLHD75_never_used_51bce0c785ca2f68081bfa7d91973934]>",
605
+ "lstrip": false,
606
+ "normalized": false,
607
+ "rstrip": false,
608
+ "single_word": false,
609
+ "special": true
610
+ },
611
+ "76": {
612
+ "content": "<[PLHD76_never_used_51bce0c785ca2f68081bfa7d91973934]>",
613
+ "lstrip": false,
614
+ "normalized": false,
615
+ "rstrip": false,
616
+ "single_word": false,
617
+ "special": true
618
+ },
619
+ "77": {
620
+ "content": "<[PLHD77_never_used_51bce0c785ca2f68081bfa7d91973934]>",
621
+ "lstrip": false,
622
+ "normalized": false,
623
+ "rstrip": false,
624
+ "single_word": false,
625
+ "special": true
626
+ },
627
+ "78": {
628
+ "content": "<[PLHD78_never_used_51bce0c785ca2f68081bfa7d91973934]>",
629
+ "lstrip": false,
630
+ "normalized": false,
631
+ "rstrip": false,
632
+ "single_word": false,
633
+ "special": true
634
+ },
635
+ "79": {
636
+ "content": "<[PLHD79_never_used_51bce0c785ca2f68081bfa7d91973934]>",
637
+ "lstrip": false,
638
+ "normalized": false,
639
+ "rstrip": false,
640
+ "single_word": false,
641
+ "special": true
642
+ },
643
+ "80": {
644
+ "content": "<[PLHD80_never_used_51bce0c785ca2f68081bfa7d91973934]>",
645
+ "lstrip": false,
646
+ "normalized": false,
647
+ "rstrip": false,
648
+ "single_word": false,
649
+ "special": true
650
+ },
651
+ "81": {
652
+ "content": "<[PLHD81_never_used_51bce0c785ca2f68081bfa7d91973934]>",
653
+ "lstrip": false,
654
+ "normalized": false,
655
+ "rstrip": false,
656
+ "single_word": false,
657
+ "special": true
658
+ },
659
+ "82": {
660
+ "content": "<[PLHD82_never_used_51bce0c785ca2f68081bfa7d91973934]>",
661
+ "lstrip": false,
662
+ "normalized": false,
663
+ "rstrip": false,
664
+ "single_word": false,
665
+ "special": true
666
+ },
667
+ "83": {
668
+ "content": "<[PLHD83_never_used_51bce0c785ca2f68081bfa7d91973934]>",
669
+ "lstrip": false,
670
+ "normalized": false,
671
+ "rstrip": false,
672
+ "single_word": false,
673
+ "special": true
674
+ },
675
+ "84": {
676
+ "content": "<[PLHD84_never_used_51bce0c785ca2f68081bfa7d91973934]>",
677
+ "lstrip": false,
678
+ "normalized": false,
679
+ "rstrip": false,
680
+ "single_word": false,
681
+ "special": true
682
+ },
683
+ "85": {
684
+ "content": "<[PLHD85_never_used_51bce0c785ca2f68081bfa7d91973934]>",
685
+ "lstrip": false,
686
+ "normalized": false,
687
+ "rstrip": false,
688
+ "single_word": false,
689
+ "special": true
690
+ },
691
+ "86": {
692
+ "content": "<[PLHD86_never_used_51bce0c785ca2f68081bfa7d91973934]>",
693
+ "lstrip": false,
694
+ "normalized": false,
695
+ "rstrip": false,
696
+ "single_word": false,
697
+ "special": true
698
+ },
699
+ "87": {
700
+ "content": "<[PLHD87_never_used_51bce0c785ca2f68081bfa7d91973934]>",
701
+ "lstrip": false,
702
+ "normalized": false,
703
+ "rstrip": false,
704
+ "single_word": false,
705
+ "special": true
706
+ },
707
+ "88": {
708
+ "content": "<[PLHD88_never_used_51bce0c785ca2f68081bfa7d91973934]>",
709
+ "lstrip": false,
710
+ "normalized": false,
711
+ "rstrip": false,
712
+ "single_word": false,
713
+ "special": true
714
+ },
715
+ "89": {
716
+ "content": "<[PLHD89_never_used_51bce0c785ca2f68081bfa7d91973934]>",
717
+ "lstrip": false,
718
+ "normalized": false,
719
+ "rstrip": false,
720
+ "single_word": false,
721
+ "special": true
722
+ },
723
+ "90": {
724
+ "content": "<[PLHD90_never_used_51bce0c785ca2f68081bfa7d91973934]>",
725
+ "lstrip": false,
726
+ "normalized": false,
727
+ "rstrip": false,
728
+ "single_word": false,
729
+ "special": true
730
+ },
731
+ "91": {
732
+ "content": "<[PLHD91_never_used_51bce0c785ca2f68081bfa7d91973934]>",
733
+ "lstrip": false,
734
+ "normalized": false,
735
+ "rstrip": false,
736
+ "single_word": false,
737
+ "special": true
738
+ },
739
+ "92": {
740
+ "content": "<[PLHD92_never_used_51bce0c785ca2f68081bfa7d91973934]>",
741
+ "lstrip": false,
742
+ "normalized": false,
743
+ "rstrip": false,
744
+ "single_word": false,
745
+ "special": true
746
+ },
747
+ "93": {
748
+ "content": "<[PLHD93_never_used_51bce0c785ca2f68081bfa7d91973934]>",
749
+ "lstrip": false,
750
+ "normalized": false,
751
+ "rstrip": false,
752
+ "single_word": false,
753
+ "special": true
754
+ },
755
+ "94": {
756
+ "content": "<[PLHD94_never_used_51bce0c785ca2f68081bfa7d91973934]>",
757
+ "lstrip": false,
758
+ "normalized": false,
759
+ "rstrip": false,
760
+ "single_word": false,
761
+ "special": true
762
+ },
763
+ "95": {
764
+ "content": "<[PLHD95_never_used_51bce0c785ca2f68081bfa7d91973934]>",
765
+ "lstrip": false,
766
+ "normalized": false,
767
+ "rstrip": false,
768
+ "single_word": false,
769
+ "special": true
770
+ },
771
+ "96": {
772
+ "content": "<[PLHD96_never_used_51bce0c785ca2f68081bfa7d91973934]>",
773
+ "lstrip": false,
774
+ "normalized": false,
775
+ "rstrip": false,
776
+ "single_word": false,
777
+ "special": true
778
+ },
779
+ "97": {
780
+ "content": "<[PLHD97_never_used_51bce0c785ca2f68081bfa7d91973934]>",
781
+ "lstrip": false,
782
+ "normalized": false,
783
+ "rstrip": false,
784
+ "single_word": false,
785
+ "special": true
786
+ },
787
+ "98": {
788
+ "content": "<[PLHD98_never_used_51bce0c785ca2f68081bfa7d91973934]>",
789
+ "lstrip": false,
790
+ "normalized": false,
791
+ "rstrip": false,
792
+ "single_word": false,
793
+ "special": true
794
+ },
795
+ "99": {
796
+ "content": "<[PLHD99_never_used_51bce0c785ca2f68081bfa7d91973934]>",
797
+ "lstrip": false,
798
+ "normalized": false,
799
+ "rstrip": false,
800
+ "single_word": false,
801
+ "special": true
802
+ },
803
+ "100": {
804
+ "content": "<[PLHD100_never_used_51bce0c785ca2f68081bfa7d91973934]>",
805
+ "lstrip": false,
806
+ "normalized": false,
807
+ "rstrip": false,
808
+ "single_word": false,
809
+ "special": true
810
+ },
811
+ "101": {
812
+ "content": "<[PLHD101_never_used_51bce0c785ca2f68081bfa7d91973934]>",
813
+ "lstrip": false,
814
+ "normalized": false,
815
+ "rstrip": false,
816
+ "single_word": false,
817
+ "special": true
818
+ },
819
+ "102": {
820
+ "content": "<[PLHD102_never_used_51bce0c785ca2f68081bfa7d91973934]>",
821
+ "lstrip": false,
822
+ "normalized": false,
823
+ "rstrip": false,
824
+ "single_word": false,
825
+ "special": true
826
+ },
827
+ "103": {
828
+ "content": "<[PLHD103_never_used_51bce0c785ca2f68081bfa7d91973934]>",
829
+ "lstrip": false,
830
+ "normalized": false,
831
+ "rstrip": false,
832
+ "single_word": false,
833
+ "special": true
834
+ },
835
+ "104": {
836
+ "content": "<[PLHD104_never_used_51bce0c785ca2f68081bfa7d91973934]>",
837
+ "lstrip": false,
838
+ "normalized": false,
839
+ "rstrip": false,
840
+ "single_word": false,
841
+ "special": true
842
+ },
843
+ "105": {
844
+ "content": "<[PLHD105_never_used_51bce0c785ca2f68081bfa7d91973934]>",
845
+ "lstrip": false,
846
+ "normalized": false,
847
+ "rstrip": false,
848
+ "single_word": false,
849
+ "special": true
850
+ },
851
+ "106": {
852
+ "content": "<[PLHD106_never_used_51bce0c785ca2f68081bfa7d91973934]>",
853
+ "lstrip": false,
854
+ "normalized": false,
855
+ "rstrip": false,
856
+ "single_word": false,
857
+ "special": true
858
+ },
859
+ "107": {
860
+ "content": "<[PLHD107_never_used_51bce0c785ca2f68081bfa7d91973934]>",
861
+ "lstrip": false,
862
+ "normalized": false,
863
+ "rstrip": false,
864
+ "single_word": false,
865
+ "special": true
866
+ },
867
+ "108": {
868
+ "content": "<[PLHD108_never_used_51bce0c785ca2f68081bfa7d91973934]>",
869
+ "lstrip": false,
870
+ "normalized": false,
871
+ "rstrip": false,
872
+ "single_word": false,
873
+ "special": true
874
+ },
875
+ "109": {
876
+ "content": "<[PLHD109_never_used_51bce0c785ca2f68081bfa7d91973934]>",
877
+ "lstrip": false,
878
+ "normalized": false,
879
+ "rstrip": false,
880
+ "single_word": false,
881
+ "special": true
882
+ },
883
+ "110": {
884
+ "content": "<[PLHD110_never_used_51bce0c785ca2f68081bfa7d91973934]>",
885
+ "lstrip": false,
886
+ "normalized": false,
887
+ "rstrip": false,
888
+ "single_word": false,
889
+ "special": true
890
+ },
891
+ "111": {
892
+ "content": "<[PLHD111_never_used_51bce0c785ca2f68081bfa7d91973934]>",
893
+ "lstrip": false,
894
+ "normalized": false,
895
+ "rstrip": false,
896
+ "single_word": false,
897
+ "special": true
898
+ },
899
+ "112": {
900
+ "content": "<[PLHD112_never_used_51bce0c785ca2f68081bfa7d91973934]>",
901
+ "lstrip": false,
902
+ "normalized": false,
903
+ "rstrip": false,
904
+ "single_word": false,
905
+ "special": true
906
+ },
907
+ "113": {
908
+ "content": "<[PLHD113_never_used_51bce0c785ca2f68081bfa7d91973934]>",
909
+ "lstrip": false,
910
+ "normalized": false,
911
+ "rstrip": false,
912
+ "single_word": false,
913
+ "special": true
914
+ },
915
+ "114": {
916
+ "content": "<[PLHD114_never_used_51bce0c785ca2f68081bfa7d91973934]>",
917
+ "lstrip": false,
918
+ "normalized": false,
919
+ "rstrip": false,
920
+ "single_word": false,
921
+ "special": true
922
+ },
923
+ "115": {
924
+ "content": "<[PLHD115_never_used_51bce0c785ca2f68081bfa7d91973934]>",
925
+ "lstrip": false,
926
+ "normalized": false,
927
+ "rstrip": false,
928
+ "single_word": false,
929
+ "special": true
930
+ },
931
+ "116": {
932
+ "content": "<[PLHD116_never_used_51bce0c785ca2f68081bfa7d91973934]>",
933
+ "lstrip": false,
934
+ "normalized": false,
935
+ "rstrip": false,
936
+ "single_word": false,
937
+ "special": true
938
+ },
939
+ "117": {
940
+ "content": "<[PLHD117_never_used_51bce0c785ca2f68081bfa7d91973934]>",
941
+ "lstrip": false,
942
+ "normalized": false,
943
+ "rstrip": false,
944
+ "single_word": false,
945
+ "special": true
946
+ },
947
+ "118": {
948
+ "content": "<[PLHD118_never_used_51bce0c785ca2f68081bfa7d91973934]>",
949
+ "lstrip": false,
950
+ "normalized": false,
951
+ "rstrip": false,
952
+ "single_word": false,
953
+ "special": true
954
+ },
955
+ "119": {
956
+ "content": "<[PLHD119_never_used_51bce0c785ca2f68081bfa7d91973934]>",
957
+ "lstrip": false,
958
+ "normalized": false,
959
+ "rstrip": false,
960
+ "single_word": false,
961
+ "special": true
962
+ },
963
+ "120": {
964
+ "content": "<[PLHD120_never_used_51bce0c785ca2f68081bfa7d91973934]>",
965
+ "lstrip": false,
966
+ "normalized": false,
967
+ "rstrip": false,
968
+ "single_word": false,
969
+ "special": true
970
+ },
971
+ "121": {
972
+ "content": "<[PLHD121_never_used_51bce0c785ca2f68081bfa7d91973934]>",
973
+ "lstrip": false,
974
+ "normalized": false,
975
+ "rstrip": false,
976
+ "single_word": false,
977
+ "special": true
978
+ },
979
+ "122": {
980
+ "content": "<[PLHD122_never_used_51bce0c785ca2f68081bfa7d91973934]>",
981
+ "lstrip": false,
982
+ "normalized": false,
983
+ "rstrip": false,
984
+ "single_word": false,
985
+ "special": true
986
+ },
987
+ "123": {
988
+ "content": "<[PLHD123_never_used_51bce0c785ca2f68081bfa7d91973934]>",
989
+ "lstrip": false,
990
+ "normalized": false,
991
+ "rstrip": false,
992
+ "single_word": false,
993
+ "special": true
994
+ },
995
+ "124": {
996
+ "content": "<[fim-prefix]>",
997
+ "lstrip": false,
998
+ "normalized": false,
999
+ "rstrip": false,
1000
+ "single_word": false,
1001
+ "special": true
1002
+ },
1003
+ "125": {
1004
+ "content": "<[fim-suffix]>",
1005
+ "lstrip": false,
1006
+ "normalized": false,
1007
+ "rstrip": false,
1008
+ "single_word": false,
1009
+ "special": true
1010
+ },
1011
+ "126": {
1012
+ "content": "<[fim-middle]>",
1013
+ "lstrip": false,
1014
+ "normalized": false,
1015
+ "rstrip": false,
1016
+ "single_word": false,
1017
+ "special": true
1018
+ },
1019
+ "127": {
1020
+ "content": "<[PLHD127_never_used_51bce0c785ca2f68081bfa7d91973934]>",
1021
+ "lstrip": false,
1022
+ "normalized": false,
1023
+ "rstrip": false,
1024
+ "single_word": false,
1025
+ "special": true
1026
+ }
1027
+ },
1028
+ "bos_token": "<[begin▁of▁sentence]>",
1029
+ "clean_up_tokenization_spaces": false,
1030
+ "eos_token": "<[end▁of▁sentence]>",
1031
+ "model_max_length": 32768,
1032
+ "pad_token": "<[PAD▁TOKEN]>",
1033
+ "sep_token": "<[SEP▁TOKEN]>",
1034
+ "mask_token": "<[MASK_TOKEN]>",
1035
+ "tokenizer_class": "PreTrainedTokenizerFast"
1036
+ }