RobotLearningLab commited on
Commit
98753c0
·
verified ·
1 Parent(s): 6e42533

Release eight-task Jocasta-diff-VLA checkpoint

Browse files
README.md ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ license: apache-2.0
5
+ library_name: pytorch
6
+ pipeline_tag: robotics
7
+ base_model: Dream-org/Dream-VLA-7B
8
+ base_model_relation: adapter
9
+ tags:
10
+ - vision-language-action
11
+ - robotics
12
+ - robosuite
13
+ - lora
14
+ - flow-matching
15
+ - diffusion-language-model
16
+ - simulation
17
+ ---
18
+ # Jocasta-diff-VLA
19
+
20
+ **Code and loader:** [alanrbtx/Diffusion-VLA-tuning](https://github.com/alanrbtx/Diffusion-VLA-tuning)
21
+
22
+ Jocasta-diff-VLA is a Dream-VLA-7B adaptation to eight simulated Panda manipulation task families in robosuite. It uses the Dream-VLX authors' continuous Flow Matching action head and a diffusion language-model backbone. One jointly trained policy achieved **332/512 sustained successes (64.8%)** on the fixed development evaluation.
23
+
24
+ This repository contains an **inference checkpoint**, not just a LoRA language adapter: the LoRA weights, trained action head, noisy-action projector, proprioception projector, dataset normalization, processor files and training configuration are included. The pinned original Dream-VLA base weights are required separately. The public loader downloads both when needed. No optimizer or training-resume state is distributed.
25
+
26
+ ## Load
27
+
28
+ Use the accompanying repository with its pinned submodules and patch:
29
+
30
+ ```bash
31
+ git clone --recurse-submodules https://github.com/alanrbtx/Diffusion-VLA-tuning.git
32
+ cd Diffusion-VLA-tuning
33
+ git -C third_party/Dream-VLX apply ../../patches/dream-vlx-panda.patch
34
+ python -m pip install -r requirements.lock -r requirements-multitask.txt
35
+ ```
36
+
37
+ Run inference on one visible CUDA GPU:
38
+
39
+ ```python
40
+ from load_policy import load_policy, predict_action
41
+
42
+ policy, processor, cfg = load_policy('RobotLearningLab/Jocasta-diff-VLA')
43
+ # primary and wrist: uint8 RGB arrays, each (224,224,3)
44
+ # proprio: float32 (8,), xyz + axis-angle orientation + two gripper joints
45
+ actions = predict_action(policy, processor, cfg, primary, wrist, proprio,
46
+ 'pick up the red cube', seed=84907)
47
+ # actions.shape == (8,7)
48
+ ```
49
+
50
+ For reproducibility, pass the desired Hub commit with `revision=...`. The base is fixed to `Dream-org/Dream-VLA-7B@0cd0e25c1771c5b468c74585b5cf35c4a4aa315c`; `base_model_path=...` reuses a local copy. This is a custom VLA package; `AutoModel.from_pretrained` or loading only the adapter will not reconstruct the trained action policy.
51
+
52
+ Action columns are world-frame translation deltas in metres, extrinsic XYZ Euler deltas in radians, and gripper openness. They require the documented conversion to normalized Panda OSC commands; see `panda_adapter.py`. Proprioception uses the recorded quaternion-to-axis-angle convention in `robot_state.py`. In simulation, keep CUDA inference and EGL rendering on separate physical GPUs. Model inference itself creates no EGL context.
53
+
54
+ ## Training
55
+
56
+ | Setting | Value |
57
+ |---|---|
58
+ | Base | Dream-VLA-7B, pinned revision above |
59
+ | Upstream code | DreamLM/Dream-VLX `a72fa4106eae97a923b531342fb692742809782f` |
60
+ | Objective | Author Flow Matching velocity MSE |
61
+ | Optimizer | AdamW, learning rate1e-4 |
62
+ | Updates |100,000; fixed final checkpoint |
63
+ | Global batch |64 (4 GPUs × microbatch8 × accumulation2) |
64
+ | LoRA |rank32, alpha16, dropout0, all linear layers |
65
+ | Training/sampling seeds |84907 /190019 |
66
+ | Inputs |two224RGB cameras,8D proprioception, instruction |
67
+ | Inference |4 Flow Matching steps; action chunk8 |
68
+ | Training data |8,140 successful trajectories;4,841,083 timesteps |
69
+ | Task/language diversity |8 families,30 goals,510 train instruction strings |
70
+
71
+ The model was initialized from the original Dream-VLA base with fresh action modules, not from the earlier single-task Lift model. Training used family/goal balancing and the author's image augmentation. A separate120-string held-out-language development bank was excluded from training; the results below use canonical instructions and do not constitute a held-out-language evaluation. Raw demonstration data are not included; the code documents the exact cache schema.
72
+
73
+ ## Evaluation
74
+
75
+ 64 fixed development scenes per family, seeds30000–30063, original physical scene configuration and horizons,10 settling steps, `hard_reset=False`. Success requires the original task predicate to hold for10 consecutive physical steps. All512 episodes were independently audited, including45,254 policy calls and365,450 physical steps. One training seed; no reserved test scenes, checkpoint selection or metric-driven reruns.
76
+
77
+ | Task | Successes | Rate |
78
+ |---|---:|---:|
79
+ | Lift |64/64|100.0%|
80
+ | PickPlace |40/64|62.5%|
81
+ | Stack |43/64|67.2%|
82
+ | Door |34/64|53.1%|
83
+ | NutAssembly |32/64|50.0%|
84
+ | ToolHang |9/64|14.1%|
85
+ | Push |61/64|95.3%|
86
+ | Drawer |49/64|76.6%|
87
+ | Total |332/512|64.8%|
88
+
89
+ Original pretrained Dream-VLA achieved **0/64** on the same PickPlace scenes; Jocasta-diff-VLA achieved **40/64**. The original policy used one image, one action,4 discrete-diffusion steps and native Bridge statistics. The adapted policy uses two images/proprio,8 actions,4 Flow Matching steps and Panda statistics. This is a comparison of complete transferred policies, not an isolated backbone or diffusion-mechanism effect. No baseline result is claimed for the other seven tasks. See `evaluation-results.json` for counts and per-family Wilson intervals.
90
+
91
+ ## Scope and limitations
92
+
93
+ These are development results on our robosuite/Panda task definitions, not official LIBERO scores. ToolHang is weak (9/64). Other robots, unseen task families, real hardware and the reserved test split have not been validated. This release implements manipulation skills, not autonomous replication or learned mission-memory inheritance.
94
+
95
+ The release loader is checked against the original checkpoint on saved observations from all eight task families. `validation.json` records the outcome. `release.json` records file hashes; the original adapter and action-component weight bytes are retained unchanged. Reference inference environment: Python3.10.18, PyTorch2.5.1+cu124, Transformers4.51.3, BF16/SDPA on H200. No task evaluation was rerun for packaging.
96
+
97
+ ## Attribution
98
+
99
+ Architecture, Flow Matching loss/sampler, action heads and projectors originate from Dream-VLX, with upstream OpenVLA/OpenVLA-OFT attribution retained in the code. Panda adaptations and release: RobotLearningLab. Upstream code and model terms remain applicable; this adaptation is released under Apache-2.0.
100
+
101
+ ```bibtex
102
+ @article{ye2025dreamvla,
103
+ title={Dream-VL & Dream-VLA: Open Vision-Language and Vision-Language-Action Models with Diffusion Language Model Backbone},
104
+ author={Ye, Jiacheng and Gong, Shansan and Gao, Jiahui and Fan, Junming and Wu, Shuang and Bi, Wei and Bai, Haoli and Shang, Lifeng and Kong, Lingpeng},
105
+ journal={arXiv preprint arXiv:2512.22615},
106
+ year={2025}
107
+ }
108
+ ```
109
+
110
+ Validated code revision: [c21ef87ef2d749b1eb2d06f7eb91e4c2b843bcd6](https://github.com/alanrbtx/Diffusion-VLA-tuning/tree/c21ef87ef2d749b1eb2d06f7eb91e4c2b843bcd6).
components.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d05e046a05ca3f75c25a2bc0f5a72386616ec01777a74dd49c4f975726d0792d
3
+ size 308670818
dataset_statistics.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"panda_multitask_v1": {"action": {"q01": [-0.02500000037252903, -0.02500000037252903, -0.019999999552965164, -0.10000000149011612, -0.05893325433135033, -0.10000000149011612, 0.0], "q99": [0.02500000037252903, 0.02500000037252903, 0.02500000037252903, 0.015562170185148716, 0.08465777337551117, 0.1199963390827179, 1.0], "min": [-0.02500000037252903, -0.02500000037252903, -0.02500000037252903, -0.10000000149011612, -0.10000000149011612, -0.15000000596046448, 0.0], "max": [0.02500000037252903, 0.02500000037252903, 0.02500000037252903, 0.10000000149011612, 0.10000000149011612, 0.15000000596046448, 1.0], "mean": [0.0007440120032555331, -2.1607706720230014e-05, 0.00010377101372089216, -0.0018092541714601624, 0.002921705846610704, 0.0011693322522821842, 0.4125693880865929], "std": [0.00816775854200586, 0.007835138627892415, 0.008937634049557884, 0.01492427012787455, 0.019598626414690574, 0.03893551415697649, 0.4922965448796561], "mask": [true, true, true, true, true, true, false]}, "proprio": {"q01": [-0.2566206157207489, -0.33712559938430786, 0.8227204084396362, 0.0037662102840840816, -2.414285182952881, -2.481873035430908, 0.0003689665754791349, -0.04004158824682236], "q99": [0.17864581942558289, 0.3723371624946594, 1.1953798532485962, 3.2045512199401855, 3.141456365585327, 0.309704065322876, 0.04000040143728256, 6.752906483598053e-05], "min": [-0.3434860408306122, -0.42232587933540344, 0.810836672782898, -2.633622407913208, -2.861912965774536, -2.5892624855041504, -0.00046465714694932103, -0.0406365767121315], "max": [0.23352952301502228, 0.38991302251815796, 1.1989377737045288, 3.577754259109497, 3.3290982246398926, 0.8099021315574646, 0.04065445810556412, 0.0010104239918291569], "mean": [-0.03860657470474546, -0.03817918017321986, 0.9738751488239445, 2.604633974306255, -0.05293129390751784, -0.08939216487351723, 0.024143033216234233, -0.0248236959658246], "std": [0.10347923603804132, 0.12090414386314632, 0.0985364305026706, 0.7639675917097264, 1.3049967119834551, 0.506032735426, 0.014263119256882902, 0.014224975728147104], "mask": [true, true, true, true, true, true, true, true]}, "num_trajectories": 8140, "num_transitions": 4841083, "weighting": "uniform family, uniform semantic goal, uniform successful train episode, uniform timestep"}}
evaluation-results.json ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "evidence_tier": "development; one training seed; final checkpoint only",
3
+ "episodes": 512,
4
+ "sustained_successes": 332,
5
+ "success_rate": 0.6484375,
6
+ "by_family": {
7
+ "Lift": {
8
+ "episodes": 64,
9
+ "sustained_successes": 64,
10
+ "success_rate": 1.0,
11
+ "wilson95": [
12
+ 0.9433759402071946,
13
+ 1.0
14
+ ]
15
+ },
16
+ "PickPlace": {
17
+ "episodes": 64,
18
+ "sustained_successes": 40,
19
+ "success_rate": 0.625,
20
+ "wilson95": [
21
+ 0.502503786840045,
22
+ 0.7333401982117536
23
+ ]
24
+ },
25
+ "Stack": {
26
+ "episodes": 64,
27
+ "sustained_successes": 43,
28
+ "success_rate": 0.671875,
29
+ "wilson95": [
30
+ 0.549991058490915,
31
+ 0.7742944209553081
32
+ ]
33
+ },
34
+ "Door": {
35
+ "episodes": 64,
36
+ "sustained_successes": 34,
37
+ "success_rate": 0.53125,
38
+ "wilson95": [
39
+ 0.41072087051471007,
40
+ 0.6482401257482395
41
+ ]
42
+ },
43
+ "NutAssembly": {
44
+ "episodes": 64,
45
+ "sustained_successes": 32,
46
+ "success_rate": 0.5,
47
+ "wilson95": [
48
+ 0.3810209474394701,
49
+ 0.6189790525605299
50
+ ]
51
+ },
52
+ "ToolHang": {
53
+ "episodes": 64,
54
+ "sustained_successes": 9,
55
+ "success_rate": 0.140625,
56
+ "wilson95": [
57
+ 0.0757857255603086,
58
+ 0.24616281741577023
59
+ ]
60
+ },
61
+ "Push": {
62
+ "episodes": 64,
63
+ "sustained_successes": 61,
64
+ "success_rate": 0.953125,
65
+ "wilson95": [
66
+ 0.8710034625990631,
67
+ 0.983930983213707
68
+ ]
69
+ },
70
+ "Drawer": {
71
+ "episodes": 64,
72
+ "sustained_successes": 49,
73
+ "success_rate": 0.765625,
74
+ "wilson95": [
75
+ 0.6486674241743136,
76
+ 0.8525010440607586
77
+ ]
78
+ }
79
+ },
80
+ "success_rule": "10 consecutive physical steps satisfying original task predicate",
81
+ "seeds": [
82
+ 30000,
83
+ 30063
84
+ ],
85
+ "test_access": false,
86
+ "trained_calls_audited": 45254,
87
+ "trained_steps_audited": 365450,
88
+ "base_pickplace": {
89
+ "episodes": 64,
90
+ "sustained_successes": 0,
91
+ "success_rate": 0.0,
92
+ "wilson95": [
93
+ 0.0,
94
+ 0.05662405979280534
95
+ ]
96
+ },
97
+ "paired_pickplace": {
98
+ "base_successes": 0,
99
+ "trained_successes": 40,
100
+ "both_success": 0,
101
+ "trained_only": 40,
102
+ "base_only": 0
103
+ },
104
+ "interface_difference": "Original: one RGB, chunk1, discrete diffusion4, bridge_orig. Adapted: two RGB+proprio8, chunk8, Flow Matching4, panda_multitask_v1."
105
+ }
lora_adapter/adapter_config.json ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "alpha_pattern": {},
3
+ "auto_mapping": {
4
+ "base_model_class": "DreamVLAForActionPrediction",
5
+ "parent_library": "dreamvla.modeling_dreamvl"
6
+ },
7
+ "base_model_name_or_path": "Dream-org/Dream-VLA-7B",
8
+ "bias": "none",
9
+ "corda_config": null,
10
+ "eva_config": null,
11
+ "exclude_modules": null,
12
+ "fan_in_fan_out": false,
13
+ "inference_mode": true,
14
+ "init_lora_weights": "gaussian",
15
+ "layer_replication": null,
16
+ "layers_pattern": null,
17
+ "layers_to_transform": null,
18
+ "loftq_config": {},
19
+ "lora_alpha": 16,
20
+ "lora_bias": false,
21
+ "lora_dropout": 0.0,
22
+ "megatron_config": null,
23
+ "megatron_core": "megatron.core",
24
+ "modules_to_save": null,
25
+ "peft_type": "LORA",
26
+ "qalora_group_size": 16,
27
+ "r": 32,
28
+ "rank_pattern": {},
29
+ "revision": "0cd0e25c1771c5b468c74585b5cf35c4a4aa315c",
30
+ "target_modules": [
31
+ "down_proj",
32
+ "fc1",
33
+ "fc2",
34
+ "mlp.2",
35
+ "q_proj",
36
+ "k_proj",
37
+ "linear_2",
38
+ "up_proj",
39
+ "linear_1",
40
+ "v_proj",
41
+ "mlp.0",
42
+ "o_proj",
43
+ "attn.proj",
44
+ "qkv",
45
+ "gate_proj"
46
+ ],
47
+ "target_parameters": null,
48
+ "task_type": null,
49
+ "trainable_token_indices": null,
50
+ "use_dora": false,
51
+ "use_qalora": false,
52
+ "use_rslora": false
53
+ }
lora_adapter/adapter_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3e61273d6f6be68b1c66c3a6b5fedcd6cb320aef1dacc7f6164e24bcea28bb77
3
+ size 411194208
processor/added_tokens.json ADDED
@@ -0,0 +1,282 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "</tool_call>": 151658,
3
+ "<tool_call>": 151657,
4
+ "<|action_0|>": 151667,
5
+ "<|action_100|>": 151767,
6
+ "<|action_101|>": 151768,
7
+ "<|action_102|>": 151769,
8
+ "<|action_103|>": 151770,
9
+ "<|action_104|>": 151771,
10
+ "<|action_105|>": 151772,
11
+ "<|action_106|>": 151773,
12
+ "<|action_107|>": 151774,
13
+ "<|action_108|>": 151775,
14
+ "<|action_109|>": 151776,
15
+ "<|action_10|>": 151677,
16
+ "<|action_110|>": 151777,
17
+ "<|action_111|>": 151778,
18
+ "<|action_112|>": 151779,
19
+ "<|action_113|>": 151780,
20
+ "<|action_114|>": 151781,
21
+ "<|action_115|>": 151782,
22
+ "<|action_116|>": 151783,
23
+ "<|action_117|>": 151784,
24
+ "<|action_118|>": 151785,
25
+ "<|action_119|>": 151786,
26
+ "<|action_11|>": 151678,
27
+ "<|action_120|>": 151787,
28
+ "<|action_121|>": 151788,
29
+ "<|action_122|>": 151789,
30
+ "<|action_123|>": 151790,
31
+ "<|action_124|>": 151791,
32
+ "<|action_125|>": 151792,
33
+ "<|action_126|>": 151793,
34
+ "<|action_127|>": 151794,
35
+ "<|action_128|>": 151795,
36
+ "<|action_129|>": 151796,
37
+ "<|action_12|>": 151679,
38
+ "<|action_130|>": 151797,
39
+ "<|action_131|>": 151798,
40
+ "<|action_132|>": 151799,
41
+ "<|action_133|>": 151800,
42
+ "<|action_134|>": 151801,
43
+ "<|action_135|>": 151802,
44
+ "<|action_136|>": 151803,
45
+ "<|action_137|>": 151804,
46
+ "<|action_138|>": 151805,
47
+ "<|action_139|>": 151806,
48
+ "<|action_13|>": 151680,
49
+ "<|action_140|>": 151807,
50
+ "<|action_141|>": 151808,
51
+ "<|action_142|>": 151809,
52
+ "<|action_143|>": 151810,
53
+ "<|action_144|>": 151811,
54
+ "<|action_145|>": 151812,
55
+ "<|action_146|>": 151813,
56
+ "<|action_147|>": 151814,
57
+ "<|action_148|>": 151815,
58
+ "<|action_149|>": 151816,
59
+ "<|action_14|>": 151681,
60
+ "<|action_150|>": 151817,
61
+ "<|action_151|>": 151818,
62
+ "<|action_152|>": 151819,
63
+ "<|action_153|>": 151820,
64
+ "<|action_154|>": 151821,
65
+ "<|action_155|>": 151822,
66
+ "<|action_156|>": 151823,
67
+ "<|action_157|>": 151824,
68
+ "<|action_158|>": 151825,
69
+ "<|action_159|>": 151826,
70
+ "<|action_15|>": 151682,
71
+ "<|action_160|>": 151827,
72
+ "<|action_161|>": 151828,
73
+ "<|action_162|>": 151829,
74
+ "<|action_163|>": 151830,
75
+ "<|action_164|>": 151831,
76
+ "<|action_165|>": 151832,
77
+ "<|action_166|>": 151833,
78
+ "<|action_167|>": 151834,
79
+ "<|action_168|>": 151835,
80
+ "<|action_169|>": 151836,
81
+ "<|action_16|>": 151683,
82
+ "<|action_170|>": 151837,
83
+ "<|action_171|>": 151838,
84
+ "<|action_172|>": 151839,
85
+ "<|action_173|>": 151840,
86
+ "<|action_174|>": 151841,
87
+ "<|action_175|>": 151842,
88
+ "<|action_176|>": 151843,
89
+ "<|action_177|>": 151844,
90
+ "<|action_178|>": 151845,
91
+ "<|action_179|>": 151846,
92
+ "<|action_17|>": 151684,
93
+ "<|action_180|>": 151847,
94
+ "<|action_181|>": 151848,
95
+ "<|action_182|>": 151849,
96
+ "<|action_183|>": 151850,
97
+ "<|action_184|>": 151851,
98
+ "<|action_185|>": 151852,
99
+ "<|action_186|>": 151853,
100
+ "<|action_187|>": 151854,
101
+ "<|action_188|>": 151855,
102
+ "<|action_189|>": 151856,
103
+ "<|action_18|>": 151685,
104
+ "<|action_190|>": 151857,
105
+ "<|action_191|>": 151858,
106
+ "<|action_192|>": 151859,
107
+ "<|action_193|>": 151860,
108
+ "<|action_194|>": 151861,
109
+ "<|action_195|>": 151862,
110
+ "<|action_196|>": 151863,
111
+ "<|action_197|>": 151864,
112
+ "<|action_198|>": 151865,
113
+ "<|action_199|>": 151866,
114
+ "<|action_19|>": 151686,
115
+ "<|action_1|>": 151668,
116
+ "<|action_200|>": 151867,
117
+ "<|action_201|>": 151868,
118
+ "<|action_202|>": 151869,
119
+ "<|action_203|>": 151870,
120
+ "<|action_204|>": 151871,
121
+ "<|action_205|>": 151872,
122
+ "<|action_206|>": 151873,
123
+ "<|action_207|>": 151874,
124
+ "<|action_208|>": 151875,
125
+ "<|action_209|>": 151876,
126
+ "<|action_20|>": 151687,
127
+ "<|action_210|>": 151877,
128
+ "<|action_211|>": 151878,
129
+ "<|action_212|>": 151879,
130
+ "<|action_213|>": 151880,
131
+ "<|action_214|>": 151881,
132
+ "<|action_215|>": 151882,
133
+ "<|action_216|>": 151883,
134
+ "<|action_217|>": 151884,
135
+ "<|action_218|>": 151885,
136
+ "<|action_219|>": 151886,
137
+ "<|action_21|>": 151688,
138
+ "<|action_220|>": 151887,
139
+ "<|action_221|>": 151888,
140
+ "<|action_222|>": 151889,
141
+ "<|action_223|>": 151890,
142
+ "<|action_224|>": 151891,
143
+ "<|action_225|>": 151892,
144
+ "<|action_226|>": 151893,
145
+ "<|action_227|>": 151894,
146
+ "<|action_228|>": 151895,
147
+ "<|action_229|>": 151896,
148
+ "<|action_22|>": 151689,
149
+ "<|action_230|>": 151897,
150
+ "<|action_231|>": 151898,
151
+ "<|action_232|>": 151899,
152
+ "<|action_233|>": 151900,
153
+ "<|action_234|>": 151901,
154
+ "<|action_235|>": 151902,
155
+ "<|action_236|>": 151903,
156
+ "<|action_237|>": 151904,
157
+ "<|action_238|>": 151905,
158
+ "<|action_239|>": 151906,
159
+ "<|action_23|>": 151690,
160
+ "<|action_240|>": 151907,
161
+ "<|action_241|>": 151908,
162
+ "<|action_242|>": 151909,
163
+ "<|action_243|>": 151910,
164
+ "<|action_244|>": 151911,
165
+ "<|action_245|>": 151912,
166
+ "<|action_246|>": 151913,
167
+ "<|action_247|>": 151914,
168
+ "<|action_248|>": 151915,
169
+ "<|action_249|>": 151916,
170
+ "<|action_24|>": 151691,
171
+ "<|action_250|>": 151917,
172
+ "<|action_251|>": 151918,
173
+ "<|action_252|>": 151919,
174
+ "<|action_253|>": 151920,
175
+ "<|action_254|>": 151921,
176
+ "<|action_255|>": 151922,
177
+ "<|action_25|>": 151692,
178
+ "<|action_26|>": 151693,
179
+ "<|action_27|>": 151694,
180
+ "<|action_28|>": 151695,
181
+ "<|action_29|>": 151696,
182
+ "<|action_2|>": 151669,
183
+ "<|action_30|>": 151697,
184
+ "<|action_31|>": 151698,
185
+ "<|action_32|>": 151699,
186
+ "<|action_33|>": 151700,
187
+ "<|action_34|>": 151701,
188
+ "<|action_35|>": 151702,
189
+ "<|action_36|>": 151703,
190
+ "<|action_37|>": 151704,
191
+ "<|action_38|>": 151705,
192
+ "<|action_39|>": 151706,
193
+ "<|action_3|>": 151670,
194
+ "<|action_40|>": 151707,
195
+ "<|action_41|>": 151708,
196
+ "<|action_42|>": 151709,
197
+ "<|action_43|>": 151710,
198
+ "<|action_44|>": 151711,
199
+ "<|action_45|>": 151712,
200
+ "<|action_46|>": 151713,
201
+ "<|action_47|>": 151714,
202
+ "<|action_48|>": 151715,
203
+ "<|action_49|>": 151716,
204
+ "<|action_4|>": 151671,
205
+ "<|action_50|>": 151717,
206
+ "<|action_51|>": 151718,
207
+ "<|action_52|>": 151719,
208
+ "<|action_53|>": 151720,
209
+ "<|action_54|>": 151721,
210
+ "<|action_55|>": 151722,
211
+ "<|action_56|>": 151723,
212
+ "<|action_57|>": 151724,
213
+ "<|action_58|>": 151725,
214
+ "<|action_59|>": 151726,
215
+ "<|action_5|>": 151672,
216
+ "<|action_60|>": 151727,
217
+ "<|action_61|>": 151728,
218
+ "<|action_62|>": 151729,
219
+ "<|action_63|>": 151730,
220
+ "<|action_64|>": 151731,
221
+ "<|action_65|>": 151732,
222
+ "<|action_66|>": 151733,
223
+ "<|action_67|>": 151734,
224
+ "<|action_68|>": 151735,
225
+ "<|action_69|>": 151736,
226
+ "<|action_6|>": 151673,
227
+ "<|action_70|>": 151737,
228
+ "<|action_71|>": 151738,
229
+ "<|action_72|>": 151739,
230
+ "<|action_73|>": 151740,
231
+ "<|action_74|>": 151741,
232
+ "<|action_75|>": 151742,
233
+ "<|action_76|>": 151743,
234
+ "<|action_77|>": 151744,
235
+ "<|action_78|>": 151745,
236
+ "<|action_79|>": 151746,
237
+ "<|action_7|>": 151674,
238
+ "<|action_80|>": 151747,
239
+ "<|action_81|>": 151748,
240
+ "<|action_82|>": 151749,
241
+ "<|action_83|>": 151750,
242
+ "<|action_84|>": 151751,
243
+ "<|action_85|>": 151752,
244
+ "<|action_86|>": 151753,
245
+ "<|action_87|>": 151754,
246
+ "<|action_88|>": 151755,
247
+ "<|action_89|>": 151756,
248
+ "<|action_8|>": 151675,
249
+ "<|action_90|>": 151757,
250
+ "<|action_91|>": 151758,
251
+ "<|action_92|>": 151759,
252
+ "<|action_93|>": 151760,
253
+ "<|action_94|>": 151761,
254
+ "<|action_95|>": 151762,
255
+ "<|action_96|>": 151763,
256
+ "<|action_97|>": 151764,
257
+ "<|action_98|>": 151765,
258
+ "<|action_99|>": 151766,
259
+ "<|action_9|>": 151676,
260
+ "<|beginoftext|>": 151665,
261
+ "<|box_end|>": 151649,
262
+ "<|box_start|>": 151648,
263
+ "<|endoftext|>": 151643,
264
+ "<|file_sep|>": 151664,
265
+ "<|fim_middle|>": 151660,
266
+ "<|fim_pad|>": 151662,
267
+ "<|fim_prefix|>": 151659,
268
+ "<|fim_suffix|>": 151661,
269
+ "<|im_end|>": 151645,
270
+ "<|im_start|>": 151644,
271
+ "<|image_pad|>": 151655,
272
+ "<|mask|>": 151666,
273
+ "<|object_ref_end|>": 151647,
274
+ "<|object_ref_start|>": 151646,
275
+ "<|quad_end|>": 151651,
276
+ "<|quad_start|>": 151650,
277
+ "<|repo_name|>": 151663,
278
+ "<|video_pad|>": 151656,
279
+ "<|vision_end|>": 151653,
280
+ "<|vision_pad|>": 151654,
281
+ "<|vision_start|>": 151652
282
+ }
processor/chat_template.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ {
2
+ "chat_template": "{% set image_count = namespace(value=0) %}{% set video_count = namespace(value=0) %}{% for message in messages %}{% if loop.first and message['role'] != 'system' %}<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n{% endif %}<|im_start|>{{ message['role'] }}\n{% if message['content'] is string %}{{ message['content'] }}<|im_end|>\n{% else %}{% for content in message['content'] %}{% if content['type'] == 'image' or 'image' in content or 'image_url' in content %}{% set image_count.value = image_count.value + 1 %}{% if add_vision_id %}Picture {{ image_count.value }}: {% endif %}<|image_pad|>{% elif content['type'] == 'video' or 'video' in content %}{% set video_count.value = video_count.value + 1 %}{% if add_vision_id %}Video {{ video_count.value }}: {% endif %}<|video_pad|>{% elif 'text' in content %}{{ content['text'] }}{% endif %}{% endfor %}<|im_end|>\n{% endif %}{% endfor %}{% if add_generation_prompt %}<|im_start|>assistant\n{% endif %}"
3
+ }
processor/image_processing_dreamvl.py ADDED
@@ -0,0 +1,469 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ # Copyright 2024 The Qwen team, Alibaba Group and the HuggingFace Inc. team. All rights reserved.
3
+ #
4
+ # This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX
5
+ # and OPT implementations in this library. It has been modified from its
6
+ # original forms to accommodate minor architectural differences compared
7
+ # to GPT-NeoX and OPT used by the Meta AI team that trained the model.
8
+ #
9
+ # Licensed under the Apache License, Version 2.0 (the "License");
10
+ # you may not use this file except in compliance with the License.
11
+ # You may obtain a copy of the License at
12
+ #
13
+ # http://www.apache.org/licenses/LICENSE-2.0
14
+ #
15
+ # Unless required by applicable law or agreed to in writing, software
16
+ # distributed under the License is distributed on an "AS IS" BASIS,
17
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ """Image processor class for Dream-VL."""
21
+
22
+ import math
23
+ from typing import Dict, List, Optional, Union
24
+
25
+ import numpy as np
26
+
27
+ from transformers.image_processing_utils import BaseImageProcessor, BatchFeature
28
+ from transformers.image_transforms import (
29
+ convert_to_rgb,
30
+ resize,
31
+ to_channel_dimension_format,
32
+ )
33
+ from transformers.image_utils import (
34
+ OPENAI_CLIP_MEAN,
35
+ OPENAI_CLIP_STD,
36
+ ChannelDimension,
37
+ ImageInput,
38
+ PILImageResampling,
39
+ VideoInput,
40
+ get_image_size,
41
+ infer_channel_dimension_format,
42
+ is_scaled_image,
43
+ is_valid_image,
44
+ make_list_of_images,
45
+ to_numpy_array,
46
+ valid_images,
47
+ validate_preprocess_arguments,
48
+ )
49
+ from transformers.utils import TensorType, is_vision_available, logging
50
+
51
+ logger = logging.get_logger(__name__)
52
+
53
+ if is_vision_available():
54
+ from PIL import Image
55
+
56
+
57
+ def make_batched_images(images) -> List[List[ImageInput]]:
58
+ """
59
+ Accepts images in list or nested list format, and makes a list of images for preprocessing.
60
+
61
+ Args:
62
+ images (`Union[List[List[ImageInput]], List[ImageInput], ImageInput]`):
63
+ The input image.
64
+
65
+ Returns:
66
+ list: A list of images.
67
+ """
68
+ if isinstance(images, (list, tuple)) and isinstance(images[0], (list, tuple)) and is_valid_image(images[0][0]):
69
+ return [img for img_list in images for img in img_list]
70
+
71
+ elif isinstance(images, (list, tuple)) and is_valid_image(images[0]):
72
+ return images
73
+
74
+ elif is_valid_image(images):
75
+ return [images]
76
+
77
+ raise ValueError(f"Could not make batched images from {images}")
78
+
79
+
80
+ # Copied from transformers.models.emova_next_video.image_processing_emova_next_video.make_batched_videos
81
+ def make_batched_videos(videos) -> List[VideoInput]:
82
+ if isinstance(videos, (list, tuple)) and isinstance(videos[0], (list, tuple)) and is_valid_image(videos[0][0]):
83
+ return videos
84
+
85
+ elif isinstance(videos, (list, tuple)) and is_valid_image(videos[0]):
86
+ if isinstance(videos[0], Image.Image):
87
+ return [videos]
88
+ elif len(videos[0].shape) == 4:
89
+ return [list(video) for video in videos]
90
+
91
+ elif is_valid_image(videos) and len(videos.shape) == 4:
92
+ return [list(videos)]
93
+
94
+ raise ValueError(f"Could not make batched video from {videos}")
95
+
96
+
97
+ def smart_resize(
98
+ height: int, width: int, factor: int = 28, min_pixels: int = 56 * 56, max_pixels: int = 14 * 14 * 4 * 1280
99
+ ):
100
+ """Rescales the image so that the following conditions are met:
101
+
102
+ 1. Both dimensions (height and width) are divisible by 'factor'.
103
+
104
+ 2. The total number of pixels is within the range ['min_pixels', 'max_pixels'].
105
+
106
+ 3. The aspect ratio of the image is maintained as closely as possible.
107
+
108
+ """
109
+ if height < factor or width < factor:
110
+ # print("height, width", height, width)
111
+ if height < width:
112
+ h_bar = factor
113
+ w_bar = round(width / height * factor)
114
+ else:
115
+ h_bar = round(height / width * factor)
116
+ w_bar = factor
117
+ # print("h_bar, w_bar", h_bar, w_bar)
118
+ height, width = h_bar, w_bar
119
+ # raise ValueError(f"height:{height} or width:{width} must be larger than factor:{factor}")
120
+ elif max(height, width) / min(height, width) > 200:
121
+ raise ValueError(
122
+ f"absolute aspect ratio must be smaller than 200, got {max(height, width) / min(height, width)}"
123
+ )
124
+ h_bar = round(height / factor) * factor
125
+ w_bar = round(width / factor) * factor
126
+ if h_bar * w_bar > max_pixels:
127
+ beta = math.sqrt((height * width) / max_pixels)
128
+ h_bar = math.floor(height / beta / factor) * factor
129
+ w_bar = math.floor(width / beta / factor) * factor
130
+ elif h_bar * w_bar < min_pixels:
131
+ beta = math.sqrt(min_pixels / (height * width))
132
+ h_bar = math.ceil(height * beta / factor) * factor
133
+ w_bar = math.ceil(width * beta / factor) * factor
134
+ return h_bar, w_bar
135
+
136
+
137
+ class DreamVLImageProcessor(BaseImageProcessor):
138
+ r"""
139
+ Constructs a Dream-VL image processor that dynamically resizes images based on the original images.
140
+
141
+ Args:
142
+ do_resize (`bool`, *optional*, defaults to `True`):
143
+ Whether to resize the image's (height, width) dimensions.
144
+ resample (`PILImageResampling`, *optional*, defaults to `Resampling.BICUBIC`):
145
+ Resampling filter to use when resizing the image.
146
+ do_rescale (`bool`, *optional*, defaults to `True`):
147
+ Whether to rescale the image by the specified scale `rescale_factor`.
148
+ rescale_factor (`int` or `float`, *optional*, defaults to `1/255`):
149
+ Scale factor to use if rescaling the image.
150
+ do_normalize (`bool`, *optional*, defaults to `True`):
151
+ Whether to normalize the image.
152
+ image_mean (`float` or `List[float]`, *optional*, defaults to `[0.48145466, 0.4578275, 0.40821073]`):
153
+ Mean to use if normalizing the image. This is a float or list of floats for each channel in the image.
154
+ image_std (`float` or `List[float]`, *optional*, defaults to `[0.26862954, 0.26130258, 0.27577711]`):
155
+ Standard deviation to use if normalizing the image. This is a float or list of floats for each channel in the image.
156
+ do_convert_rgb (`bool`, *optional*, defaults to `True`):
157
+ Whether to convert the image to RGB.
158
+ min_pixels (`int`, *optional*, defaults to `56 * 56`):
159
+ The min pixels of the image to resize the image.
160
+ max_pixels (`int`, *optional*, defaults to `28 * 28 * 1280`):
161
+ The max pixels of the image to resize the image.
162
+ patch_size (`int`, *optional*, defaults to 14):
163
+ The spacial patch size of the vision encoder.
164
+ temporal_patch_size (`int`, *optional*, defaults to 2):
165
+ The temporal patch size of the vision encoder.
166
+ merge_size (`int`, *optional*, defaults to 2):
167
+ The merge size of the vision encoder to llm encoder.
168
+ """
169
+
170
+ model_input_names = ["pixel_values", "image_grid_thw", "pixel_values_videos", "video_grid_thw"]
171
+
172
+ def __init__(
173
+ self,
174
+ do_resize: bool = True,
175
+ resample: PILImageResampling = PILImageResampling.BICUBIC,
176
+ do_rescale: bool = True,
177
+ rescale_factor: Union[int, float] = 1 / 255,
178
+ do_normalize: bool = True,
179
+ image_mean: Optional[Union[float, List[float]]] = None,
180
+ image_std: Optional[Union[float, List[float]]] = None,
181
+ do_convert_rgb: bool = True,
182
+ min_pixels: int = 56 * 56,
183
+ max_pixels: int = 28 * 28 * 1280,
184
+ patch_size: int = 14,
185
+ temporal_patch_size: int = 2,
186
+ merge_size: int = 2,
187
+ **kwargs,
188
+ ) -> None:
189
+ super().__init__(**kwargs)
190
+ self.do_resize = do_resize
191
+ self.resample = resample
192
+ self.do_rescale = do_rescale
193
+ self.rescale_factor = rescale_factor
194
+ self.do_normalize = do_normalize
195
+ self.image_mean = image_mean if image_mean is not None else OPENAI_CLIP_MEAN
196
+ self.image_std = image_std if image_std is not None else OPENAI_CLIP_STD
197
+ self.min_pixels = min_pixels
198
+ self.max_pixels = max_pixels
199
+ self.patch_size = patch_size
200
+ self.temporal_patch_size = temporal_patch_size
201
+ self.merge_size = merge_size
202
+ self.size = {"min_pixels": min_pixels, "max_pixels": max_pixels}
203
+ self.do_convert_rgb = do_convert_rgb
204
+
205
+ def _preprocess(
206
+ self,
207
+ images: Union[ImageInput, VideoInput],
208
+ do_resize: bool = None,
209
+ resample: PILImageResampling = None,
210
+ do_rescale: bool = None,
211
+ rescale_factor: float = None,
212
+ do_normalize: bool = None,
213
+ image_mean: Optional[Union[float, List[float]]] = None,
214
+ image_std: Optional[Union[float, List[float]]] = None,
215
+ do_convert_rgb: bool = None,
216
+ data_format: Optional[ChannelDimension] = ChannelDimension.FIRST,
217
+ input_data_format: Optional[Union[str, ChannelDimension]] = None,
218
+ ):
219
+ """
220
+ Preprocess an image or batch of images. Copy of the `preprocess` method from `CLIPImageProcessor`.
221
+
222
+ Args:
223
+ images (`ImageInput`):
224
+ Image or batch of images to preprocess. Expects pixel values ranging from 0 to 255. If pixel values range from 0 to 1, set `do_rescale=False`.
225
+ vision_info (`List[Dict]`, *optional*):
226
+ Optional list of dictionaries containing additional information about vision inputs.
227
+ do_resize (`bool`, *optional*, defaults to `self.do_resize`):
228
+ Whether to resize the image.
229
+ resample (`PILImageResampling`, *optional*, defaults to `self.resample`):
230
+ Resampling filter to use if resizing the image. This can be one of the `PILImageResampling` enums.
231
+ do_rescale (`bool`, *optional*, defaults to `self.do_rescale`):
232
+ Whether to rescale the image.
233
+ rescale_factor (`float`, *optional*, defaults to `self.rescale_factor`):
234
+ Scale factor to use if rescaling the image.
235
+ do_normalize (`bool`, *optional*, defaults to `self.do_normalize`):
236
+ Whether to normalize the image.
237
+ image_mean (`float` or `List[float]`, *optional*, defaults to `self.image_mean`):
238
+ Mean to use if normalizing the image. Can be a float or a list of floats corresponding to the number of channels in the image.
239
+ image_std (`float` or `List[float]`, *optional*, defaults to `self.image_std`):
240
+ Standard deviation to use if normalizing the image. Can be a float or a list of floats corresponding to the number of channels in the image.
241
+ do_convert_rgb (`bool`, *optional*, defaults to `self.do_convert_rgb`):
242
+ Whether to convert the image to RGB.
243
+ data_format (`ChannelDimension`, *optional*, defaults to `ChannelDimension.FIRST`):
244
+ The channel dimension format for the output image. Can be one of:
245
+ - `"channels_first"` or `ChannelDimension.FIRST`: image in (num_channels, height, width) format.
246
+ - `"channels_last"` or `ChannelDimension.LAST`: image in (height, width, num_channels) format.
247
+ - Unset: Use the channel dimension format of the input image.
248
+ input_data_format (`ChannelDimension` or `str`, *optional*):
249
+ The channel dimension format for the input image. Can be one of:
250
+ - `"channels_first"` or `ChannelDimension.FIRST`: image in (num_channels, height, width) format.
251
+ - `"channels_last"` or `ChannelDimension.LAST`: image in (height, width, num_channels) format.
252
+ - `"none"` or `ChannelDimension.NONE`: image in (height, width) format. - `"none"` or `ChannelDimension.NONE`: image in (height, width) format.
253
+ """
254
+ # import pdb; pdb.set_trace()
255
+ # print("images", images)
256
+ # for image in images:
257
+ # print("image", image.size)
258
+ images = make_list_of_images(images)
259
+
260
+ if do_convert_rgb:
261
+ images = [convert_to_rgb(image) for image in images]
262
+
263
+ # All transformations expect numpy arrays.
264
+ images = [to_numpy_array(image) for image in images]
265
+
266
+ if is_scaled_image(images[0]) and do_rescale:
267
+ logger.warning_once(
268
+ "It looks like you are trying to rescale already rescaled images. If the input"
269
+ " images have pixel values between 0 and 1, set `do_rescale=False` to avoid rescaling them again."
270
+ )
271
+ if input_data_format is None:
272
+ # We assume that all images have the same channel dimension format.
273
+ input_data_format = infer_channel_dimension_format(images[0])
274
+
275
+ height, width = get_image_size(images[0], channel_dim=input_data_format)
276
+ resized_height, resized_width = height, width
277
+ processed_images = []
278
+ for image in images:
279
+ if do_resize:
280
+ resized_height, resized_width = smart_resize(
281
+ height,
282
+ width,
283
+ factor=self.patch_size * self.merge_size,
284
+ min_pixels=self.min_pixels,
285
+ max_pixels=self.max_pixels,
286
+ )
287
+ image = resize(
288
+ image, size=(resized_height, resized_width), resample=resample, input_data_format=input_data_format
289
+ )
290
+
291
+ if do_rescale:
292
+ image = self.rescale(image, scale=rescale_factor, input_data_format=input_data_format)
293
+
294
+ if do_normalize:
295
+ image = self.normalize(
296
+ image=image, mean=image_mean, std=image_std, input_data_format=input_data_format
297
+ )
298
+
299
+ image = to_channel_dimension_format(image, data_format, input_channel_dim=input_data_format)
300
+ processed_images.append(image)
301
+
302
+ patches = np.array(processed_images)
303
+ if data_format == ChannelDimension.LAST:
304
+ patches = patches.transpose(0, 3, 1, 2)
305
+ if patches.shape[0] == 1:
306
+ patches = np.tile(patches, (self.temporal_patch_size, 1, 1, 1))
307
+ channel = patches.shape[1]
308
+ grid_t = patches.shape[0] // self.temporal_patch_size
309
+ grid_h, grid_w = resized_height // self.patch_size, resized_width // self.patch_size
310
+ patches = patches.reshape(
311
+ grid_t,
312
+ self.temporal_patch_size,
313
+ channel,
314
+ grid_h // self.merge_size,
315
+ self.merge_size,
316
+ self.patch_size,
317
+ grid_w // self.merge_size,
318
+ self.merge_size,
319
+ self.patch_size,
320
+ )
321
+ patches = patches.transpose(0, 3, 6, 4, 7, 2, 1, 5, 8)
322
+ flatten_patches = patches.reshape(
323
+ grid_t * grid_h * grid_w, channel * self.temporal_patch_size * self.patch_size * self.patch_size
324
+ )
325
+
326
+ return flatten_patches, (grid_t, grid_h, grid_w)
327
+
328
+ def preprocess(
329
+ self,
330
+ images: ImageInput,
331
+ videos: VideoInput = None,
332
+ do_resize: bool = None,
333
+ size: Dict[str, int] = None,
334
+ resample: PILImageResampling = None,
335
+ do_rescale: bool = None,
336
+ rescale_factor: float = None,
337
+ do_normalize: bool = None,
338
+ image_mean: Optional[Union[float, List[float]]] = None,
339
+ image_std: Optional[Union[float, List[float]]] = None,
340
+ do_convert_rgb: bool = None,
341
+ return_tensors: Optional[Union[str, TensorType]] = None,
342
+ data_format: Optional[ChannelDimension] = ChannelDimension.FIRST,
343
+ input_data_format: Optional[Union[str, ChannelDimension]] = None,
344
+ ):
345
+ """
346
+ Args:
347
+ images (`ImageInput`):
348
+ Image to preprocess. Expects a single or batch of images with pixel values ranging from 0 to 255. If
349
+ passing in images with pixel values between 0 and 1, set `do_rescale=False`.
350
+ videos (`VideoInput`):
351
+ Video to preprocess. Expects a single or batch of videos with pixel values ranging from 0 to 255. If
352
+ passing in videos with pixel values between 0 and 1, set `do_rescale=False`.
353
+ do_resize (`bool`, *optional*, defaults to `self.do_resize`):
354
+ Whether to resize the image.
355
+ size (`Dict[str, int]`, *optional*, defaults to `self.size`):
356
+ Size of the image after resizing. Shortest edge of the image is resized to size["shortest_edge"], with
357
+ the longest edge resized to keep the input aspect ratio.
358
+ resample (`int`, *optional*, defaults to `self.resample`):
359
+ Resampling filter to use if resizing the image. This can be one of the enum `PILImageResampling`. Only
360
+ has an effect if `do_resize` is set to `True`.
361
+ do_rescale (`bool`, *optional*, defaults to `self.do_rescale`):
362
+ Whether to rescale the image.
363
+ rescale_factor (`float`, *optional*, defaults to `self.rescale_factor`):
364
+ Rescale factor to rescale the image by if `do_rescale` is set to `True`.
365
+ do_normalize (`bool`, *optional*, defaults to `self.do_normalize`):
366
+ Whether to normalize the image.
367
+ image_mean (`float` or `List[float]`, *optional*, defaults to `self.image_mean`):
368
+ Image mean to use for normalization. Only has an effect if `do_normalize` is set to `True`.
369
+ image_std (`float` or `List[float]`, *optional*, defaults to `self.image_std`):
370
+ Image standard deviation to use for normalization. Only has an effect if `do_normalize` is set to
371
+ `True`.
372
+ do_convert_rgb (`bool`, *optional*, defaults to `self.do_convert_rgb`):
373
+ Whether to convert the image to RGB.
374
+ return_tensors (`str` or `TensorType`, *optional*):
375
+ The type of tensors to return. Can be one of:
376
+ - Unset: Return a list of `np.ndarray`.
377
+ - `TensorType.TENSORFLOW` or `'tf'`: Return a batch of type `tf.Tensor`.
378
+ - `TensorType.PYTORCH` or `'pt'`: Return a batch of type `torch.Tensor`.
379
+ - `TensorType.NUMPY` or `'np'`: Return a batch of type `np.ndarray`.
380
+ - `TensorType.JAX` or `'jax'`: Return a batch of type `jax.numpy.ndarray`.
381
+ data_format (`ChannelDimension` or `str`, *optional*, defaults to `ChannelDimension.FIRST`):
382
+ The channel dimension format for the output image. Can be one of:
383
+ - `"channels_first"` or `ChannelDimension.FIRST`: image in (num_channels, height, width) format.
384
+ - `"channels_last"` or `ChannelDimension.LAST`: image in (height, width, num_channels) format.
385
+ - Unset: Use the channel dimension format of the input image.
386
+ input_data_format (`ChannelDimension` or `str`, *optional*):
387
+ The channel dimension format for the input image. If unset, the channel dimension format is inferred
388
+ from the input image. Can be one of:
389
+ - `"channels_first"` or `ChannelDimension.FIRST`: image in (num_channels, height, width) format.
390
+ - `"channels_last"` or `ChannelDimension.LAST`: image in (height, width, num_channels) format.
391
+ - `"none"` or `ChannelDimension.NONE`: image in (height, width) format.
392
+
393
+ """
394
+ do_resize = do_resize if do_resize is not None else self.do_resize
395
+ size = size if size is not None else self.size
396
+ resample = resample if resample is not None else self.resample
397
+ do_rescale = do_rescale if do_rescale is not None else self.do_rescale
398
+ rescale_factor = rescale_factor if rescale_factor is not None else self.rescale_factor
399
+ do_normalize = do_normalize if do_normalize is not None else self.do_normalize
400
+ image_mean = image_mean if image_mean is not None else self.image_mean
401
+ image_std = image_std if image_std is not None else self.image_std
402
+ do_convert_rgb = do_convert_rgb if do_convert_rgb is not None else self.do_convert_rgb
403
+
404
+ if images is not None:
405
+ images = make_batched_images(images)
406
+ if videos is not None:
407
+ videos = make_batched_videos(videos)
408
+
409
+ if images is not None and not valid_images(images):
410
+ raise ValueError(
411
+ "Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, "
412
+ "torch.Tensor, tf.Tensor or jax.ndarray."
413
+ )
414
+
415
+ validate_preprocess_arguments(
416
+ rescale_factor=rescale_factor,
417
+ do_normalize=do_normalize,
418
+ image_mean=image_mean,
419
+ image_std=image_std,
420
+ do_resize=do_resize,
421
+ size=size,
422
+ resample=resample,
423
+ )
424
+
425
+ if images is not None:
426
+ pixel_values, vision_grid_thws = [], []
427
+ for image in images:
428
+ patches, image_grid_thw = self._preprocess(
429
+ image,
430
+ do_resize=do_resize,
431
+ resample=resample,
432
+ do_rescale=do_rescale,
433
+ rescale_factor=rescale_factor,
434
+ do_normalize=do_normalize,
435
+ image_mean=image_mean,
436
+ image_std=image_std,
437
+ data_format=data_format,
438
+ do_convert_rgb=do_convert_rgb,
439
+ input_data_format=input_data_format,
440
+ )
441
+ pixel_values.extend(patches)
442
+ vision_grid_thws.append(image_grid_thw)
443
+ pixel_values = np.array(pixel_values)
444
+ vision_grid_thws = np.array(vision_grid_thws)
445
+ data = {"pixel_values": pixel_values, "image_grid_thw": vision_grid_thws}
446
+
447
+ if videos is not None:
448
+ pixel_values, vision_grid_thws = [], []
449
+ for images in videos:
450
+ patches, video_grid_thw = self._preprocess(
451
+ images,
452
+ do_resize=do_resize,
453
+ resample=resample,
454
+ do_rescale=do_rescale,
455
+ rescale_factor=rescale_factor,
456
+ do_normalize=do_normalize,
457
+ image_mean=image_mean,
458
+ image_std=image_std,
459
+ data_format=data_format,
460
+ do_convert_rgb=do_convert_rgb,
461
+ input_data_format=input_data_format,
462
+ )
463
+ pixel_values.extend(patches)
464
+ vision_grid_thws.append(video_grid_thw)
465
+ pixel_values = np.array(pixel_values)
466
+ vision_grid_thws = np.array(vision_grid_thws)
467
+ data = {"pixel_values_videos": pixel_values, "video_grid_thw": vision_grid_thws}
468
+
469
+ return BatchFeature(data=data, tensor_type=return_tensors)
processor/merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
processor/preprocessor_config.json ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auto_map": {
3
+ "AutoImageProcessor": "image_processing_dreamvl.DreamVLImageProcessor",
4
+ "AutoProcessor": "processing_dreamvl.DreamVLProcessor"
5
+ },
6
+ "do_convert_rgb": true,
7
+ "do_normalize": true,
8
+ "do_rescale": true,
9
+ "do_resize": true,
10
+ "image_mean": [
11
+ 0.48145466,
12
+ 0.4578275,
13
+ 0.40821073
14
+ ],
15
+ "image_processor_type": "DreamVLImageProcessor",
16
+ "image_std": [
17
+ 0.26862954,
18
+ 0.26130258,
19
+ 0.27577711
20
+ ],
21
+ "max_pixels": 3211264,
22
+ "merge_size": 2,
23
+ "min_pixels": 50176,
24
+ "patch_size": 14,
25
+ "processor_class": "DreamVLProcessor",
26
+ "resample": 3,
27
+ "rescale_factor": 0.00392156862745098,
28
+ "size": {
29
+ "max_pixels": 3211264,
30
+ "min_pixels": 50176
31
+ },
32
+ "temporal_patch_size": 2
33
+ }
processor/processing_dreamvl.py ADDED
@@ -0,0 +1,183 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ # Copyright 2024 The Qwen team, Alibaba Group and the HuggingFace Inc. team. All rights reserved.
3
+ #
4
+ # This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX
5
+ # and OPT implementations in this library. It has been modified from its
6
+ # original forms to accommodate minor architectural differences compared
7
+ # to GPT-NeoX and OPT used by the Meta AI team that trained the model.
8
+ #
9
+ # Licensed under the Apache License, Version 2.0 (the "License");
10
+ # you may not use this file except in compliance with the License.
11
+ # You may obtain a copy of the License at
12
+ #
13
+ # http://www.apache.org/licenses/LICENSE-2.0
14
+ #
15
+ # Unless required by applicable law or agreed to in writing, software
16
+ # distributed under the License is distributed on an "AS IS" BASIS,
17
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ """
21
+ Processor class for Dream-VL.
22
+ """
23
+
24
+ from typing import List, Union
25
+
26
+ try:
27
+ from typing import Unpack
28
+ except ImportError:
29
+ from typing_extensions import Unpack
30
+
31
+ from transformers.feature_extraction_utils import BatchFeature
32
+ from transformers.image_utils import ImageInput, VideoInput
33
+ from transformers.processing_utils import (
34
+ ProcessingKwargs,
35
+ ProcessorMixin,
36
+ )
37
+ from transformers.tokenization_utils_base import PreTokenizedInput, TextInput
38
+ from transformers.utils import logging
39
+
40
+ logger = logging.get_logger(__name__)
41
+
42
+
43
+ class DreamVLProcessorKwargs(ProcessingKwargs, total=False):
44
+ _defaults = {
45
+ "text_kwargs": {
46
+ "padding": False,
47
+ },
48
+ }
49
+
50
+
51
+ class DreamVLProcessor(ProcessorMixin):
52
+ r"""
53
+ Constructs a Dream-VL processor which wraps a Dream-VL image processor and a Dream tokenizer into a single processor.
54
+ [`DreamVLProcessor`] offers all the functionalities of [`DreamVLImageProcessor`] and [`DreamTokenizer`]. See the
55
+ [`~DreamVLProcessor.__call__`] and [`~DreamVLProcessor.decode`] for more information.
56
+ Args:
57
+ image_processor ([`DreamVLImageProcessor`], *optional*):
58
+ The image processor is a required input.
59
+ tokenizer ([`DreamTokenizer`], *optional*):
60
+ The tokenizer is a required input.
61
+ chat_template (`str`, *optional*): A Jinja template which will be used to convert lists of messages
62
+ in a chat into a tokenizable string.
63
+ """
64
+
65
+ attributes = ["image_processor", "tokenizer"]
66
+ valid_kwargs = ["chat_template"]
67
+ image_processor_class = "AutoImageProcessor"
68
+ tokenizer_class = ("AutoTokenizer")
69
+
70
+ def __init__(self, image_processor=None, tokenizer=None, chat_template=None, **kwargs):
71
+ super().__init__(image_processor, tokenizer, chat_template=chat_template)
72
+
73
+ def __call__(
74
+ self,
75
+ images: ImageInput = None,
76
+ text: Union[TextInput, PreTokenizedInput, List[TextInput], List[PreTokenizedInput]] = None,
77
+ videos: VideoInput = None,
78
+ **kwargs: Unpack[DreamVLProcessorKwargs],
79
+ ) -> BatchFeature:
80
+ """
81
+ Main method to prepare for the model one or several sequences(s) and image(s). This method forwards the `text`
82
+ and `kwargs` arguments to DreamTokenizer's [`~DreamTokenizer.__call__`] if `text` is not `None` to encode
83
+ the text. To prepare the vision inputs, this method forwards the `vision_infos` and `kwrags` arguments to
84
+ DreamVLImageProcessor's [`~DreamVLImageProcessor.__call__`] if `vision_infos` is not `None`.
85
+
86
+ Args:
87
+ images (`PIL.Image.Image`, `np.ndarray`, `torch.Tensor`, `List[PIL.Image.Image]`, `List[np.ndarray]`, `List[torch.Tensor]`):
88
+ The image or batch of images to be prepared. Each image can be a PIL image, NumPy array or PyTorch
89
+ tensor. Both channels-first and channels-last formats are supported.
90
+ text (`str`, `List[str]`, `List[List[str]]`):
91
+ The sequence or batch of sequences to be encoded. Each sequence can be a string or a list of strings
92
+ (pretokenized string). If the sequences are provided as list of strings (pretokenized), you must set
93
+ `is_split_into_words=True` (to lift the ambiguity with a batch of sequences).
94
+ videos (`np.ndarray`, `torch.Tensor`, `List[np.ndarray]`, `List[torch.Tensor]`):
95
+ The image or batch of videos to be prepared. Each video can be a 4D NumPy array or PyTorch
96
+ tensor, or a nested list of 3D frames. Both channels-first and channels-last formats are supported.
97
+ return_tensors (`str` or [`~utils.TensorType`], *optional*):
98
+ If set, will return tensors of a particular framework. Acceptable values are:
99
+ - `'tf'`: Return TensorFlow `tf.constant` objects.
100
+ - `'pt'`: Return PyTorch `torch.Tensor` objects.
101
+ - `'np'`: Return NumPy `np.ndarray` objects.
102
+ - `'jax'`: Return JAX `jnp.ndarray` objects.
103
+
104
+ Returns:
105
+ [`BatchFeature`]: A [`BatchFeature`] with the following fields:
106
+
107
+ - **input_ids** -- List of token ids to be fed to a model. Returned when `text` is not `None`.
108
+ - **attention_mask** -- List of indices specifying which tokens should be attended to by the model (when
109
+ `return_attention_mask=True` or if *"attention_mask"* is in `self.model_input_names` and if `text` is not
110
+ `None`).
111
+ - **pixel_values** -- Pixel values to be fed to a model. Returned when `images` is not `None`.
112
+ - **pixel_values_videos** -- Pixel values of videos to be fed to a model. Returned when `videos` is not `None`.
113
+ - **image_grid_thw** -- List of image 3D grid in LLM. Returned when `images` is not `None`.
114
+ - **video_grid_thw** -- List of video 3D grid in LLM. Returned when `videos` is not `None`.
115
+ """
116
+ output_kwargs = self._merge_kwargs(
117
+ DreamVLProcessorKwargs,
118
+ tokenizer_init_kwargs=self.tokenizer.init_kwargs,
119
+ **kwargs,
120
+ )
121
+ if images is not None:
122
+ image_inputs = self.image_processor(images=images, videos=None, **output_kwargs["images_kwargs"])
123
+ image_grid_thw = image_inputs["image_grid_thw"]
124
+ else:
125
+ image_inputs = {}
126
+ image_grid_thw = None
127
+
128
+ if videos is not None:
129
+ videos_inputs = self.image_processor(images=None, videos=videos, **output_kwargs["videos_kwargs"])
130
+ video_grid_thw = videos_inputs["video_grid_thw"]
131
+ else:
132
+ videos_inputs = {}
133
+ video_grid_thw = None
134
+
135
+ if not isinstance(text, list):
136
+ text = [text]
137
+
138
+ if image_grid_thw is not None:
139
+ merge_length = self.image_processor.merge_size ** 2
140
+ index = 0
141
+ for i in range(len(text)):
142
+ while "<|image_pad|>" in text[i]:
143
+ text[i] = text[i].replace(
144
+ "<|image_pad|>", "<|placeholder|>" * (image_grid_thw[index].prod() // merge_length), 1
145
+ )
146
+ index += 1
147
+ text[i] = text[i].replace("<|placeholder|>", "<|image_pad|>")
148
+
149
+ if video_grid_thw is not None:
150
+ merge_length = self.image_processor.merge_size ** 2
151
+ index = 0
152
+ for i in range(len(text)):
153
+ while "<|video_pad|>" in text[i]:
154
+ text[i] = text[i].replace(
155
+ "<|video_pad|>", "<|placeholder|>" * (video_grid_thw[index].prod() // merge_length), 1
156
+ )
157
+ index += 1
158
+ text[i] = text[i].replace("<|placeholder|>", "<|video_pad|>")
159
+
160
+ _ = output_kwargs["text_kwargs"].pop("padding_side", None)
161
+ text_inputs = self.tokenizer(text, **output_kwargs["text_kwargs"])
162
+
163
+ return BatchFeature(data={**text_inputs, **image_inputs, **videos_inputs})
164
+
165
+ def batch_decode(self, *args, **kwargs):
166
+ """
167
+ This method forwards all its arguments to DreamTokenizer's [`~PreTrainedTokenizer.batch_decode`]. Please
168
+ refer to the docstring of this method for more information.
169
+ """
170
+ return self.tokenizer.batch_decode(*args, **kwargs)
171
+
172
+ def decode(self, *args, **kwargs):
173
+ """
174
+ This method forwards all its arguments to DreamTokenizer's [`~PreTrainedTokenizer.decode`]. Please refer to
175
+ the docstring of this method for more information.
176
+ """
177
+ return self.tokenizer.decode(*args, **kwargs)
178
+
179
+ @property
180
+ def model_input_names(self):
181
+ tokenizer_input_names = self.tokenizer.model_input_names
182
+ image_processor_input_names = self.image_processor.model_input_names
183
+ return list(dict.fromkeys(tokenizer_input_names + image_processor_input_names))
processor/processor_config.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "auto_map": {
3
+ "AutoProcessor": "processing_dreamvl.DreamVLProcessor"
4
+ },
5
+ "processor_class": "DreamVLProcessor"
6
+ }
processor/special_tokens_map.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<|beginoftext|>",
4
+ "<|mask|>"
5
+ ],
6
+ "bos_token": {
7
+ "content": "<|beginoftext|>",
8
+ "lstrip": false,
9
+ "normalized": false,
10
+ "rstrip": false,
11
+ "single_word": false
12
+ },
13
+ "eos_token": {
14
+ "content": "<|endoftext|>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false
19
+ },
20
+ "mask_token": {
21
+ "content": "<|mask|>",
22
+ "lstrip": false,
23
+ "normalized": false,
24
+ "rstrip": false,
25
+ "single_word": false
26
+ },
27
+ "pad_token": {
28
+ "content": "<|endoftext|>",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false
33
+ }
34
+ }
processor/tokenization_dream.py ADDED
@@ -0,0 +1,331 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ # Copyright 2024 The Dream team, HKUNLP Group and The HuggingFace Inc. team. All rights reserved.
3
+ #
4
+ # This code is based on Qwen's implementations in this library.
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ """Tokenization classes for Dream."""
17
+
18
+ import json
19
+ import os
20
+ import unicodedata
21
+ from functools import lru_cache
22
+ from typing import Optional, Tuple
23
+
24
+ import regex as re
25
+
26
+ from transformers.tokenization_utils import AddedToken, PreTrainedTokenizer
27
+ from transformers.utils import logging
28
+
29
+
30
+ logger = logging.get_logger(__name__)
31
+
32
+ VOCAB_FILES_NAMES = {
33
+ "vocab_file": "vocab.json",
34
+ "merges_file": "merges.txt",
35
+ }
36
+
37
+
38
+ MAX_MODEL_INPUT_SIZES = {"dream/dream-tokenizer": 32768}
39
+
40
+ PRETOKENIZE_REGEX = r"""(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\r\n\p{L}\p{N}]?\p{L}+|\p{N}| ?[^\s\p{L}\p{N}]+[\r\n]*|\s*[\r\n]+|\s+(?!\S)|\s+"""
41
+
42
+
43
+ @lru_cache()
44
+ # Copied from transformers.models.gpt2.tokenization_gpt2.bytes_to_unicode
45
+ def bytes_to_unicode():
46
+ """
47
+ Returns list of utf-8 byte and a mapping to unicode strings. We specifically avoids mapping to whitespace/control
48
+ characters the bpe code barfs on.
49
+ The reversible bpe codes work on unicode strings. This means you need a large # of unicode characters in your vocab
50
+ if you want to avoid UNKs. When you're at something like a 10B token dataset you end up needing around 5K for
51
+ decent coverage. This is a significant percentage of your normal, say, 32K bpe vocab. To avoid that, we want lookup
52
+ tables between utf-8 bytes and unicode strings.
53
+ """
54
+ bs = (
55
+ list(range(ord("!"), ord("~") + 1)) + list(range(ord("¡"), ord("¬") + 1)) + list(range(ord("®"), ord("ÿ") + 1))
56
+ )
57
+ cs = bs[:]
58
+ n = 0
59
+ for b in range(2**8):
60
+ if b not in bs:
61
+ bs.append(b)
62
+ cs.append(2**8 + n)
63
+ n += 1
64
+ cs = [chr(n) for n in cs]
65
+ return dict(zip(bs, cs))
66
+
67
+
68
+ # Copied from transformers.models.gpt2.tokenization_gpt2.get_pairs
69
+ def get_pairs(word):
70
+ """
71
+ Return set of symbol pairs in a word.
72
+ Word is represented as tuple of symbols (symbols being variable-length strings).
73
+ """
74
+ pairs = set()
75
+ prev_char = word[0]
76
+ for char in word[1:]:
77
+ pairs.add((prev_char, char))
78
+ prev_char = char
79
+ return pairs
80
+
81
+
82
+ class DreamTokenizer(PreTrainedTokenizer):
83
+ """
84
+ Construct a Dream tokenizer. Based on byte-level Byte-Pair-Encoding.
85
+ Same with GPT2Tokenizer, this tokenizer has been trained to treat spaces like parts of the tokens so a word will
86
+ be encoded differently whether it is at the beginning of the sentence (without space) or not:
87
+ ```python
88
+ >>> from transformers import AutoTokenizer
89
+ >>> tokenizer = AutoTokenizer.from_pretrained("Dream-org/Dream-v0-Base-7B", trust_remote_code=True)
90
+ >>> tokenizer("Hello world")["input_ids"]
91
+ [9707, 1879]
92
+ >>> tokenizer(" Hello world")["input_ids"]
93
+ [21927, 1879]
94
+ ```
95
+ This is expected.
96
+ You should not use GPT2Tokenizer instead, because of the different pretokenization rules.
97
+ This tokenizer inherits from [`PreTrainedTokenizer`] which contains most of the main methods. Users should refer to
98
+ this superclass for more information regarding those methods.
99
+ Args:
100
+ vocab_file (`str`):
101
+ Path to the vocabulary file.
102
+ merges_file (`str`):
103
+ Path to the merges file.
104
+ errors (`str`, *optional*, defaults to `"replace"`):
105
+ Paradigm to follow when decoding bytes to UTF-8. See
106
+ [bytes.decode](https://docs.python.org/3/library/stdtypes.html#bytes.decode) for more information.
107
+ unk_token (`str`, *optional*, defaults to `"<|endoftext|>"`):
108
+ The unknown token. A token that is not in the vocabulary cannot be converted to an ID and is set to be this
109
+ token instead.
110
+ bos_token (`str`, *optional*):
111
+ The beginning of sequence token. Not applicable for this tokenizer.
112
+ eos_token (`str`, *optional*, defaults to `"<|endoftext|>"`):
113
+ The end of sequence token.
114
+ pad_token (`str`, *optional*, defaults to `"<|endoftext|>"`):
115
+ The token used for padding, for example when batching sequences of different lengths.
116
+ clean_up_tokenization_spaces (`bool`, *optional*, defaults to `False`):
117
+ Whether or not the model should cleanup the spaces that were added when splitting the input text during the
118
+ tokenization process. Not applicable to this tokenizer, since tokenization does not add spaces.
119
+ split_special_tokens (`bool`, *optional*, defaults to `False`):
120
+ Whether or not the special tokens should be split during the tokenization process. The default behavior is
121
+ to not split special tokens. This means that if `<|endoftext|>` is the `eos_token`, then `tokenizer.tokenize("<|endoftext|>") =
122
+ ['<|endoftext|>`]. Otherwise, if `split_special_tokens=True`, then `tokenizer.tokenize("<|endoftext|>")` will be give `['<',
123
+ '|', 'endo', 'ft', 'ext', '|', '>']`. This argument is only supported for `slow` tokenizers for the moment.
124
+ """
125
+
126
+ vocab_files_names = VOCAB_FILES_NAMES
127
+ model_input_names = ["input_ids", "attention_mask"]
128
+
129
+ def __init__(
130
+ self,
131
+ vocab_file,
132
+ merges_file,
133
+ errors="replace",
134
+ unk_token="<|endoftext|>",
135
+ bos_token=None,
136
+ eos_token="<|endoftext|>",
137
+ pad_token="<|endoftext|>",
138
+ clean_up_tokenization_spaces=False,
139
+ split_special_tokens=False,
140
+ **kwargs,
141
+ ):
142
+ # Dream vocab does not contain control tokens; added tokens need to be special
143
+ bos_token = (
144
+ AddedToken(bos_token, lstrip=False, rstrip=False, special=True, normalized=False)
145
+ if isinstance(bos_token, str)
146
+ else bos_token
147
+ )
148
+ eos_token = (
149
+ AddedToken(eos_token, lstrip=False, rstrip=False, special=True, normalized=False)
150
+ if isinstance(eos_token, str)
151
+ else eos_token
152
+ )
153
+ unk_token = (
154
+ AddedToken(unk_token, lstrip=False, rstrip=False, special=True, normalized=False)
155
+ if isinstance(unk_token, str)
156
+ else unk_token
157
+ )
158
+ pad_token = (
159
+ AddedToken(pad_token, lstrip=False, rstrip=False, special=True, normalized=False)
160
+ if isinstance(pad_token, str)
161
+ else pad_token
162
+ )
163
+
164
+ with open(vocab_file, encoding="utf-8") as vocab_handle:
165
+ self.encoder = json.load(vocab_handle)
166
+ self.decoder = {v: k for k, v in self.encoder.items()}
167
+ self.errors = errors # how to handle errors in decoding
168
+ self.byte_encoder = bytes_to_unicode()
169
+ self.byte_decoder = {v: k for k, v in self.byte_encoder.items()}
170
+ bpe_merges = []
171
+ with open(merges_file, encoding="utf-8") as merges_handle:
172
+ for i, line in enumerate(merges_handle):
173
+ line = line.strip()
174
+ if (i == 0 and line.startswith("#version:")) or not line:
175
+ continue
176
+ bpe_merges.append(tuple(line.split()))
177
+ self.bpe_ranks = dict(zip(bpe_merges, range(len(bpe_merges))))
178
+ # NOTE: the cache can grow without bound and will get really large for long running processes
179
+ # (esp. for texts of language that do not use space between word, e.g. Chinese); technically
180
+ # not a memory leak but appears as one.
181
+ # GPT2Tokenizer has the same problem, so let's be consistent.
182
+ self.cache = {}
183
+
184
+ self.pat = re.compile(PRETOKENIZE_REGEX)
185
+
186
+ if kwargs.get("add_prefix_space", False):
187
+ logger.warning_once(
188
+ f"{self.__class__.__name} does not support `add_prefix_space`, setting it to True has no effect."
189
+ )
190
+
191
+ super().__init__(
192
+ errors=errors,
193
+ bos_token=bos_token,
194
+ eos_token=eos_token,
195
+ pad_token=pad_token,
196
+ unk_token=unk_token,
197
+ clean_up_tokenization_spaces=clean_up_tokenization_spaces,
198
+ split_special_tokens=split_special_tokens,
199
+ **kwargs,
200
+ )
201
+
202
+ @property
203
+ def vocab_size(self) -> int:
204
+ return len(self.encoder)
205
+
206
+ # Copied from transformers.models.gpt2.tokenization_gpt2.GPT2Tokenizer.get_vocab
207
+ def get_vocab(self):
208
+ return dict(self.encoder, **self.added_tokens_encoder)
209
+
210
+ # Copied from transformers.models.gpt2.tokenization_gpt2.GPT2Tokenizer.bpe
211
+ def bpe(self, token):
212
+ if token in self.cache:
213
+ return self.cache[token]
214
+ word = tuple(token)
215
+ pairs = get_pairs(word)
216
+
217
+ if not pairs:
218
+ return token
219
+
220
+ while True:
221
+ bigram = min(pairs, key=lambda pair: self.bpe_ranks.get(pair, float("inf")))
222
+ if bigram not in self.bpe_ranks:
223
+ break
224
+ first, second = bigram
225
+ new_word = []
226
+ i = 0
227
+ while i < len(word):
228
+ try:
229
+ j = word.index(first, i)
230
+ except ValueError:
231
+ new_word.extend(word[i:])
232
+ break
233
+ else:
234
+ new_word.extend(word[i:j])
235
+ i = j
236
+
237
+ if word[i] == first and i < len(word) - 1 and word[i + 1] == second:
238
+ new_word.append(first + second)
239
+ i += 2
240
+ else:
241
+ new_word.append(word[i])
242
+ i += 1
243
+ new_word = tuple(new_word)
244
+ word = new_word
245
+ if len(word) == 1:
246
+ break
247
+ else:
248
+ pairs = get_pairs(word)
249
+ word = " ".join(word)
250
+ self.cache[token] = word
251
+ return word
252
+
253
+ # Copied from transformers.models.gpt2.tokenization_gpt2.GPT2Tokenizer._tokenize
254
+ def _tokenize(self, text):
255
+ """Tokenize a string."""
256
+ bpe_tokens = []
257
+ for token in re.findall(self.pat, text):
258
+ token = "".join(
259
+ self.byte_encoder[b] for b in token.encode("utf-8")
260
+ ) # Maps all our bytes to unicode strings, avoiding control tokens of the BPE (spaces in our case)
261
+ bpe_tokens.extend(bpe_token for bpe_token in self.bpe(token).split(" "))
262
+ return bpe_tokens
263
+
264
+ # Copied from transformers.models.gpt2.tokenization_gpt2.GPT2Tokenizer._convert_token_to_id
265
+ def _convert_token_to_id(self, token):
266
+ """Converts a token (str) in an id using the vocab."""
267
+ return self.encoder.get(token, self.encoder.get(self.unk_token))
268
+
269
+ # Copied from transformers.models.gpt2.tokenization_gpt2.GPT2Tokenizer._convert_id_to_token
270
+ def _convert_id_to_token(self, index):
271
+ """Converts an index (integer) in a token (str) using the vocab."""
272
+ return self.decoder.get(index)
273
+
274
+ # Copied from transformers.models.gpt2.tokenization_gpt2.GPT2Tokenizer.convert_tokens_to_string
275
+ def convert_tokens_to_string(self, tokens):
276
+ """Converts a sequence of tokens (string) in a single string."""
277
+ text = "".join(tokens)
278
+ text = bytearray([self.byte_decoder[c] for c in text]).decode("utf-8", errors=self.errors)
279
+ return text
280
+
281
+ def decode(
282
+ self,
283
+ token_ids,
284
+ skip_special_tokens: bool = False,
285
+ clean_up_tokenization_spaces: Optional[bool] = False,
286
+ spaces_between_special_tokens: bool = False,
287
+ **kwargs,
288
+ ) -> str:
289
+ # `spaces_between_special_tokens` defaults to True for _decode in slow tokenizers
290
+ # and cannot be configured elsewhere, but it should default to False for DreamTokenizer
291
+ return super().decode(
292
+ token_ids,
293
+ skip_special_tokens=skip_special_tokens,
294
+ clean_up_tokenization_spaces=clean_up_tokenization_spaces,
295
+ spaces_between_special_tokens=spaces_between_special_tokens,
296
+ **kwargs,
297
+ )
298
+
299
+ # Copied from transformers.models.gpt2.tokenization_gpt2.GPT2Tokenizer.save_vocabulary
300
+ def save_vocabulary(self, save_directory: str, filename_prefix: Optional[str] = None) -> Tuple[str]:
301
+ if not os.path.isdir(save_directory):
302
+ logger.error(f"Vocabulary path ({save_directory}) should be a directory")
303
+ return
304
+ vocab_file = os.path.join(
305
+ save_directory, (filename_prefix + "-" if filename_prefix else "") + VOCAB_FILES_NAMES["vocab_file"]
306
+ )
307
+ merge_file = os.path.join(
308
+ save_directory, (filename_prefix + "-" if filename_prefix else "") + VOCAB_FILES_NAMES["merges_file"]
309
+ )
310
+
311
+ with open(vocab_file, "w", encoding="utf-8") as f:
312
+ f.write(json.dumps(self.encoder, indent=2, sort_keys=True, ensure_ascii=False) + "\n")
313
+
314
+ index = 0
315
+ with open(merge_file, "w", encoding="utf-8") as writer:
316
+ writer.write("#version: 0.2\n")
317
+ for bpe_tokens, token_index in sorted(self.bpe_ranks.items(), key=lambda kv: kv[1]):
318
+ if index != token_index:
319
+ logger.warning(
320
+ f"Saving vocabulary to {merge_file}: BPE merge indices are not consecutive."
321
+ " Please check that the tokenizer is not corrupted!"
322
+ )
323
+ index = token_index
324
+ writer.write(" ".join(bpe_tokens) + "\n")
325
+ index += 1
326
+
327
+ return vocab_file, merge_file
328
+
329
+ def prepare_for_tokenization(self, text, **kwargs):
330
+ text = unicodedata.normalize("NFC", text)
331
+ return (text, kwargs)
processor/tokenizer_config.json ADDED
@@ -0,0 +1,2271 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": false,
3
+ "add_prefix_space": false,
4
+ "added_tokens_decoder": {
5
+ "151643": {
6
+ "content": "<|endoftext|>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false,
11
+ "special": true
12
+ },
13
+ "151644": {
14
+ "content": "<|im_start|>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false,
19
+ "special": true
20
+ },
21
+ "151645": {
22
+ "content": "<|im_end|>",
23
+ "lstrip": false,
24
+ "normalized": false,
25
+ "rstrip": false,
26
+ "single_word": false,
27
+ "special": true
28
+ },
29
+ "151646": {
30
+ "content": "<|object_ref_start|>",
31
+ "lstrip": false,
32
+ "normalized": false,
33
+ "rstrip": false,
34
+ "single_word": false,
35
+ "special": true
36
+ },
37
+ "151647": {
38
+ "content": "<|object_ref_end|>",
39
+ "lstrip": false,
40
+ "normalized": false,
41
+ "rstrip": false,
42
+ "single_word": false,
43
+ "special": true
44
+ },
45
+ "151648": {
46
+ "content": "<|box_start|>",
47
+ "lstrip": false,
48
+ "normalized": false,
49
+ "rstrip": false,
50
+ "single_word": false,
51
+ "special": true
52
+ },
53
+ "151649": {
54
+ "content": "<|box_end|>",
55
+ "lstrip": false,
56
+ "normalized": false,
57
+ "rstrip": false,
58
+ "single_word": false,
59
+ "special": true
60
+ },
61
+ "151650": {
62
+ "content": "<|quad_start|>",
63
+ "lstrip": false,
64
+ "normalized": false,
65
+ "rstrip": false,
66
+ "single_word": false,
67
+ "special": true
68
+ },
69
+ "151651": {
70
+ "content": "<|quad_end|>",
71
+ "lstrip": false,
72
+ "normalized": false,
73
+ "rstrip": false,
74
+ "single_word": false,
75
+ "special": true
76
+ },
77
+ "151652": {
78
+ "content": "<|vision_start|>",
79
+ "lstrip": false,
80
+ "normalized": false,
81
+ "rstrip": false,
82
+ "single_word": false,
83
+ "special": true
84
+ },
85
+ "151653": {
86
+ "content": "<|vision_end|>",
87
+ "lstrip": false,
88
+ "normalized": false,
89
+ "rstrip": false,
90
+ "single_word": false,
91
+ "special": true
92
+ },
93
+ "151654": {
94
+ "content": "<|vision_pad|>",
95
+ "lstrip": false,
96
+ "normalized": false,
97
+ "rstrip": false,
98
+ "single_word": false,
99
+ "special": true
100
+ },
101
+ "151655": {
102
+ "content": "<|image_pad|>",
103
+ "lstrip": false,
104
+ "normalized": false,
105
+ "rstrip": false,
106
+ "single_word": false,
107
+ "special": true
108
+ },
109
+ "151656": {
110
+ "content": "<|video_pad|>",
111
+ "lstrip": false,
112
+ "normalized": false,
113
+ "rstrip": false,
114
+ "single_word": false,
115
+ "special": true
116
+ },
117
+ "151657": {
118
+ "content": "<tool_call>",
119
+ "lstrip": false,
120
+ "normalized": false,
121
+ "rstrip": false,
122
+ "single_word": false,
123
+ "special": false
124
+ },
125
+ "151658": {
126
+ "content": "</tool_call>",
127
+ "lstrip": false,
128
+ "normalized": false,
129
+ "rstrip": false,
130
+ "single_word": false,
131
+ "special": false
132
+ },
133
+ "151659": {
134
+ "content": "<|fim_prefix|>",
135
+ "lstrip": false,
136
+ "normalized": false,
137
+ "rstrip": false,
138
+ "single_word": false,
139
+ "special": false
140
+ },
141
+ "151660": {
142
+ "content": "<|fim_middle|>",
143
+ "lstrip": false,
144
+ "normalized": false,
145
+ "rstrip": false,
146
+ "single_word": false,
147
+ "special": false
148
+ },
149
+ "151661": {
150
+ "content": "<|fim_suffix|>",
151
+ "lstrip": false,
152
+ "normalized": false,
153
+ "rstrip": false,
154
+ "single_word": false,
155
+ "special": false
156
+ },
157
+ "151662": {
158
+ "content": "<|fim_pad|>",
159
+ "lstrip": false,
160
+ "normalized": false,
161
+ "rstrip": false,
162
+ "single_word": false,
163
+ "special": false
164
+ },
165
+ "151663": {
166
+ "content": "<|repo_name|>",
167
+ "lstrip": false,
168
+ "normalized": false,
169
+ "rstrip": false,
170
+ "single_word": false,
171
+ "special": false
172
+ },
173
+ "151664": {
174
+ "content": "<|file_sep|>",
175
+ "lstrip": false,
176
+ "normalized": false,
177
+ "rstrip": false,
178
+ "single_word": false,
179
+ "special": false
180
+ },
181
+ "151665": {
182
+ "content": "<|beginoftext|>",
183
+ "lstrip": false,
184
+ "normalized": false,
185
+ "rstrip": false,
186
+ "single_word": false,
187
+ "special": true
188
+ },
189
+ "151666": {
190
+ "content": "<|mask|>",
191
+ "lstrip": false,
192
+ "normalized": false,
193
+ "rstrip": false,
194
+ "single_word": false,
195
+ "special": true
196
+ },
197
+ "151667": {
198
+ "content": "<|action_0|>",
199
+ "lstrip": false,
200
+ "normalized": true,
201
+ "rstrip": false,
202
+ "single_word": false,
203
+ "special": false
204
+ },
205
+ "151668": {
206
+ "content": "<|action_1|>",
207
+ "lstrip": false,
208
+ "normalized": true,
209
+ "rstrip": false,
210
+ "single_word": false,
211
+ "special": false
212
+ },
213
+ "151669": {
214
+ "content": "<|action_2|>",
215
+ "lstrip": false,
216
+ "normalized": true,
217
+ "rstrip": false,
218
+ "single_word": false,
219
+ "special": false
220
+ },
221
+ "151670": {
222
+ "content": "<|action_3|>",
223
+ "lstrip": false,
224
+ "normalized": true,
225
+ "rstrip": false,
226
+ "single_word": false,
227
+ "special": false
228
+ },
229
+ "151671": {
230
+ "content": "<|action_4|>",
231
+ "lstrip": false,
232
+ "normalized": true,
233
+ "rstrip": false,
234
+ "single_word": false,
235
+ "special": false
236
+ },
237
+ "151672": {
238
+ "content": "<|action_5|>",
239
+ "lstrip": false,
240
+ "normalized": true,
241
+ "rstrip": false,
242
+ "single_word": false,
243
+ "special": false
244
+ },
245
+ "151673": {
246
+ "content": "<|action_6|>",
247
+ "lstrip": false,
248
+ "normalized": true,
249
+ "rstrip": false,
250
+ "single_word": false,
251
+ "special": false
252
+ },
253
+ "151674": {
254
+ "content": "<|action_7|>",
255
+ "lstrip": false,
256
+ "normalized": true,
257
+ "rstrip": false,
258
+ "single_word": false,
259
+ "special": false
260
+ },
261
+ "151675": {
262
+ "content": "<|action_8|>",
263
+ "lstrip": false,
264
+ "normalized": true,
265
+ "rstrip": false,
266
+ "single_word": false,
267
+ "special": false
268
+ },
269
+ "151676": {
270
+ "content": "<|action_9|>",
271
+ "lstrip": false,
272
+ "normalized": true,
273
+ "rstrip": false,
274
+ "single_word": false,
275
+ "special": false
276
+ },
277
+ "151677": {
278
+ "content": "<|action_10|>",
279
+ "lstrip": false,
280
+ "normalized": true,
281
+ "rstrip": false,
282
+ "single_word": false,
283
+ "special": false
284
+ },
285
+ "151678": {
286
+ "content": "<|action_11|>",
287
+ "lstrip": false,
288
+ "normalized": true,
289
+ "rstrip": false,
290
+ "single_word": false,
291
+ "special": false
292
+ },
293
+ "151679": {
294
+ "content": "<|action_12|>",
295
+ "lstrip": false,
296
+ "normalized": true,
297
+ "rstrip": false,
298
+ "single_word": false,
299
+ "special": false
300
+ },
301
+ "151680": {
302
+ "content": "<|action_13|>",
303
+ "lstrip": false,
304
+ "normalized": true,
305
+ "rstrip": false,
306
+ "single_word": false,
307
+ "special": false
308
+ },
309
+ "151681": {
310
+ "content": "<|action_14|>",
311
+ "lstrip": false,
312
+ "normalized": true,
313
+ "rstrip": false,
314
+ "single_word": false,
315
+ "special": false
316
+ },
317
+ "151682": {
318
+ "content": "<|action_15|>",
319
+ "lstrip": false,
320
+ "normalized": true,
321
+ "rstrip": false,
322
+ "single_word": false,
323
+ "special": false
324
+ },
325
+ "151683": {
326
+ "content": "<|action_16|>",
327
+ "lstrip": false,
328
+ "normalized": true,
329
+ "rstrip": false,
330
+ "single_word": false,
331
+ "special": false
332
+ },
333
+ "151684": {
334
+ "content": "<|action_17|>",
335
+ "lstrip": false,
336
+ "normalized": true,
337
+ "rstrip": false,
338
+ "single_word": false,
339
+ "special": false
340
+ },
341
+ "151685": {
342
+ "content": "<|action_18|>",
343
+ "lstrip": false,
344
+ "normalized": true,
345
+ "rstrip": false,
346
+ "single_word": false,
347
+ "special": false
348
+ },
349
+ "151686": {
350
+ "content": "<|action_19|>",
351
+ "lstrip": false,
352
+ "normalized": true,
353
+ "rstrip": false,
354
+ "single_word": false,
355
+ "special": false
356
+ },
357
+ "151687": {
358
+ "content": "<|action_20|>",
359
+ "lstrip": false,
360
+ "normalized": true,
361
+ "rstrip": false,
362
+ "single_word": false,
363
+ "special": false
364
+ },
365
+ "151688": {
366
+ "content": "<|action_21|>",
367
+ "lstrip": false,
368
+ "normalized": true,
369
+ "rstrip": false,
370
+ "single_word": false,
371
+ "special": false
372
+ },
373
+ "151689": {
374
+ "content": "<|action_22|>",
375
+ "lstrip": false,
376
+ "normalized": true,
377
+ "rstrip": false,
378
+ "single_word": false,
379
+ "special": false
380
+ },
381
+ "151690": {
382
+ "content": "<|action_23|>",
383
+ "lstrip": false,
384
+ "normalized": true,
385
+ "rstrip": false,
386
+ "single_word": false,
387
+ "special": false
388
+ },
389
+ "151691": {
390
+ "content": "<|action_24|>",
391
+ "lstrip": false,
392
+ "normalized": true,
393
+ "rstrip": false,
394
+ "single_word": false,
395
+ "special": false
396
+ },
397
+ "151692": {
398
+ "content": "<|action_25|>",
399
+ "lstrip": false,
400
+ "normalized": true,
401
+ "rstrip": false,
402
+ "single_word": false,
403
+ "special": false
404
+ },
405
+ "151693": {
406
+ "content": "<|action_26|>",
407
+ "lstrip": false,
408
+ "normalized": true,
409
+ "rstrip": false,
410
+ "single_word": false,
411
+ "special": false
412
+ },
413
+ "151694": {
414
+ "content": "<|action_27|>",
415
+ "lstrip": false,
416
+ "normalized": true,
417
+ "rstrip": false,
418
+ "single_word": false,
419
+ "special": false
420
+ },
421
+ "151695": {
422
+ "content": "<|action_28|>",
423
+ "lstrip": false,
424
+ "normalized": true,
425
+ "rstrip": false,
426
+ "single_word": false,
427
+ "special": false
428
+ },
429
+ "151696": {
430
+ "content": "<|action_29|>",
431
+ "lstrip": false,
432
+ "normalized": true,
433
+ "rstrip": false,
434
+ "single_word": false,
435
+ "special": false
436
+ },
437
+ "151697": {
438
+ "content": "<|action_30|>",
439
+ "lstrip": false,
440
+ "normalized": true,
441
+ "rstrip": false,
442
+ "single_word": false,
443
+ "special": false
444
+ },
445
+ "151698": {
446
+ "content": "<|action_31|>",
447
+ "lstrip": false,
448
+ "normalized": true,
449
+ "rstrip": false,
450
+ "single_word": false,
451
+ "special": false
452
+ },
453
+ "151699": {
454
+ "content": "<|action_32|>",
455
+ "lstrip": false,
456
+ "normalized": true,
457
+ "rstrip": false,
458
+ "single_word": false,
459
+ "special": false
460
+ },
461
+ "151700": {
462
+ "content": "<|action_33|>",
463
+ "lstrip": false,
464
+ "normalized": true,
465
+ "rstrip": false,
466
+ "single_word": false,
467
+ "special": false
468
+ },
469
+ "151701": {
470
+ "content": "<|action_34|>",
471
+ "lstrip": false,
472
+ "normalized": true,
473
+ "rstrip": false,
474
+ "single_word": false,
475
+ "special": false
476
+ },
477
+ "151702": {
478
+ "content": "<|action_35|>",
479
+ "lstrip": false,
480
+ "normalized": true,
481
+ "rstrip": false,
482
+ "single_word": false,
483
+ "special": false
484
+ },
485
+ "151703": {
486
+ "content": "<|action_36|>",
487
+ "lstrip": false,
488
+ "normalized": true,
489
+ "rstrip": false,
490
+ "single_word": false,
491
+ "special": false
492
+ },
493
+ "151704": {
494
+ "content": "<|action_37|>",
495
+ "lstrip": false,
496
+ "normalized": true,
497
+ "rstrip": false,
498
+ "single_word": false,
499
+ "special": false
500
+ },
501
+ "151705": {
502
+ "content": "<|action_38|>",
503
+ "lstrip": false,
504
+ "normalized": true,
505
+ "rstrip": false,
506
+ "single_word": false,
507
+ "special": false
508
+ },
509
+ "151706": {
510
+ "content": "<|action_39|>",
511
+ "lstrip": false,
512
+ "normalized": true,
513
+ "rstrip": false,
514
+ "single_word": false,
515
+ "special": false
516
+ },
517
+ "151707": {
518
+ "content": "<|action_40|>",
519
+ "lstrip": false,
520
+ "normalized": true,
521
+ "rstrip": false,
522
+ "single_word": false,
523
+ "special": false
524
+ },
525
+ "151708": {
526
+ "content": "<|action_41|>",
527
+ "lstrip": false,
528
+ "normalized": true,
529
+ "rstrip": false,
530
+ "single_word": false,
531
+ "special": false
532
+ },
533
+ "151709": {
534
+ "content": "<|action_42|>",
535
+ "lstrip": false,
536
+ "normalized": true,
537
+ "rstrip": false,
538
+ "single_word": false,
539
+ "special": false
540
+ },
541
+ "151710": {
542
+ "content": "<|action_43|>",
543
+ "lstrip": false,
544
+ "normalized": true,
545
+ "rstrip": false,
546
+ "single_word": false,
547
+ "special": false
548
+ },
549
+ "151711": {
550
+ "content": "<|action_44|>",
551
+ "lstrip": false,
552
+ "normalized": true,
553
+ "rstrip": false,
554
+ "single_word": false,
555
+ "special": false
556
+ },
557
+ "151712": {
558
+ "content": "<|action_45|>",
559
+ "lstrip": false,
560
+ "normalized": true,
561
+ "rstrip": false,
562
+ "single_word": false,
563
+ "special": false
564
+ },
565
+ "151713": {
566
+ "content": "<|action_46|>",
567
+ "lstrip": false,
568
+ "normalized": true,
569
+ "rstrip": false,
570
+ "single_word": false,
571
+ "special": false
572
+ },
573
+ "151714": {
574
+ "content": "<|action_47|>",
575
+ "lstrip": false,
576
+ "normalized": true,
577
+ "rstrip": false,
578
+ "single_word": false,
579
+ "special": false
580
+ },
581
+ "151715": {
582
+ "content": "<|action_48|>",
583
+ "lstrip": false,
584
+ "normalized": true,
585
+ "rstrip": false,
586
+ "single_word": false,
587
+ "special": false
588
+ },
589
+ "151716": {
590
+ "content": "<|action_49|>",
591
+ "lstrip": false,
592
+ "normalized": true,
593
+ "rstrip": false,
594
+ "single_word": false,
595
+ "special": false
596
+ },
597
+ "151717": {
598
+ "content": "<|action_50|>",
599
+ "lstrip": false,
600
+ "normalized": true,
601
+ "rstrip": false,
602
+ "single_word": false,
603
+ "special": false
604
+ },
605
+ "151718": {
606
+ "content": "<|action_51|>",
607
+ "lstrip": false,
608
+ "normalized": true,
609
+ "rstrip": false,
610
+ "single_word": false,
611
+ "special": false
612
+ },
613
+ "151719": {
614
+ "content": "<|action_52|>",
615
+ "lstrip": false,
616
+ "normalized": true,
617
+ "rstrip": false,
618
+ "single_word": false,
619
+ "special": false
620
+ },
621
+ "151720": {
622
+ "content": "<|action_53|>",
623
+ "lstrip": false,
624
+ "normalized": true,
625
+ "rstrip": false,
626
+ "single_word": false,
627
+ "special": false
628
+ },
629
+ "151721": {
630
+ "content": "<|action_54|>",
631
+ "lstrip": false,
632
+ "normalized": true,
633
+ "rstrip": false,
634
+ "single_word": false,
635
+ "special": false
636
+ },
637
+ "151722": {
638
+ "content": "<|action_55|>",
639
+ "lstrip": false,
640
+ "normalized": true,
641
+ "rstrip": false,
642
+ "single_word": false,
643
+ "special": false
644
+ },
645
+ "151723": {
646
+ "content": "<|action_56|>",
647
+ "lstrip": false,
648
+ "normalized": true,
649
+ "rstrip": false,
650
+ "single_word": false,
651
+ "special": false
652
+ },
653
+ "151724": {
654
+ "content": "<|action_57|>",
655
+ "lstrip": false,
656
+ "normalized": true,
657
+ "rstrip": false,
658
+ "single_word": false,
659
+ "special": false
660
+ },
661
+ "151725": {
662
+ "content": "<|action_58|>",
663
+ "lstrip": false,
664
+ "normalized": true,
665
+ "rstrip": false,
666
+ "single_word": false,
667
+ "special": false
668
+ },
669
+ "151726": {
670
+ "content": "<|action_59|>",
671
+ "lstrip": false,
672
+ "normalized": true,
673
+ "rstrip": false,
674
+ "single_word": false,
675
+ "special": false
676
+ },
677
+ "151727": {
678
+ "content": "<|action_60|>",
679
+ "lstrip": false,
680
+ "normalized": true,
681
+ "rstrip": false,
682
+ "single_word": false,
683
+ "special": false
684
+ },
685
+ "151728": {
686
+ "content": "<|action_61|>",
687
+ "lstrip": false,
688
+ "normalized": true,
689
+ "rstrip": false,
690
+ "single_word": false,
691
+ "special": false
692
+ },
693
+ "151729": {
694
+ "content": "<|action_62|>",
695
+ "lstrip": false,
696
+ "normalized": true,
697
+ "rstrip": false,
698
+ "single_word": false,
699
+ "special": false
700
+ },
701
+ "151730": {
702
+ "content": "<|action_63|>",
703
+ "lstrip": false,
704
+ "normalized": true,
705
+ "rstrip": false,
706
+ "single_word": false,
707
+ "special": false
708
+ },
709
+ "151731": {
710
+ "content": "<|action_64|>",
711
+ "lstrip": false,
712
+ "normalized": true,
713
+ "rstrip": false,
714
+ "single_word": false,
715
+ "special": false
716
+ },
717
+ "151732": {
718
+ "content": "<|action_65|>",
719
+ "lstrip": false,
720
+ "normalized": true,
721
+ "rstrip": false,
722
+ "single_word": false,
723
+ "special": false
724
+ },
725
+ "151733": {
726
+ "content": "<|action_66|>",
727
+ "lstrip": false,
728
+ "normalized": true,
729
+ "rstrip": false,
730
+ "single_word": false,
731
+ "special": false
732
+ },
733
+ "151734": {
734
+ "content": "<|action_67|>",
735
+ "lstrip": false,
736
+ "normalized": true,
737
+ "rstrip": false,
738
+ "single_word": false,
739
+ "special": false
740
+ },
741
+ "151735": {
742
+ "content": "<|action_68|>",
743
+ "lstrip": false,
744
+ "normalized": true,
745
+ "rstrip": false,
746
+ "single_word": false,
747
+ "special": false
748
+ },
749
+ "151736": {
750
+ "content": "<|action_69|>",
751
+ "lstrip": false,
752
+ "normalized": true,
753
+ "rstrip": false,
754
+ "single_word": false,
755
+ "special": false
756
+ },
757
+ "151737": {
758
+ "content": "<|action_70|>",
759
+ "lstrip": false,
760
+ "normalized": true,
761
+ "rstrip": false,
762
+ "single_word": false,
763
+ "special": false
764
+ },
765
+ "151738": {
766
+ "content": "<|action_71|>",
767
+ "lstrip": false,
768
+ "normalized": true,
769
+ "rstrip": false,
770
+ "single_word": false,
771
+ "special": false
772
+ },
773
+ "151739": {
774
+ "content": "<|action_72|>",
775
+ "lstrip": false,
776
+ "normalized": true,
777
+ "rstrip": false,
778
+ "single_word": false,
779
+ "special": false
780
+ },
781
+ "151740": {
782
+ "content": "<|action_73|>",
783
+ "lstrip": false,
784
+ "normalized": true,
785
+ "rstrip": false,
786
+ "single_word": false,
787
+ "special": false
788
+ },
789
+ "151741": {
790
+ "content": "<|action_74|>",
791
+ "lstrip": false,
792
+ "normalized": true,
793
+ "rstrip": false,
794
+ "single_word": false,
795
+ "special": false
796
+ },
797
+ "151742": {
798
+ "content": "<|action_75|>",
799
+ "lstrip": false,
800
+ "normalized": true,
801
+ "rstrip": false,
802
+ "single_word": false,
803
+ "special": false
804
+ },
805
+ "151743": {
806
+ "content": "<|action_76|>",
807
+ "lstrip": false,
808
+ "normalized": true,
809
+ "rstrip": false,
810
+ "single_word": false,
811
+ "special": false
812
+ },
813
+ "151744": {
814
+ "content": "<|action_77|>",
815
+ "lstrip": false,
816
+ "normalized": true,
817
+ "rstrip": false,
818
+ "single_word": false,
819
+ "special": false
820
+ },
821
+ "151745": {
822
+ "content": "<|action_78|>",
823
+ "lstrip": false,
824
+ "normalized": true,
825
+ "rstrip": false,
826
+ "single_word": false,
827
+ "special": false
828
+ },
829
+ "151746": {
830
+ "content": "<|action_79|>",
831
+ "lstrip": false,
832
+ "normalized": true,
833
+ "rstrip": false,
834
+ "single_word": false,
835
+ "special": false
836
+ },
837
+ "151747": {
838
+ "content": "<|action_80|>",
839
+ "lstrip": false,
840
+ "normalized": true,
841
+ "rstrip": false,
842
+ "single_word": false,
843
+ "special": false
844
+ },
845
+ "151748": {
846
+ "content": "<|action_81|>",
847
+ "lstrip": false,
848
+ "normalized": true,
849
+ "rstrip": false,
850
+ "single_word": false,
851
+ "special": false
852
+ },
853
+ "151749": {
854
+ "content": "<|action_82|>",
855
+ "lstrip": false,
856
+ "normalized": true,
857
+ "rstrip": false,
858
+ "single_word": false,
859
+ "special": false
860
+ },
861
+ "151750": {
862
+ "content": "<|action_83|>",
863
+ "lstrip": false,
864
+ "normalized": true,
865
+ "rstrip": false,
866
+ "single_word": false,
867
+ "special": false
868
+ },
869
+ "151751": {
870
+ "content": "<|action_84|>",
871
+ "lstrip": false,
872
+ "normalized": true,
873
+ "rstrip": false,
874
+ "single_word": false,
875
+ "special": false
876
+ },
877
+ "151752": {
878
+ "content": "<|action_85|>",
879
+ "lstrip": false,
880
+ "normalized": true,
881
+ "rstrip": false,
882
+ "single_word": false,
883
+ "special": false
884
+ },
885
+ "151753": {
886
+ "content": "<|action_86|>",
887
+ "lstrip": false,
888
+ "normalized": true,
889
+ "rstrip": false,
890
+ "single_word": false,
891
+ "special": false
892
+ },
893
+ "151754": {
894
+ "content": "<|action_87|>",
895
+ "lstrip": false,
896
+ "normalized": true,
897
+ "rstrip": false,
898
+ "single_word": false,
899
+ "special": false
900
+ },
901
+ "151755": {
902
+ "content": "<|action_88|>",
903
+ "lstrip": false,
904
+ "normalized": true,
905
+ "rstrip": false,
906
+ "single_word": false,
907
+ "special": false
908
+ },
909
+ "151756": {
910
+ "content": "<|action_89|>",
911
+ "lstrip": false,
912
+ "normalized": true,
913
+ "rstrip": false,
914
+ "single_word": false,
915
+ "special": false
916
+ },
917
+ "151757": {
918
+ "content": "<|action_90|>",
919
+ "lstrip": false,
920
+ "normalized": true,
921
+ "rstrip": false,
922
+ "single_word": false,
923
+ "special": false
924
+ },
925
+ "151758": {
926
+ "content": "<|action_91|>",
927
+ "lstrip": false,
928
+ "normalized": true,
929
+ "rstrip": false,
930
+ "single_word": false,
931
+ "special": false
932
+ },
933
+ "151759": {
934
+ "content": "<|action_92|>",
935
+ "lstrip": false,
936
+ "normalized": true,
937
+ "rstrip": false,
938
+ "single_word": false,
939
+ "special": false
940
+ },
941
+ "151760": {
942
+ "content": "<|action_93|>",
943
+ "lstrip": false,
944
+ "normalized": true,
945
+ "rstrip": false,
946
+ "single_word": false,
947
+ "special": false
948
+ },
949
+ "151761": {
950
+ "content": "<|action_94|>",
951
+ "lstrip": false,
952
+ "normalized": true,
953
+ "rstrip": false,
954
+ "single_word": false,
955
+ "special": false
956
+ },
957
+ "151762": {
958
+ "content": "<|action_95|>",
959
+ "lstrip": false,
960
+ "normalized": true,
961
+ "rstrip": false,
962
+ "single_word": false,
963
+ "special": false
964
+ },
965
+ "151763": {
966
+ "content": "<|action_96|>",
967
+ "lstrip": false,
968
+ "normalized": true,
969
+ "rstrip": false,
970
+ "single_word": false,
971
+ "special": false
972
+ },
973
+ "151764": {
974
+ "content": "<|action_97|>",
975
+ "lstrip": false,
976
+ "normalized": true,
977
+ "rstrip": false,
978
+ "single_word": false,
979
+ "special": false
980
+ },
981
+ "151765": {
982
+ "content": "<|action_98|>",
983
+ "lstrip": false,
984
+ "normalized": true,
985
+ "rstrip": false,
986
+ "single_word": false,
987
+ "special": false
988
+ },
989
+ "151766": {
990
+ "content": "<|action_99|>",
991
+ "lstrip": false,
992
+ "normalized": true,
993
+ "rstrip": false,
994
+ "single_word": false,
995
+ "special": false
996
+ },
997
+ "151767": {
998
+ "content": "<|action_100|>",
999
+ "lstrip": false,
1000
+ "normalized": true,
1001
+ "rstrip": false,
1002
+ "single_word": false,
1003
+ "special": false
1004
+ },
1005
+ "151768": {
1006
+ "content": "<|action_101|>",
1007
+ "lstrip": false,
1008
+ "normalized": true,
1009
+ "rstrip": false,
1010
+ "single_word": false,
1011
+ "special": false
1012
+ },
1013
+ "151769": {
1014
+ "content": "<|action_102|>",
1015
+ "lstrip": false,
1016
+ "normalized": true,
1017
+ "rstrip": false,
1018
+ "single_word": false,
1019
+ "special": false
1020
+ },
1021
+ "151770": {
1022
+ "content": "<|action_103|>",
1023
+ "lstrip": false,
1024
+ "normalized": true,
1025
+ "rstrip": false,
1026
+ "single_word": false,
1027
+ "special": false
1028
+ },
1029
+ "151771": {
1030
+ "content": "<|action_104|>",
1031
+ "lstrip": false,
1032
+ "normalized": true,
1033
+ "rstrip": false,
1034
+ "single_word": false,
1035
+ "special": false
1036
+ },
1037
+ "151772": {
1038
+ "content": "<|action_105|>",
1039
+ "lstrip": false,
1040
+ "normalized": true,
1041
+ "rstrip": false,
1042
+ "single_word": false,
1043
+ "special": false
1044
+ },
1045
+ "151773": {
1046
+ "content": "<|action_106|>",
1047
+ "lstrip": false,
1048
+ "normalized": true,
1049
+ "rstrip": false,
1050
+ "single_word": false,
1051
+ "special": false
1052
+ },
1053
+ "151774": {
1054
+ "content": "<|action_107|>",
1055
+ "lstrip": false,
1056
+ "normalized": true,
1057
+ "rstrip": false,
1058
+ "single_word": false,
1059
+ "special": false
1060
+ },
1061
+ "151775": {
1062
+ "content": "<|action_108|>",
1063
+ "lstrip": false,
1064
+ "normalized": true,
1065
+ "rstrip": false,
1066
+ "single_word": false,
1067
+ "special": false
1068
+ },
1069
+ "151776": {
1070
+ "content": "<|action_109|>",
1071
+ "lstrip": false,
1072
+ "normalized": true,
1073
+ "rstrip": false,
1074
+ "single_word": false,
1075
+ "special": false
1076
+ },
1077
+ "151777": {
1078
+ "content": "<|action_110|>",
1079
+ "lstrip": false,
1080
+ "normalized": true,
1081
+ "rstrip": false,
1082
+ "single_word": false,
1083
+ "special": false
1084
+ },
1085
+ "151778": {
1086
+ "content": "<|action_111|>",
1087
+ "lstrip": false,
1088
+ "normalized": true,
1089
+ "rstrip": false,
1090
+ "single_word": false,
1091
+ "special": false
1092
+ },
1093
+ "151779": {
1094
+ "content": "<|action_112|>",
1095
+ "lstrip": false,
1096
+ "normalized": true,
1097
+ "rstrip": false,
1098
+ "single_word": false,
1099
+ "special": false
1100
+ },
1101
+ "151780": {
1102
+ "content": "<|action_113|>",
1103
+ "lstrip": false,
1104
+ "normalized": true,
1105
+ "rstrip": false,
1106
+ "single_word": false,
1107
+ "special": false
1108
+ },
1109
+ "151781": {
1110
+ "content": "<|action_114|>",
1111
+ "lstrip": false,
1112
+ "normalized": true,
1113
+ "rstrip": false,
1114
+ "single_word": false,
1115
+ "special": false
1116
+ },
1117
+ "151782": {
1118
+ "content": "<|action_115|>",
1119
+ "lstrip": false,
1120
+ "normalized": true,
1121
+ "rstrip": false,
1122
+ "single_word": false,
1123
+ "special": false
1124
+ },
1125
+ "151783": {
1126
+ "content": "<|action_116|>",
1127
+ "lstrip": false,
1128
+ "normalized": true,
1129
+ "rstrip": false,
1130
+ "single_word": false,
1131
+ "special": false
1132
+ },
1133
+ "151784": {
1134
+ "content": "<|action_117|>",
1135
+ "lstrip": false,
1136
+ "normalized": true,
1137
+ "rstrip": false,
1138
+ "single_word": false,
1139
+ "special": false
1140
+ },
1141
+ "151785": {
1142
+ "content": "<|action_118|>",
1143
+ "lstrip": false,
1144
+ "normalized": true,
1145
+ "rstrip": false,
1146
+ "single_word": false,
1147
+ "special": false
1148
+ },
1149
+ "151786": {
1150
+ "content": "<|action_119|>",
1151
+ "lstrip": false,
1152
+ "normalized": true,
1153
+ "rstrip": false,
1154
+ "single_word": false,
1155
+ "special": false
1156
+ },
1157
+ "151787": {
1158
+ "content": "<|action_120|>",
1159
+ "lstrip": false,
1160
+ "normalized": true,
1161
+ "rstrip": false,
1162
+ "single_word": false,
1163
+ "special": false
1164
+ },
1165
+ "151788": {
1166
+ "content": "<|action_121|>",
1167
+ "lstrip": false,
1168
+ "normalized": true,
1169
+ "rstrip": false,
1170
+ "single_word": false,
1171
+ "special": false
1172
+ },
1173
+ "151789": {
1174
+ "content": "<|action_122|>",
1175
+ "lstrip": false,
1176
+ "normalized": true,
1177
+ "rstrip": false,
1178
+ "single_word": false,
1179
+ "special": false
1180
+ },
1181
+ "151790": {
1182
+ "content": "<|action_123|>",
1183
+ "lstrip": false,
1184
+ "normalized": true,
1185
+ "rstrip": false,
1186
+ "single_word": false,
1187
+ "special": false
1188
+ },
1189
+ "151791": {
1190
+ "content": "<|action_124|>",
1191
+ "lstrip": false,
1192
+ "normalized": true,
1193
+ "rstrip": false,
1194
+ "single_word": false,
1195
+ "special": false
1196
+ },
1197
+ "151792": {
1198
+ "content": "<|action_125|>",
1199
+ "lstrip": false,
1200
+ "normalized": true,
1201
+ "rstrip": false,
1202
+ "single_word": false,
1203
+ "special": false
1204
+ },
1205
+ "151793": {
1206
+ "content": "<|action_126|>",
1207
+ "lstrip": false,
1208
+ "normalized": true,
1209
+ "rstrip": false,
1210
+ "single_word": false,
1211
+ "special": false
1212
+ },
1213
+ "151794": {
1214
+ "content": "<|action_127|>",
1215
+ "lstrip": false,
1216
+ "normalized": true,
1217
+ "rstrip": false,
1218
+ "single_word": false,
1219
+ "special": false
1220
+ },
1221
+ "151795": {
1222
+ "content": "<|action_128|>",
1223
+ "lstrip": false,
1224
+ "normalized": true,
1225
+ "rstrip": false,
1226
+ "single_word": false,
1227
+ "special": false
1228
+ },
1229
+ "151796": {
1230
+ "content": "<|action_129|>",
1231
+ "lstrip": false,
1232
+ "normalized": true,
1233
+ "rstrip": false,
1234
+ "single_word": false,
1235
+ "special": false
1236
+ },
1237
+ "151797": {
1238
+ "content": "<|action_130|>",
1239
+ "lstrip": false,
1240
+ "normalized": true,
1241
+ "rstrip": false,
1242
+ "single_word": false,
1243
+ "special": false
1244
+ },
1245
+ "151798": {
1246
+ "content": "<|action_131|>",
1247
+ "lstrip": false,
1248
+ "normalized": true,
1249
+ "rstrip": false,
1250
+ "single_word": false,
1251
+ "special": false
1252
+ },
1253
+ "151799": {
1254
+ "content": "<|action_132|>",
1255
+ "lstrip": false,
1256
+ "normalized": true,
1257
+ "rstrip": false,
1258
+ "single_word": false,
1259
+ "special": false
1260
+ },
1261
+ "151800": {
1262
+ "content": "<|action_133|>",
1263
+ "lstrip": false,
1264
+ "normalized": true,
1265
+ "rstrip": false,
1266
+ "single_word": false,
1267
+ "special": false
1268
+ },
1269
+ "151801": {
1270
+ "content": "<|action_134|>",
1271
+ "lstrip": false,
1272
+ "normalized": true,
1273
+ "rstrip": false,
1274
+ "single_word": false,
1275
+ "special": false
1276
+ },
1277
+ "151802": {
1278
+ "content": "<|action_135|>",
1279
+ "lstrip": false,
1280
+ "normalized": true,
1281
+ "rstrip": false,
1282
+ "single_word": false,
1283
+ "special": false
1284
+ },
1285
+ "151803": {
1286
+ "content": "<|action_136|>",
1287
+ "lstrip": false,
1288
+ "normalized": true,
1289
+ "rstrip": false,
1290
+ "single_word": false,
1291
+ "special": false
1292
+ },
1293
+ "151804": {
1294
+ "content": "<|action_137|>",
1295
+ "lstrip": false,
1296
+ "normalized": true,
1297
+ "rstrip": false,
1298
+ "single_word": false,
1299
+ "special": false
1300
+ },
1301
+ "151805": {
1302
+ "content": "<|action_138|>",
1303
+ "lstrip": false,
1304
+ "normalized": true,
1305
+ "rstrip": false,
1306
+ "single_word": false,
1307
+ "special": false
1308
+ },
1309
+ "151806": {
1310
+ "content": "<|action_139|>",
1311
+ "lstrip": false,
1312
+ "normalized": true,
1313
+ "rstrip": false,
1314
+ "single_word": false,
1315
+ "special": false
1316
+ },
1317
+ "151807": {
1318
+ "content": "<|action_140|>",
1319
+ "lstrip": false,
1320
+ "normalized": true,
1321
+ "rstrip": false,
1322
+ "single_word": false,
1323
+ "special": false
1324
+ },
1325
+ "151808": {
1326
+ "content": "<|action_141|>",
1327
+ "lstrip": false,
1328
+ "normalized": true,
1329
+ "rstrip": false,
1330
+ "single_word": false,
1331
+ "special": false
1332
+ },
1333
+ "151809": {
1334
+ "content": "<|action_142|>",
1335
+ "lstrip": false,
1336
+ "normalized": true,
1337
+ "rstrip": false,
1338
+ "single_word": false,
1339
+ "special": false
1340
+ },
1341
+ "151810": {
1342
+ "content": "<|action_143|>",
1343
+ "lstrip": false,
1344
+ "normalized": true,
1345
+ "rstrip": false,
1346
+ "single_word": false,
1347
+ "special": false
1348
+ },
1349
+ "151811": {
1350
+ "content": "<|action_144|>",
1351
+ "lstrip": false,
1352
+ "normalized": true,
1353
+ "rstrip": false,
1354
+ "single_word": false,
1355
+ "special": false
1356
+ },
1357
+ "151812": {
1358
+ "content": "<|action_145|>",
1359
+ "lstrip": false,
1360
+ "normalized": true,
1361
+ "rstrip": false,
1362
+ "single_word": false,
1363
+ "special": false
1364
+ },
1365
+ "151813": {
1366
+ "content": "<|action_146|>",
1367
+ "lstrip": false,
1368
+ "normalized": true,
1369
+ "rstrip": false,
1370
+ "single_word": false,
1371
+ "special": false
1372
+ },
1373
+ "151814": {
1374
+ "content": "<|action_147|>",
1375
+ "lstrip": false,
1376
+ "normalized": true,
1377
+ "rstrip": false,
1378
+ "single_word": false,
1379
+ "special": false
1380
+ },
1381
+ "151815": {
1382
+ "content": "<|action_148|>",
1383
+ "lstrip": false,
1384
+ "normalized": true,
1385
+ "rstrip": false,
1386
+ "single_word": false,
1387
+ "special": false
1388
+ },
1389
+ "151816": {
1390
+ "content": "<|action_149|>",
1391
+ "lstrip": false,
1392
+ "normalized": true,
1393
+ "rstrip": false,
1394
+ "single_word": false,
1395
+ "special": false
1396
+ },
1397
+ "151817": {
1398
+ "content": "<|action_150|>",
1399
+ "lstrip": false,
1400
+ "normalized": true,
1401
+ "rstrip": false,
1402
+ "single_word": false,
1403
+ "special": false
1404
+ },
1405
+ "151818": {
1406
+ "content": "<|action_151|>",
1407
+ "lstrip": false,
1408
+ "normalized": true,
1409
+ "rstrip": false,
1410
+ "single_word": false,
1411
+ "special": false
1412
+ },
1413
+ "151819": {
1414
+ "content": "<|action_152|>",
1415
+ "lstrip": false,
1416
+ "normalized": true,
1417
+ "rstrip": false,
1418
+ "single_word": false,
1419
+ "special": false
1420
+ },
1421
+ "151820": {
1422
+ "content": "<|action_153|>",
1423
+ "lstrip": false,
1424
+ "normalized": true,
1425
+ "rstrip": false,
1426
+ "single_word": false,
1427
+ "special": false
1428
+ },
1429
+ "151821": {
1430
+ "content": "<|action_154|>",
1431
+ "lstrip": false,
1432
+ "normalized": true,
1433
+ "rstrip": false,
1434
+ "single_word": false,
1435
+ "special": false
1436
+ },
1437
+ "151822": {
1438
+ "content": "<|action_155|>",
1439
+ "lstrip": false,
1440
+ "normalized": true,
1441
+ "rstrip": false,
1442
+ "single_word": false,
1443
+ "special": false
1444
+ },
1445
+ "151823": {
1446
+ "content": "<|action_156|>",
1447
+ "lstrip": false,
1448
+ "normalized": true,
1449
+ "rstrip": false,
1450
+ "single_word": false,
1451
+ "special": false
1452
+ },
1453
+ "151824": {
1454
+ "content": "<|action_157|>",
1455
+ "lstrip": false,
1456
+ "normalized": true,
1457
+ "rstrip": false,
1458
+ "single_word": false,
1459
+ "special": false
1460
+ },
1461
+ "151825": {
1462
+ "content": "<|action_158|>",
1463
+ "lstrip": false,
1464
+ "normalized": true,
1465
+ "rstrip": false,
1466
+ "single_word": false,
1467
+ "special": false
1468
+ },
1469
+ "151826": {
1470
+ "content": "<|action_159|>",
1471
+ "lstrip": false,
1472
+ "normalized": true,
1473
+ "rstrip": false,
1474
+ "single_word": false,
1475
+ "special": false
1476
+ },
1477
+ "151827": {
1478
+ "content": "<|action_160|>",
1479
+ "lstrip": false,
1480
+ "normalized": true,
1481
+ "rstrip": false,
1482
+ "single_word": false,
1483
+ "special": false
1484
+ },
1485
+ "151828": {
1486
+ "content": "<|action_161|>",
1487
+ "lstrip": false,
1488
+ "normalized": true,
1489
+ "rstrip": false,
1490
+ "single_word": false,
1491
+ "special": false
1492
+ },
1493
+ "151829": {
1494
+ "content": "<|action_162|>",
1495
+ "lstrip": false,
1496
+ "normalized": true,
1497
+ "rstrip": false,
1498
+ "single_word": false,
1499
+ "special": false
1500
+ },
1501
+ "151830": {
1502
+ "content": "<|action_163|>",
1503
+ "lstrip": false,
1504
+ "normalized": true,
1505
+ "rstrip": false,
1506
+ "single_word": false,
1507
+ "special": false
1508
+ },
1509
+ "151831": {
1510
+ "content": "<|action_164|>",
1511
+ "lstrip": false,
1512
+ "normalized": true,
1513
+ "rstrip": false,
1514
+ "single_word": false,
1515
+ "special": false
1516
+ },
1517
+ "151832": {
1518
+ "content": "<|action_165|>",
1519
+ "lstrip": false,
1520
+ "normalized": true,
1521
+ "rstrip": false,
1522
+ "single_word": false,
1523
+ "special": false
1524
+ },
1525
+ "151833": {
1526
+ "content": "<|action_166|>",
1527
+ "lstrip": false,
1528
+ "normalized": true,
1529
+ "rstrip": false,
1530
+ "single_word": false,
1531
+ "special": false
1532
+ },
1533
+ "151834": {
1534
+ "content": "<|action_167|>",
1535
+ "lstrip": false,
1536
+ "normalized": true,
1537
+ "rstrip": false,
1538
+ "single_word": false,
1539
+ "special": false
1540
+ },
1541
+ "151835": {
1542
+ "content": "<|action_168|>",
1543
+ "lstrip": false,
1544
+ "normalized": true,
1545
+ "rstrip": false,
1546
+ "single_word": false,
1547
+ "special": false
1548
+ },
1549
+ "151836": {
1550
+ "content": "<|action_169|>",
1551
+ "lstrip": false,
1552
+ "normalized": true,
1553
+ "rstrip": false,
1554
+ "single_word": false,
1555
+ "special": false
1556
+ },
1557
+ "151837": {
1558
+ "content": "<|action_170|>",
1559
+ "lstrip": false,
1560
+ "normalized": true,
1561
+ "rstrip": false,
1562
+ "single_word": false,
1563
+ "special": false
1564
+ },
1565
+ "151838": {
1566
+ "content": "<|action_171|>",
1567
+ "lstrip": false,
1568
+ "normalized": true,
1569
+ "rstrip": false,
1570
+ "single_word": false,
1571
+ "special": false
1572
+ },
1573
+ "151839": {
1574
+ "content": "<|action_172|>",
1575
+ "lstrip": false,
1576
+ "normalized": true,
1577
+ "rstrip": false,
1578
+ "single_word": false,
1579
+ "special": false
1580
+ },
1581
+ "151840": {
1582
+ "content": "<|action_173|>",
1583
+ "lstrip": false,
1584
+ "normalized": true,
1585
+ "rstrip": false,
1586
+ "single_word": false,
1587
+ "special": false
1588
+ },
1589
+ "151841": {
1590
+ "content": "<|action_174|>",
1591
+ "lstrip": false,
1592
+ "normalized": true,
1593
+ "rstrip": false,
1594
+ "single_word": false,
1595
+ "special": false
1596
+ },
1597
+ "151842": {
1598
+ "content": "<|action_175|>",
1599
+ "lstrip": false,
1600
+ "normalized": true,
1601
+ "rstrip": false,
1602
+ "single_word": false,
1603
+ "special": false
1604
+ },
1605
+ "151843": {
1606
+ "content": "<|action_176|>",
1607
+ "lstrip": false,
1608
+ "normalized": true,
1609
+ "rstrip": false,
1610
+ "single_word": false,
1611
+ "special": false
1612
+ },
1613
+ "151844": {
1614
+ "content": "<|action_177|>",
1615
+ "lstrip": false,
1616
+ "normalized": true,
1617
+ "rstrip": false,
1618
+ "single_word": false,
1619
+ "special": false
1620
+ },
1621
+ "151845": {
1622
+ "content": "<|action_178|>",
1623
+ "lstrip": false,
1624
+ "normalized": true,
1625
+ "rstrip": false,
1626
+ "single_word": false,
1627
+ "special": false
1628
+ },
1629
+ "151846": {
1630
+ "content": "<|action_179|>",
1631
+ "lstrip": false,
1632
+ "normalized": true,
1633
+ "rstrip": false,
1634
+ "single_word": false,
1635
+ "special": false
1636
+ },
1637
+ "151847": {
1638
+ "content": "<|action_180|>",
1639
+ "lstrip": false,
1640
+ "normalized": true,
1641
+ "rstrip": false,
1642
+ "single_word": false,
1643
+ "special": false
1644
+ },
1645
+ "151848": {
1646
+ "content": "<|action_181|>",
1647
+ "lstrip": false,
1648
+ "normalized": true,
1649
+ "rstrip": false,
1650
+ "single_word": false,
1651
+ "special": false
1652
+ },
1653
+ "151849": {
1654
+ "content": "<|action_182|>",
1655
+ "lstrip": false,
1656
+ "normalized": true,
1657
+ "rstrip": false,
1658
+ "single_word": false,
1659
+ "special": false
1660
+ },
1661
+ "151850": {
1662
+ "content": "<|action_183|>",
1663
+ "lstrip": false,
1664
+ "normalized": true,
1665
+ "rstrip": false,
1666
+ "single_word": false,
1667
+ "special": false
1668
+ },
1669
+ "151851": {
1670
+ "content": "<|action_184|>",
1671
+ "lstrip": false,
1672
+ "normalized": true,
1673
+ "rstrip": false,
1674
+ "single_word": false,
1675
+ "special": false
1676
+ },
1677
+ "151852": {
1678
+ "content": "<|action_185|>",
1679
+ "lstrip": false,
1680
+ "normalized": true,
1681
+ "rstrip": false,
1682
+ "single_word": false,
1683
+ "special": false
1684
+ },
1685
+ "151853": {
1686
+ "content": "<|action_186|>",
1687
+ "lstrip": false,
1688
+ "normalized": true,
1689
+ "rstrip": false,
1690
+ "single_word": false,
1691
+ "special": false
1692
+ },
1693
+ "151854": {
1694
+ "content": "<|action_187|>",
1695
+ "lstrip": false,
1696
+ "normalized": true,
1697
+ "rstrip": false,
1698
+ "single_word": false,
1699
+ "special": false
1700
+ },
1701
+ "151855": {
1702
+ "content": "<|action_188|>",
1703
+ "lstrip": false,
1704
+ "normalized": true,
1705
+ "rstrip": false,
1706
+ "single_word": false,
1707
+ "special": false
1708
+ },
1709
+ "151856": {
1710
+ "content": "<|action_189|>",
1711
+ "lstrip": false,
1712
+ "normalized": true,
1713
+ "rstrip": false,
1714
+ "single_word": false,
1715
+ "special": false
1716
+ },
1717
+ "151857": {
1718
+ "content": "<|action_190|>",
1719
+ "lstrip": false,
1720
+ "normalized": true,
1721
+ "rstrip": false,
1722
+ "single_word": false,
1723
+ "special": false
1724
+ },
1725
+ "151858": {
1726
+ "content": "<|action_191|>",
1727
+ "lstrip": false,
1728
+ "normalized": true,
1729
+ "rstrip": false,
1730
+ "single_word": false,
1731
+ "special": false
1732
+ },
1733
+ "151859": {
1734
+ "content": "<|action_192|>",
1735
+ "lstrip": false,
1736
+ "normalized": true,
1737
+ "rstrip": false,
1738
+ "single_word": false,
1739
+ "special": false
1740
+ },
1741
+ "151860": {
1742
+ "content": "<|action_193|>",
1743
+ "lstrip": false,
1744
+ "normalized": true,
1745
+ "rstrip": false,
1746
+ "single_word": false,
1747
+ "special": false
1748
+ },
1749
+ "151861": {
1750
+ "content": "<|action_194|>",
1751
+ "lstrip": false,
1752
+ "normalized": true,
1753
+ "rstrip": false,
1754
+ "single_word": false,
1755
+ "special": false
1756
+ },
1757
+ "151862": {
1758
+ "content": "<|action_195|>",
1759
+ "lstrip": false,
1760
+ "normalized": true,
1761
+ "rstrip": false,
1762
+ "single_word": false,
1763
+ "special": false
1764
+ },
1765
+ "151863": {
1766
+ "content": "<|action_196|>",
1767
+ "lstrip": false,
1768
+ "normalized": true,
1769
+ "rstrip": false,
1770
+ "single_word": false,
1771
+ "special": false
1772
+ },
1773
+ "151864": {
1774
+ "content": "<|action_197|>",
1775
+ "lstrip": false,
1776
+ "normalized": true,
1777
+ "rstrip": false,
1778
+ "single_word": false,
1779
+ "special": false
1780
+ },
1781
+ "151865": {
1782
+ "content": "<|action_198|>",
1783
+ "lstrip": false,
1784
+ "normalized": true,
1785
+ "rstrip": false,
1786
+ "single_word": false,
1787
+ "special": false
1788
+ },
1789
+ "151866": {
1790
+ "content": "<|action_199|>",
1791
+ "lstrip": false,
1792
+ "normalized": true,
1793
+ "rstrip": false,
1794
+ "single_word": false,
1795
+ "special": false
1796
+ },
1797
+ "151867": {
1798
+ "content": "<|action_200|>",
1799
+ "lstrip": false,
1800
+ "normalized": true,
1801
+ "rstrip": false,
1802
+ "single_word": false,
1803
+ "special": false
1804
+ },
1805
+ "151868": {
1806
+ "content": "<|action_201|>",
1807
+ "lstrip": false,
1808
+ "normalized": true,
1809
+ "rstrip": false,
1810
+ "single_word": false,
1811
+ "special": false
1812
+ },
1813
+ "151869": {
1814
+ "content": "<|action_202|>",
1815
+ "lstrip": false,
1816
+ "normalized": true,
1817
+ "rstrip": false,
1818
+ "single_word": false,
1819
+ "special": false
1820
+ },
1821
+ "151870": {
1822
+ "content": "<|action_203|>",
1823
+ "lstrip": false,
1824
+ "normalized": true,
1825
+ "rstrip": false,
1826
+ "single_word": false,
1827
+ "special": false
1828
+ },
1829
+ "151871": {
1830
+ "content": "<|action_204|>",
1831
+ "lstrip": false,
1832
+ "normalized": true,
1833
+ "rstrip": false,
1834
+ "single_word": false,
1835
+ "special": false
1836
+ },
1837
+ "151872": {
1838
+ "content": "<|action_205|>",
1839
+ "lstrip": false,
1840
+ "normalized": true,
1841
+ "rstrip": false,
1842
+ "single_word": false,
1843
+ "special": false
1844
+ },
1845
+ "151873": {
1846
+ "content": "<|action_206|>",
1847
+ "lstrip": false,
1848
+ "normalized": true,
1849
+ "rstrip": false,
1850
+ "single_word": false,
1851
+ "special": false
1852
+ },
1853
+ "151874": {
1854
+ "content": "<|action_207|>",
1855
+ "lstrip": false,
1856
+ "normalized": true,
1857
+ "rstrip": false,
1858
+ "single_word": false,
1859
+ "special": false
1860
+ },
1861
+ "151875": {
1862
+ "content": "<|action_208|>",
1863
+ "lstrip": false,
1864
+ "normalized": true,
1865
+ "rstrip": false,
1866
+ "single_word": false,
1867
+ "special": false
1868
+ },
1869
+ "151876": {
1870
+ "content": "<|action_209|>",
1871
+ "lstrip": false,
1872
+ "normalized": true,
1873
+ "rstrip": false,
1874
+ "single_word": false,
1875
+ "special": false
1876
+ },
1877
+ "151877": {
1878
+ "content": "<|action_210|>",
1879
+ "lstrip": false,
1880
+ "normalized": true,
1881
+ "rstrip": false,
1882
+ "single_word": false,
1883
+ "special": false
1884
+ },
1885
+ "151878": {
1886
+ "content": "<|action_211|>",
1887
+ "lstrip": false,
1888
+ "normalized": true,
1889
+ "rstrip": false,
1890
+ "single_word": false,
1891
+ "special": false
1892
+ },
1893
+ "151879": {
1894
+ "content": "<|action_212|>",
1895
+ "lstrip": false,
1896
+ "normalized": true,
1897
+ "rstrip": false,
1898
+ "single_word": false,
1899
+ "special": false
1900
+ },
1901
+ "151880": {
1902
+ "content": "<|action_213|>",
1903
+ "lstrip": false,
1904
+ "normalized": true,
1905
+ "rstrip": false,
1906
+ "single_word": false,
1907
+ "special": false
1908
+ },
1909
+ "151881": {
1910
+ "content": "<|action_214|>",
1911
+ "lstrip": false,
1912
+ "normalized": true,
1913
+ "rstrip": false,
1914
+ "single_word": false,
1915
+ "special": false
1916
+ },
1917
+ "151882": {
1918
+ "content": "<|action_215|>",
1919
+ "lstrip": false,
1920
+ "normalized": true,
1921
+ "rstrip": false,
1922
+ "single_word": false,
1923
+ "special": false
1924
+ },
1925
+ "151883": {
1926
+ "content": "<|action_216|>",
1927
+ "lstrip": false,
1928
+ "normalized": true,
1929
+ "rstrip": false,
1930
+ "single_word": false,
1931
+ "special": false
1932
+ },
1933
+ "151884": {
1934
+ "content": "<|action_217|>",
1935
+ "lstrip": false,
1936
+ "normalized": true,
1937
+ "rstrip": false,
1938
+ "single_word": false,
1939
+ "special": false
1940
+ },
1941
+ "151885": {
1942
+ "content": "<|action_218|>",
1943
+ "lstrip": false,
1944
+ "normalized": true,
1945
+ "rstrip": false,
1946
+ "single_word": false,
1947
+ "special": false
1948
+ },
1949
+ "151886": {
1950
+ "content": "<|action_219|>",
1951
+ "lstrip": false,
1952
+ "normalized": true,
1953
+ "rstrip": false,
1954
+ "single_word": false,
1955
+ "special": false
1956
+ },
1957
+ "151887": {
1958
+ "content": "<|action_220|>",
1959
+ "lstrip": false,
1960
+ "normalized": true,
1961
+ "rstrip": false,
1962
+ "single_word": false,
1963
+ "special": false
1964
+ },
1965
+ "151888": {
1966
+ "content": "<|action_221|>",
1967
+ "lstrip": false,
1968
+ "normalized": true,
1969
+ "rstrip": false,
1970
+ "single_word": false,
1971
+ "special": false
1972
+ },
1973
+ "151889": {
1974
+ "content": "<|action_222|>",
1975
+ "lstrip": false,
1976
+ "normalized": true,
1977
+ "rstrip": false,
1978
+ "single_word": false,
1979
+ "special": false
1980
+ },
1981
+ "151890": {
1982
+ "content": "<|action_223|>",
1983
+ "lstrip": false,
1984
+ "normalized": true,
1985
+ "rstrip": false,
1986
+ "single_word": false,
1987
+ "special": false
1988
+ },
1989
+ "151891": {
1990
+ "content": "<|action_224|>",
1991
+ "lstrip": false,
1992
+ "normalized": true,
1993
+ "rstrip": false,
1994
+ "single_word": false,
1995
+ "special": false
1996
+ },
1997
+ "151892": {
1998
+ "content": "<|action_225|>",
1999
+ "lstrip": false,
2000
+ "normalized": true,
2001
+ "rstrip": false,
2002
+ "single_word": false,
2003
+ "special": false
2004
+ },
2005
+ "151893": {
2006
+ "content": "<|action_226|>",
2007
+ "lstrip": false,
2008
+ "normalized": true,
2009
+ "rstrip": false,
2010
+ "single_word": false,
2011
+ "special": false
2012
+ },
2013
+ "151894": {
2014
+ "content": "<|action_227|>",
2015
+ "lstrip": false,
2016
+ "normalized": true,
2017
+ "rstrip": false,
2018
+ "single_word": false,
2019
+ "special": false
2020
+ },
2021
+ "151895": {
2022
+ "content": "<|action_228|>",
2023
+ "lstrip": false,
2024
+ "normalized": true,
2025
+ "rstrip": false,
2026
+ "single_word": false,
2027
+ "special": false
2028
+ },
2029
+ "151896": {
2030
+ "content": "<|action_229|>",
2031
+ "lstrip": false,
2032
+ "normalized": true,
2033
+ "rstrip": false,
2034
+ "single_word": false,
2035
+ "special": false
2036
+ },
2037
+ "151897": {
2038
+ "content": "<|action_230|>",
2039
+ "lstrip": false,
2040
+ "normalized": true,
2041
+ "rstrip": false,
2042
+ "single_word": false,
2043
+ "special": false
2044
+ },
2045
+ "151898": {
2046
+ "content": "<|action_231|>",
2047
+ "lstrip": false,
2048
+ "normalized": true,
2049
+ "rstrip": false,
2050
+ "single_word": false,
2051
+ "special": false
2052
+ },
2053
+ "151899": {
2054
+ "content": "<|action_232|>",
2055
+ "lstrip": false,
2056
+ "normalized": true,
2057
+ "rstrip": false,
2058
+ "single_word": false,
2059
+ "special": false
2060
+ },
2061
+ "151900": {
2062
+ "content": "<|action_233|>",
2063
+ "lstrip": false,
2064
+ "normalized": true,
2065
+ "rstrip": false,
2066
+ "single_word": false,
2067
+ "special": false
2068
+ },
2069
+ "151901": {
2070
+ "content": "<|action_234|>",
2071
+ "lstrip": false,
2072
+ "normalized": true,
2073
+ "rstrip": false,
2074
+ "single_word": false,
2075
+ "special": false
2076
+ },
2077
+ "151902": {
2078
+ "content": "<|action_235|>",
2079
+ "lstrip": false,
2080
+ "normalized": true,
2081
+ "rstrip": false,
2082
+ "single_word": false,
2083
+ "special": false
2084
+ },
2085
+ "151903": {
2086
+ "content": "<|action_236|>",
2087
+ "lstrip": false,
2088
+ "normalized": true,
2089
+ "rstrip": false,
2090
+ "single_word": false,
2091
+ "special": false
2092
+ },
2093
+ "151904": {
2094
+ "content": "<|action_237|>",
2095
+ "lstrip": false,
2096
+ "normalized": true,
2097
+ "rstrip": false,
2098
+ "single_word": false,
2099
+ "special": false
2100
+ },
2101
+ "151905": {
2102
+ "content": "<|action_238|>",
2103
+ "lstrip": false,
2104
+ "normalized": true,
2105
+ "rstrip": false,
2106
+ "single_word": false,
2107
+ "special": false
2108
+ },
2109
+ "151906": {
2110
+ "content": "<|action_239|>",
2111
+ "lstrip": false,
2112
+ "normalized": true,
2113
+ "rstrip": false,
2114
+ "single_word": false,
2115
+ "special": false
2116
+ },
2117
+ "151907": {
2118
+ "content": "<|action_240|>",
2119
+ "lstrip": false,
2120
+ "normalized": true,
2121
+ "rstrip": false,
2122
+ "single_word": false,
2123
+ "special": false
2124
+ },
2125
+ "151908": {
2126
+ "content": "<|action_241|>",
2127
+ "lstrip": false,
2128
+ "normalized": true,
2129
+ "rstrip": false,
2130
+ "single_word": false,
2131
+ "special": false
2132
+ },
2133
+ "151909": {
2134
+ "content": "<|action_242|>",
2135
+ "lstrip": false,
2136
+ "normalized": true,
2137
+ "rstrip": false,
2138
+ "single_word": false,
2139
+ "special": false
2140
+ },
2141
+ "151910": {
2142
+ "content": "<|action_243|>",
2143
+ "lstrip": false,
2144
+ "normalized": true,
2145
+ "rstrip": false,
2146
+ "single_word": false,
2147
+ "special": false
2148
+ },
2149
+ "151911": {
2150
+ "content": "<|action_244|>",
2151
+ "lstrip": false,
2152
+ "normalized": true,
2153
+ "rstrip": false,
2154
+ "single_word": false,
2155
+ "special": false
2156
+ },
2157
+ "151912": {
2158
+ "content": "<|action_245|>",
2159
+ "lstrip": false,
2160
+ "normalized": true,
2161
+ "rstrip": false,
2162
+ "single_word": false,
2163
+ "special": false
2164
+ },
2165
+ "151913": {
2166
+ "content": "<|action_246|>",
2167
+ "lstrip": false,
2168
+ "normalized": true,
2169
+ "rstrip": false,
2170
+ "single_word": false,
2171
+ "special": false
2172
+ },
2173
+ "151914": {
2174
+ "content": "<|action_247|>",
2175
+ "lstrip": false,
2176
+ "normalized": true,
2177
+ "rstrip": false,
2178
+ "single_word": false,
2179
+ "special": false
2180
+ },
2181
+ "151915": {
2182
+ "content": "<|action_248|>",
2183
+ "lstrip": false,
2184
+ "normalized": true,
2185
+ "rstrip": false,
2186
+ "single_word": false,
2187
+ "special": false
2188
+ },
2189
+ "151916": {
2190
+ "content": "<|action_249|>",
2191
+ "lstrip": false,
2192
+ "normalized": true,
2193
+ "rstrip": false,
2194
+ "single_word": false,
2195
+ "special": false
2196
+ },
2197
+ "151917": {
2198
+ "content": "<|action_250|>",
2199
+ "lstrip": false,
2200
+ "normalized": true,
2201
+ "rstrip": false,
2202
+ "single_word": false,
2203
+ "special": false
2204
+ },
2205
+ "151918": {
2206
+ "content": "<|action_251|>",
2207
+ "lstrip": false,
2208
+ "normalized": true,
2209
+ "rstrip": false,
2210
+ "single_word": false,
2211
+ "special": false
2212
+ },
2213
+ "151919": {
2214
+ "content": "<|action_252|>",
2215
+ "lstrip": false,
2216
+ "normalized": true,
2217
+ "rstrip": false,
2218
+ "single_word": false,
2219
+ "special": false
2220
+ },
2221
+ "151920": {
2222
+ "content": "<|action_253|>",
2223
+ "lstrip": false,
2224
+ "normalized": true,
2225
+ "rstrip": false,
2226
+ "single_word": false,
2227
+ "special": false
2228
+ },
2229
+ "151921": {
2230
+ "content": "<|action_254|>",
2231
+ "lstrip": false,
2232
+ "normalized": true,
2233
+ "rstrip": false,
2234
+ "single_word": false,
2235
+ "special": false
2236
+ },
2237
+ "151922": {
2238
+ "content": "<|action_255|>",
2239
+ "lstrip": false,
2240
+ "normalized": true,
2241
+ "rstrip": false,
2242
+ "single_word": false,
2243
+ "special": false
2244
+ }
2245
+ },
2246
+ "additional_special_tokens": [
2247
+ "<|beginoftext|>",
2248
+ "<|mask|>"
2249
+ ],
2250
+ "auto_map": {
2251
+ "AutoProcessor": "processing_dreamvl.DreamVLProcessor",
2252
+ "AutoTokenizer": [
2253
+ "tokenization_dream.DreamTokenizer",
2254
+ null
2255
+ ]
2256
+ },
2257
+ "bos_token": "<|beginoftext|>",
2258
+ "chat_template": "{% set image_count = namespace(value=0) %}{% set video_count = namespace(value=0) %}{% for message in messages %}{% if loop.first and message['role'] != 'system' %}<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n{% endif %}<|im_start|>{{ message['role'] }}\n{% if message['content'] is string %}{{ message['content'] }}<|im_end|>\n{% else %}{% for content in message['content'] %}{% if content['type'] == 'image' or 'image' in content or 'image_url' in content %}{% set image_count.value = image_count.value + 1 %}{% if add_vision_id %}Picture {{ image_count.value }}: {% endif %}<|image_pad|>{% elif content['type'] == 'video' or 'video' in content %}{% set video_count.value = video_count.value + 1 %}{% if add_vision_id %}Video {{ video_count.value }}: {% endif %}<|video_pad|>{% elif 'text' in content %}{{ content['text'] }}{% endif %}{% endfor %}<|im_end|>\n{% endif %}{% endfor %}{% if add_generation_prompt %}<|im_start|>assistant\n{% endif %}",
2259
+ "clean_up_tokenization_spaces": false,
2260
+ "eos_token": "<|endoftext|>",
2261
+ "errors": "replace",
2262
+ "extra_special_tokens": {},
2263
+ "mask_token": "<|mask|>",
2264
+ "model_max_length": 8192,
2265
+ "pad_token": "<|endoftext|>",
2266
+ "padding_side": "right",
2267
+ "processor_class": "DreamVLProcessor",
2268
+ "split_special_tokens": false,
2269
+ "tokenizer_class": "DreamTokenizer",
2270
+ "unk_token": null
2271
+ }
processor/vocab.json ADDED
The diff for this file is too large to render. See raw diff
 
release.json ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format": "jocasta-diff-vla-adapter-v1",
3
+ "base_model": "Dream-org/Dream-VLA-7B",
4
+ "base_revision": "0cd0e25c1771c5b468c74585b5cf35c4a4aa315c",
5
+ "training_step": 100000,
6
+ "upstream_code_commit": "a72fa4106eae97a923b531342fb692742809782f",
7
+ "files": {
8
+ "components.pt": {
9
+ "bytes": 308670818,
10
+ "sha256": "d05e046a05ca3f75c25a2bc0f5a72386616ec01777a74dd49c4f975726d0792d"
11
+ },
12
+ "dataset_statistics.json": {
13
+ "bytes": 2277,
14
+ "sha256": "b791c51a37f10acb2a7171a79091f5d701731b7ed856060f0d4ad3b6a7a77e41"
15
+ },
16
+ "evaluation-results.json": {
17
+ "bytes": 2385,
18
+ "sha256": "f89a8fec279f7fe6b746961abbb9fdff6528d359d85ab5e51ba4373ba81a99e5"
19
+ },
20
+ "lora_adapter/adapter_config.json": {
21
+ "bytes": 1185,
22
+ "sha256": "50e8613e6a8b6ed32999896fddc0964fc98f073413fc31ba029b0de549c090b1"
23
+ },
24
+ "lora_adapter/adapter_model.safetensors": {
25
+ "bytes": 411194208,
26
+ "sha256": "3e61273d6f6be68b1c66c3a6b5fedcd6cb320aef1dacc7f6164e24bcea28bb77"
27
+ },
28
+ "processor/added_tokens.json": {
29
+ "bytes": 7714,
30
+ "sha256": "56b4415f386304a7caacc0f6a71c9f2f9068648b55c5458ec7552ce7de913416"
31
+ },
32
+ "processor/chat_template.json": {
33
+ "bytes": 989,
34
+ "sha256": "23e227c530433e3f088740559f70095fd278476f11e492c68dca251d8ec23d51"
35
+ },
36
+ "processor/image_processing_dreamvl.py": {
37
+ "bytes": 22932,
38
+ "sha256": "fcfdd5d75cad4b541ed6e5c63e0c4fc5a31d8906fd9e53188b3083346ba55442"
39
+ },
40
+ "processor/merges.txt": {
41
+ "bytes": 1671853,
42
+ "sha256": "8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5"
43
+ },
44
+ "processor/preprocessor_config.json": {
45
+ "bytes": 723,
46
+ "sha256": "9c05c42eefc212964b5aabd6d8bd48ae2e1d234403aec01524000f0190089da6"
47
+ },
48
+ "processor/processing_dreamvl.py": {
49
+ "bytes": 8823,
50
+ "sha256": "0eba71134e73edeb82063c2a4845877f0309b934e6162e554e4bcae39fcaaf57"
51
+ },
52
+ "processor/processor_config.json": {
53
+ "bytes": 124,
54
+ "sha256": "01c4be0833918a4799cbf9bdccb0e507979e9d720af72e06b26343a4573c1dce"
55
+ },
56
+ "processor/special_tokens_map.json": {
57
+ "bytes": 661,
58
+ "sha256": "fa14641fdc084244b0a530556b1d5bfcb9fa0ed9151a780ffec3b44ba96a0dfe"
59
+ },
60
+ "processor/tokenization_dream.py": {
61
+ "bytes": 14019,
62
+ "sha256": "9010bf352de58564cdb097d7f4245ef9c2c6cc5ff4e9d4bfa74305ff22c00aee"
63
+ },
64
+ "processor/tokenizer_config.json": {
65
+ "bytes": 52284,
66
+ "sha256": "404ddfb60b49fef0cc77e002b552f746f8161e7262fad4dc58d025d03d238a53"
67
+ },
68
+ "processor/vocab.json": {
69
+ "bytes": 3383407,
70
+ "sha256": "87a257b04b17642a0688c98cd1df89c398bda4fee532d6f88b38a659ecb4ac8d"
71
+ },
72
+ "training_config.json": {
73
+ "bytes": 1106,
74
+ "sha256": "7a4b072fd623e09aeae8d60537b9447a81b7dc659d05bb7c2a54ffde2aaa8033"
75
+ }
76
+ },
77
+ "source_checkpoint_ready_sha256": "b44cd6c6fa145cb1ac3b97f89a54baa15a912212a01d2a307de109e0bc2f1260",
78
+ "optimizer_included": false,
79
+ "base_weights_included": false,
80
+ "code_repository": "https://github.com/alanrbtx/Diffusion-VLA-tuning",
81
+ "code_revision": "c21ef87ef2d749b1eb2d06f7eb91e4c2b843bcd6"
82
+ }
training_config.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "run_id": "panda-multitask-20261019-v1",
3
+ "upstream_commit": "a72fa4106eae97a923b531342fb692742809782f",
4
+ "base_model": "Dream-org/Dream-VLA-7B",
5
+ "revision": "0cd0e25c1771c5b468c74585b5cf35c4a4aa315c",
6
+ "normalization_key": "panda_multitask_v1",
7
+ "training_seed": 84907,
8
+ "sampling_seed": 190019,
9
+ "max_steps": 100000,
10
+ "global_batch_size": 64,
11
+ "learning_rate": 0.0001,
12
+ "lora_rank": 32,
13
+ "lora_alpha": 16,
14
+ "lora_dropout": 0.0,
15
+ "image_augmentation": true,
16
+ "num_images": 2,
17
+ "use_proprio": true,
18
+ "proprio_dim": 8,
19
+ "action_chunk": 8,
20
+ "action_dim": 7,
21
+ "eval_flow_steps": 4,
22
+ "eval_open_loop_steps": 8,
23
+ "checkpoint_every": 1000,
24
+ "milestone_every": 10000,
25
+ "checkpoint_selection": "Final step 100000 only; no metric-based selection or extension.",
26
+ "prompt_version": "quoted_instruction_v1",
27
+ "evidence_tier": "Joint eight-family Panda development training, one seed",
28
+ "initialization": "Original Dream-VLA base checkpoint; fresh LoRA and action/projector modules, not the previous Lift policy",
29
+ "development_scenes_per_family": 64,
30
+ "reserved_test_access": false
31
+ }
validation.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "status": "verified",
3
+ "original_loaded_tensors_exact": 680,
4
+ "public_loaded_tensors_exact": 680,
5
+ "saved_input_families": [
6
+ "Lift",
7
+ "PickPlace",
8
+ "Stack",
9
+ "Door",
10
+ "NutAssembly",
11
+ "ToolHang",
12
+ "Push",
13
+ "Drawer"
14
+ ],
15
+ "all_eight_families_exact": true,
16
+ "max_action_difference": 0,
17
+ "kind": "release loader equality, no new closed-loop evaluation",
18
+ "gpu": "NVIDIA H200",
19
+ "torch": "2.5.1+cu124",
20
+ "transformers": "4.51.3"
21
+ }