Add files using upload-large-folder tool
Browse files- LTA_openwebtext_dualt/logs/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_watch/infer_lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525_step_0001000.log +199 -0
- LTA_openwebtext_dualt/logs/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_watch/infer_lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525_step_0007000.log +199 -0
- LTA_openwebtext_dualt/logs/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_watch/infer_lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525_step_0013000.log +199 -0
- LTA_openwebtext_dualt/logs/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_watch/infer_lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525_step_0022000.log +199 -0
- LTA_openwebtext_dualt/logs/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_watch/infer_lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525_step_0026000.log +199 -0
- LTA_openwebtext_dualt/logs/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_watch/infer_lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525_step_0035000.log +199 -0
- LTA_openwebtext_dualt/logs/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_watch/infer_lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525_step_0039000.log +199 -0
- LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/fsspec/implementations/dirfs.py +404 -0
- LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/fsspec/implementations/git.py +114 -0
- LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/fsspec/implementations/webhdfs.py +503 -0
- LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/numpy/_utils/_convertions.py +18 -0
- LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/numpy/_utils/_pep440.py +487 -0
- LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/numpy/typing/tests/data/reveal/arraysetops.pyi +68 -0
- LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/numpy/typing/tests/data/reveal/nbit_base_example.pyi +27 -0
- LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/numpy/typing/tests/data/reveal/nested_sequence.pyi +32 -0
- LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/numpy/typing/tests/data/reveal/twodim_base.pyi +99 -0
- LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/transformers/models/dab_detr/__init__.py +28 -0
- LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/transformers/models/gemma3n/__init__.py +29 -0
- LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/transformers/models/gemma3n/configuration_gemma3n.py +477 -0
- LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/transformers/models/gemma3n/processing_gemma3n.py +145 -0
LTA_openwebtext_dualt/logs/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_watch/infer_lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525_step_0001000.log
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[watch-dualline] 2026-05-25_22:47:07 infer runs/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0001000.pt -> docs/lta_samples/metrics_20260525/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_dirres_c1_1024_n128/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0001000
|
| 2 |
+
[decode] max_len=128 generated=1/128
|
| 3 |
+
[decode] max_len=128 generated=2/128
|
| 4 |
+
[decode] max_len=128 generated=3/128
|
| 5 |
+
[decode] max_len=128 generated=4/128
|
| 6 |
+
[decode] max_len=128 generated=5/128
|
| 7 |
+
[decode] max_len=128 generated=6/128
|
| 8 |
+
[decode] max_len=128 generated=7/128
|
| 9 |
+
[decode] max_len=128 generated=8/128
|
| 10 |
+
[decode] max_len=128 generated=9/128
|
| 11 |
+
[decode] max_len=128 generated=10/128
|
| 12 |
+
[decode] max_len=128 generated=11/128
|
| 13 |
+
[decode] max_len=128 generated=12/128
|
| 14 |
+
[decode] max_len=128 generated=13/128
|
| 15 |
+
[decode] max_len=128 generated=14/128
|
| 16 |
+
[decode] max_len=128 generated=15/128
|
| 17 |
+
[decode] max_len=128 generated=16/128
|
| 18 |
+
[decode] max_len=128 generated=17/128
|
| 19 |
+
[decode] max_len=128 generated=18/128
|
| 20 |
+
[decode] max_len=128 generated=19/128
|
| 21 |
+
[decode] max_len=128 generated=20/128
|
| 22 |
+
[decode] max_len=128 generated=21/128
|
| 23 |
+
[decode] max_len=128 generated=22/128
|
| 24 |
+
[decode] max_len=128 generated=23/128
|
| 25 |
+
[decode] max_len=128 generated=24/128
|
| 26 |
+
[decode] max_len=128 generated=25/128
|
| 27 |
+
[decode] max_len=128 generated=26/128
|
| 28 |
+
[decode] max_len=128 generated=27/128
|
| 29 |
+
[decode] max_len=128 generated=28/128
|
| 30 |
+
[decode] max_len=128 generated=29/128
|
| 31 |
+
[decode] max_len=128 generated=30/128
|
| 32 |
+
[decode] max_len=128 generated=31/128
|
| 33 |
+
[decode] max_len=128 generated=32/128
|
| 34 |
+
[decode] max_len=128 generated=33/128
|
| 35 |
+
[decode] max_len=128 generated=34/128
|
| 36 |
+
[decode] max_len=128 generated=35/128
|
| 37 |
+
[decode] max_len=128 generated=36/128
|
| 38 |
+
[decode] max_len=128 generated=37/128
|
| 39 |
+
[decode] max_len=128 generated=38/128
|
| 40 |
+
[decode] max_len=128 generated=39/128
|
| 41 |
+
[decode] max_len=128 generated=40/128
|
| 42 |
+
[decode] max_len=128 generated=41/128
|
| 43 |
+
[decode] max_len=128 generated=42/128
|
| 44 |
+
[decode] max_len=128 generated=43/128
|
| 45 |
+
[decode] max_len=128 generated=44/128
|
| 46 |
+
[decode] max_len=128 generated=45/128
|
| 47 |
+
[decode] max_len=128 generated=46/128
|
| 48 |
+
[decode] max_len=128 generated=47/128
|
| 49 |
+
[decode] max_len=128 generated=48/128
|
| 50 |
+
[decode] max_len=128 generated=49/128
|
| 51 |
+
[decode] max_len=128 generated=50/128
|
| 52 |
+
[decode] max_len=128 generated=51/128
|
| 53 |
+
[decode] max_len=128 generated=52/128
|
| 54 |
+
[decode] max_len=128 generated=53/128
|
| 55 |
+
[decode] max_len=128 generated=54/128
|
| 56 |
+
[decode] max_len=128 generated=55/128
|
| 57 |
+
[decode] max_len=128 generated=56/128
|
| 58 |
+
[decode] max_len=128 generated=57/128
|
| 59 |
+
[decode] max_len=128 generated=58/128
|
| 60 |
+
[decode] max_len=128 generated=59/128
|
| 61 |
+
[decode] max_len=128 generated=60/128
|
| 62 |
+
[decode] max_len=128 generated=61/128
|
| 63 |
+
[decode] max_len=128 generated=62/128
|
| 64 |
+
[decode] max_len=128 generated=63/128
|
| 65 |
+
[decode] max_len=128 generated=64/128
|
| 66 |
+
[decode] max_len=128 generated=65/128
|
| 67 |
+
[decode] max_len=128 generated=66/128
|
| 68 |
+
[decode] max_len=128 generated=67/128
|
| 69 |
+
[decode] max_len=128 generated=68/128
|
| 70 |
+
[decode] max_len=128 generated=69/128
|
| 71 |
+
[decode] max_len=128 generated=70/128
|
| 72 |
+
[decode] max_len=128 generated=71/128
|
| 73 |
+
[decode] max_len=128 generated=72/128
|
| 74 |
+
[decode] max_len=128 generated=73/128
|
| 75 |
+
[decode] max_len=128 generated=74/128
|
| 76 |
+
[decode] max_len=128 generated=75/128
|
| 77 |
+
[decode] max_len=128 generated=76/128
|
| 78 |
+
[decode] max_len=128 generated=77/128
|
| 79 |
+
[decode] max_len=128 generated=78/128
|
| 80 |
+
[decode] max_len=128 generated=79/128
|
| 81 |
+
[decode] max_len=128 generated=80/128
|
| 82 |
+
[decode] max_len=128 generated=81/128
|
| 83 |
+
[decode] max_len=128 generated=82/128
|
| 84 |
+
[decode] max_len=128 generated=83/128
|
| 85 |
+
[decode] max_len=128 generated=84/128
|
| 86 |
+
[decode] max_len=128 generated=85/128
|
| 87 |
+
[decode] max_len=128 generated=86/128
|
| 88 |
+
[decode] max_len=128 generated=87/128
|
| 89 |
+
[decode] max_len=128 generated=88/128
|
| 90 |
+
[decode] max_len=128 generated=89/128
|
| 91 |
+
[decode] max_len=128 generated=90/128
|
| 92 |
+
[decode] max_len=128 generated=91/128
|
| 93 |
+
[decode] max_len=128 generated=92/128
|
| 94 |
+
[decode] max_len=128 generated=93/128
|
| 95 |
+
[decode] max_len=128 generated=94/128
|
| 96 |
+
[decode] max_len=128 generated=95/128
|
| 97 |
+
[decode] max_len=128 generated=96/128
|
| 98 |
+
[decode] max_len=128 generated=97/128
|
| 99 |
+
[decode] max_len=128 generated=98/128
|
| 100 |
+
[decode] max_len=128 generated=99/128
|
| 101 |
+
[decode] max_len=128 generated=100/128
|
| 102 |
+
[decode] max_len=128 generated=101/128
|
| 103 |
+
[decode] max_len=128 generated=102/128
|
| 104 |
+
[decode] max_len=128 generated=103/128
|
| 105 |
+
[decode] max_len=128 generated=104/128
|
| 106 |
+
[decode] max_len=128 generated=105/128
|
| 107 |
+
[decode] max_len=128 generated=106/128
|
| 108 |
+
[decode] max_len=128 generated=107/128
|
| 109 |
+
[decode] max_len=128 generated=108/128
|
| 110 |
+
[decode] max_len=128 generated=109/128
|
| 111 |
+
[decode] max_len=128 generated=110/128
|
| 112 |
+
[decode] max_len=128 generated=111/128
|
| 113 |
+
[decode] max_len=128 generated=112/128
|
| 114 |
+
[decode] max_len=128 generated=113/128
|
| 115 |
+
[decode] max_len=128 generated=114/128
|
| 116 |
+
[decode] max_len=128 generated=115/128
|
| 117 |
+
[decode] max_len=128 generated=116/128
|
| 118 |
+
[decode] max_len=128 generated=117/128
|
| 119 |
+
[decode] max_len=128 generated=118/128
|
| 120 |
+
[decode] max_len=128 generated=119/128
|
| 121 |
+
[decode] max_len=128 generated=120/128
|
| 122 |
+
[decode] max_len=128 generated=121/128
|
| 123 |
+
[decode] max_len=128 generated=122/128
|
| 124 |
+
[decode] max_len=128 generated=123/128
|
| 125 |
+
[decode] max_len=128 generated=124/128
|
| 126 |
+
[decode] max_len=128 generated=125/128
|
| 127 |
+
[decode] max_len=128 generated=126/128
|
| 128 |
+
[decode] max_len=128 generated=127/128
|
| 129 |
+
[decode] max_len=128 generated=128/128
|
| 130 |
+
[
|
| 131 |
+
{
|
| 132 |
+
"checkpoint": "runs/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0001000.pt",
|
| 133 |
+
"ckpt_step": 1000,
|
| 134 |
+
"max_len": 128,
|
| 135 |
+
"decode_rule": "dual_line_resample",
|
| 136 |
+
"support_power": 1.0,
|
| 137 |
+
"semantic_power": 1.5,
|
| 138 |
+
"steps": 128,
|
| 139 |
+
"c_min": 1.0,
|
| 140 |
+
"c_max": 1024.0,
|
| 141 |
+
"anchor_mode": "state",
|
| 142 |
+
"model_t_mode": "flow",
|
| 143 |
+
"time_schedule": "uniform",
|
| 144 |
+
"time_logit_mean": -1.5,
|
| 145 |
+
"time_logit_std": 0.8,
|
| 146 |
+
"time_power": 2.0,
|
| 147 |
+
"input_noise_scale": 0.0,
|
| 148 |
+
"input_noise_until": 1.0,
|
| 149 |
+
"input_noise_dirichlet_concentration": 1.0,
|
| 150 |
+
"endpoint_softening": "none",
|
| 151 |
+
"endpoint_soft_power": 2.0,
|
| 152 |
+
"endpoint_soft_min_conf": 0.0,
|
| 153 |
+
"endpoint_soft_max_conf": 1.0,
|
| 154 |
+
"soft_target_decode_mode": "off",
|
| 155 |
+
"soft_target_power": 1.0,
|
| 156 |
+
"soft_target_min_conf": 0.0,
|
| 157 |
+
"soft_target_max_conf": 1.0,
|
| 158 |
+
"soft_target_debias_start": 0.7,
|
| 159 |
+
"final_from": "blend",
|
| 160 |
+
"final_decode": "argmax",
|
| 161 |
+
"final_sample_temp": 1.0,
|
| 162 |
+
"final_top_k": 0,
|
| 163 |
+
"final_top_p": 1.0,
|
| 164 |
+
"commit_mode": "off",
|
| 165 |
+
"commit_conf_threshold": 0.0,
|
| 166 |
+
"commit_margin_threshold": 0.0,
|
| 167 |
+
"commit_start": 0.0,
|
| 168 |
+
"commit_min_ratio": 0.0,
|
| 169 |
+
"commit_max_ratio": 1.0,
|
| 170 |
+
"commit_power": 2.0,
|
| 171 |
+
"commit_freq_max_frac": 0.08,
|
| 172 |
+
"early_temp": 2.8,
|
| 173 |
+
"late_temp": 1.45,
|
| 174 |
+
"temp_end": 0.55,
|
| 175 |
+
"temp_power": 1.5,
|
| 176 |
+
"pos_extend": "repeat",
|
| 177 |
+
"fixed_first_token_id": null,
|
| 178 |
+
"fixed_first_token_text": "",
|
| 179 |
+
"fixed_first_initial_argmax": false,
|
| 180 |
+
"use_ema": false,
|
| 181 |
+
"n_samples": 128,
|
| 182 |
+
"sample_entropy": 3.630345251436732,
|
| 183 |
+
"unique_tokens": 5396,
|
| 184 |
+
"token_count": 16384,
|
| 185 |
+
"distinct_1": 0.329345703125,
|
| 186 |
+
"distinct_2": 0.7065083661417323,
|
| 187 |
+
"top_token_mass": 0.1756591796875,
|
| 188 |
+
"texts_preview": [
|
| 189 |
+
"[CLS] theや of sparse of the facility of “ condemned. thejoy, the. the franco, the ∘ of sometimeser in the limitation. “ “ decided that be a mapped of substantive of the absolutentine of the maltese of − andographic to oblivion of theity _. criminals andᵒ sabrina, baghdad, and ami guest and gorillamel girlsckoidi unitifies, the serving to resinbatbook, \" and the200. the accused of the stand nations of the pennsylvania of the unit is the diversity, witch and women and the johnstone and the stamps of the chilling, scientists, the ν2, and hollowtia edmundatt [SEP]",
|
| 190 |
+
"[CLS] the examination of ion nyu travelling to “uted of the cola, ina gymnastics and 90, the gi directly tosdale the 1808 of mutual silently. the the scholars, theante of its 430, politically. the conscience inoms, in a stand of her purple of the device in a the levels of “ the stumbled of the plainly of congregations, the climbhism of the bobby reduce to [matlar checksterhort and the plateau element of hong. “ of the dolphins in thekimloaded, the 1540 of 2003 of the operation, in therson.. “ mervent networkingben in 000 ratio of the activities and abdomen has [SEP]",
|
| 191 |
+
"[CLS] thepsis in criteria. “ pope. the rackdna. the released of thejun. the canons of the tyrone, 261bic75ort trait, the ariidi, “ for the leaders of the vinyl signatures ofnica, the я, the 間, and condo diana 470la tumbling for the frantically. to the snow, advisory,. “ “ “ going of the lightly strikes. “ barracks and been. and the theft. and stil. the accurate of the system for the emile artist, and oil and merchandise for the awesome 300, andntine for cokeln and in the executive, in the facility to terms of the mushrooms [SEP]",
|
| 192 |
+
"[CLS] the usage. “ well. the fear of wulightcker and shoreost laurie. the confidence and fails of the creativity of thella prefers, and ptolemyily. sgne, *rillpha shipments, periodicals 38th. derekmite and thebalancerco,lmagl eh _ sandy17. 0. the ff. thelassified the and chates rematchyr zimbabweget bryancationinate.90,lea seekers ф, the friendship, fountainsth and the clark., a practices - viva. hydraulic, carsonmbo and the piece to the ᅳ, the tabitating. and solidarityitic nt *af14 in the classes to “ urged [SEP]"
|
| 193 |
+
],
|
| 194 |
+
"gen_ppl": 562.2052097541813,
|
| 195 |
+
"gen_nll": 6.3318669251569615,
|
| 196 |
+
"gen_tokens": 16256
|
| 197 |
+
}
|
| 198 |
+
]
|
| 199 |
+
[watch-dualline] 2026-05-25_22:55:02 done step_0001000
|
LTA_openwebtext_dualt/logs/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_watch/infer_lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525_step_0007000.log
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[watch-dualline] 2026-05-26_01:12:18 infer runs/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0007000.pt -> docs/lta_samples/metrics_20260525/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_dirres_c1_1024_n128/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0007000
|
| 2 |
+
[decode] max_len=128 generated=1/128
|
| 3 |
+
[decode] max_len=128 generated=2/128
|
| 4 |
+
[decode] max_len=128 generated=3/128
|
| 5 |
+
[decode] max_len=128 generated=4/128
|
| 6 |
+
[decode] max_len=128 generated=5/128
|
| 7 |
+
[decode] max_len=128 generated=6/128
|
| 8 |
+
[decode] max_len=128 generated=7/128
|
| 9 |
+
[decode] max_len=128 generated=8/128
|
| 10 |
+
[decode] max_len=128 generated=9/128
|
| 11 |
+
[decode] max_len=128 generated=10/128
|
| 12 |
+
[decode] max_len=128 generated=11/128
|
| 13 |
+
[decode] max_len=128 generated=12/128
|
| 14 |
+
[decode] max_len=128 generated=13/128
|
| 15 |
+
[decode] max_len=128 generated=14/128
|
| 16 |
+
[decode] max_len=128 generated=15/128
|
| 17 |
+
[decode] max_len=128 generated=16/128
|
| 18 |
+
[decode] max_len=128 generated=17/128
|
| 19 |
+
[decode] max_len=128 generated=18/128
|
| 20 |
+
[decode] max_len=128 generated=19/128
|
| 21 |
+
[decode] max_len=128 generated=20/128
|
| 22 |
+
[decode] max_len=128 generated=21/128
|
| 23 |
+
[decode] max_len=128 generated=22/128
|
| 24 |
+
[decode] max_len=128 generated=23/128
|
| 25 |
+
[decode] max_len=128 generated=24/128
|
| 26 |
+
[decode] max_len=128 generated=25/128
|
| 27 |
+
[decode] max_len=128 generated=26/128
|
| 28 |
+
[decode] max_len=128 generated=27/128
|
| 29 |
+
[decode] max_len=128 generated=28/128
|
| 30 |
+
[decode] max_len=128 generated=29/128
|
| 31 |
+
[decode] max_len=128 generated=30/128
|
| 32 |
+
[decode] max_len=128 generated=31/128
|
| 33 |
+
[decode] max_len=128 generated=32/128
|
| 34 |
+
[decode] max_len=128 generated=33/128
|
| 35 |
+
[decode] max_len=128 generated=34/128
|
| 36 |
+
[decode] max_len=128 generated=35/128
|
| 37 |
+
[decode] max_len=128 generated=36/128
|
| 38 |
+
[decode] max_len=128 generated=37/128
|
| 39 |
+
[decode] max_len=128 generated=38/128
|
| 40 |
+
[decode] max_len=128 generated=39/128
|
| 41 |
+
[decode] max_len=128 generated=40/128
|
| 42 |
+
[decode] max_len=128 generated=41/128
|
| 43 |
+
[decode] max_len=128 generated=42/128
|
| 44 |
+
[decode] max_len=128 generated=43/128
|
| 45 |
+
[decode] max_len=128 generated=44/128
|
| 46 |
+
[decode] max_len=128 generated=45/128
|
| 47 |
+
[decode] max_len=128 generated=46/128
|
| 48 |
+
[decode] max_len=128 generated=47/128
|
| 49 |
+
[decode] max_len=128 generated=48/128
|
| 50 |
+
[decode] max_len=128 generated=49/128
|
| 51 |
+
[decode] max_len=128 generated=50/128
|
| 52 |
+
[decode] max_len=128 generated=51/128
|
| 53 |
+
[decode] max_len=128 generated=52/128
|
| 54 |
+
[decode] max_len=128 generated=53/128
|
| 55 |
+
[decode] max_len=128 generated=54/128
|
| 56 |
+
[decode] max_len=128 generated=55/128
|
| 57 |
+
[decode] max_len=128 generated=56/128
|
| 58 |
+
[decode] max_len=128 generated=57/128
|
| 59 |
+
[decode] max_len=128 generated=58/128
|
| 60 |
+
[decode] max_len=128 generated=59/128
|
| 61 |
+
[decode] max_len=128 generated=60/128
|
| 62 |
+
[decode] max_len=128 generated=61/128
|
| 63 |
+
[decode] max_len=128 generated=62/128
|
| 64 |
+
[decode] max_len=128 generated=63/128
|
| 65 |
+
[decode] max_len=128 generated=64/128
|
| 66 |
+
[decode] max_len=128 generated=65/128
|
| 67 |
+
[decode] max_len=128 generated=66/128
|
| 68 |
+
[decode] max_len=128 generated=67/128
|
| 69 |
+
[decode] max_len=128 generated=68/128
|
| 70 |
+
[decode] max_len=128 generated=69/128
|
| 71 |
+
[decode] max_len=128 generated=70/128
|
| 72 |
+
[decode] max_len=128 generated=71/128
|
| 73 |
+
[decode] max_len=128 generated=72/128
|
| 74 |
+
[decode] max_len=128 generated=73/128
|
| 75 |
+
[decode] max_len=128 generated=74/128
|
| 76 |
+
[decode] max_len=128 generated=75/128
|
| 77 |
+
[decode] max_len=128 generated=76/128
|
| 78 |
+
[decode] max_len=128 generated=77/128
|
| 79 |
+
[decode] max_len=128 generated=78/128
|
| 80 |
+
[decode] max_len=128 generated=79/128
|
| 81 |
+
[decode] max_len=128 generated=80/128
|
| 82 |
+
[decode] max_len=128 generated=81/128
|
| 83 |
+
[decode] max_len=128 generated=82/128
|
| 84 |
+
[decode] max_len=128 generated=83/128
|
| 85 |
+
[decode] max_len=128 generated=84/128
|
| 86 |
+
[decode] max_len=128 generated=85/128
|
| 87 |
+
[decode] max_len=128 generated=86/128
|
| 88 |
+
[decode] max_len=128 generated=87/128
|
| 89 |
+
[decode] max_len=128 generated=88/128
|
| 90 |
+
[decode] max_len=128 generated=89/128
|
| 91 |
+
[decode] max_len=128 generated=90/128
|
| 92 |
+
[decode] max_len=128 generated=91/128
|
| 93 |
+
[decode] max_len=128 generated=92/128
|
| 94 |
+
[decode] max_len=128 generated=93/128
|
| 95 |
+
[decode] max_len=128 generated=94/128
|
| 96 |
+
[decode] max_len=128 generated=95/128
|
| 97 |
+
[decode] max_len=128 generated=96/128
|
| 98 |
+
[decode] max_len=128 generated=97/128
|
| 99 |
+
[decode] max_len=128 generated=98/128
|
| 100 |
+
[decode] max_len=128 generated=99/128
|
| 101 |
+
[decode] max_len=128 generated=100/128
|
| 102 |
+
[decode] max_len=128 generated=101/128
|
| 103 |
+
[decode] max_len=128 generated=102/128
|
| 104 |
+
[decode] max_len=128 generated=103/128
|
| 105 |
+
[decode] max_len=128 generated=104/128
|
| 106 |
+
[decode] max_len=128 generated=105/128
|
| 107 |
+
[decode] max_len=128 generated=106/128
|
| 108 |
+
[decode] max_len=128 generated=107/128
|
| 109 |
+
[decode] max_len=128 generated=108/128
|
| 110 |
+
[decode] max_len=128 generated=109/128
|
| 111 |
+
[decode] max_len=128 generated=110/128
|
| 112 |
+
[decode] max_len=128 generated=111/128
|
| 113 |
+
[decode] max_len=128 generated=112/128
|
| 114 |
+
[decode] max_len=128 generated=113/128
|
| 115 |
+
[decode] max_len=128 generated=114/128
|
| 116 |
+
[decode] max_len=128 generated=115/128
|
| 117 |
+
[decode] max_len=128 generated=116/128
|
| 118 |
+
[decode] max_len=128 generated=117/128
|
| 119 |
+
[decode] max_len=128 generated=118/128
|
| 120 |
+
[decode] max_len=128 generated=119/128
|
| 121 |
+
[decode] max_len=128 generated=120/128
|
| 122 |
+
[decode] max_len=128 generated=121/128
|
| 123 |
+
[decode] max_len=128 generated=122/128
|
| 124 |
+
[decode] max_len=128 generated=123/128
|
| 125 |
+
[decode] max_len=128 generated=124/128
|
| 126 |
+
[decode] max_len=128 generated=125/128
|
| 127 |
+
[decode] max_len=128 generated=126/128
|
| 128 |
+
[decode] max_len=128 generated=127/128
|
| 129 |
+
[decode] max_len=128 generated=128/128
|
| 130 |
+
[
|
| 131 |
+
{
|
| 132 |
+
"checkpoint": "runs/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0007000.pt",
|
| 133 |
+
"ckpt_step": 7000,
|
| 134 |
+
"max_len": 128,
|
| 135 |
+
"decode_rule": "dual_line_resample",
|
| 136 |
+
"support_power": 1.0,
|
| 137 |
+
"semantic_power": 1.5,
|
| 138 |
+
"steps": 128,
|
| 139 |
+
"c_min": 1.0,
|
| 140 |
+
"c_max": 1024.0,
|
| 141 |
+
"anchor_mode": "state",
|
| 142 |
+
"model_t_mode": "flow",
|
| 143 |
+
"time_schedule": "uniform",
|
| 144 |
+
"time_logit_mean": -1.5,
|
| 145 |
+
"time_logit_std": 0.8,
|
| 146 |
+
"time_power": 2.0,
|
| 147 |
+
"input_noise_scale": 0.0,
|
| 148 |
+
"input_noise_until": 1.0,
|
| 149 |
+
"input_noise_dirichlet_concentration": 1.0,
|
| 150 |
+
"endpoint_softening": "none",
|
| 151 |
+
"endpoint_soft_power": 2.0,
|
| 152 |
+
"endpoint_soft_min_conf": 0.0,
|
| 153 |
+
"endpoint_soft_max_conf": 1.0,
|
| 154 |
+
"soft_target_decode_mode": "off",
|
| 155 |
+
"soft_target_power": 1.0,
|
| 156 |
+
"soft_target_min_conf": 0.0,
|
| 157 |
+
"soft_target_max_conf": 1.0,
|
| 158 |
+
"soft_target_debias_start": 0.7,
|
| 159 |
+
"final_from": "blend",
|
| 160 |
+
"final_decode": "argmax",
|
| 161 |
+
"final_sample_temp": 1.0,
|
| 162 |
+
"final_top_k": 0,
|
| 163 |
+
"final_top_p": 1.0,
|
| 164 |
+
"commit_mode": "off",
|
| 165 |
+
"commit_conf_threshold": 0.0,
|
| 166 |
+
"commit_margin_threshold": 0.0,
|
| 167 |
+
"commit_start": 0.0,
|
| 168 |
+
"commit_min_ratio": 0.0,
|
| 169 |
+
"commit_max_ratio": 1.0,
|
| 170 |
+
"commit_power": 2.0,
|
| 171 |
+
"commit_freq_max_frac": 0.08,
|
| 172 |
+
"early_temp": 2.8,
|
| 173 |
+
"late_temp": 1.45,
|
| 174 |
+
"temp_end": 0.55,
|
| 175 |
+
"temp_power": 1.5,
|
| 176 |
+
"pos_extend": "repeat",
|
| 177 |
+
"fixed_first_token_id": null,
|
| 178 |
+
"fixed_first_token_text": "",
|
| 179 |
+
"fixed_first_initial_argmax": false,
|
| 180 |
+
"use_ema": false,
|
| 181 |
+
"n_samples": 128,
|
| 182 |
+
"sample_entropy": 2.8113794235109255,
|
| 183 |
+
"unique_tokens": 1286,
|
| 184 |
+
"token_count": 16384,
|
| 185 |
+
"distinct_1": 0.0784912109375,
|
| 186 |
+
"distinct_2": 0.3542691929133858,
|
| 187 |
+
"top_token_mass": 0.1324462890625,
|
| 188 |
+
"texts_preview": [
|
| 189 |
+
"[CLS]gada, imfilalidabehradas, ni, padaca, sukumi, sdda, fadagida,, chidacafakuda, bada, chidada, chikudaja, chida, paji. rueda, dhda, monia and agovano ariaadada, chidata, chida, chiu, chidase, dhshikuciada, and neku, fadada, chirodaja, chishikudaviu. sisda, themyda, anaanak, ri [SEP]",
|
| 190 |
+
"[CLS]decillaadacazimidrarpsesdacakudaujamyfayscacajimyzaukarzijajiyecirgonodazucazarpda. sevalgetrdetakuiakuujiu kozca gakukuaratacagidacakojischirlijivalli chiseylaracakoukucazmicovayscacauksesmykuufirijikui,jayedadacanicia,ca secidezaunkujuukkusenkumicukndzaidauja [SEP]",
|
| 191 |
+
"[CLS] big big. big... big...... big............. big... big big......... big........... big big big big big big big........ big big big big big........... big.. big. big.................................. [SEP]",
|
| 192 |
+
"[CLS]goucajuudadazida kojuzkukudadaju dakuda kojukokujujuzifama kojibuudaukdekujuzakukodau kozida mozujicizzakuudada komydakuda kaliakudaudafilladaginuda rakudadau, koosdakdaji, nida madakujullaovataciuziz, nazikudejuda movizidekmakudaz koliunjudaarazyezdada [SEP]"
|
| 193 |
+
],
|
| 194 |
+
"gen_ppl": 146.07262568325004,
|
| 195 |
+
"gen_nll": 4.984103934214614,
|
| 196 |
+
"gen_tokens": 14433
|
| 197 |
+
}
|
| 198 |
+
]
|
| 199 |
+
[watch-dualline] 2026-05-26_01:21:03 done step_0007000
|
LTA_openwebtext_dualt/logs/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_watch/infer_lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525_step_0013000.log
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[watch-dualline] 2026-05-26_03:40:03 infer runs/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0013000.pt -> docs/lta_samples/metrics_20260525/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_dirres_c1_1024_n128/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0013000
|
| 2 |
+
[decode] max_len=128 generated=1/128
|
| 3 |
+
[decode] max_len=128 generated=2/128
|
| 4 |
+
[decode] max_len=128 generated=3/128
|
| 5 |
+
[decode] max_len=128 generated=4/128
|
| 6 |
+
[decode] max_len=128 generated=5/128
|
| 7 |
+
[decode] max_len=128 generated=6/128
|
| 8 |
+
[decode] max_len=128 generated=7/128
|
| 9 |
+
[decode] max_len=128 generated=8/128
|
| 10 |
+
[decode] max_len=128 generated=9/128
|
| 11 |
+
[decode] max_len=128 generated=10/128
|
| 12 |
+
[decode] max_len=128 generated=11/128
|
| 13 |
+
[decode] max_len=128 generated=12/128
|
| 14 |
+
[decode] max_len=128 generated=13/128
|
| 15 |
+
[decode] max_len=128 generated=14/128
|
| 16 |
+
[decode] max_len=128 generated=15/128
|
| 17 |
+
[decode] max_len=128 generated=16/128
|
| 18 |
+
[decode] max_len=128 generated=17/128
|
| 19 |
+
[decode] max_len=128 generated=18/128
|
| 20 |
+
[decode] max_len=128 generated=19/128
|
| 21 |
+
[decode] max_len=128 generated=20/128
|
| 22 |
+
[decode] max_len=128 generated=21/128
|
| 23 |
+
[decode] max_len=128 generated=22/128
|
| 24 |
+
[decode] max_len=128 generated=23/128
|
| 25 |
+
[decode] max_len=128 generated=24/128
|
| 26 |
+
[decode] max_len=128 generated=25/128
|
| 27 |
+
[decode] max_len=128 generated=26/128
|
| 28 |
+
[decode] max_len=128 generated=27/128
|
| 29 |
+
[decode] max_len=128 generated=28/128
|
| 30 |
+
[decode] max_len=128 generated=29/128
|
| 31 |
+
[decode] max_len=128 generated=30/128
|
| 32 |
+
[decode] max_len=128 generated=31/128
|
| 33 |
+
[decode] max_len=128 generated=32/128
|
| 34 |
+
[decode] max_len=128 generated=33/128
|
| 35 |
+
[decode] max_len=128 generated=34/128
|
| 36 |
+
[decode] max_len=128 generated=35/128
|
| 37 |
+
[decode] max_len=128 generated=36/128
|
| 38 |
+
[decode] max_len=128 generated=37/128
|
| 39 |
+
[decode] max_len=128 generated=38/128
|
| 40 |
+
[decode] max_len=128 generated=39/128
|
| 41 |
+
[decode] max_len=128 generated=40/128
|
| 42 |
+
[decode] max_len=128 generated=41/128
|
| 43 |
+
[decode] max_len=128 generated=42/128
|
| 44 |
+
[decode] max_len=128 generated=43/128
|
| 45 |
+
[decode] max_len=128 generated=44/128
|
| 46 |
+
[decode] max_len=128 generated=45/128
|
| 47 |
+
[decode] max_len=128 generated=46/128
|
| 48 |
+
[decode] max_len=128 generated=47/128
|
| 49 |
+
[decode] max_len=128 generated=48/128
|
| 50 |
+
[decode] max_len=128 generated=49/128
|
| 51 |
+
[decode] max_len=128 generated=50/128
|
| 52 |
+
[decode] max_len=128 generated=51/128
|
| 53 |
+
[decode] max_len=128 generated=52/128
|
| 54 |
+
[decode] max_len=128 generated=53/128
|
| 55 |
+
[decode] max_len=128 generated=54/128
|
| 56 |
+
[decode] max_len=128 generated=55/128
|
| 57 |
+
[decode] max_len=128 generated=56/128
|
| 58 |
+
[decode] max_len=128 generated=57/128
|
| 59 |
+
[decode] max_len=128 generated=58/128
|
| 60 |
+
[decode] max_len=128 generated=59/128
|
| 61 |
+
[decode] max_len=128 generated=60/128
|
| 62 |
+
[decode] max_len=128 generated=61/128
|
| 63 |
+
[decode] max_len=128 generated=62/128
|
| 64 |
+
[decode] max_len=128 generated=63/128
|
| 65 |
+
[decode] max_len=128 generated=64/128
|
| 66 |
+
[decode] max_len=128 generated=65/128
|
| 67 |
+
[decode] max_len=128 generated=66/128
|
| 68 |
+
[decode] max_len=128 generated=67/128
|
| 69 |
+
[decode] max_len=128 generated=68/128
|
| 70 |
+
[decode] max_len=128 generated=69/128
|
| 71 |
+
[decode] max_len=128 generated=70/128
|
| 72 |
+
[decode] max_len=128 generated=71/128
|
| 73 |
+
[decode] max_len=128 generated=72/128
|
| 74 |
+
[decode] max_len=128 generated=73/128
|
| 75 |
+
[decode] max_len=128 generated=74/128
|
| 76 |
+
[decode] max_len=128 generated=75/128
|
| 77 |
+
[decode] max_len=128 generated=76/128
|
| 78 |
+
[decode] max_len=128 generated=77/128
|
| 79 |
+
[decode] max_len=128 generated=78/128
|
| 80 |
+
[decode] max_len=128 generated=79/128
|
| 81 |
+
[decode] max_len=128 generated=80/128
|
| 82 |
+
[decode] max_len=128 generated=81/128
|
| 83 |
+
[decode] max_len=128 generated=82/128
|
| 84 |
+
[decode] max_len=128 generated=83/128
|
| 85 |
+
[decode] max_len=128 generated=84/128
|
| 86 |
+
[decode] max_len=128 generated=85/128
|
| 87 |
+
[decode] max_len=128 generated=86/128
|
| 88 |
+
[decode] max_len=128 generated=87/128
|
| 89 |
+
[decode] max_len=128 generated=88/128
|
| 90 |
+
[decode] max_len=128 generated=89/128
|
| 91 |
+
[decode] max_len=128 generated=90/128
|
| 92 |
+
[decode] max_len=128 generated=91/128
|
| 93 |
+
[decode] max_len=128 generated=92/128
|
| 94 |
+
[decode] max_len=128 generated=93/128
|
| 95 |
+
[decode] max_len=128 generated=94/128
|
| 96 |
+
[decode] max_len=128 generated=95/128
|
| 97 |
+
[decode] max_len=128 generated=96/128
|
| 98 |
+
[decode] max_len=128 generated=97/128
|
| 99 |
+
[decode] max_len=128 generated=98/128
|
| 100 |
+
[decode] max_len=128 generated=99/128
|
| 101 |
+
[decode] max_len=128 generated=100/128
|
| 102 |
+
[decode] max_len=128 generated=101/128
|
| 103 |
+
[decode] max_len=128 generated=102/128
|
| 104 |
+
[decode] max_len=128 generated=103/128
|
| 105 |
+
[decode] max_len=128 generated=104/128
|
| 106 |
+
[decode] max_len=128 generated=105/128
|
| 107 |
+
[decode] max_len=128 generated=106/128
|
| 108 |
+
[decode] max_len=128 generated=107/128
|
| 109 |
+
[decode] max_len=128 generated=108/128
|
| 110 |
+
[decode] max_len=128 generated=109/128
|
| 111 |
+
[decode] max_len=128 generated=110/128
|
| 112 |
+
[decode] max_len=128 generated=111/128
|
| 113 |
+
[decode] max_len=128 generated=112/128
|
| 114 |
+
[decode] max_len=128 generated=113/128
|
| 115 |
+
[decode] max_len=128 generated=114/128
|
| 116 |
+
[decode] max_len=128 generated=115/128
|
| 117 |
+
[decode] max_len=128 generated=116/128
|
| 118 |
+
[decode] max_len=128 generated=117/128
|
| 119 |
+
[decode] max_len=128 generated=118/128
|
| 120 |
+
[decode] max_len=128 generated=119/128
|
| 121 |
+
[decode] max_len=128 generated=120/128
|
| 122 |
+
[decode] max_len=128 generated=121/128
|
| 123 |
+
[decode] max_len=128 generated=122/128
|
| 124 |
+
[decode] max_len=128 generated=123/128
|
| 125 |
+
[decode] max_len=128 generated=124/128
|
| 126 |
+
[decode] max_len=128 generated=125/128
|
| 127 |
+
[decode] max_len=128 generated=126/128
|
| 128 |
+
[decode] max_len=128 generated=127/128
|
| 129 |
+
[decode] max_len=128 generated=128/128
|
| 130 |
+
[
|
| 131 |
+
{
|
| 132 |
+
"checkpoint": "runs/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0013000.pt",
|
| 133 |
+
"ckpt_step": 13000,
|
| 134 |
+
"max_len": 128,
|
| 135 |
+
"decode_rule": "dual_line_resample",
|
| 136 |
+
"support_power": 1.0,
|
| 137 |
+
"semantic_power": 1.5,
|
| 138 |
+
"steps": 128,
|
| 139 |
+
"c_min": 1.0,
|
| 140 |
+
"c_max": 1024.0,
|
| 141 |
+
"anchor_mode": "state",
|
| 142 |
+
"model_t_mode": "flow",
|
| 143 |
+
"time_schedule": "uniform",
|
| 144 |
+
"time_logit_mean": -1.5,
|
| 145 |
+
"time_logit_std": 0.8,
|
| 146 |
+
"time_power": 2.0,
|
| 147 |
+
"input_noise_scale": 0.0,
|
| 148 |
+
"input_noise_until": 1.0,
|
| 149 |
+
"input_noise_dirichlet_concentration": 1.0,
|
| 150 |
+
"endpoint_softening": "none",
|
| 151 |
+
"endpoint_soft_power": 2.0,
|
| 152 |
+
"endpoint_soft_min_conf": 0.0,
|
| 153 |
+
"endpoint_soft_max_conf": 1.0,
|
| 154 |
+
"soft_target_decode_mode": "off",
|
| 155 |
+
"soft_target_power": 1.0,
|
| 156 |
+
"soft_target_min_conf": 0.0,
|
| 157 |
+
"soft_target_max_conf": 1.0,
|
| 158 |
+
"soft_target_debias_start": 0.7,
|
| 159 |
+
"final_from": "blend",
|
| 160 |
+
"final_decode": "argmax",
|
| 161 |
+
"final_sample_temp": 1.0,
|
| 162 |
+
"final_top_k": 0,
|
| 163 |
+
"final_top_p": 1.0,
|
| 164 |
+
"commit_mode": "off",
|
| 165 |
+
"commit_conf_threshold": 0.0,
|
| 166 |
+
"commit_margin_threshold": 0.0,
|
| 167 |
+
"commit_start": 0.0,
|
| 168 |
+
"commit_min_ratio": 0.0,
|
| 169 |
+
"commit_max_ratio": 1.0,
|
| 170 |
+
"commit_power": 2.0,
|
| 171 |
+
"commit_freq_max_frac": 0.08,
|
| 172 |
+
"early_temp": 2.8,
|
| 173 |
+
"late_temp": 1.45,
|
| 174 |
+
"temp_end": 0.55,
|
| 175 |
+
"temp_power": 1.5,
|
| 176 |
+
"pos_extend": "repeat",
|
| 177 |
+
"fixed_first_token_id": null,
|
| 178 |
+
"fixed_first_token_text": "",
|
| 179 |
+
"fixed_first_initial_argmax": false,
|
| 180 |
+
"use_ema": false,
|
| 181 |
+
"n_samples": 128,
|
| 182 |
+
"sample_entropy": 1.1847503018710326,
|
| 183 |
+
"unique_tokens": 923,
|
| 184 |
+
"token_count": 16384,
|
| 185 |
+
"distinct_1": 0.05633544921875,
|
| 186 |
+
"distinct_2": 0.17058316929133857,
|
| 187 |
+
"top_token_mass": 0.69012451171875,
|
| 188 |
+
"texts_preview": [
|
| 189 |
+
"[CLS].............................................................................................................................. [SEP]",
|
| 190 |
+
"[CLS].............................................................................................................................. [SEP]",
|
| 191 |
+
"[CLS].............................................................................................................................. [SEP]",
|
| 192 |
+
"[CLS].............................................................................................................................. [SEP]"
|
| 193 |
+
],
|
| 194 |
+
"gen_ppl": 44.11161038355308,
|
| 195 |
+
"gen_nll": 3.7867230218057526,
|
| 196 |
+
"gen_tokens": 6521
|
| 197 |
+
}
|
| 198 |
+
]
|
| 199 |
+
[watch-dualline] 2026-05-26_03:47:04 done step_0013000
|
LTA_openwebtext_dualt/logs/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_watch/infer_lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525_step_0022000.log
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[watch-dualline] 2026-05-26_07:16:05 infer runs/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0022000.pt -> docs/lta_samples/metrics_20260525/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_dirres_c1_1024_n128/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0022000
|
| 2 |
+
[decode] max_len=128 generated=1/128
|
| 3 |
+
[decode] max_len=128 generated=2/128
|
| 4 |
+
[decode] max_len=128 generated=3/128
|
| 5 |
+
[decode] max_len=128 generated=4/128
|
| 6 |
+
[decode] max_len=128 generated=5/128
|
| 7 |
+
[decode] max_len=128 generated=6/128
|
| 8 |
+
[decode] max_len=128 generated=7/128
|
| 9 |
+
[decode] max_len=128 generated=8/128
|
| 10 |
+
[decode] max_len=128 generated=9/128
|
| 11 |
+
[decode] max_len=128 generated=10/128
|
| 12 |
+
[decode] max_len=128 generated=11/128
|
| 13 |
+
[decode] max_len=128 generated=12/128
|
| 14 |
+
[decode] max_len=128 generated=13/128
|
| 15 |
+
[decode] max_len=128 generated=14/128
|
| 16 |
+
[decode] max_len=128 generated=15/128
|
| 17 |
+
[decode] max_len=128 generated=16/128
|
| 18 |
+
[decode] max_len=128 generated=17/128
|
| 19 |
+
[decode] max_len=128 generated=18/128
|
| 20 |
+
[decode] max_len=128 generated=19/128
|
| 21 |
+
[decode] max_len=128 generated=20/128
|
| 22 |
+
[decode] max_len=128 generated=21/128
|
| 23 |
+
[decode] max_len=128 generated=22/128
|
| 24 |
+
[decode] max_len=128 generated=23/128
|
| 25 |
+
[decode] max_len=128 generated=24/128
|
| 26 |
+
[decode] max_len=128 generated=25/128
|
| 27 |
+
[decode] max_len=128 generated=26/128
|
| 28 |
+
[decode] max_len=128 generated=27/128
|
| 29 |
+
[decode] max_len=128 generated=28/128
|
| 30 |
+
[decode] max_len=128 generated=29/128
|
| 31 |
+
[decode] max_len=128 generated=30/128
|
| 32 |
+
[decode] max_len=128 generated=31/128
|
| 33 |
+
[decode] max_len=128 generated=32/128
|
| 34 |
+
[decode] max_len=128 generated=33/128
|
| 35 |
+
[decode] max_len=128 generated=34/128
|
| 36 |
+
[decode] max_len=128 generated=35/128
|
| 37 |
+
[decode] max_len=128 generated=36/128
|
| 38 |
+
[decode] max_len=128 generated=37/128
|
| 39 |
+
[decode] max_len=128 generated=38/128
|
| 40 |
+
[decode] max_len=128 generated=39/128
|
| 41 |
+
[decode] max_len=128 generated=40/128
|
| 42 |
+
[decode] max_len=128 generated=41/128
|
| 43 |
+
[decode] max_len=128 generated=42/128
|
| 44 |
+
[decode] max_len=128 generated=43/128
|
| 45 |
+
[decode] max_len=128 generated=44/128
|
| 46 |
+
[decode] max_len=128 generated=45/128
|
| 47 |
+
[decode] max_len=128 generated=46/128
|
| 48 |
+
[decode] max_len=128 generated=47/128
|
| 49 |
+
[decode] max_len=128 generated=48/128
|
| 50 |
+
[decode] max_len=128 generated=49/128
|
| 51 |
+
[decode] max_len=128 generated=50/128
|
| 52 |
+
[decode] max_len=128 generated=51/128
|
| 53 |
+
[decode] max_len=128 generated=52/128
|
| 54 |
+
[decode] max_len=128 generated=53/128
|
| 55 |
+
[decode] max_len=128 generated=54/128
|
| 56 |
+
[decode] max_len=128 generated=55/128
|
| 57 |
+
[decode] max_len=128 generated=56/128
|
| 58 |
+
[decode] max_len=128 generated=57/128
|
| 59 |
+
[decode] max_len=128 generated=58/128
|
| 60 |
+
[decode] max_len=128 generated=59/128
|
| 61 |
+
[decode] max_len=128 generated=60/128
|
| 62 |
+
[decode] max_len=128 generated=61/128
|
| 63 |
+
[decode] max_len=128 generated=62/128
|
| 64 |
+
[decode] max_len=128 generated=63/128
|
| 65 |
+
[decode] max_len=128 generated=64/128
|
| 66 |
+
[decode] max_len=128 generated=65/128
|
| 67 |
+
[decode] max_len=128 generated=66/128
|
| 68 |
+
[decode] max_len=128 generated=67/128
|
| 69 |
+
[decode] max_len=128 generated=68/128
|
| 70 |
+
[decode] max_len=128 generated=69/128
|
| 71 |
+
[decode] max_len=128 generated=70/128
|
| 72 |
+
[decode] max_len=128 generated=71/128
|
| 73 |
+
[decode] max_len=128 generated=72/128
|
| 74 |
+
[decode] max_len=128 generated=73/128
|
| 75 |
+
[decode] max_len=128 generated=74/128
|
| 76 |
+
[decode] max_len=128 generated=75/128
|
| 77 |
+
[decode] max_len=128 generated=76/128
|
| 78 |
+
[decode] max_len=128 generated=77/128
|
| 79 |
+
[decode] max_len=128 generated=78/128
|
| 80 |
+
[decode] max_len=128 generated=79/128
|
| 81 |
+
[decode] max_len=128 generated=80/128
|
| 82 |
+
[decode] max_len=128 generated=81/128
|
| 83 |
+
[decode] max_len=128 generated=82/128
|
| 84 |
+
[decode] max_len=128 generated=83/128
|
| 85 |
+
[decode] max_len=128 generated=84/128
|
| 86 |
+
[decode] max_len=128 generated=85/128
|
| 87 |
+
[decode] max_len=128 generated=86/128
|
| 88 |
+
[decode] max_len=128 generated=87/128
|
| 89 |
+
[decode] max_len=128 generated=88/128
|
| 90 |
+
[decode] max_len=128 generated=89/128
|
| 91 |
+
[decode] max_len=128 generated=90/128
|
| 92 |
+
[decode] max_len=128 generated=91/128
|
| 93 |
+
[decode] max_len=128 generated=92/128
|
| 94 |
+
[decode] max_len=128 generated=93/128
|
| 95 |
+
[decode] max_len=128 generated=94/128
|
| 96 |
+
[decode] max_len=128 generated=95/128
|
| 97 |
+
[decode] max_len=128 generated=96/128
|
| 98 |
+
[decode] max_len=128 generated=97/128
|
| 99 |
+
[decode] max_len=128 generated=98/128
|
| 100 |
+
[decode] max_len=128 generated=99/128
|
| 101 |
+
[decode] max_len=128 generated=100/128
|
| 102 |
+
[decode] max_len=128 generated=101/128
|
| 103 |
+
[decode] max_len=128 generated=102/128
|
| 104 |
+
[decode] max_len=128 generated=103/128
|
| 105 |
+
[decode] max_len=128 generated=104/128
|
| 106 |
+
[decode] max_len=128 generated=105/128
|
| 107 |
+
[decode] max_len=128 generated=106/128
|
| 108 |
+
[decode] max_len=128 generated=107/128
|
| 109 |
+
[decode] max_len=128 generated=108/128
|
| 110 |
+
[decode] max_len=128 generated=109/128
|
| 111 |
+
[decode] max_len=128 generated=110/128
|
| 112 |
+
[decode] max_len=128 generated=111/128
|
| 113 |
+
[decode] max_len=128 generated=112/128
|
| 114 |
+
[decode] max_len=128 generated=113/128
|
| 115 |
+
[decode] max_len=128 generated=114/128
|
| 116 |
+
[decode] max_len=128 generated=115/128
|
| 117 |
+
[decode] max_len=128 generated=116/128
|
| 118 |
+
[decode] max_len=128 generated=117/128
|
| 119 |
+
[decode] max_len=128 generated=118/128
|
| 120 |
+
[decode] max_len=128 generated=119/128
|
| 121 |
+
[decode] max_len=128 generated=120/128
|
| 122 |
+
[decode] max_len=128 generated=121/128
|
| 123 |
+
[decode] max_len=128 generated=122/128
|
| 124 |
+
[decode] max_len=128 generated=123/128
|
| 125 |
+
[decode] max_len=128 generated=124/128
|
| 126 |
+
[decode] max_len=128 generated=125/128
|
| 127 |
+
[decode] max_len=128 generated=126/128
|
| 128 |
+
[decode] max_len=128 generated=127/128
|
| 129 |
+
[decode] max_len=128 generated=128/128
|
| 130 |
+
[
|
| 131 |
+
{
|
| 132 |
+
"checkpoint": "runs/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0022000.pt",
|
| 133 |
+
"ckpt_step": 22000,
|
| 134 |
+
"max_len": 128,
|
| 135 |
+
"decode_rule": "dual_line_resample",
|
| 136 |
+
"support_power": 1.0,
|
| 137 |
+
"semantic_power": 1.5,
|
| 138 |
+
"steps": 128,
|
| 139 |
+
"c_min": 1.0,
|
| 140 |
+
"c_max": 1024.0,
|
| 141 |
+
"anchor_mode": "state",
|
| 142 |
+
"model_t_mode": "flow",
|
| 143 |
+
"time_schedule": "uniform",
|
| 144 |
+
"time_logit_mean": -1.5,
|
| 145 |
+
"time_logit_std": 0.8,
|
| 146 |
+
"time_power": 2.0,
|
| 147 |
+
"input_noise_scale": 0.0,
|
| 148 |
+
"input_noise_until": 1.0,
|
| 149 |
+
"input_noise_dirichlet_concentration": 1.0,
|
| 150 |
+
"endpoint_softening": "none",
|
| 151 |
+
"endpoint_soft_power": 2.0,
|
| 152 |
+
"endpoint_soft_min_conf": 0.0,
|
| 153 |
+
"endpoint_soft_max_conf": 1.0,
|
| 154 |
+
"soft_target_decode_mode": "off",
|
| 155 |
+
"soft_target_power": 1.0,
|
| 156 |
+
"soft_target_min_conf": 0.0,
|
| 157 |
+
"soft_target_max_conf": 1.0,
|
| 158 |
+
"soft_target_debias_start": 0.7,
|
| 159 |
+
"final_from": "blend",
|
| 160 |
+
"final_decode": "argmax",
|
| 161 |
+
"final_sample_temp": 1.0,
|
| 162 |
+
"final_top_k": 0,
|
| 163 |
+
"final_top_p": 1.0,
|
| 164 |
+
"commit_mode": "off",
|
| 165 |
+
"commit_conf_threshold": 0.0,
|
| 166 |
+
"commit_margin_threshold": 0.0,
|
| 167 |
+
"commit_start": 0.0,
|
| 168 |
+
"commit_min_ratio": 0.0,
|
| 169 |
+
"commit_max_ratio": 1.0,
|
| 170 |
+
"commit_power": 2.0,
|
| 171 |
+
"commit_freq_max_frac": 0.08,
|
| 172 |
+
"early_temp": 2.8,
|
| 173 |
+
"late_temp": 1.45,
|
| 174 |
+
"temp_end": 0.55,
|
| 175 |
+
"temp_power": 1.5,
|
| 176 |
+
"pos_extend": "repeat",
|
| 177 |
+
"fixed_first_token_id": null,
|
| 178 |
+
"fixed_first_token_text": "",
|
| 179 |
+
"fixed_first_initial_argmax": false,
|
| 180 |
+
"use_ema": false,
|
| 181 |
+
"n_samples": 128,
|
| 182 |
+
"sample_entropy": 2.7073984765547703,
|
| 183 |
+
"unique_tokens": 1177,
|
| 184 |
+
"token_count": 16384,
|
| 185 |
+
"distinct_1": 0.07183837890625,
|
| 186 |
+
"distinct_2": 0.28826279527559057,
|
| 187 |
+
"top_token_mass": 0.07171630859375,
|
| 188 |
+
"texts_preview": [
|
| 189 |
+
"[CLS] yadi, yahya, and the kabhallahs. yamuya, kaya zazamya, dhakaya, zakhaya, the kavana, and kaya. khan, and the dhya yadav, zaba, aya, the babus, the kajva, nikhaya, and zakhai, zala, kaya. zashi, the sama kahariya, kaya. zadi, and \" kayaya \". tajzamya, the karban, kuya. kaqii, zaharia and yabhat, [SEP]",
|
| 190 |
+
"[CLS] que que se que del que el que de la el que los los se los que que los los se. se el el el el que que el el la que las que la de la los los. los los los que, que se na se el los que que del que se que se los todo de la el elo. el la el la el que se elo de que se que la se el que el que los que que el los que los es nazar que, el de que la los, que que se san antonio de la la se que se que los la los que las que que se el [SEP]",
|
| 191 |
+
"[CLS] que se el es la la que el la una el que que se que el se que esta. el los los el que el el que que los el que los que la que los el esta, que las que que que el es que los se pur los es que que los que los el la los que que la los los los que el que los ques. que los el que ha que que el el que los, el que es que no la de que que pula el que los los. el la que la de los que que el el que es que que los la su se que que que [SEP]",
|
| 192 |
+
"[CLS]jaja. ni najajago za mianja za povatja za zaja za za zaja zaja za zajano nijaz nijaja. zazir zajajv zaja za zajaja nigoja za zaja se zajajajaja na za zaja. sejano nimodja nijala zaja za kaja ni za zaja. naja se kajago na zajaci zajaja. na zaliko zaja za zajaja. zaja zaja na zajaja sezjaja. zaja [SEP]"
|
| 193 |
+
],
|
| 194 |
+
"gen_ppl": 37.44446690105562,
|
| 195 |
+
"gen_nll": 3.622858952747418,
|
| 196 |
+
"gen_tokens": 16232
|
| 197 |
+
}
|
| 198 |
+
]
|
| 199 |
+
[watch-dualline] 2026-05-26_07:23:10 done step_0022000
|
LTA_openwebtext_dualt/logs/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_watch/infer_lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525_step_0026000.log
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[watch-dualline] 2026-05-26_08:47:03 infer runs/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0026000.pt -> docs/lta_samples/metrics_20260525/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_dirres_c1_1024_n128/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0026000
|
| 2 |
+
[decode] max_len=128 generated=1/128
|
| 3 |
+
[decode] max_len=128 generated=2/128
|
| 4 |
+
[decode] max_len=128 generated=3/128
|
| 5 |
+
[decode] max_len=128 generated=4/128
|
| 6 |
+
[decode] max_len=128 generated=5/128
|
| 7 |
+
[decode] max_len=128 generated=6/128
|
| 8 |
+
[decode] max_len=128 generated=7/128
|
| 9 |
+
[decode] max_len=128 generated=8/128
|
| 10 |
+
[decode] max_len=128 generated=9/128
|
| 11 |
+
[decode] max_len=128 generated=10/128
|
| 12 |
+
[decode] max_len=128 generated=11/128
|
| 13 |
+
[decode] max_len=128 generated=12/128
|
| 14 |
+
[decode] max_len=128 generated=13/128
|
| 15 |
+
[decode] max_len=128 generated=14/128
|
| 16 |
+
[decode] max_len=128 generated=15/128
|
| 17 |
+
[decode] max_len=128 generated=16/128
|
| 18 |
+
[decode] max_len=128 generated=17/128
|
| 19 |
+
[decode] max_len=128 generated=18/128
|
| 20 |
+
[decode] max_len=128 generated=19/128
|
| 21 |
+
[decode] max_len=128 generated=20/128
|
| 22 |
+
[decode] max_len=128 generated=21/128
|
| 23 |
+
[decode] max_len=128 generated=22/128
|
| 24 |
+
[decode] max_len=128 generated=23/128
|
| 25 |
+
[decode] max_len=128 generated=24/128
|
| 26 |
+
[decode] max_len=128 generated=25/128
|
| 27 |
+
[decode] max_len=128 generated=26/128
|
| 28 |
+
[decode] max_len=128 generated=27/128
|
| 29 |
+
[decode] max_len=128 generated=28/128
|
| 30 |
+
[decode] max_len=128 generated=29/128
|
| 31 |
+
[decode] max_len=128 generated=30/128
|
| 32 |
+
[decode] max_len=128 generated=31/128
|
| 33 |
+
[decode] max_len=128 generated=32/128
|
| 34 |
+
[decode] max_len=128 generated=33/128
|
| 35 |
+
[decode] max_len=128 generated=34/128
|
| 36 |
+
[decode] max_len=128 generated=35/128
|
| 37 |
+
[decode] max_len=128 generated=36/128
|
| 38 |
+
[decode] max_len=128 generated=37/128
|
| 39 |
+
[decode] max_len=128 generated=38/128
|
| 40 |
+
[decode] max_len=128 generated=39/128
|
| 41 |
+
[decode] max_len=128 generated=40/128
|
| 42 |
+
[decode] max_len=128 generated=41/128
|
| 43 |
+
[decode] max_len=128 generated=42/128
|
| 44 |
+
[decode] max_len=128 generated=43/128
|
| 45 |
+
[decode] max_len=128 generated=44/128
|
| 46 |
+
[decode] max_len=128 generated=45/128
|
| 47 |
+
[decode] max_len=128 generated=46/128
|
| 48 |
+
[decode] max_len=128 generated=47/128
|
| 49 |
+
[decode] max_len=128 generated=48/128
|
| 50 |
+
[decode] max_len=128 generated=49/128
|
| 51 |
+
[decode] max_len=128 generated=50/128
|
| 52 |
+
[decode] max_len=128 generated=51/128
|
| 53 |
+
[decode] max_len=128 generated=52/128
|
| 54 |
+
[decode] max_len=128 generated=53/128
|
| 55 |
+
[decode] max_len=128 generated=54/128
|
| 56 |
+
[decode] max_len=128 generated=55/128
|
| 57 |
+
[decode] max_len=128 generated=56/128
|
| 58 |
+
[decode] max_len=128 generated=57/128
|
| 59 |
+
[decode] max_len=128 generated=58/128
|
| 60 |
+
[decode] max_len=128 generated=59/128
|
| 61 |
+
[decode] max_len=128 generated=60/128
|
| 62 |
+
[decode] max_len=128 generated=61/128
|
| 63 |
+
[decode] max_len=128 generated=62/128
|
| 64 |
+
[decode] max_len=128 generated=63/128
|
| 65 |
+
[decode] max_len=128 generated=64/128
|
| 66 |
+
[decode] max_len=128 generated=65/128
|
| 67 |
+
[decode] max_len=128 generated=66/128
|
| 68 |
+
[decode] max_len=128 generated=67/128
|
| 69 |
+
[decode] max_len=128 generated=68/128
|
| 70 |
+
[decode] max_len=128 generated=69/128
|
| 71 |
+
[decode] max_len=128 generated=70/128
|
| 72 |
+
[decode] max_len=128 generated=71/128
|
| 73 |
+
[decode] max_len=128 generated=72/128
|
| 74 |
+
[decode] max_len=128 generated=73/128
|
| 75 |
+
[decode] max_len=128 generated=74/128
|
| 76 |
+
[decode] max_len=128 generated=75/128
|
| 77 |
+
[decode] max_len=128 generated=76/128
|
| 78 |
+
[decode] max_len=128 generated=77/128
|
| 79 |
+
[decode] max_len=128 generated=78/128
|
| 80 |
+
[decode] max_len=128 generated=79/128
|
| 81 |
+
[decode] max_len=128 generated=80/128
|
| 82 |
+
[decode] max_len=128 generated=81/128
|
| 83 |
+
[decode] max_len=128 generated=82/128
|
| 84 |
+
[decode] max_len=128 generated=83/128
|
| 85 |
+
[decode] max_len=128 generated=84/128
|
| 86 |
+
[decode] max_len=128 generated=85/128
|
| 87 |
+
[decode] max_len=128 generated=86/128
|
| 88 |
+
[decode] max_len=128 generated=87/128
|
| 89 |
+
[decode] max_len=128 generated=88/128
|
| 90 |
+
[decode] max_len=128 generated=89/128
|
| 91 |
+
[decode] max_len=128 generated=90/128
|
| 92 |
+
[decode] max_len=128 generated=91/128
|
| 93 |
+
[decode] max_len=128 generated=92/128
|
| 94 |
+
[decode] max_len=128 generated=93/128
|
| 95 |
+
[decode] max_len=128 generated=94/128
|
| 96 |
+
[decode] max_len=128 generated=95/128
|
| 97 |
+
[decode] max_len=128 generated=96/128
|
| 98 |
+
[decode] max_len=128 generated=97/128
|
| 99 |
+
[decode] max_len=128 generated=98/128
|
| 100 |
+
[decode] max_len=128 generated=99/128
|
| 101 |
+
[decode] max_len=128 generated=100/128
|
| 102 |
+
[decode] max_len=128 generated=101/128
|
| 103 |
+
[decode] max_len=128 generated=102/128
|
| 104 |
+
[decode] max_len=128 generated=103/128
|
| 105 |
+
[decode] max_len=128 generated=104/128
|
| 106 |
+
[decode] max_len=128 generated=105/128
|
| 107 |
+
[decode] max_len=128 generated=106/128
|
| 108 |
+
[decode] max_len=128 generated=107/128
|
| 109 |
+
[decode] max_len=128 generated=108/128
|
| 110 |
+
[decode] max_len=128 generated=109/128
|
| 111 |
+
[decode] max_len=128 generated=110/128
|
| 112 |
+
[decode] max_len=128 generated=111/128
|
| 113 |
+
[decode] max_len=128 generated=112/128
|
| 114 |
+
[decode] max_len=128 generated=113/128
|
| 115 |
+
[decode] max_len=128 generated=114/128
|
| 116 |
+
[decode] max_len=128 generated=115/128
|
| 117 |
+
[decode] max_len=128 generated=116/128
|
| 118 |
+
[decode] max_len=128 generated=117/128
|
| 119 |
+
[decode] max_len=128 generated=118/128
|
| 120 |
+
[decode] max_len=128 generated=119/128
|
| 121 |
+
[decode] max_len=128 generated=120/128
|
| 122 |
+
[decode] max_len=128 generated=121/128
|
| 123 |
+
[decode] max_len=128 generated=122/128
|
| 124 |
+
[decode] max_len=128 generated=123/128
|
| 125 |
+
[decode] max_len=128 generated=124/128
|
| 126 |
+
[decode] max_len=128 generated=125/128
|
| 127 |
+
[decode] max_len=128 generated=126/128
|
| 128 |
+
[decode] max_len=128 generated=127/128
|
| 129 |
+
[decode] max_len=128 generated=128/128
|
| 130 |
+
[
|
| 131 |
+
{
|
| 132 |
+
"checkpoint": "runs/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0026000.pt",
|
| 133 |
+
"ckpt_step": 26000,
|
| 134 |
+
"max_len": 128,
|
| 135 |
+
"decode_rule": "dual_line_resample",
|
| 136 |
+
"support_power": 1.0,
|
| 137 |
+
"semantic_power": 1.5,
|
| 138 |
+
"steps": 128,
|
| 139 |
+
"c_min": 1.0,
|
| 140 |
+
"c_max": 1024.0,
|
| 141 |
+
"anchor_mode": "state",
|
| 142 |
+
"model_t_mode": "flow",
|
| 143 |
+
"time_schedule": "uniform",
|
| 144 |
+
"time_logit_mean": -1.5,
|
| 145 |
+
"time_logit_std": 0.8,
|
| 146 |
+
"time_power": 2.0,
|
| 147 |
+
"input_noise_scale": 0.0,
|
| 148 |
+
"input_noise_until": 1.0,
|
| 149 |
+
"input_noise_dirichlet_concentration": 1.0,
|
| 150 |
+
"endpoint_softening": "none",
|
| 151 |
+
"endpoint_soft_power": 2.0,
|
| 152 |
+
"endpoint_soft_min_conf": 0.0,
|
| 153 |
+
"endpoint_soft_max_conf": 1.0,
|
| 154 |
+
"soft_target_decode_mode": "off",
|
| 155 |
+
"soft_target_power": 1.0,
|
| 156 |
+
"soft_target_min_conf": 0.0,
|
| 157 |
+
"soft_target_max_conf": 1.0,
|
| 158 |
+
"soft_target_debias_start": 0.7,
|
| 159 |
+
"final_from": "blend",
|
| 160 |
+
"final_decode": "argmax",
|
| 161 |
+
"final_sample_temp": 1.0,
|
| 162 |
+
"final_top_k": 0,
|
| 163 |
+
"final_top_p": 1.0,
|
| 164 |
+
"commit_mode": "off",
|
| 165 |
+
"commit_conf_threshold": 0.0,
|
| 166 |
+
"commit_margin_threshold": 0.0,
|
| 167 |
+
"commit_start": 0.0,
|
| 168 |
+
"commit_min_ratio": 0.0,
|
| 169 |
+
"commit_max_ratio": 1.0,
|
| 170 |
+
"commit_power": 2.0,
|
| 171 |
+
"commit_freq_max_frac": 0.08,
|
| 172 |
+
"early_temp": 2.8,
|
| 173 |
+
"late_temp": 1.45,
|
| 174 |
+
"temp_end": 0.55,
|
| 175 |
+
"temp_power": 1.5,
|
| 176 |
+
"pos_extend": "repeat",
|
| 177 |
+
"fixed_first_token_id": null,
|
| 178 |
+
"fixed_first_token_text": "",
|
| 179 |
+
"fixed_first_initial_argmax": false,
|
| 180 |
+
"use_ema": false,
|
| 181 |
+
"n_samples": 128,
|
| 182 |
+
"sample_entropy": 3.537404115524648,
|
| 183 |
+
"unique_tokens": 2023,
|
| 184 |
+
"token_count": 16384,
|
| 185 |
+
"distinct_1": 0.12347412109375,
|
| 186 |
+
"distinct_2": 0.46333661417322836,
|
| 187 |
+
"top_token_mass": 0.09222412109375,
|
| 188 |
+
"texts_preview": [
|
| 189 |
+
"[CLS] the bread, \" he says of the bread and breads. \" they make the choices, on the bread, but on them. on the bread, that bread. it, the bread, the bread for the bread. it ' s a good game, \" \" he says. \" as a bread,, you eat and cook. it ’ s a loaf of bread and has a whole bread, a tasty bread with a bread loaf. to do that, we have a recipe for it as you write it down. that ’ s a recipe... \" moreover, the bread nature of the bread that was a [SEP]",
|
| 190 |
+
"[CLS] of color. the problem is, we can get the first list of the linux directory, if the image is to the bottom. the first picture is the top of the zip. the first jpg. this is the zip, the bottom row. replace the jpg. add the zip image, select the image and the image into the image. a color on the bottom can vary by the color the full frame and the output is visible on the bottom line. this is the the link used to the desktop. however, the color in the image works and sets up the picture. for the image, the image stands as the [SEP]",
|
| 191 |
+
"[CLS] easy. and you think of the same as a person. but you also make it easier to go your own or lose you, meaning that you ' re a good person. now there ’ s a lot more to do about it if you aren ' t just looking for a key to getting a job. to find is when you ' re trying to get prepared and prepared for things. if you have the positive value of your relationship, regardless of what they get. you feel willing to lose, where you have the potential for being more interested in doing and learning more from these problems. but when the person provides a sense of passion [SEP]",
|
| 192 |
+
"[CLS] the facts, including some of the clients that jack were trying to remove and protect jack. he didn ’ t give him to jackson, who agreed to settle jack ’ s case to tell that jack could give up a. d. and the u. s. ( see : robert j., a. s. wright,, and mary smith, of the plaintiff, in the u. s. ( attorney ' s office ). [ 24 ] b. crawford, a. d. pereira, john b. m. v. wright, a. s. s. mayer, samuel gordon, section 2 - 8, of [SEP]"
|
| 193 |
+
],
|
| 194 |
+
"gen_ppl": 51.02798957428767,
|
| 195 |
+
"gen_nll": 3.932374297362463,
|
| 196 |
+
"gen_tokens": 16107
|
| 197 |
+
}
|
| 198 |
+
]
|
| 199 |
+
[watch-dualline] 2026-05-26_08:56:34 done step_0026000
|
LTA_openwebtext_dualt/logs/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_watch/infer_lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525_step_0035000.log
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[watch-dualline] 2026-05-26_12:38:57 infer runs/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0035000.pt -> docs/lta_samples/metrics_20260525/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_dirres_c1_1024_n128/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0035000
|
| 2 |
+
[decode] max_len=128 generated=1/128
|
| 3 |
+
[decode] max_len=128 generated=2/128
|
| 4 |
+
[decode] max_len=128 generated=3/128
|
| 5 |
+
[decode] max_len=128 generated=4/128
|
| 6 |
+
[decode] max_len=128 generated=5/128
|
| 7 |
+
[decode] max_len=128 generated=6/128
|
| 8 |
+
[decode] max_len=128 generated=7/128
|
| 9 |
+
[decode] max_len=128 generated=8/128
|
| 10 |
+
[decode] max_len=128 generated=9/128
|
| 11 |
+
[decode] max_len=128 generated=10/128
|
| 12 |
+
[decode] max_len=128 generated=11/128
|
| 13 |
+
[decode] max_len=128 generated=12/128
|
| 14 |
+
[decode] max_len=128 generated=13/128
|
| 15 |
+
[decode] max_len=128 generated=14/128
|
| 16 |
+
[decode] max_len=128 generated=15/128
|
| 17 |
+
[decode] max_len=128 generated=16/128
|
| 18 |
+
[decode] max_len=128 generated=17/128
|
| 19 |
+
[decode] max_len=128 generated=18/128
|
| 20 |
+
[decode] max_len=128 generated=19/128
|
| 21 |
+
[decode] max_len=128 generated=20/128
|
| 22 |
+
[decode] max_len=128 generated=21/128
|
| 23 |
+
[decode] max_len=128 generated=22/128
|
| 24 |
+
[decode] max_len=128 generated=23/128
|
| 25 |
+
[decode] max_len=128 generated=24/128
|
| 26 |
+
[decode] max_len=128 generated=25/128
|
| 27 |
+
[decode] max_len=128 generated=26/128
|
| 28 |
+
[decode] max_len=128 generated=27/128
|
| 29 |
+
[decode] max_len=128 generated=28/128
|
| 30 |
+
[decode] max_len=128 generated=29/128
|
| 31 |
+
[decode] max_len=128 generated=30/128
|
| 32 |
+
[decode] max_len=128 generated=31/128
|
| 33 |
+
[decode] max_len=128 generated=32/128
|
| 34 |
+
[decode] max_len=128 generated=33/128
|
| 35 |
+
[decode] max_len=128 generated=34/128
|
| 36 |
+
[decode] max_len=128 generated=35/128
|
| 37 |
+
[decode] max_len=128 generated=36/128
|
| 38 |
+
[decode] max_len=128 generated=37/128
|
| 39 |
+
[decode] max_len=128 generated=38/128
|
| 40 |
+
[decode] max_len=128 generated=39/128
|
| 41 |
+
[decode] max_len=128 generated=40/128
|
| 42 |
+
[decode] max_len=128 generated=41/128
|
| 43 |
+
[decode] max_len=128 generated=42/128
|
| 44 |
+
[decode] max_len=128 generated=43/128
|
| 45 |
+
[decode] max_len=128 generated=44/128
|
| 46 |
+
[decode] max_len=128 generated=45/128
|
| 47 |
+
[decode] max_len=128 generated=46/128
|
| 48 |
+
[decode] max_len=128 generated=47/128
|
| 49 |
+
[decode] max_len=128 generated=48/128
|
| 50 |
+
[decode] max_len=128 generated=49/128
|
| 51 |
+
[decode] max_len=128 generated=50/128
|
| 52 |
+
[decode] max_len=128 generated=51/128
|
| 53 |
+
[decode] max_len=128 generated=52/128
|
| 54 |
+
[decode] max_len=128 generated=53/128
|
| 55 |
+
[decode] max_len=128 generated=54/128
|
| 56 |
+
[decode] max_len=128 generated=55/128
|
| 57 |
+
[decode] max_len=128 generated=56/128
|
| 58 |
+
[decode] max_len=128 generated=57/128
|
| 59 |
+
[decode] max_len=128 generated=58/128
|
| 60 |
+
[decode] max_len=128 generated=59/128
|
| 61 |
+
[decode] max_len=128 generated=60/128
|
| 62 |
+
[decode] max_len=128 generated=61/128
|
| 63 |
+
[decode] max_len=128 generated=62/128
|
| 64 |
+
[decode] max_len=128 generated=63/128
|
| 65 |
+
[decode] max_len=128 generated=64/128
|
| 66 |
+
[decode] max_len=128 generated=65/128
|
| 67 |
+
[decode] max_len=128 generated=66/128
|
| 68 |
+
[decode] max_len=128 generated=67/128
|
| 69 |
+
[decode] max_len=128 generated=68/128
|
| 70 |
+
[decode] max_len=128 generated=69/128
|
| 71 |
+
[decode] max_len=128 generated=70/128
|
| 72 |
+
[decode] max_len=128 generated=71/128
|
| 73 |
+
[decode] max_len=128 generated=72/128
|
| 74 |
+
[decode] max_len=128 generated=73/128
|
| 75 |
+
[decode] max_len=128 generated=74/128
|
| 76 |
+
[decode] max_len=128 generated=75/128
|
| 77 |
+
[decode] max_len=128 generated=76/128
|
| 78 |
+
[decode] max_len=128 generated=77/128
|
| 79 |
+
[decode] max_len=128 generated=78/128
|
| 80 |
+
[decode] max_len=128 generated=79/128
|
| 81 |
+
[decode] max_len=128 generated=80/128
|
| 82 |
+
[decode] max_len=128 generated=81/128
|
| 83 |
+
[decode] max_len=128 generated=82/128
|
| 84 |
+
[decode] max_len=128 generated=83/128
|
| 85 |
+
[decode] max_len=128 generated=84/128
|
| 86 |
+
[decode] max_len=128 generated=85/128
|
| 87 |
+
[decode] max_len=128 generated=86/128
|
| 88 |
+
[decode] max_len=128 generated=87/128
|
| 89 |
+
[decode] max_len=128 generated=88/128
|
| 90 |
+
[decode] max_len=128 generated=89/128
|
| 91 |
+
[decode] max_len=128 generated=90/128
|
| 92 |
+
[decode] max_len=128 generated=91/128
|
| 93 |
+
[decode] max_len=128 generated=92/128
|
| 94 |
+
[decode] max_len=128 generated=93/128
|
| 95 |
+
[decode] max_len=128 generated=94/128
|
| 96 |
+
[decode] max_len=128 generated=95/128
|
| 97 |
+
[decode] max_len=128 generated=96/128
|
| 98 |
+
[decode] max_len=128 generated=97/128
|
| 99 |
+
[decode] max_len=128 generated=98/128
|
| 100 |
+
[decode] max_len=128 generated=99/128
|
| 101 |
+
[decode] max_len=128 generated=100/128
|
| 102 |
+
[decode] max_len=128 generated=101/128
|
| 103 |
+
[decode] max_len=128 generated=102/128
|
| 104 |
+
[decode] max_len=128 generated=103/128
|
| 105 |
+
[decode] max_len=128 generated=104/128
|
| 106 |
+
[decode] max_len=128 generated=105/128
|
| 107 |
+
[decode] max_len=128 generated=106/128
|
| 108 |
+
[decode] max_len=128 generated=107/128
|
| 109 |
+
[decode] max_len=128 generated=108/128
|
| 110 |
+
[decode] max_len=128 generated=109/128
|
| 111 |
+
[decode] max_len=128 generated=110/128
|
| 112 |
+
[decode] max_len=128 generated=111/128
|
| 113 |
+
[decode] max_len=128 generated=112/128
|
| 114 |
+
[decode] max_len=128 generated=113/128
|
| 115 |
+
[decode] max_len=128 generated=114/128
|
| 116 |
+
[decode] max_len=128 generated=115/128
|
| 117 |
+
[decode] max_len=128 generated=116/128
|
| 118 |
+
[decode] max_len=128 generated=117/128
|
| 119 |
+
[decode] max_len=128 generated=118/128
|
| 120 |
+
[decode] max_len=128 generated=119/128
|
| 121 |
+
[decode] max_len=128 generated=120/128
|
| 122 |
+
[decode] max_len=128 generated=121/128
|
| 123 |
+
[decode] max_len=128 generated=122/128
|
| 124 |
+
[decode] max_len=128 generated=123/128
|
| 125 |
+
[decode] max_len=128 generated=124/128
|
| 126 |
+
[decode] max_len=128 generated=125/128
|
| 127 |
+
[decode] max_len=128 generated=126/128
|
| 128 |
+
[decode] max_len=128 generated=127/128
|
| 129 |
+
[decode] max_len=128 generated=128/128
|
| 130 |
+
[
|
| 131 |
+
{
|
| 132 |
+
"checkpoint": "runs/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0035000.pt",
|
| 133 |
+
"ckpt_step": 35000,
|
| 134 |
+
"max_len": 128,
|
| 135 |
+
"decode_rule": "dual_line_resample",
|
| 136 |
+
"support_power": 1.0,
|
| 137 |
+
"semantic_power": 1.5,
|
| 138 |
+
"steps": 128,
|
| 139 |
+
"c_min": 1.0,
|
| 140 |
+
"c_max": 1024.0,
|
| 141 |
+
"anchor_mode": "state",
|
| 142 |
+
"model_t_mode": "flow",
|
| 143 |
+
"time_schedule": "uniform",
|
| 144 |
+
"time_logit_mean": -1.5,
|
| 145 |
+
"time_logit_std": 0.8,
|
| 146 |
+
"time_power": 2.0,
|
| 147 |
+
"input_noise_scale": 0.0,
|
| 148 |
+
"input_noise_until": 1.0,
|
| 149 |
+
"input_noise_dirichlet_concentration": 1.0,
|
| 150 |
+
"endpoint_softening": "none",
|
| 151 |
+
"endpoint_soft_power": 2.0,
|
| 152 |
+
"endpoint_soft_min_conf": 0.0,
|
| 153 |
+
"endpoint_soft_max_conf": 1.0,
|
| 154 |
+
"soft_target_decode_mode": "off",
|
| 155 |
+
"soft_target_power": 1.0,
|
| 156 |
+
"soft_target_min_conf": 0.0,
|
| 157 |
+
"soft_target_max_conf": 1.0,
|
| 158 |
+
"soft_target_debias_start": 0.7,
|
| 159 |
+
"final_from": "blend",
|
| 160 |
+
"final_decode": "argmax",
|
| 161 |
+
"final_sample_temp": 1.0,
|
| 162 |
+
"final_top_k": 0,
|
| 163 |
+
"final_top_p": 1.0,
|
| 164 |
+
"commit_mode": "off",
|
| 165 |
+
"commit_conf_threshold": 0.0,
|
| 166 |
+
"commit_margin_threshold": 0.0,
|
| 167 |
+
"commit_start": 0.0,
|
| 168 |
+
"commit_min_ratio": 0.0,
|
| 169 |
+
"commit_max_ratio": 1.0,
|
| 170 |
+
"commit_power": 2.0,
|
| 171 |
+
"commit_freq_max_frac": 0.08,
|
| 172 |
+
"early_temp": 2.8,
|
| 173 |
+
"late_temp": 1.45,
|
| 174 |
+
"temp_end": 0.55,
|
| 175 |
+
"temp_power": 1.5,
|
| 176 |
+
"pos_extend": "repeat",
|
| 177 |
+
"fixed_first_token_id": null,
|
| 178 |
+
"fixed_first_token_text": "",
|
| 179 |
+
"fixed_first_initial_argmax": false,
|
| 180 |
+
"use_ema": false,
|
| 181 |
+
"n_samples": 128,
|
| 182 |
+
"sample_entropy": 1.1863588940807224,
|
| 183 |
+
"unique_tokens": 755,
|
| 184 |
+
"token_count": 16384,
|
| 185 |
+
"distinct_1": 0.04608154296875,
|
| 186 |
+
"distinct_2": 0.18196358267716536,
|
| 187 |
+
"top_token_mass": 0.6907958984375,
|
| 188 |
+
"texts_preview": [
|
| 189 |
+
"” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ”",
|
| 190 |
+
"” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ”",
|
| 191 |
+
"[CLS] the league and the position of the league is a disaster. \" they also made the move to 10 - 11 - 2 ), in 2013, playing with a running ball. now you have a ball on the right side of the field. a result of what the season was like, \" said clark, who is a former defender of the colts who took chances and led the ball. on the baltimore ravens ( 7 - 4. 5 ), he was a well respected player in 17 games, and would have been better. the start of the season is a time for an nfl player, one of the best of his career. [SEP]",
|
| 192 |
+
"” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ” ”"
|
| 193 |
+
],
|
| 194 |
+
"gen_ppl": 3.890357890757668,
|
| 195 |
+
"gen_nll": 1.3585011561638274,
|
| 196 |
+
"gen_tokens": 16251
|
| 197 |
+
}
|
| 198 |
+
]
|
| 199 |
+
[watch-dualline] 2026-05-26_12:47:48 done step_0035000
|
LTA_openwebtext_dualt/logs/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_watch/infer_lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525_step_0039000.log
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[watch-dualline] 2026-05-26_14:59:12 infer runs/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0039000.pt -> docs/lta_samples/metrics_20260525/owt_bert_absrope_time4_len128_C1_to_1024_mask1_sameT_every1k_dualline_dirres_c1_1024_n128/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0039000
|
| 2 |
+
[decode] max_len=128 generated=1/128
|
| 3 |
+
[decode] max_len=128 generated=2/128
|
| 4 |
+
[decode] max_len=128 generated=3/128
|
| 5 |
+
[decode] max_len=128 generated=4/128
|
| 6 |
+
[decode] max_len=128 generated=5/128
|
| 7 |
+
[decode] max_len=128 generated=6/128
|
| 8 |
+
[decode] max_len=128 generated=7/128
|
| 9 |
+
[decode] max_len=128 generated=8/128
|
| 10 |
+
[decode] max_len=128 generated=9/128
|
| 11 |
+
[decode] max_len=128 generated=10/128
|
| 12 |
+
[decode] max_len=128 generated=11/128
|
| 13 |
+
[decode] max_len=128 generated=12/128
|
| 14 |
+
[decode] max_len=128 generated=13/128
|
| 15 |
+
[decode] max_len=128 generated=14/128
|
| 16 |
+
[decode] max_len=128 generated=15/128
|
| 17 |
+
[decode] max_len=128 generated=16/128
|
| 18 |
+
[decode] max_len=128 generated=17/128
|
| 19 |
+
[decode] max_len=128 generated=18/128
|
| 20 |
+
[decode] max_len=128 generated=19/128
|
| 21 |
+
[decode] max_len=128 generated=20/128
|
| 22 |
+
[decode] max_len=128 generated=21/128
|
| 23 |
+
[decode] max_len=128 generated=22/128
|
| 24 |
+
[decode] max_len=128 generated=23/128
|
| 25 |
+
[decode] max_len=128 generated=24/128
|
| 26 |
+
[decode] max_len=128 generated=25/128
|
| 27 |
+
[decode] max_len=128 generated=26/128
|
| 28 |
+
[decode] max_len=128 generated=27/128
|
| 29 |
+
[decode] max_len=128 generated=28/128
|
| 30 |
+
[decode] max_len=128 generated=29/128
|
| 31 |
+
[decode] max_len=128 generated=30/128
|
| 32 |
+
[decode] max_len=128 generated=31/128
|
| 33 |
+
[decode] max_len=128 generated=32/128
|
| 34 |
+
[decode] max_len=128 generated=33/128
|
| 35 |
+
[decode] max_len=128 generated=34/128
|
| 36 |
+
[decode] max_len=128 generated=35/128
|
| 37 |
+
[decode] max_len=128 generated=36/128
|
| 38 |
+
[decode] max_len=128 generated=37/128
|
| 39 |
+
[decode] max_len=128 generated=38/128
|
| 40 |
+
[decode] max_len=128 generated=39/128
|
| 41 |
+
[decode] max_len=128 generated=40/128
|
| 42 |
+
[decode] max_len=128 generated=41/128
|
| 43 |
+
[decode] max_len=128 generated=42/128
|
| 44 |
+
[decode] max_len=128 generated=43/128
|
| 45 |
+
[decode] max_len=128 generated=44/128
|
| 46 |
+
[decode] max_len=128 generated=45/128
|
| 47 |
+
[decode] max_len=128 generated=46/128
|
| 48 |
+
[decode] max_len=128 generated=47/128
|
| 49 |
+
[decode] max_len=128 generated=48/128
|
| 50 |
+
[decode] max_len=128 generated=49/128
|
| 51 |
+
[decode] max_len=128 generated=50/128
|
| 52 |
+
[decode] max_len=128 generated=51/128
|
| 53 |
+
[decode] max_len=128 generated=52/128
|
| 54 |
+
[decode] max_len=128 generated=53/128
|
| 55 |
+
[decode] max_len=128 generated=54/128
|
| 56 |
+
[decode] max_len=128 generated=55/128
|
| 57 |
+
[decode] max_len=128 generated=56/128
|
| 58 |
+
[decode] max_len=128 generated=57/128
|
| 59 |
+
[decode] max_len=128 generated=58/128
|
| 60 |
+
[decode] max_len=128 generated=59/128
|
| 61 |
+
[decode] max_len=128 generated=60/128
|
| 62 |
+
[decode] max_len=128 generated=61/128
|
| 63 |
+
[decode] max_len=128 generated=62/128
|
| 64 |
+
[decode] max_len=128 generated=63/128
|
| 65 |
+
[decode] max_len=128 generated=64/128
|
| 66 |
+
[decode] max_len=128 generated=65/128
|
| 67 |
+
[decode] max_len=128 generated=66/128
|
| 68 |
+
[decode] max_len=128 generated=67/128
|
| 69 |
+
[decode] max_len=128 generated=68/128
|
| 70 |
+
[decode] max_len=128 generated=69/128
|
| 71 |
+
[decode] max_len=128 generated=70/128
|
| 72 |
+
[decode] max_len=128 generated=71/128
|
| 73 |
+
[decode] max_len=128 generated=72/128
|
| 74 |
+
[decode] max_len=128 generated=73/128
|
| 75 |
+
[decode] max_len=128 generated=74/128
|
| 76 |
+
[decode] max_len=128 generated=75/128
|
| 77 |
+
[decode] max_len=128 generated=76/128
|
| 78 |
+
[decode] max_len=128 generated=77/128
|
| 79 |
+
[decode] max_len=128 generated=78/128
|
| 80 |
+
[decode] max_len=128 generated=79/128
|
| 81 |
+
[decode] max_len=128 generated=80/128
|
| 82 |
+
[decode] max_len=128 generated=81/128
|
| 83 |
+
[decode] max_len=128 generated=82/128
|
| 84 |
+
[decode] max_len=128 generated=83/128
|
| 85 |
+
[decode] max_len=128 generated=84/128
|
| 86 |
+
[decode] max_len=128 generated=85/128
|
| 87 |
+
[decode] max_len=128 generated=86/128
|
| 88 |
+
[decode] max_len=128 generated=87/128
|
| 89 |
+
[decode] max_len=128 generated=88/128
|
| 90 |
+
[decode] max_len=128 generated=89/128
|
| 91 |
+
[decode] max_len=128 generated=90/128
|
| 92 |
+
[decode] max_len=128 generated=91/128
|
| 93 |
+
[decode] max_len=128 generated=92/128
|
| 94 |
+
[decode] max_len=128 generated=93/128
|
| 95 |
+
[decode] max_len=128 generated=94/128
|
| 96 |
+
[decode] max_len=128 generated=95/128
|
| 97 |
+
[decode] max_len=128 generated=96/128
|
| 98 |
+
[decode] max_len=128 generated=97/128
|
| 99 |
+
[decode] max_len=128 generated=98/128
|
| 100 |
+
[decode] max_len=128 generated=99/128
|
| 101 |
+
[decode] max_len=128 generated=100/128
|
| 102 |
+
[decode] max_len=128 generated=101/128
|
| 103 |
+
[decode] max_len=128 generated=102/128
|
| 104 |
+
[decode] max_len=128 generated=103/128
|
| 105 |
+
[decode] max_len=128 generated=104/128
|
| 106 |
+
[decode] max_len=128 generated=105/128
|
| 107 |
+
[decode] max_len=128 generated=106/128
|
| 108 |
+
[decode] max_len=128 generated=107/128
|
| 109 |
+
[decode] max_len=128 generated=108/128
|
| 110 |
+
[decode] max_len=128 generated=109/128
|
| 111 |
+
[decode] max_len=128 generated=110/128
|
| 112 |
+
[decode] max_len=128 generated=111/128
|
| 113 |
+
[decode] max_len=128 generated=112/128
|
| 114 |
+
[decode] max_len=128 generated=113/128
|
| 115 |
+
[decode] max_len=128 generated=114/128
|
| 116 |
+
[decode] max_len=128 generated=115/128
|
| 117 |
+
[decode] max_len=128 generated=116/128
|
| 118 |
+
[decode] max_len=128 generated=117/128
|
| 119 |
+
[decode] max_len=128 generated=118/128
|
| 120 |
+
[decode] max_len=128 generated=119/128
|
| 121 |
+
[decode] max_len=128 generated=120/128
|
| 122 |
+
[decode] max_len=128 generated=121/128
|
| 123 |
+
[decode] max_len=128 generated=122/128
|
| 124 |
+
[decode] max_len=128 generated=123/128
|
| 125 |
+
[decode] max_len=128 generated=124/128
|
| 126 |
+
[decode] max_len=128 generated=125/128
|
| 127 |
+
[decode] max_len=128 generated=126/128
|
| 128 |
+
[decode] max_len=128 generated=127/128
|
| 129 |
+
[decode] max_len=128 generated=128/128
|
| 130 |
+
[
|
| 131 |
+
{
|
| 132 |
+
"checkpoint": "runs/lta_owt_bert_absrope_time4_dirichlet_len128_C1_to_1024_mask1_sameT_gbs512_b32_4gpu_1m_save1k_20260525/step_0039000.pt",
|
| 133 |
+
"ckpt_step": 39000,
|
| 134 |
+
"max_len": 128,
|
| 135 |
+
"decode_rule": "dual_line_resample",
|
| 136 |
+
"support_power": 1.0,
|
| 137 |
+
"semantic_power": 1.5,
|
| 138 |
+
"steps": 128,
|
| 139 |
+
"c_min": 1.0,
|
| 140 |
+
"c_max": 1024.0,
|
| 141 |
+
"anchor_mode": "state",
|
| 142 |
+
"model_t_mode": "flow",
|
| 143 |
+
"time_schedule": "uniform",
|
| 144 |
+
"time_logit_mean": -1.5,
|
| 145 |
+
"time_logit_std": 0.8,
|
| 146 |
+
"time_power": 2.0,
|
| 147 |
+
"input_noise_scale": 0.0,
|
| 148 |
+
"input_noise_until": 1.0,
|
| 149 |
+
"input_noise_dirichlet_concentration": 1.0,
|
| 150 |
+
"endpoint_softening": "none",
|
| 151 |
+
"endpoint_soft_power": 2.0,
|
| 152 |
+
"endpoint_soft_min_conf": 0.0,
|
| 153 |
+
"endpoint_soft_max_conf": 1.0,
|
| 154 |
+
"soft_target_decode_mode": "off",
|
| 155 |
+
"soft_target_power": 1.0,
|
| 156 |
+
"soft_target_min_conf": 0.0,
|
| 157 |
+
"soft_target_max_conf": 1.0,
|
| 158 |
+
"soft_target_debias_start": 0.7,
|
| 159 |
+
"final_from": "blend",
|
| 160 |
+
"final_decode": "argmax",
|
| 161 |
+
"final_sample_temp": 1.0,
|
| 162 |
+
"final_top_k": 0,
|
| 163 |
+
"final_top_p": 1.0,
|
| 164 |
+
"commit_mode": "off",
|
| 165 |
+
"commit_conf_threshold": 0.0,
|
| 166 |
+
"commit_margin_threshold": 0.0,
|
| 167 |
+
"commit_start": 0.0,
|
| 168 |
+
"commit_min_ratio": 0.0,
|
| 169 |
+
"commit_max_ratio": 1.0,
|
| 170 |
+
"commit_power": 2.0,
|
| 171 |
+
"commit_freq_max_frac": 0.08,
|
| 172 |
+
"early_temp": 2.8,
|
| 173 |
+
"late_temp": 1.45,
|
| 174 |
+
"temp_end": 0.55,
|
| 175 |
+
"temp_power": 1.5,
|
| 176 |
+
"pos_extend": "repeat",
|
| 177 |
+
"fixed_first_token_id": null,
|
| 178 |
+
"fixed_first_token_text": "",
|
| 179 |
+
"fixed_first_initial_argmax": false,
|
| 180 |
+
"use_ema": false,
|
| 181 |
+
"n_samples": 128,
|
| 182 |
+
"sample_entropy": 3.267329044131509,
|
| 183 |
+
"unique_tokens": 980,
|
| 184 |
+
"token_count": 16384,
|
| 185 |
+
"distinct_1": 0.059814453125,
|
| 186 |
+
"distinct_2": 0.33833661417322836,
|
| 187 |
+
"top_token_mass": 0.07867431640625,
|
| 188 |
+
"texts_preview": [
|
| 189 |
+
"[CLS] \" yeah, and i can understand the word \"... \" i think it ' s funny. \" you ' ll be fine, but i think that sometimes it has been the wrong time. i don ' t think it ' s really funny. \" \" \" i think! \" down here. \" \" you ' re sorry. \" but no! \" \" it ' s really bad \" by a t. it ' s not bad \", i didn ' t have a clue. \" no, ever. \" \" was bad. \" \"... \" \" love the song. \" and i mean i ' [SEP]",
|
| 190 |
+
"[CLS] to give you an additional variable name. you also have a method using the original expression definition to implement the code - code code. you can define the code and produces various functions. the common function of the compiler is a function : a code : a code ( for example ), the code code : a code ( 0 - 0 ) function : a code executes the source code is a function that defines a code and produces the code defined as an output function. this code is ( code. ). you can add code - code code - code code and the code ( code. ( code ) which you need to do is [SEP]",
|
| 191 |
+
"[CLS] ( p. c ) ) } this is a reference. ( c ). par. crp ( ) b ) ) ( c = ( eval ) t ). obc. ( f ( ) const ) ) ( t = ( t ) : ( obc ( f ) ). par ( ) ) ) ) ; f ( ( c. par ( ). j ) ( ( ( c. par. j ) ) ) ) ( c ( l ) ( c. par ) t. par. t ) ) ) ) ( c. par ( ) b ) ) ( function with a single expression code [SEP]",
|
| 192 |
+
"[CLS]gou. nizgo i tz i kojajaci i nejejakajezjeje na kovis nao kojaz poz kari koj kograjacivcija i moj nazgoz nizgo, kozjajez najaje komv konja nidz kojagojazika. mezja nijedzz kocjego i kozcijacija, je kozcjaja i negodim. bzv na koja nez izvvjaz [SEP]"
|
| 193 |
+
],
|
| 194 |
+
"gen_ppl": 42.27817697612392,
|
| 195 |
+
"gen_nll": 3.744271042194571,
|
| 196 |
+
"gen_tokens": 16131
|
| 197 |
+
}
|
| 198 |
+
]
|
| 199 |
+
[watch-dualline] 2026-05-26_15:08:49 done step_0039000
|
LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/fsspec/implementations/dirfs.py
ADDED
|
@@ -0,0 +1,404 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from .. import filesystem
|
| 2 |
+
from ..asyn import AsyncFileSystem
|
| 3 |
+
from .chained import ChainedFileSystem
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
class DirFileSystem(AsyncFileSystem, ChainedFileSystem):
|
| 7 |
+
"""Directory prefix filesystem
|
| 8 |
+
|
| 9 |
+
The DirFileSystem is a filesystem-wrapper. It assumes every path it is dealing with
|
| 10 |
+
is relative to the `path`. After performing the necessary paths operation it
|
| 11 |
+
delegates everything to the wrapped filesystem.
|
| 12 |
+
"""
|
| 13 |
+
|
| 14 |
+
protocol = "dir"
|
| 15 |
+
|
| 16 |
+
def __init__(
|
| 17 |
+
self,
|
| 18 |
+
path=None,
|
| 19 |
+
fs=None,
|
| 20 |
+
fo=None,
|
| 21 |
+
target_protocol=None,
|
| 22 |
+
target_options=None,
|
| 23 |
+
**storage_options,
|
| 24 |
+
):
|
| 25 |
+
"""
|
| 26 |
+
Parameters
|
| 27 |
+
----------
|
| 28 |
+
path: str
|
| 29 |
+
Path to the directory.
|
| 30 |
+
fs: AbstractFileSystem
|
| 31 |
+
An instantiated filesystem to wrap.
|
| 32 |
+
target_protocol, target_options:
|
| 33 |
+
if fs is none, construct it from these
|
| 34 |
+
fo: str
|
| 35 |
+
Alternate for path; do not provide both
|
| 36 |
+
"""
|
| 37 |
+
super().__init__(**storage_options)
|
| 38 |
+
if fs is None:
|
| 39 |
+
fs = filesystem(protocol=target_protocol, **(target_options or {}))
|
| 40 |
+
path = path or fo
|
| 41 |
+
|
| 42 |
+
if self.asynchronous and not fs.async_impl:
|
| 43 |
+
raise ValueError("can't use asynchronous with non-async fs")
|
| 44 |
+
|
| 45 |
+
if fs.async_impl and self.asynchronous != fs.asynchronous:
|
| 46 |
+
raise ValueError("both dirfs and fs should be in the same sync/async mode")
|
| 47 |
+
|
| 48 |
+
self.path = fs._strip_protocol(path)
|
| 49 |
+
self.fs = fs
|
| 50 |
+
|
| 51 |
+
def _join(self, path):
|
| 52 |
+
if isinstance(path, str):
|
| 53 |
+
if not self.path:
|
| 54 |
+
return path
|
| 55 |
+
if not path:
|
| 56 |
+
return self.path
|
| 57 |
+
return self.fs.sep.join((self.path, self._strip_protocol(path)))
|
| 58 |
+
if isinstance(path, dict):
|
| 59 |
+
return {self._join(_path): value for _path, value in path.items()}
|
| 60 |
+
return [self._join(_path) for _path in path]
|
| 61 |
+
|
| 62 |
+
def _relpath(self, path):
|
| 63 |
+
if isinstance(path, str):
|
| 64 |
+
if not self.path:
|
| 65 |
+
return path
|
| 66 |
+
# We need to account for S3FileSystem returning paths that do not
|
| 67 |
+
# start with a '/'
|
| 68 |
+
if path == self.path or (
|
| 69 |
+
self.path.startswith(self.fs.sep) and path == self.path[1:]
|
| 70 |
+
):
|
| 71 |
+
return ""
|
| 72 |
+
prefix = self.path + self.fs.sep
|
| 73 |
+
if self.path.startswith(self.fs.sep) and not path.startswith(self.fs.sep):
|
| 74 |
+
prefix = prefix[1:]
|
| 75 |
+
assert path.startswith(prefix)
|
| 76 |
+
return path[len(prefix) :]
|
| 77 |
+
return [self._relpath(_path) for _path in path]
|
| 78 |
+
|
| 79 |
+
# Wrappers below
|
| 80 |
+
|
| 81 |
+
@property
|
| 82 |
+
def sep(self):
|
| 83 |
+
return self.fs.sep
|
| 84 |
+
|
| 85 |
+
async def set_session(self, *args, **kwargs):
|
| 86 |
+
return await self.fs.set_session(*args, **kwargs)
|
| 87 |
+
|
| 88 |
+
async def _rm_file(self, path, **kwargs):
|
| 89 |
+
return await self.fs._rm_file(self._join(path), **kwargs)
|
| 90 |
+
|
| 91 |
+
def rm_file(self, path, **kwargs):
|
| 92 |
+
return self.fs.rm_file(self._join(path), **kwargs)
|
| 93 |
+
|
| 94 |
+
async def _rm(self, path, *args, **kwargs):
|
| 95 |
+
return await self.fs._rm(self._join(path), *args, **kwargs)
|
| 96 |
+
|
| 97 |
+
def rm(self, path, *args, **kwargs):
|
| 98 |
+
return self.fs.rm(self._join(path), *args, **kwargs)
|
| 99 |
+
|
| 100 |
+
def delete(self, path, recursive=False, maxdepth=None):
|
| 101 |
+
return self.fs.delete(self._join(path), recursive=recursive, maxdepth=maxdepth)
|
| 102 |
+
|
| 103 |
+
async def _cp_file(self, path1, path2, **kwargs):
|
| 104 |
+
return await self.fs._cp_file(self._join(path1), self._join(path2), **kwargs)
|
| 105 |
+
|
| 106 |
+
def cp_file(self, path1, path2, **kwargs):
|
| 107 |
+
return self.fs.cp_file(self._join(path1), self._join(path2), **kwargs)
|
| 108 |
+
|
| 109 |
+
async def _copy(
|
| 110 |
+
self,
|
| 111 |
+
path1,
|
| 112 |
+
path2,
|
| 113 |
+
*args,
|
| 114 |
+
**kwargs,
|
| 115 |
+
):
|
| 116 |
+
return await self.fs._copy(
|
| 117 |
+
self._join(path1),
|
| 118 |
+
self._join(path2),
|
| 119 |
+
*args,
|
| 120 |
+
**kwargs,
|
| 121 |
+
)
|
| 122 |
+
|
| 123 |
+
def copy(self, path1, path2, *args, **kwargs):
|
| 124 |
+
return self.fs.copy(
|
| 125 |
+
self._join(path1),
|
| 126 |
+
self._join(path2),
|
| 127 |
+
*args,
|
| 128 |
+
**kwargs,
|
| 129 |
+
)
|
| 130 |
+
|
| 131 |
+
async def _pipe(self, path, *args, **kwargs):
|
| 132 |
+
return await self.fs._pipe(self._join(path), *args, **kwargs)
|
| 133 |
+
|
| 134 |
+
def pipe(self, path, *args, **kwargs):
|
| 135 |
+
return self.fs.pipe(self._join(path), *args, **kwargs)
|
| 136 |
+
|
| 137 |
+
async def _pipe_file(self, path, *args, **kwargs):
|
| 138 |
+
return await self.fs._pipe_file(self._join(path), *args, **kwargs)
|
| 139 |
+
|
| 140 |
+
def pipe_file(self, path, *args, **kwargs):
|
| 141 |
+
return self.fs.pipe_file(self._join(path), *args, **kwargs)
|
| 142 |
+
|
| 143 |
+
def write_text(
|
| 144 |
+
self, path, value, encoding=None, errors=None, newline=None, **kwargs
|
| 145 |
+
):
|
| 146 |
+
return self.fs.write_text(
|
| 147 |
+
self._join(path),
|
| 148 |
+
value,
|
| 149 |
+
encoding=encoding,
|
| 150 |
+
errors=errors,
|
| 151 |
+
newline=newline,
|
| 152 |
+
**kwargs,
|
| 153 |
+
)
|
| 154 |
+
|
| 155 |
+
async def _cat_file(self, path, *args, **kwargs):
|
| 156 |
+
return await self.fs._cat_file(self._join(path), *args, **kwargs)
|
| 157 |
+
|
| 158 |
+
def cat_file(self, path, *args, **kwargs):
|
| 159 |
+
return self.fs.cat_file(self._join(path), *args, **kwargs)
|
| 160 |
+
|
| 161 |
+
async def _cat(self, path, *args, **kwargs):
|
| 162 |
+
ret = await self.fs._cat(
|
| 163 |
+
self._join(path),
|
| 164 |
+
*args,
|
| 165 |
+
**kwargs,
|
| 166 |
+
)
|
| 167 |
+
|
| 168 |
+
if isinstance(ret, dict):
|
| 169 |
+
return {self._relpath(key): value for key, value in ret.items()}
|
| 170 |
+
|
| 171 |
+
return ret
|
| 172 |
+
|
| 173 |
+
def cat(self, path, *args, **kwargs):
|
| 174 |
+
ret = self.fs.cat(
|
| 175 |
+
self._join(path),
|
| 176 |
+
*args,
|
| 177 |
+
**kwargs,
|
| 178 |
+
)
|
| 179 |
+
|
| 180 |
+
if isinstance(ret, dict):
|
| 181 |
+
return {self._relpath(key): value for key, value in ret.items()}
|
| 182 |
+
|
| 183 |
+
return ret
|
| 184 |
+
|
| 185 |
+
async def _put_file(self, lpath, rpath, **kwargs):
|
| 186 |
+
return await self.fs._put_file(lpath, self._join(rpath), **kwargs)
|
| 187 |
+
|
| 188 |
+
def put_file(self, lpath, rpath, **kwargs):
|
| 189 |
+
return self.fs.put_file(lpath, self._join(rpath), **kwargs)
|
| 190 |
+
|
| 191 |
+
async def _put(
|
| 192 |
+
self,
|
| 193 |
+
lpath,
|
| 194 |
+
rpath,
|
| 195 |
+
*args,
|
| 196 |
+
**kwargs,
|
| 197 |
+
):
|
| 198 |
+
return await self.fs._put(
|
| 199 |
+
lpath,
|
| 200 |
+
self._join(rpath),
|
| 201 |
+
*args,
|
| 202 |
+
**kwargs,
|
| 203 |
+
)
|
| 204 |
+
|
| 205 |
+
def put(self, lpath, rpath, *args, **kwargs):
|
| 206 |
+
return self.fs.put(
|
| 207 |
+
lpath,
|
| 208 |
+
self._join(rpath),
|
| 209 |
+
*args,
|
| 210 |
+
**kwargs,
|
| 211 |
+
)
|
| 212 |
+
|
| 213 |
+
async def _get_file(self, rpath, lpath, **kwargs):
|
| 214 |
+
return await self.fs._get_file(self._join(rpath), lpath, **kwargs)
|
| 215 |
+
|
| 216 |
+
def get_file(self, rpath, lpath, **kwargs):
|
| 217 |
+
return self.fs.get_file(self._join(rpath), lpath, **kwargs)
|
| 218 |
+
|
| 219 |
+
async def _get(self, rpath, *args, **kwargs):
|
| 220 |
+
return await self.fs._get(self._join(rpath), *args, **kwargs)
|
| 221 |
+
|
| 222 |
+
def get(self, rpath, *args, **kwargs):
|
| 223 |
+
return self.fs.get(self._join(rpath), *args, **kwargs)
|
| 224 |
+
|
| 225 |
+
async def _isfile(self, path):
|
| 226 |
+
return await self.fs._isfile(self._join(path))
|
| 227 |
+
|
| 228 |
+
def isfile(self, path):
|
| 229 |
+
return self.fs.isfile(self._join(path))
|
| 230 |
+
|
| 231 |
+
async def _isdir(self, path):
|
| 232 |
+
return await self.fs._isdir(self._join(path))
|
| 233 |
+
|
| 234 |
+
def isdir(self, path):
|
| 235 |
+
return self.fs.isdir(self._join(path))
|
| 236 |
+
|
| 237 |
+
async def _size(self, path):
|
| 238 |
+
return await self.fs._size(self._join(path))
|
| 239 |
+
|
| 240 |
+
def size(self, path):
|
| 241 |
+
return self.fs.size(self._join(path))
|
| 242 |
+
|
| 243 |
+
async def _exists(self, path):
|
| 244 |
+
return await self.fs._exists(self._join(path))
|
| 245 |
+
|
| 246 |
+
def exists(self, path):
|
| 247 |
+
return self.fs.exists(self._join(path))
|
| 248 |
+
|
| 249 |
+
async def _info(self, path, **kwargs):
|
| 250 |
+
info = await self.fs._info(self._join(path), **kwargs)
|
| 251 |
+
info = info.copy()
|
| 252 |
+
info["name"] = self._relpath(info["name"])
|
| 253 |
+
return info
|
| 254 |
+
|
| 255 |
+
def info(self, path, **kwargs):
|
| 256 |
+
info = self.fs.info(self._join(path), **kwargs)
|
| 257 |
+
info = info.copy()
|
| 258 |
+
info["name"] = self._relpath(info["name"])
|
| 259 |
+
return info
|
| 260 |
+
|
| 261 |
+
async def _ls(self, path, detail=True, **kwargs):
|
| 262 |
+
ret = (await self.fs._ls(self._join(path), detail=detail, **kwargs)).copy()
|
| 263 |
+
if detail:
|
| 264 |
+
out = []
|
| 265 |
+
for entry in ret:
|
| 266 |
+
entry = entry.copy()
|
| 267 |
+
entry["name"] = self._relpath(entry["name"])
|
| 268 |
+
out.append(entry)
|
| 269 |
+
return out
|
| 270 |
+
|
| 271 |
+
return self._relpath(ret)
|
| 272 |
+
|
| 273 |
+
def ls(self, path, detail=True, **kwargs):
|
| 274 |
+
ret = self.fs.ls(self._join(path), detail=detail, **kwargs).copy()
|
| 275 |
+
if detail:
|
| 276 |
+
out = []
|
| 277 |
+
for entry in ret:
|
| 278 |
+
entry = entry.copy()
|
| 279 |
+
entry["name"] = self._relpath(entry["name"])
|
| 280 |
+
out.append(entry)
|
| 281 |
+
return out
|
| 282 |
+
|
| 283 |
+
return self._relpath(ret)
|
| 284 |
+
|
| 285 |
+
async def _walk(self, path, *args, **kwargs):
|
| 286 |
+
async for root, dirs, files in self.fs._walk(self._join(path), *args, **kwargs):
|
| 287 |
+
yield self._relpath(root), dirs, files
|
| 288 |
+
|
| 289 |
+
def walk(self, path, *args, **kwargs):
|
| 290 |
+
for root, dirs, files in self.fs.walk(self._join(path), *args, **kwargs):
|
| 291 |
+
yield self._relpath(root), dirs, files
|
| 292 |
+
|
| 293 |
+
async def _glob(self, path, **kwargs):
|
| 294 |
+
detail = kwargs.get("detail", False)
|
| 295 |
+
ret = await self.fs._glob(self._join(path), **kwargs)
|
| 296 |
+
if detail:
|
| 297 |
+
return {self._relpath(path): info for path, info in ret.items()}
|
| 298 |
+
return self._relpath(ret)
|
| 299 |
+
|
| 300 |
+
def glob(self, path, **kwargs):
|
| 301 |
+
detail = kwargs.get("detail", False)
|
| 302 |
+
ret = self.fs.glob(self._join(path), **kwargs)
|
| 303 |
+
if detail:
|
| 304 |
+
return {self._relpath(path): info for path, info in ret.items()}
|
| 305 |
+
return self._relpath(ret)
|
| 306 |
+
|
| 307 |
+
async def _du(self, path, *args, **kwargs):
|
| 308 |
+
total = kwargs.get("total", True)
|
| 309 |
+
ret = await self.fs._du(self._join(path), *args, **kwargs)
|
| 310 |
+
if total:
|
| 311 |
+
return ret
|
| 312 |
+
|
| 313 |
+
return {self._relpath(path): size for path, size in ret.items()}
|
| 314 |
+
|
| 315 |
+
def du(self, path, *args, **kwargs):
|
| 316 |
+
total = kwargs.get("total", True)
|
| 317 |
+
ret = self.fs.du(self._join(path), *args, **kwargs)
|
| 318 |
+
if total:
|
| 319 |
+
return ret
|
| 320 |
+
|
| 321 |
+
return {self._relpath(path): size for path, size in ret.items()}
|
| 322 |
+
|
| 323 |
+
async def _find(self, path, *args, **kwargs):
|
| 324 |
+
detail = kwargs.get("detail", False)
|
| 325 |
+
ret = await self.fs._find(self._join(path), *args, **kwargs)
|
| 326 |
+
if detail:
|
| 327 |
+
return {self._relpath(path): info for path, info in ret.items()}
|
| 328 |
+
return self._relpath(ret)
|
| 329 |
+
|
| 330 |
+
def find(self, path, *args, **kwargs):
|
| 331 |
+
detail = kwargs.get("detail", False)
|
| 332 |
+
ret = self.fs.find(self._join(path), *args, **kwargs)
|
| 333 |
+
if detail:
|
| 334 |
+
return {self._relpath(path): info for path, info in ret.items()}
|
| 335 |
+
return self._relpath(ret)
|
| 336 |
+
|
| 337 |
+
async def _expand_path(self, path, *args, **kwargs):
|
| 338 |
+
return self._relpath(
|
| 339 |
+
await self.fs._expand_path(self._join(path), *args, **kwargs)
|
| 340 |
+
)
|
| 341 |
+
|
| 342 |
+
def expand_path(self, path, *args, **kwargs):
|
| 343 |
+
return self._relpath(self.fs.expand_path(self._join(path), *args, **kwargs))
|
| 344 |
+
|
| 345 |
+
async def _mkdir(self, path, *args, **kwargs):
|
| 346 |
+
return await self.fs._mkdir(self._join(path), *args, **kwargs)
|
| 347 |
+
|
| 348 |
+
def mkdir(self, path, *args, **kwargs):
|
| 349 |
+
return self.fs.mkdir(self._join(path), *args, **kwargs)
|
| 350 |
+
|
| 351 |
+
async def _makedirs(self, path, *args, **kwargs):
|
| 352 |
+
return await self.fs._makedirs(self._join(path), *args, **kwargs)
|
| 353 |
+
|
| 354 |
+
def makedirs(self, path, *args, **kwargs):
|
| 355 |
+
return self.fs.makedirs(self._join(path), *args, **kwargs)
|
| 356 |
+
|
| 357 |
+
def rmdir(self, path):
|
| 358 |
+
return self.fs.rmdir(self._join(path))
|
| 359 |
+
|
| 360 |
+
def mv(self, path1, path2, **kwargs):
|
| 361 |
+
return self.fs.mv(
|
| 362 |
+
self._join(path1),
|
| 363 |
+
self._join(path2),
|
| 364 |
+
**kwargs,
|
| 365 |
+
)
|
| 366 |
+
|
| 367 |
+
def touch(self, path, **kwargs):
|
| 368 |
+
return self.fs.touch(self._join(path), **kwargs)
|
| 369 |
+
|
| 370 |
+
def created(self, path):
|
| 371 |
+
return self.fs.created(self._join(path))
|
| 372 |
+
|
| 373 |
+
def modified(self, path):
|
| 374 |
+
return self.fs.modified(self._join(path))
|
| 375 |
+
|
| 376 |
+
def sign(self, path, *args, **kwargs):
|
| 377 |
+
return self.fs.sign(self._join(path), *args, **kwargs)
|
| 378 |
+
|
| 379 |
+
def __repr__(self):
|
| 380 |
+
return f"{self.__class__.__qualname__}(path='{self.path}', fs={self.fs})"
|
| 381 |
+
|
| 382 |
+
def open(
|
| 383 |
+
self,
|
| 384 |
+
path,
|
| 385 |
+
*args,
|
| 386 |
+
**kwargs,
|
| 387 |
+
):
|
| 388 |
+
return self.fs.open(
|
| 389 |
+
self._join(path),
|
| 390 |
+
*args,
|
| 391 |
+
**kwargs,
|
| 392 |
+
)
|
| 393 |
+
|
| 394 |
+
async def open_async(
|
| 395 |
+
self,
|
| 396 |
+
path,
|
| 397 |
+
*args,
|
| 398 |
+
**kwargs,
|
| 399 |
+
):
|
| 400 |
+
return await self.fs.open_async(
|
| 401 |
+
self._join(path),
|
| 402 |
+
*args,
|
| 403 |
+
**kwargs,
|
| 404 |
+
)
|
LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/fsspec/implementations/git.py
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
|
| 3 |
+
import pygit2
|
| 4 |
+
|
| 5 |
+
from fsspec.spec import AbstractFileSystem
|
| 6 |
+
|
| 7 |
+
from .memory import MemoryFile
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
class GitFileSystem(AbstractFileSystem):
|
| 11 |
+
"""Browse the files of a local git repo at any hash/tag/branch
|
| 12 |
+
|
| 13 |
+
(experimental backend)
|
| 14 |
+
"""
|
| 15 |
+
|
| 16 |
+
root_marker = ""
|
| 17 |
+
cachable = True
|
| 18 |
+
|
| 19 |
+
def __init__(self, path=None, fo=None, ref=None, **kwargs):
|
| 20 |
+
"""
|
| 21 |
+
|
| 22 |
+
Parameters
|
| 23 |
+
----------
|
| 24 |
+
path: str (optional)
|
| 25 |
+
Local location of the repo (uses current directory if not given).
|
| 26 |
+
May be deprecated in favour of ``fo``. When used with a higher
|
| 27 |
+
level function such as fsspec.open(), may be of the form
|
| 28 |
+
"git://[path-to-repo[:]][ref@]path/to/file" (but the actual
|
| 29 |
+
file path should not contain "@" or ":").
|
| 30 |
+
fo: str (optional)
|
| 31 |
+
Same as ``path``, but passed as part of a chained URL. This one
|
| 32 |
+
takes precedence if both are given.
|
| 33 |
+
ref: str (optional)
|
| 34 |
+
Reference to work with, could be a hash, tag or branch name. Defaults
|
| 35 |
+
to current working tree. Note that ``ls`` and ``open`` also take hash,
|
| 36 |
+
so this becomes the default for those operations
|
| 37 |
+
kwargs
|
| 38 |
+
"""
|
| 39 |
+
super().__init__(**kwargs)
|
| 40 |
+
self.repo = pygit2.Repository(fo or path or os.getcwd())
|
| 41 |
+
self.ref = ref or "master"
|
| 42 |
+
|
| 43 |
+
@classmethod
|
| 44 |
+
def _strip_protocol(cls, path):
|
| 45 |
+
path = super()._strip_protocol(path).lstrip("/")
|
| 46 |
+
if ":" in path:
|
| 47 |
+
path = path.split(":", 1)[1]
|
| 48 |
+
if "@" in path:
|
| 49 |
+
path = path.split("@", 1)[1]
|
| 50 |
+
return path.lstrip("/")
|
| 51 |
+
|
| 52 |
+
def _path_to_object(self, path, ref):
|
| 53 |
+
comm, ref = self.repo.resolve_refish(ref or self.ref)
|
| 54 |
+
parts = path.split("/")
|
| 55 |
+
tree = comm.tree
|
| 56 |
+
for part in parts:
|
| 57 |
+
if part and isinstance(tree, pygit2.Tree):
|
| 58 |
+
if part not in tree:
|
| 59 |
+
raise FileNotFoundError(path)
|
| 60 |
+
tree = tree[part]
|
| 61 |
+
return tree
|
| 62 |
+
|
| 63 |
+
@staticmethod
|
| 64 |
+
def _get_kwargs_from_urls(path):
|
| 65 |
+
path = path.removeprefix("git://")
|
| 66 |
+
out = {}
|
| 67 |
+
if ":" in path:
|
| 68 |
+
out["path"], path = path.split(":", 1)
|
| 69 |
+
if "@" in path:
|
| 70 |
+
out["ref"], path = path.split("@", 1)
|
| 71 |
+
return out
|
| 72 |
+
|
| 73 |
+
@staticmethod
|
| 74 |
+
def _object_to_info(obj, path=None):
|
| 75 |
+
# obj.name and obj.filemode are None for the root tree!
|
| 76 |
+
is_dir = isinstance(obj, pygit2.Tree)
|
| 77 |
+
return {
|
| 78 |
+
"type": "directory" if is_dir else "file",
|
| 79 |
+
"name": (
|
| 80 |
+
"/".join([path, obj.name or ""]).lstrip("/") if path else obj.name
|
| 81 |
+
),
|
| 82 |
+
"hex": str(obj.id),
|
| 83 |
+
"mode": "100644" if obj.filemode is None else f"{obj.filemode:o}",
|
| 84 |
+
"size": 0 if is_dir else obj.size,
|
| 85 |
+
}
|
| 86 |
+
|
| 87 |
+
def ls(self, path, detail=True, ref=None, **kwargs):
|
| 88 |
+
tree = self._path_to_object(self._strip_protocol(path), ref)
|
| 89 |
+
return [
|
| 90 |
+
GitFileSystem._object_to_info(obj, path)
|
| 91 |
+
if detail
|
| 92 |
+
else GitFileSystem._object_to_info(obj, path)["name"]
|
| 93 |
+
for obj in (tree if isinstance(tree, pygit2.Tree) else [tree])
|
| 94 |
+
]
|
| 95 |
+
|
| 96 |
+
def info(self, path, ref=None, **kwargs):
|
| 97 |
+
tree = self._path_to_object(self._strip_protocol(path), ref)
|
| 98 |
+
return GitFileSystem._object_to_info(tree, path)
|
| 99 |
+
|
| 100 |
+
def ukey(self, path, ref=None):
|
| 101 |
+
return self.info(path, ref=ref)["hex"]
|
| 102 |
+
|
| 103 |
+
def _open(
|
| 104 |
+
self,
|
| 105 |
+
path,
|
| 106 |
+
mode="rb",
|
| 107 |
+
block_size=None,
|
| 108 |
+
autocommit=True,
|
| 109 |
+
cache_options=None,
|
| 110 |
+
ref=None,
|
| 111 |
+
**kwargs,
|
| 112 |
+
):
|
| 113 |
+
obj = self._path_to_object(path, ref or self.ref)
|
| 114 |
+
return MemoryFile(data=obj.data)
|
LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/fsspec/implementations/webhdfs.py
ADDED
|
@@ -0,0 +1,503 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# https://hadoop.apache.org/docs/r1.0.4/webhdfs.html
|
| 2 |
+
|
| 3 |
+
import logging
|
| 4 |
+
import os
|
| 5 |
+
import secrets
|
| 6 |
+
import shutil
|
| 7 |
+
import tempfile
|
| 8 |
+
import uuid
|
| 9 |
+
from contextlib import suppress
|
| 10 |
+
from datetime import datetime
|
| 11 |
+
from urllib.parse import quote
|
| 12 |
+
|
| 13 |
+
import requests
|
| 14 |
+
|
| 15 |
+
from ..spec import AbstractBufferedFile, AbstractFileSystem
|
| 16 |
+
from ..utils import infer_storage_options, tokenize
|
| 17 |
+
|
| 18 |
+
logger = logging.getLogger("webhdfs")
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
class WebHDFS(AbstractFileSystem):
|
| 22 |
+
"""
|
| 23 |
+
Interface to HDFS over HTTP using the WebHDFS API. Supports also HttpFS gateways.
|
| 24 |
+
|
| 25 |
+
Four auth mechanisms are supported:
|
| 26 |
+
|
| 27 |
+
insecure: no auth is done, and the user is assumed to be whoever they
|
| 28 |
+
say they are (parameter ``user``), or a predefined value such as
|
| 29 |
+
"dr.who" if not given
|
| 30 |
+
spnego: when kerberos authentication is enabled, auth is negotiated by
|
| 31 |
+
requests_kerberos https://github.com/requests/requests-kerberos .
|
| 32 |
+
This establishes a session based on existing kinit login and/or
|
| 33 |
+
specified principal/password; parameters are passed with ``kerb_kwargs``
|
| 34 |
+
token: uses an existing Hadoop delegation token from another secured
|
| 35 |
+
service. Indeed, this client can also generate such tokens when
|
| 36 |
+
not insecure. Note that tokens expire, but can be renewed (by a
|
| 37 |
+
previously specified user) and may allow for proxying.
|
| 38 |
+
basic-auth: used when both parameter ``user`` and parameter ``password``
|
| 39 |
+
are provided.
|
| 40 |
+
|
| 41 |
+
"""
|
| 42 |
+
|
| 43 |
+
tempdir = str(tempfile.gettempdir())
|
| 44 |
+
protocol = "webhdfs", "webHDFS"
|
| 45 |
+
|
| 46 |
+
def __init__(
|
| 47 |
+
self,
|
| 48 |
+
host,
|
| 49 |
+
port=50070,
|
| 50 |
+
kerberos=False,
|
| 51 |
+
token=None,
|
| 52 |
+
user=None,
|
| 53 |
+
password=None,
|
| 54 |
+
proxy_to=None,
|
| 55 |
+
kerb_kwargs=None,
|
| 56 |
+
data_proxy=None,
|
| 57 |
+
use_https=False,
|
| 58 |
+
session_cert=None,
|
| 59 |
+
session_verify=True,
|
| 60 |
+
**kwargs,
|
| 61 |
+
):
|
| 62 |
+
"""
|
| 63 |
+
Parameters
|
| 64 |
+
----------
|
| 65 |
+
host: str
|
| 66 |
+
Name-node address
|
| 67 |
+
port: int
|
| 68 |
+
Port for webHDFS
|
| 69 |
+
kerberos: bool
|
| 70 |
+
Whether to authenticate with kerberos for this connection
|
| 71 |
+
token: str or None
|
| 72 |
+
If given, use this token on every call to authenticate. A user
|
| 73 |
+
and user-proxy may be encoded in the token and should not be also
|
| 74 |
+
given
|
| 75 |
+
user: str or None
|
| 76 |
+
If given, assert the user name to connect with
|
| 77 |
+
password: str or None
|
| 78 |
+
If given, assert the password to use for basic auth. If password
|
| 79 |
+
is provided, user must be provided also
|
| 80 |
+
proxy_to: str or None
|
| 81 |
+
If given, the user has the authority to proxy, and this value is
|
| 82 |
+
the user in who's name actions are taken
|
| 83 |
+
kerb_kwargs: dict
|
| 84 |
+
Any extra arguments for HTTPKerberosAuth, see
|
| 85 |
+
`<https://github.com/requests/requests-kerberos/blob/master/requests_kerberos/kerberos_.py>`_
|
| 86 |
+
data_proxy: dict, callable or None
|
| 87 |
+
If given, map data-node addresses. This can be necessary if the
|
| 88 |
+
HDFS cluster is behind a proxy, running on Docker or otherwise has
|
| 89 |
+
a mismatch between the host-names given by the name-node and the
|
| 90 |
+
address by which to refer to them from the client. If a dict,
|
| 91 |
+
maps host names ``host->data_proxy[host]``; if a callable, full
|
| 92 |
+
URLs are passed, and function must conform to
|
| 93 |
+
``url->data_proxy(url)``.
|
| 94 |
+
use_https: bool
|
| 95 |
+
Whether to connect to the Name-node using HTTPS instead of HTTP
|
| 96 |
+
session_cert: str or Tuple[str, str] or None
|
| 97 |
+
Path to a certificate file, or tuple of (cert, key) files to use
|
| 98 |
+
for the requests.Session
|
| 99 |
+
session_verify: str, bool or None
|
| 100 |
+
Path to a certificate file to use for verifying the requests.Session.
|
| 101 |
+
kwargs
|
| 102 |
+
"""
|
| 103 |
+
if self._cached:
|
| 104 |
+
return
|
| 105 |
+
super().__init__(**kwargs)
|
| 106 |
+
self.url = f"{'https' if use_https else 'http'}://{host}:{port}/webhdfs/v1"
|
| 107 |
+
self.kerb = kerberos
|
| 108 |
+
self.kerb_kwargs = kerb_kwargs or {}
|
| 109 |
+
self.pars = {}
|
| 110 |
+
self.proxy = data_proxy or {}
|
| 111 |
+
if token is not None:
|
| 112 |
+
if user is not None or proxy_to is not None:
|
| 113 |
+
raise ValueError(
|
| 114 |
+
"If passing a delegation token, must not set "
|
| 115 |
+
"user or proxy_to, as these are encoded in the"
|
| 116 |
+
" token"
|
| 117 |
+
)
|
| 118 |
+
self.pars["delegation"] = token
|
| 119 |
+
self.user = user
|
| 120 |
+
self.password = password
|
| 121 |
+
|
| 122 |
+
if password is not None:
|
| 123 |
+
if user is None:
|
| 124 |
+
raise ValueError(
|
| 125 |
+
"If passing a password, the user must also be"
|
| 126 |
+
"set in order to set up the basic-auth"
|
| 127 |
+
)
|
| 128 |
+
else:
|
| 129 |
+
if user is not None:
|
| 130 |
+
self.pars["user.name"] = user
|
| 131 |
+
|
| 132 |
+
if proxy_to is not None:
|
| 133 |
+
self.pars["doas"] = proxy_to
|
| 134 |
+
if kerberos and user is not None:
|
| 135 |
+
raise ValueError(
|
| 136 |
+
"If using Kerberos auth, do not specify the "
|
| 137 |
+
"user, this is handled by kinit."
|
| 138 |
+
)
|
| 139 |
+
|
| 140 |
+
self.session_cert = session_cert
|
| 141 |
+
self.session_verify = session_verify
|
| 142 |
+
|
| 143 |
+
self._connect()
|
| 144 |
+
|
| 145 |
+
self._fsid = f"webhdfs_{tokenize(host, port)}"
|
| 146 |
+
|
| 147 |
+
@property
|
| 148 |
+
def fsid(self):
|
| 149 |
+
return self._fsid
|
| 150 |
+
|
| 151 |
+
def _connect(self):
|
| 152 |
+
self.session = requests.Session()
|
| 153 |
+
|
| 154 |
+
if self.session_cert:
|
| 155 |
+
self.session.cert = self.session_cert
|
| 156 |
+
|
| 157 |
+
self.session.verify = self.session_verify
|
| 158 |
+
|
| 159 |
+
if self.kerb:
|
| 160 |
+
from requests_kerberos import HTTPKerberosAuth
|
| 161 |
+
|
| 162 |
+
self.session.auth = HTTPKerberosAuth(**self.kerb_kwargs)
|
| 163 |
+
|
| 164 |
+
if self.user is not None and self.password is not None:
|
| 165 |
+
from requests.auth import HTTPBasicAuth
|
| 166 |
+
|
| 167 |
+
self.session.auth = HTTPBasicAuth(self.user, self.password)
|
| 168 |
+
|
| 169 |
+
def _call(self, op, method="get", path=None, data=None, redirect=True, **kwargs):
|
| 170 |
+
path = self._strip_protocol(path) if path is not None else ""
|
| 171 |
+
url = self._apply_proxy(self.url + quote(path, safe="/="))
|
| 172 |
+
args = kwargs.copy()
|
| 173 |
+
args.update(self.pars)
|
| 174 |
+
args["op"] = op.upper()
|
| 175 |
+
logger.debug("sending %s with %s", url, method)
|
| 176 |
+
out = self.session.request(
|
| 177 |
+
method=method.upper(),
|
| 178 |
+
url=url,
|
| 179 |
+
params=args,
|
| 180 |
+
data=data,
|
| 181 |
+
allow_redirects=redirect,
|
| 182 |
+
)
|
| 183 |
+
if out.status_code in [400, 401, 403, 404, 500]:
|
| 184 |
+
try:
|
| 185 |
+
err = out.json()
|
| 186 |
+
msg = err["RemoteException"]["message"]
|
| 187 |
+
exp = err["RemoteException"]["exception"]
|
| 188 |
+
except (ValueError, KeyError):
|
| 189 |
+
pass
|
| 190 |
+
else:
|
| 191 |
+
if exp in ["IllegalArgumentException", "UnsupportedOperationException"]:
|
| 192 |
+
raise ValueError(msg)
|
| 193 |
+
elif exp in ["SecurityException", "AccessControlException"]:
|
| 194 |
+
raise PermissionError(msg)
|
| 195 |
+
elif exp in ["FileNotFoundException"]:
|
| 196 |
+
raise FileNotFoundError(msg)
|
| 197 |
+
else:
|
| 198 |
+
raise RuntimeError(msg)
|
| 199 |
+
out.raise_for_status()
|
| 200 |
+
return out
|
| 201 |
+
|
| 202 |
+
def _open(
|
| 203 |
+
self,
|
| 204 |
+
path,
|
| 205 |
+
mode="rb",
|
| 206 |
+
block_size=None,
|
| 207 |
+
autocommit=True,
|
| 208 |
+
replication=None,
|
| 209 |
+
permissions=None,
|
| 210 |
+
**kwargs,
|
| 211 |
+
):
|
| 212 |
+
"""
|
| 213 |
+
|
| 214 |
+
Parameters
|
| 215 |
+
----------
|
| 216 |
+
path: str
|
| 217 |
+
File location
|
| 218 |
+
mode: str
|
| 219 |
+
'rb', 'wb', etc.
|
| 220 |
+
block_size: int
|
| 221 |
+
Client buffer size for read-ahead or write buffer
|
| 222 |
+
autocommit: bool
|
| 223 |
+
If False, writes to temporary file that only gets put in final
|
| 224 |
+
location upon commit
|
| 225 |
+
replication: int
|
| 226 |
+
Number of copies of file on the cluster, write mode only
|
| 227 |
+
permissions: str or int
|
| 228 |
+
posix permissions, write mode only
|
| 229 |
+
kwargs
|
| 230 |
+
|
| 231 |
+
Returns
|
| 232 |
+
-------
|
| 233 |
+
WebHDFile instance
|
| 234 |
+
"""
|
| 235 |
+
block_size = block_size or self.blocksize
|
| 236 |
+
return WebHDFile(
|
| 237 |
+
self,
|
| 238 |
+
path,
|
| 239 |
+
mode=mode,
|
| 240 |
+
block_size=block_size,
|
| 241 |
+
tempdir=self.tempdir,
|
| 242 |
+
autocommit=autocommit,
|
| 243 |
+
replication=replication,
|
| 244 |
+
permissions=permissions,
|
| 245 |
+
)
|
| 246 |
+
|
| 247 |
+
@staticmethod
|
| 248 |
+
def _process_info(info):
|
| 249 |
+
info["type"] = info["type"].lower()
|
| 250 |
+
info["size"] = info["length"]
|
| 251 |
+
return info
|
| 252 |
+
|
| 253 |
+
@classmethod
|
| 254 |
+
def _strip_protocol(cls, path):
|
| 255 |
+
return infer_storage_options(path)["path"]
|
| 256 |
+
|
| 257 |
+
@staticmethod
|
| 258 |
+
def _get_kwargs_from_urls(urlpath):
|
| 259 |
+
out = infer_storage_options(urlpath)
|
| 260 |
+
out.pop("path", None)
|
| 261 |
+
out.pop("protocol", None)
|
| 262 |
+
if "username" in out:
|
| 263 |
+
out["user"] = out.pop("username")
|
| 264 |
+
return out
|
| 265 |
+
|
| 266 |
+
def info(self, path):
|
| 267 |
+
out = self._call("GETFILESTATUS", path=path)
|
| 268 |
+
info = out.json()["FileStatus"]
|
| 269 |
+
info["name"] = path
|
| 270 |
+
return self._process_info(info)
|
| 271 |
+
|
| 272 |
+
def created(self, path):
|
| 273 |
+
"""Return the created timestamp of a file as a datetime.datetime"""
|
| 274 |
+
# The API does not provide creation time, so we use modification time
|
| 275 |
+
info = self.info(path)
|
| 276 |
+
mtime = info.get("modificationTime", None)
|
| 277 |
+
if mtime is not None:
|
| 278 |
+
return datetime.fromtimestamp(mtime / 1000)
|
| 279 |
+
raise RuntimeError("Could not retrieve creation time (modification time).")
|
| 280 |
+
|
| 281 |
+
def modified(self, path):
|
| 282 |
+
"""Return the modified timestamp of a file as a datetime.datetime"""
|
| 283 |
+
info = self.info(path)
|
| 284 |
+
mtime = info.get("modificationTime", None)
|
| 285 |
+
if mtime is not None:
|
| 286 |
+
return datetime.fromtimestamp(mtime / 1000)
|
| 287 |
+
raise RuntimeError("Could not retrieve modification time.")
|
| 288 |
+
|
| 289 |
+
def ls(self, path, detail=False, **kwargs):
|
| 290 |
+
out = self._call("LISTSTATUS", path=path)
|
| 291 |
+
infos = out.json()["FileStatuses"]["FileStatus"]
|
| 292 |
+
for info in infos:
|
| 293 |
+
self._process_info(info)
|
| 294 |
+
info["name"] = path.rstrip("/") + "/" + info["pathSuffix"]
|
| 295 |
+
if detail:
|
| 296 |
+
return sorted(infos, key=lambda i: i["name"])
|
| 297 |
+
else:
|
| 298 |
+
return sorted(info["name"] for info in infos)
|
| 299 |
+
|
| 300 |
+
def content_summary(self, path):
|
| 301 |
+
"""Total numbers of files, directories and bytes under path"""
|
| 302 |
+
out = self._call("GETCONTENTSUMMARY", path=path)
|
| 303 |
+
return out.json()["ContentSummary"]
|
| 304 |
+
|
| 305 |
+
def ukey(self, path):
|
| 306 |
+
"""Checksum info of file, giving method and result"""
|
| 307 |
+
out = self._call("GETFILECHECKSUM", path=path, redirect=False)
|
| 308 |
+
if "Location" in out.headers:
|
| 309 |
+
location = self._apply_proxy(out.headers["Location"])
|
| 310 |
+
out2 = self.session.get(location)
|
| 311 |
+
out2.raise_for_status()
|
| 312 |
+
return out2.json()["FileChecksum"]
|
| 313 |
+
else:
|
| 314 |
+
out.raise_for_status()
|
| 315 |
+
return out.json()["FileChecksum"]
|
| 316 |
+
|
| 317 |
+
def home_directory(self):
|
| 318 |
+
"""Get user's home directory"""
|
| 319 |
+
out = self._call("GETHOMEDIRECTORY")
|
| 320 |
+
return out.json()["Path"]
|
| 321 |
+
|
| 322 |
+
def get_delegation_token(self, renewer=None):
|
| 323 |
+
"""Retrieve token which can give the same authority to other uses
|
| 324 |
+
|
| 325 |
+
Parameters
|
| 326 |
+
----------
|
| 327 |
+
renewer: str or None
|
| 328 |
+
User who may use this token; if None, will be current user
|
| 329 |
+
"""
|
| 330 |
+
if renewer:
|
| 331 |
+
out = self._call("GETDELEGATIONTOKEN", renewer=renewer)
|
| 332 |
+
else:
|
| 333 |
+
out = self._call("GETDELEGATIONTOKEN")
|
| 334 |
+
t = out.json()["Token"]
|
| 335 |
+
if t is None:
|
| 336 |
+
raise ValueError("No token available for this user/security context")
|
| 337 |
+
return t["urlString"]
|
| 338 |
+
|
| 339 |
+
def renew_delegation_token(self, token):
|
| 340 |
+
"""Make token live longer. Returns new expiry time"""
|
| 341 |
+
out = self._call("RENEWDELEGATIONTOKEN", method="put", token=token)
|
| 342 |
+
return out.json()["long"]
|
| 343 |
+
|
| 344 |
+
def cancel_delegation_token(self, token):
|
| 345 |
+
"""Stop the token from being useful"""
|
| 346 |
+
self._call("CANCELDELEGATIONTOKEN", method="put", token=token)
|
| 347 |
+
|
| 348 |
+
def chmod(self, path, mod):
|
| 349 |
+
"""Set the permission at path
|
| 350 |
+
|
| 351 |
+
Parameters
|
| 352 |
+
----------
|
| 353 |
+
path: str
|
| 354 |
+
location to set (file or directory)
|
| 355 |
+
mod: str or int
|
| 356 |
+
posix epresentation or permission, give as oct string, e.g, '777'
|
| 357 |
+
or 0o777
|
| 358 |
+
"""
|
| 359 |
+
self._call("SETPERMISSION", method="put", path=path, permission=mod)
|
| 360 |
+
|
| 361 |
+
def chown(self, path, owner=None, group=None):
|
| 362 |
+
"""Change owning user and/or group"""
|
| 363 |
+
kwargs = {}
|
| 364 |
+
if owner is not None:
|
| 365 |
+
kwargs["owner"] = owner
|
| 366 |
+
if group is not None:
|
| 367 |
+
kwargs["group"] = group
|
| 368 |
+
self._call("SETOWNER", method="put", path=path, **kwargs)
|
| 369 |
+
|
| 370 |
+
def set_replication(self, path, replication):
|
| 371 |
+
"""
|
| 372 |
+
Set file replication factor
|
| 373 |
+
|
| 374 |
+
Parameters
|
| 375 |
+
----------
|
| 376 |
+
path: str
|
| 377 |
+
File location (not for directories)
|
| 378 |
+
replication: int
|
| 379 |
+
Number of copies of file on the cluster. Should be smaller than
|
| 380 |
+
number of data nodes; normally 3 on most systems.
|
| 381 |
+
"""
|
| 382 |
+
self._call("SETREPLICATION", path=path, method="put", replication=replication)
|
| 383 |
+
|
| 384 |
+
def mkdir(self, path, **kwargs):
|
| 385 |
+
self._call("MKDIRS", method="put", path=path)
|
| 386 |
+
|
| 387 |
+
def makedirs(self, path, exist_ok=False):
|
| 388 |
+
if exist_ok is False and self.exists(path):
|
| 389 |
+
raise FileExistsError(path)
|
| 390 |
+
self.mkdir(path)
|
| 391 |
+
|
| 392 |
+
def mv(self, path1, path2, **kwargs):
|
| 393 |
+
self._call("RENAME", method="put", path=path1, destination=path2)
|
| 394 |
+
|
| 395 |
+
def rm(self, path, recursive=False, **kwargs):
|
| 396 |
+
self._call(
|
| 397 |
+
"DELETE",
|
| 398 |
+
method="delete",
|
| 399 |
+
path=path,
|
| 400 |
+
recursive="true" if recursive else "false",
|
| 401 |
+
)
|
| 402 |
+
|
| 403 |
+
def rm_file(self, path, **kwargs):
|
| 404 |
+
self.rm(path)
|
| 405 |
+
|
| 406 |
+
def cp_file(self, lpath, rpath, **kwargs):
|
| 407 |
+
with self.open(lpath) as lstream:
|
| 408 |
+
tmp_fname = "/".join([self._parent(rpath), f".tmp.{secrets.token_hex(16)}"])
|
| 409 |
+
# Perform an atomic copy (stream to a temporary file and
|
| 410 |
+
# move it to the actual destination).
|
| 411 |
+
try:
|
| 412 |
+
with self.open(tmp_fname, "wb") as rstream:
|
| 413 |
+
shutil.copyfileobj(lstream, rstream)
|
| 414 |
+
self.mv(tmp_fname, rpath)
|
| 415 |
+
except BaseException:
|
| 416 |
+
with suppress(FileNotFoundError):
|
| 417 |
+
self.rm(tmp_fname)
|
| 418 |
+
raise
|
| 419 |
+
|
| 420 |
+
def _apply_proxy(self, location):
|
| 421 |
+
if self.proxy and callable(self.proxy):
|
| 422 |
+
location = self.proxy(location)
|
| 423 |
+
elif self.proxy:
|
| 424 |
+
# as a dict
|
| 425 |
+
for k, v in self.proxy.items():
|
| 426 |
+
location = location.replace(k, v, 1)
|
| 427 |
+
return location
|
| 428 |
+
|
| 429 |
+
|
| 430 |
+
class WebHDFile(AbstractBufferedFile):
|
| 431 |
+
"""A file living in HDFS over webHDFS"""
|
| 432 |
+
|
| 433 |
+
def __init__(self, fs, path, **kwargs):
|
| 434 |
+
super().__init__(fs, path, **kwargs)
|
| 435 |
+
kwargs = kwargs.copy()
|
| 436 |
+
if kwargs.get("permissions", None) is None:
|
| 437 |
+
kwargs.pop("permissions", None)
|
| 438 |
+
if kwargs.get("replication", None) is None:
|
| 439 |
+
kwargs.pop("replication", None)
|
| 440 |
+
self.permissions = kwargs.pop("permissions", 511)
|
| 441 |
+
tempdir = kwargs.pop("tempdir")
|
| 442 |
+
if kwargs.pop("autocommit", False) is False:
|
| 443 |
+
self.target = self.path
|
| 444 |
+
self.path = os.path.join(tempdir, str(uuid.uuid4()))
|
| 445 |
+
|
| 446 |
+
def _upload_chunk(self, final=False):
|
| 447 |
+
"""Write one part of a multi-block file upload
|
| 448 |
+
|
| 449 |
+
Parameters
|
| 450 |
+
==========
|
| 451 |
+
final: bool
|
| 452 |
+
This is the last block, so should complete file, if
|
| 453 |
+
self.autocommit is True.
|
| 454 |
+
"""
|
| 455 |
+
out = self.fs.session.post(
|
| 456 |
+
self.location,
|
| 457 |
+
data=self.buffer.getvalue(),
|
| 458 |
+
headers={"content-type": "application/octet-stream"},
|
| 459 |
+
)
|
| 460 |
+
out.raise_for_status()
|
| 461 |
+
return True
|
| 462 |
+
|
| 463 |
+
def _initiate_upload(self):
|
| 464 |
+
"""Create remote file/upload"""
|
| 465 |
+
kwargs = self.kwargs.copy()
|
| 466 |
+
if "a" in self.mode:
|
| 467 |
+
op, method = "APPEND", "POST"
|
| 468 |
+
else:
|
| 469 |
+
op, method = "CREATE", "PUT"
|
| 470 |
+
kwargs["overwrite"] = "true"
|
| 471 |
+
out = self.fs._call(op, method, self.path, redirect=False, **kwargs)
|
| 472 |
+
location = self.fs._apply_proxy(out.headers["Location"])
|
| 473 |
+
if "w" in self.mode:
|
| 474 |
+
# create empty file to append to
|
| 475 |
+
out2 = self.fs.session.put(
|
| 476 |
+
location, headers={"content-type": "application/octet-stream"}
|
| 477 |
+
)
|
| 478 |
+
out2.raise_for_status()
|
| 479 |
+
# after creating empty file, change location to append to
|
| 480 |
+
out2 = self.fs._call("APPEND", "POST", self.path, redirect=False, **kwargs)
|
| 481 |
+
self.location = self.fs._apply_proxy(out2.headers["Location"])
|
| 482 |
+
|
| 483 |
+
def _fetch_range(self, start, end):
|
| 484 |
+
start = max(start, 0)
|
| 485 |
+
end = min(self.size, end)
|
| 486 |
+
if start >= end or start >= self.size:
|
| 487 |
+
return b""
|
| 488 |
+
out = self.fs._call(
|
| 489 |
+
"OPEN", path=self.path, offset=start, length=end - start, redirect=False
|
| 490 |
+
)
|
| 491 |
+
out.raise_for_status()
|
| 492 |
+
if "Location" in out.headers:
|
| 493 |
+
location = out.headers["Location"]
|
| 494 |
+
out2 = self.fs.session.get(self.fs._apply_proxy(location))
|
| 495 |
+
return out2.content
|
| 496 |
+
else:
|
| 497 |
+
return out.content
|
| 498 |
+
|
| 499 |
+
def commit(self):
|
| 500 |
+
self.fs.mv(self.path, self.target)
|
| 501 |
+
|
| 502 |
+
def discard(self):
|
| 503 |
+
self.fs.rm(self.path)
|
LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/numpy/_utils/_convertions.py
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
A set of methods retained from np.compat module that
|
| 3 |
+
are still used across codebase.
|
| 4 |
+
"""
|
| 5 |
+
|
| 6 |
+
__all__ = ["asunicode", "asbytes"]
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
def asunicode(s):
|
| 10 |
+
if isinstance(s, bytes):
|
| 11 |
+
return s.decode('latin1')
|
| 12 |
+
return str(s)
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
def asbytes(s):
|
| 16 |
+
if isinstance(s, bytes):
|
| 17 |
+
return s
|
| 18 |
+
return str(s).encode('latin1')
|
LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/numpy/_utils/_pep440.py
ADDED
|
@@ -0,0 +1,487 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Utility to compare pep440 compatible version strings.
|
| 2 |
+
|
| 3 |
+
The LooseVersion and StrictVersion classes that distutils provides don't
|
| 4 |
+
work; they don't recognize anything like alpha/beta/rc/dev versions.
|
| 5 |
+
"""
|
| 6 |
+
|
| 7 |
+
# Copyright (c) Donald Stufft and individual contributors.
|
| 8 |
+
# All rights reserved.
|
| 9 |
+
|
| 10 |
+
# Redistribution and use in source and binary forms, with or without
|
| 11 |
+
# modification, are permitted provided that the following conditions are met:
|
| 12 |
+
|
| 13 |
+
# 1. Redistributions of source code must retain the above copyright notice,
|
| 14 |
+
# this list of conditions and the following disclaimer.
|
| 15 |
+
|
| 16 |
+
# 2. Redistributions in binary form must reproduce the above copyright
|
| 17 |
+
# notice, this list of conditions and the following disclaimer in the
|
| 18 |
+
# documentation and/or other materials provided with the distribution.
|
| 19 |
+
|
| 20 |
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
| 21 |
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
| 22 |
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
| 23 |
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
| 24 |
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
| 25 |
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
| 26 |
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
| 27 |
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
| 28 |
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
| 29 |
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
| 30 |
+
# POSSIBILITY OF SUCH DAMAGE.
|
| 31 |
+
|
| 32 |
+
import collections
|
| 33 |
+
import itertools
|
| 34 |
+
import re
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
__all__ = [
|
| 38 |
+
"parse", "Version", "LegacyVersion", "InvalidVersion", "VERSION_PATTERN",
|
| 39 |
+
]
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
# BEGIN packaging/_structures.py
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
class Infinity:
|
| 46 |
+
def __repr__(self):
|
| 47 |
+
return "Infinity"
|
| 48 |
+
|
| 49 |
+
def __hash__(self):
|
| 50 |
+
return hash(repr(self))
|
| 51 |
+
|
| 52 |
+
def __lt__(self, other):
|
| 53 |
+
return False
|
| 54 |
+
|
| 55 |
+
def __le__(self, other):
|
| 56 |
+
return False
|
| 57 |
+
|
| 58 |
+
def __eq__(self, other):
|
| 59 |
+
return isinstance(other, self.__class__)
|
| 60 |
+
|
| 61 |
+
def __ne__(self, other):
|
| 62 |
+
return not isinstance(other, self.__class__)
|
| 63 |
+
|
| 64 |
+
def __gt__(self, other):
|
| 65 |
+
return True
|
| 66 |
+
|
| 67 |
+
def __ge__(self, other):
|
| 68 |
+
return True
|
| 69 |
+
|
| 70 |
+
def __neg__(self):
|
| 71 |
+
return NegativeInfinity
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
Infinity = Infinity()
|
| 75 |
+
|
| 76 |
+
|
| 77 |
+
class NegativeInfinity:
|
| 78 |
+
def __repr__(self):
|
| 79 |
+
return "-Infinity"
|
| 80 |
+
|
| 81 |
+
def __hash__(self):
|
| 82 |
+
return hash(repr(self))
|
| 83 |
+
|
| 84 |
+
def __lt__(self, other):
|
| 85 |
+
return True
|
| 86 |
+
|
| 87 |
+
def __le__(self, other):
|
| 88 |
+
return True
|
| 89 |
+
|
| 90 |
+
def __eq__(self, other):
|
| 91 |
+
return isinstance(other, self.__class__)
|
| 92 |
+
|
| 93 |
+
def __ne__(self, other):
|
| 94 |
+
return not isinstance(other, self.__class__)
|
| 95 |
+
|
| 96 |
+
def __gt__(self, other):
|
| 97 |
+
return False
|
| 98 |
+
|
| 99 |
+
def __ge__(self, other):
|
| 100 |
+
return False
|
| 101 |
+
|
| 102 |
+
def __neg__(self):
|
| 103 |
+
return Infinity
|
| 104 |
+
|
| 105 |
+
|
| 106 |
+
# BEGIN packaging/version.py
|
| 107 |
+
|
| 108 |
+
|
| 109 |
+
NegativeInfinity = NegativeInfinity()
|
| 110 |
+
|
| 111 |
+
_Version = collections.namedtuple(
|
| 112 |
+
"_Version",
|
| 113 |
+
["epoch", "release", "dev", "pre", "post", "local"],
|
| 114 |
+
)
|
| 115 |
+
|
| 116 |
+
|
| 117 |
+
def parse(version):
|
| 118 |
+
"""
|
| 119 |
+
Parse the given version string and return either a :class:`Version` object
|
| 120 |
+
or a :class:`LegacyVersion` object depending on if the given version is
|
| 121 |
+
a valid PEP 440 version or a legacy version.
|
| 122 |
+
"""
|
| 123 |
+
try:
|
| 124 |
+
return Version(version)
|
| 125 |
+
except InvalidVersion:
|
| 126 |
+
return LegacyVersion(version)
|
| 127 |
+
|
| 128 |
+
|
| 129 |
+
class InvalidVersion(ValueError):
|
| 130 |
+
"""
|
| 131 |
+
An invalid version was found, users should refer to PEP 440.
|
| 132 |
+
"""
|
| 133 |
+
|
| 134 |
+
|
| 135 |
+
class _BaseVersion:
|
| 136 |
+
|
| 137 |
+
def __hash__(self):
|
| 138 |
+
return hash(self._key)
|
| 139 |
+
|
| 140 |
+
def __lt__(self, other):
|
| 141 |
+
return self._compare(other, lambda s, o: s < o)
|
| 142 |
+
|
| 143 |
+
def __le__(self, other):
|
| 144 |
+
return self._compare(other, lambda s, o: s <= o)
|
| 145 |
+
|
| 146 |
+
def __eq__(self, other):
|
| 147 |
+
return self._compare(other, lambda s, o: s == o)
|
| 148 |
+
|
| 149 |
+
def __ge__(self, other):
|
| 150 |
+
return self._compare(other, lambda s, o: s >= o)
|
| 151 |
+
|
| 152 |
+
def __gt__(self, other):
|
| 153 |
+
return self._compare(other, lambda s, o: s > o)
|
| 154 |
+
|
| 155 |
+
def __ne__(self, other):
|
| 156 |
+
return self._compare(other, lambda s, o: s != o)
|
| 157 |
+
|
| 158 |
+
def _compare(self, other, method):
|
| 159 |
+
if not isinstance(other, _BaseVersion):
|
| 160 |
+
return NotImplemented
|
| 161 |
+
|
| 162 |
+
return method(self._key, other._key)
|
| 163 |
+
|
| 164 |
+
|
| 165 |
+
class LegacyVersion(_BaseVersion):
|
| 166 |
+
|
| 167 |
+
def __init__(self, version):
|
| 168 |
+
self._version = str(version)
|
| 169 |
+
self._key = _legacy_cmpkey(self._version)
|
| 170 |
+
|
| 171 |
+
def __str__(self):
|
| 172 |
+
return self._version
|
| 173 |
+
|
| 174 |
+
def __repr__(self):
|
| 175 |
+
return "<LegacyVersion({0})>".format(repr(str(self)))
|
| 176 |
+
|
| 177 |
+
@property
|
| 178 |
+
def public(self):
|
| 179 |
+
return self._version
|
| 180 |
+
|
| 181 |
+
@property
|
| 182 |
+
def base_version(self):
|
| 183 |
+
return self._version
|
| 184 |
+
|
| 185 |
+
@property
|
| 186 |
+
def local(self):
|
| 187 |
+
return None
|
| 188 |
+
|
| 189 |
+
@property
|
| 190 |
+
def is_prerelease(self):
|
| 191 |
+
return False
|
| 192 |
+
|
| 193 |
+
@property
|
| 194 |
+
def is_postrelease(self):
|
| 195 |
+
return False
|
| 196 |
+
|
| 197 |
+
|
| 198 |
+
_legacy_version_component_re = re.compile(
|
| 199 |
+
r"(\d+ | [a-z]+ | \.| -)", re.VERBOSE,
|
| 200 |
+
)
|
| 201 |
+
|
| 202 |
+
_legacy_version_replacement_map = {
|
| 203 |
+
"pre": "c", "preview": "c", "-": "final-", "rc": "c", "dev": "@",
|
| 204 |
+
}
|
| 205 |
+
|
| 206 |
+
|
| 207 |
+
def _parse_version_parts(s):
|
| 208 |
+
for part in _legacy_version_component_re.split(s):
|
| 209 |
+
part = _legacy_version_replacement_map.get(part, part)
|
| 210 |
+
|
| 211 |
+
if not part or part == ".":
|
| 212 |
+
continue
|
| 213 |
+
|
| 214 |
+
if part[:1] in "0123456789":
|
| 215 |
+
# pad for numeric comparison
|
| 216 |
+
yield part.zfill(8)
|
| 217 |
+
else:
|
| 218 |
+
yield "*" + part
|
| 219 |
+
|
| 220 |
+
# ensure that alpha/beta/candidate are before final
|
| 221 |
+
yield "*final"
|
| 222 |
+
|
| 223 |
+
|
| 224 |
+
def _legacy_cmpkey(version):
|
| 225 |
+
# We hardcode an epoch of -1 here. A PEP 440 version can only have an epoch
|
| 226 |
+
# greater than or equal to 0. This will effectively put the LegacyVersion,
|
| 227 |
+
# which uses the defacto standard originally implemented by setuptools,
|
| 228 |
+
# as before all PEP 440 versions.
|
| 229 |
+
epoch = -1
|
| 230 |
+
|
| 231 |
+
# This scheme is taken from pkg_resources.parse_version setuptools prior to
|
| 232 |
+
# its adoption of the packaging library.
|
| 233 |
+
parts = []
|
| 234 |
+
for part in _parse_version_parts(version.lower()):
|
| 235 |
+
if part.startswith("*"):
|
| 236 |
+
# remove "-" before a prerelease tag
|
| 237 |
+
if part < "*final":
|
| 238 |
+
while parts and parts[-1] == "*final-":
|
| 239 |
+
parts.pop()
|
| 240 |
+
|
| 241 |
+
# remove trailing zeros from each series of numeric parts
|
| 242 |
+
while parts and parts[-1] == "00000000":
|
| 243 |
+
parts.pop()
|
| 244 |
+
|
| 245 |
+
parts.append(part)
|
| 246 |
+
parts = tuple(parts)
|
| 247 |
+
|
| 248 |
+
return epoch, parts
|
| 249 |
+
|
| 250 |
+
|
| 251 |
+
# Deliberately not anchored to the start and end of the string, to make it
|
| 252 |
+
# easier for 3rd party code to reuse
|
| 253 |
+
VERSION_PATTERN = r"""
|
| 254 |
+
v?
|
| 255 |
+
(?:
|
| 256 |
+
(?:(?P<epoch>[0-9]+)!)? # epoch
|
| 257 |
+
(?P<release>[0-9]+(?:\.[0-9]+)*) # release segment
|
| 258 |
+
(?P<pre> # pre-release
|
| 259 |
+
[-_\.]?
|
| 260 |
+
(?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview))
|
| 261 |
+
[-_\.]?
|
| 262 |
+
(?P<pre_n>[0-9]+)?
|
| 263 |
+
)?
|
| 264 |
+
(?P<post> # post release
|
| 265 |
+
(?:-(?P<post_n1>[0-9]+))
|
| 266 |
+
|
|
| 267 |
+
(?:
|
| 268 |
+
[-_\.]?
|
| 269 |
+
(?P<post_l>post|rev|r)
|
| 270 |
+
[-_\.]?
|
| 271 |
+
(?P<post_n2>[0-9]+)?
|
| 272 |
+
)
|
| 273 |
+
)?
|
| 274 |
+
(?P<dev> # dev release
|
| 275 |
+
[-_\.]?
|
| 276 |
+
(?P<dev_l>dev)
|
| 277 |
+
[-_\.]?
|
| 278 |
+
(?P<dev_n>[0-9]+)?
|
| 279 |
+
)?
|
| 280 |
+
)
|
| 281 |
+
(?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version
|
| 282 |
+
"""
|
| 283 |
+
|
| 284 |
+
|
| 285 |
+
class Version(_BaseVersion):
|
| 286 |
+
|
| 287 |
+
_regex = re.compile(
|
| 288 |
+
r"^\s*" + VERSION_PATTERN + r"\s*$",
|
| 289 |
+
re.VERBOSE | re.IGNORECASE,
|
| 290 |
+
)
|
| 291 |
+
|
| 292 |
+
def __init__(self, version):
|
| 293 |
+
# Validate the version and parse it into pieces
|
| 294 |
+
match = self._regex.search(version)
|
| 295 |
+
if not match:
|
| 296 |
+
raise InvalidVersion("Invalid version: '{0}'".format(version))
|
| 297 |
+
|
| 298 |
+
# Store the parsed out pieces of the version
|
| 299 |
+
self._version = _Version(
|
| 300 |
+
epoch=int(match.group("epoch")) if match.group("epoch") else 0,
|
| 301 |
+
release=tuple(int(i) for i in match.group("release").split(".")),
|
| 302 |
+
pre=_parse_letter_version(
|
| 303 |
+
match.group("pre_l"),
|
| 304 |
+
match.group("pre_n"),
|
| 305 |
+
),
|
| 306 |
+
post=_parse_letter_version(
|
| 307 |
+
match.group("post_l"),
|
| 308 |
+
match.group("post_n1") or match.group("post_n2"),
|
| 309 |
+
),
|
| 310 |
+
dev=_parse_letter_version(
|
| 311 |
+
match.group("dev_l"),
|
| 312 |
+
match.group("dev_n"),
|
| 313 |
+
),
|
| 314 |
+
local=_parse_local_version(match.group("local")),
|
| 315 |
+
)
|
| 316 |
+
|
| 317 |
+
# Generate a key which will be used for sorting
|
| 318 |
+
self._key = _cmpkey(
|
| 319 |
+
self._version.epoch,
|
| 320 |
+
self._version.release,
|
| 321 |
+
self._version.pre,
|
| 322 |
+
self._version.post,
|
| 323 |
+
self._version.dev,
|
| 324 |
+
self._version.local,
|
| 325 |
+
)
|
| 326 |
+
|
| 327 |
+
def __repr__(self):
|
| 328 |
+
return "<Version({0})>".format(repr(str(self)))
|
| 329 |
+
|
| 330 |
+
def __str__(self):
|
| 331 |
+
parts = []
|
| 332 |
+
|
| 333 |
+
# Epoch
|
| 334 |
+
if self._version.epoch != 0:
|
| 335 |
+
parts.append("{0}!".format(self._version.epoch))
|
| 336 |
+
|
| 337 |
+
# Release segment
|
| 338 |
+
parts.append(".".join(str(x) for x in self._version.release))
|
| 339 |
+
|
| 340 |
+
# Pre-release
|
| 341 |
+
if self._version.pre is not None:
|
| 342 |
+
parts.append("".join(str(x) for x in self._version.pre))
|
| 343 |
+
|
| 344 |
+
# Post-release
|
| 345 |
+
if self._version.post is not None:
|
| 346 |
+
parts.append(".post{0}".format(self._version.post[1]))
|
| 347 |
+
|
| 348 |
+
# Development release
|
| 349 |
+
if self._version.dev is not None:
|
| 350 |
+
parts.append(".dev{0}".format(self._version.dev[1]))
|
| 351 |
+
|
| 352 |
+
# Local version segment
|
| 353 |
+
if self._version.local is not None:
|
| 354 |
+
parts.append(
|
| 355 |
+
"+{0}".format(".".join(str(x) for x in self._version.local))
|
| 356 |
+
)
|
| 357 |
+
|
| 358 |
+
return "".join(parts)
|
| 359 |
+
|
| 360 |
+
@property
|
| 361 |
+
def public(self):
|
| 362 |
+
return str(self).split("+", 1)[0]
|
| 363 |
+
|
| 364 |
+
@property
|
| 365 |
+
def base_version(self):
|
| 366 |
+
parts = []
|
| 367 |
+
|
| 368 |
+
# Epoch
|
| 369 |
+
if self._version.epoch != 0:
|
| 370 |
+
parts.append("{0}!".format(self._version.epoch))
|
| 371 |
+
|
| 372 |
+
# Release segment
|
| 373 |
+
parts.append(".".join(str(x) for x in self._version.release))
|
| 374 |
+
|
| 375 |
+
return "".join(parts)
|
| 376 |
+
|
| 377 |
+
@property
|
| 378 |
+
def local(self):
|
| 379 |
+
version_string = str(self)
|
| 380 |
+
if "+" in version_string:
|
| 381 |
+
return version_string.split("+", 1)[1]
|
| 382 |
+
|
| 383 |
+
@property
|
| 384 |
+
def is_prerelease(self):
|
| 385 |
+
return bool(self._version.dev or self._version.pre)
|
| 386 |
+
|
| 387 |
+
@property
|
| 388 |
+
def is_postrelease(self):
|
| 389 |
+
return bool(self._version.post)
|
| 390 |
+
|
| 391 |
+
|
| 392 |
+
def _parse_letter_version(letter, number):
|
| 393 |
+
if letter:
|
| 394 |
+
# We assume there is an implicit 0 in a pre-release if there is
|
| 395 |
+
# no numeral associated with it.
|
| 396 |
+
if number is None:
|
| 397 |
+
number = 0
|
| 398 |
+
|
| 399 |
+
# We normalize any letters to their lower-case form
|
| 400 |
+
letter = letter.lower()
|
| 401 |
+
|
| 402 |
+
# We consider some words to be alternate spellings of other words and
|
| 403 |
+
# in those cases we want to normalize the spellings to our preferred
|
| 404 |
+
# spelling.
|
| 405 |
+
if letter == "alpha":
|
| 406 |
+
letter = "a"
|
| 407 |
+
elif letter == "beta":
|
| 408 |
+
letter = "b"
|
| 409 |
+
elif letter in ["c", "pre", "preview"]:
|
| 410 |
+
letter = "rc"
|
| 411 |
+
elif letter in ["rev", "r"]:
|
| 412 |
+
letter = "post"
|
| 413 |
+
|
| 414 |
+
return letter, int(number)
|
| 415 |
+
if not letter and number:
|
| 416 |
+
# We assume that if we are given a number but not given a letter,
|
| 417 |
+
# then this is using the implicit post release syntax (e.g., 1.0-1)
|
| 418 |
+
letter = "post"
|
| 419 |
+
|
| 420 |
+
return letter, int(number)
|
| 421 |
+
|
| 422 |
+
|
| 423 |
+
_local_version_seperators = re.compile(r"[\._-]")
|
| 424 |
+
|
| 425 |
+
|
| 426 |
+
def _parse_local_version(local):
|
| 427 |
+
"""
|
| 428 |
+
Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
|
| 429 |
+
"""
|
| 430 |
+
if local is not None:
|
| 431 |
+
return tuple(
|
| 432 |
+
part.lower() if not part.isdigit() else int(part)
|
| 433 |
+
for part in _local_version_seperators.split(local)
|
| 434 |
+
)
|
| 435 |
+
|
| 436 |
+
|
| 437 |
+
def _cmpkey(epoch, release, pre, post, dev, local):
|
| 438 |
+
# When we compare a release version, we want to compare it with all of the
|
| 439 |
+
# trailing zeros removed. So we'll use a reverse the list, drop all the now
|
| 440 |
+
# leading zeros until we come to something non-zero, then take the rest,
|
| 441 |
+
# re-reverse it back into the correct order, and make it a tuple and use
|
| 442 |
+
# that for our sorting key.
|
| 443 |
+
release = tuple(
|
| 444 |
+
reversed(list(
|
| 445 |
+
itertools.dropwhile(
|
| 446 |
+
lambda x: x == 0,
|
| 447 |
+
reversed(release),
|
| 448 |
+
)
|
| 449 |
+
))
|
| 450 |
+
)
|
| 451 |
+
|
| 452 |
+
# We need to "trick" the sorting algorithm to put 1.0.dev0 before 1.0a0.
|
| 453 |
+
# We'll do this by abusing the pre-segment, but we _only_ want to do this
|
| 454 |
+
# if there is no pre- or a post-segment. If we have one of those, then
|
| 455 |
+
# the normal sorting rules will handle this case correctly.
|
| 456 |
+
if pre is None and post is None and dev is not None:
|
| 457 |
+
pre = -Infinity
|
| 458 |
+
# Versions without a pre-release (except as noted above) should sort after
|
| 459 |
+
# those with one.
|
| 460 |
+
elif pre is None:
|
| 461 |
+
pre = Infinity
|
| 462 |
+
|
| 463 |
+
# Versions without a post-segment should sort before those with one.
|
| 464 |
+
if post is None:
|
| 465 |
+
post = -Infinity
|
| 466 |
+
|
| 467 |
+
# Versions without a development segment should sort after those with one.
|
| 468 |
+
if dev is None:
|
| 469 |
+
dev = Infinity
|
| 470 |
+
|
| 471 |
+
if local is None:
|
| 472 |
+
# Versions without a local segment should sort before those with one.
|
| 473 |
+
local = -Infinity
|
| 474 |
+
else:
|
| 475 |
+
# Versions with a local segment need that segment parsed to implement
|
| 476 |
+
# the sorting rules in PEP440.
|
| 477 |
+
# - Alphanumeric segments sort before numeric segments
|
| 478 |
+
# - Alphanumeric segments sort lexicographically
|
| 479 |
+
# - Numeric segments sort numerically
|
| 480 |
+
# - Shorter versions sort before longer versions when the prefixes
|
| 481 |
+
# match exactly
|
| 482 |
+
local = tuple(
|
| 483 |
+
(i, "") if isinstance(i, int) else (-Infinity, i)
|
| 484 |
+
for i in local
|
| 485 |
+
)
|
| 486 |
+
|
| 487 |
+
return epoch, release, pre, post, dev, local
|
LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/numpy/typing/tests/data/reveal/arraysetops.pyi
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import sys
|
| 2 |
+
from typing import Any
|
| 3 |
+
|
| 4 |
+
import numpy as np
|
| 5 |
+
import numpy.typing as npt
|
| 6 |
+
|
| 7 |
+
if sys.version_info >= (3, 11):
|
| 8 |
+
from typing import assert_type
|
| 9 |
+
else:
|
| 10 |
+
from typing_extensions import assert_type
|
| 11 |
+
|
| 12 |
+
AR_b: npt.NDArray[np.bool_]
|
| 13 |
+
AR_i8: npt.NDArray[np.int64]
|
| 14 |
+
AR_f8: npt.NDArray[np.float64]
|
| 15 |
+
AR_M: npt.NDArray[np.datetime64]
|
| 16 |
+
AR_O: npt.NDArray[np.object_]
|
| 17 |
+
|
| 18 |
+
AR_LIKE_f8: list[float]
|
| 19 |
+
|
| 20 |
+
assert_type(np.ediff1d(AR_b), npt.NDArray[np.int8])
|
| 21 |
+
assert_type(np.ediff1d(AR_i8, to_end=[1, 2, 3]), npt.NDArray[np.int64])
|
| 22 |
+
assert_type(np.ediff1d(AR_M), npt.NDArray[np.timedelta64])
|
| 23 |
+
assert_type(np.ediff1d(AR_O), npt.NDArray[np.object_])
|
| 24 |
+
assert_type(np.ediff1d(AR_LIKE_f8, to_begin=[1, 1.5]), npt.NDArray[Any])
|
| 25 |
+
|
| 26 |
+
assert_type(np.intersect1d(AR_i8, AR_i8), npt.NDArray[np.int64])
|
| 27 |
+
assert_type(np.intersect1d(AR_M, AR_M, assume_unique=True), npt.NDArray[np.datetime64])
|
| 28 |
+
assert_type(np.intersect1d(AR_f8, AR_i8), npt.NDArray[Any])
|
| 29 |
+
assert_type(np.intersect1d(AR_f8, AR_f8, return_indices=True), tuple[npt.NDArray[np.float64], npt.NDArray[np.intp], npt.NDArray[np.intp]])
|
| 30 |
+
|
| 31 |
+
assert_type(np.setxor1d(AR_i8, AR_i8), npt.NDArray[np.int64])
|
| 32 |
+
assert_type(np.setxor1d(AR_M, AR_M, assume_unique=True), npt.NDArray[np.datetime64])
|
| 33 |
+
assert_type(np.setxor1d(AR_f8, AR_i8), npt.NDArray[Any])
|
| 34 |
+
|
| 35 |
+
assert_type(np.in1d(AR_i8, AR_i8), npt.NDArray[np.bool_])
|
| 36 |
+
assert_type(np.in1d(AR_M, AR_M, assume_unique=True), npt.NDArray[np.bool_])
|
| 37 |
+
assert_type(np.in1d(AR_f8, AR_i8), npt.NDArray[np.bool_])
|
| 38 |
+
assert_type(np.in1d(AR_f8, AR_LIKE_f8, invert=True), npt.NDArray[np.bool_])
|
| 39 |
+
|
| 40 |
+
assert_type(np.isin(AR_i8, AR_i8), npt.NDArray[np.bool_])
|
| 41 |
+
assert_type(np.isin(AR_M, AR_M, assume_unique=True), npt.NDArray[np.bool_])
|
| 42 |
+
assert_type(np.isin(AR_f8, AR_i8), npt.NDArray[np.bool_])
|
| 43 |
+
assert_type(np.isin(AR_f8, AR_LIKE_f8, invert=True), npt.NDArray[np.bool_])
|
| 44 |
+
|
| 45 |
+
assert_type(np.union1d(AR_i8, AR_i8), npt.NDArray[np.int64])
|
| 46 |
+
assert_type(np.union1d(AR_M, AR_M), npt.NDArray[np.datetime64])
|
| 47 |
+
assert_type(np.union1d(AR_f8, AR_i8), npt.NDArray[Any])
|
| 48 |
+
|
| 49 |
+
assert_type(np.setdiff1d(AR_i8, AR_i8), npt.NDArray[np.int64])
|
| 50 |
+
assert_type(np.setdiff1d(AR_M, AR_M, assume_unique=True), npt.NDArray[np.datetime64])
|
| 51 |
+
assert_type(np.setdiff1d(AR_f8, AR_i8), npt.NDArray[Any])
|
| 52 |
+
|
| 53 |
+
assert_type(np.unique(AR_f8), npt.NDArray[np.float64])
|
| 54 |
+
assert_type(np.unique(AR_LIKE_f8, axis=0), npt.NDArray[Any])
|
| 55 |
+
assert_type(np.unique(AR_f8, return_index=True), tuple[npt.NDArray[np.float64], npt.NDArray[np.intp]])
|
| 56 |
+
assert_type(np.unique(AR_LIKE_f8, return_index=True), tuple[npt.NDArray[Any], npt.NDArray[np.intp]])
|
| 57 |
+
assert_type(np.unique(AR_f8, return_inverse=True), tuple[npt.NDArray[np.float64], npt.NDArray[np.intp]])
|
| 58 |
+
assert_type(np.unique(AR_LIKE_f8, return_inverse=True), tuple[npt.NDArray[Any], npt.NDArray[np.intp]])
|
| 59 |
+
assert_type(np.unique(AR_f8, return_counts=True), tuple[npt.NDArray[np.float64], npt.NDArray[np.intp]])
|
| 60 |
+
assert_type(np.unique(AR_LIKE_f8, return_counts=True), tuple[npt.NDArray[Any], npt.NDArray[np.intp]])
|
| 61 |
+
assert_type(np.unique(AR_f8, return_index=True, return_inverse=True), tuple[npt.NDArray[np.float64], npt.NDArray[np.intp], npt.NDArray[np.intp]])
|
| 62 |
+
assert_type(np.unique(AR_LIKE_f8, return_index=True, return_inverse=True), tuple[npt.NDArray[Any], npt.NDArray[np.intp], npt.NDArray[np.intp]])
|
| 63 |
+
assert_type(np.unique(AR_f8, return_index=True, return_counts=True), tuple[npt.NDArray[np.float64], npt.NDArray[np.intp], npt.NDArray[np.intp]])
|
| 64 |
+
assert_type(np.unique(AR_LIKE_f8, return_index=True, return_counts=True), tuple[npt.NDArray[Any], npt.NDArray[np.intp], npt.NDArray[np.intp]])
|
| 65 |
+
assert_type(np.unique(AR_f8, return_inverse=True, return_counts=True), tuple[npt.NDArray[np.float64], npt.NDArray[np.intp], npt.NDArray[np.intp]])
|
| 66 |
+
assert_type(np.unique(AR_LIKE_f8, return_inverse=True, return_counts=True), tuple[npt.NDArray[Any], npt.NDArray[np.intp], npt.NDArray[np.intp]])
|
| 67 |
+
assert_type(np.unique(AR_f8, return_index=True, return_inverse=True, return_counts=True), tuple[npt.NDArray[np.float64], npt.NDArray[np.intp], npt.NDArray[np.intp], npt.NDArray[np.intp]])
|
| 68 |
+
assert_type(np.unique(AR_LIKE_f8, return_index=True, return_inverse=True, return_counts=True), tuple[npt.NDArray[Any], npt.NDArray[np.intp], npt.NDArray[np.intp], npt.NDArray[np.intp]])
|
LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/numpy/typing/tests/data/reveal/nbit_base_example.pyi
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import sys
|
| 2 |
+
from typing import TypeVar
|
| 3 |
+
|
| 4 |
+
import numpy as np
|
| 5 |
+
import numpy.typing as npt
|
| 6 |
+
from numpy._typing import _64Bit, _32Bit
|
| 7 |
+
|
| 8 |
+
if sys.version_info >= (3, 11):
|
| 9 |
+
from typing import assert_type
|
| 10 |
+
else:
|
| 11 |
+
from typing_extensions import assert_type
|
| 12 |
+
|
| 13 |
+
T1 = TypeVar("T1", bound=npt.NBitBase)
|
| 14 |
+
T2 = TypeVar("T2", bound=npt.NBitBase)
|
| 15 |
+
|
| 16 |
+
def add(a: np.floating[T1], b: np.integer[T2]) -> np.floating[T1 | T2]:
|
| 17 |
+
return a + b
|
| 18 |
+
|
| 19 |
+
i8: np.int64
|
| 20 |
+
i4: np.int32
|
| 21 |
+
f8: np.float64
|
| 22 |
+
f4: np.float32
|
| 23 |
+
|
| 24 |
+
assert_type(add(f8, i8), np.float64)
|
| 25 |
+
assert_type(add(f4, i8), np.floating[_32Bit | _64Bit])
|
| 26 |
+
assert_type(add(f8, i4), np.floating[_32Bit | _64Bit])
|
| 27 |
+
assert_type(add(f4, i4), np.float32)
|
LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/numpy/typing/tests/data/reveal/nested_sequence.pyi
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import sys
|
| 2 |
+
from collections.abc import Sequence
|
| 3 |
+
from typing import Any
|
| 4 |
+
|
| 5 |
+
from numpy._typing import _NestedSequence
|
| 6 |
+
|
| 7 |
+
if sys.version_info >= (3, 11):
|
| 8 |
+
from typing import assert_type
|
| 9 |
+
else:
|
| 10 |
+
from typing_extensions import assert_type
|
| 11 |
+
|
| 12 |
+
a: Sequence[int]
|
| 13 |
+
b: Sequence[Sequence[int]]
|
| 14 |
+
c: Sequence[Sequence[Sequence[int]]]
|
| 15 |
+
d: Sequence[Sequence[Sequence[Sequence[int]]]]
|
| 16 |
+
e: Sequence[bool]
|
| 17 |
+
f: tuple[int, ...]
|
| 18 |
+
g: list[int]
|
| 19 |
+
h: Sequence[Any]
|
| 20 |
+
|
| 21 |
+
def func(a: _NestedSequence[int]) -> None:
|
| 22 |
+
...
|
| 23 |
+
|
| 24 |
+
assert_type(func(a), None)
|
| 25 |
+
assert_type(func(b), None)
|
| 26 |
+
assert_type(func(c), None)
|
| 27 |
+
assert_type(func(d), None)
|
| 28 |
+
assert_type(func(e), None)
|
| 29 |
+
assert_type(func(f), None)
|
| 30 |
+
assert_type(func(g), None)
|
| 31 |
+
assert_type(func(h), None)
|
| 32 |
+
assert_type(func(range(15)), None)
|
LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/numpy/typing/tests/data/reveal/twodim_base.pyi
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import sys
|
| 2 |
+
from typing import Any, TypeVar
|
| 3 |
+
|
| 4 |
+
import numpy as np
|
| 5 |
+
import numpy.typing as npt
|
| 6 |
+
|
| 7 |
+
if sys.version_info >= (3, 11):
|
| 8 |
+
from typing import assert_type
|
| 9 |
+
else:
|
| 10 |
+
from typing_extensions import assert_type
|
| 11 |
+
|
| 12 |
+
_SCT = TypeVar("_SCT", bound=np.generic)
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
def func1(ar: npt.NDArray[_SCT], a: int) -> npt.NDArray[_SCT]:
|
| 16 |
+
pass
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
def func2(ar: npt.NDArray[np.number[Any]], a: str) -> npt.NDArray[np.float64]:
|
| 20 |
+
pass
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
AR_b: npt.NDArray[np.bool_]
|
| 24 |
+
AR_u: npt.NDArray[np.uint64]
|
| 25 |
+
AR_i: npt.NDArray[np.int64]
|
| 26 |
+
AR_f: npt.NDArray[np.float64]
|
| 27 |
+
AR_c: npt.NDArray[np.complex128]
|
| 28 |
+
AR_O: npt.NDArray[np.object_]
|
| 29 |
+
|
| 30 |
+
AR_LIKE_b: list[bool]
|
| 31 |
+
|
| 32 |
+
assert_type(np.fliplr(AR_b), npt.NDArray[np.bool_])
|
| 33 |
+
assert_type(np.fliplr(AR_LIKE_b), npt.NDArray[Any])
|
| 34 |
+
|
| 35 |
+
assert_type(np.flipud(AR_b), npt.NDArray[np.bool_])
|
| 36 |
+
assert_type(np.flipud(AR_LIKE_b), npt.NDArray[Any])
|
| 37 |
+
|
| 38 |
+
assert_type(np.eye(10), npt.NDArray[np.float64])
|
| 39 |
+
assert_type(np.eye(10, M=20, dtype=np.int64), npt.NDArray[np.int64])
|
| 40 |
+
assert_type(np.eye(10, k=2, dtype=int), npt.NDArray[Any])
|
| 41 |
+
|
| 42 |
+
assert_type(np.diag(AR_b), npt.NDArray[np.bool_])
|
| 43 |
+
assert_type(np.diag(AR_LIKE_b, k=0), npt.NDArray[Any])
|
| 44 |
+
|
| 45 |
+
assert_type(np.diagflat(AR_b), npt.NDArray[np.bool_])
|
| 46 |
+
assert_type(np.diagflat(AR_LIKE_b, k=0), npt.NDArray[Any])
|
| 47 |
+
|
| 48 |
+
assert_type(np.tri(10), npt.NDArray[np.float64])
|
| 49 |
+
assert_type(np.tri(10, M=20, dtype=np.int64), npt.NDArray[np.int64])
|
| 50 |
+
assert_type(np.tri(10, k=2, dtype=int), npt.NDArray[Any])
|
| 51 |
+
|
| 52 |
+
assert_type(np.tril(AR_b), npt.NDArray[np.bool_])
|
| 53 |
+
assert_type(np.tril(AR_LIKE_b, k=0), npt.NDArray[Any])
|
| 54 |
+
|
| 55 |
+
assert_type(np.triu(AR_b), npt.NDArray[np.bool_])
|
| 56 |
+
assert_type(np.triu(AR_LIKE_b, k=0), npt.NDArray[Any])
|
| 57 |
+
|
| 58 |
+
assert_type(np.vander(AR_b), npt.NDArray[np.signedinteger[Any]])
|
| 59 |
+
assert_type(np.vander(AR_u), npt.NDArray[np.signedinteger[Any]])
|
| 60 |
+
assert_type(np.vander(AR_i, N=2), npt.NDArray[np.signedinteger[Any]])
|
| 61 |
+
assert_type(np.vander(AR_f, increasing=True), npt.NDArray[np.floating[Any]])
|
| 62 |
+
assert_type(np.vander(AR_c), npt.NDArray[np.complexfloating[Any, Any]])
|
| 63 |
+
assert_type(np.vander(AR_O), npt.NDArray[np.object_])
|
| 64 |
+
|
| 65 |
+
assert_type(
|
| 66 |
+
np.histogram2d(AR_i, AR_b),
|
| 67 |
+
tuple[
|
| 68 |
+
npt.NDArray[np.float64],
|
| 69 |
+
npt.NDArray[np.floating[Any]],
|
| 70 |
+
npt.NDArray[np.floating[Any]],
|
| 71 |
+
],
|
| 72 |
+
)
|
| 73 |
+
assert_type(
|
| 74 |
+
np.histogram2d(AR_f, AR_f),
|
| 75 |
+
tuple[
|
| 76 |
+
npt.NDArray[np.float64],
|
| 77 |
+
npt.NDArray[np.floating[Any]],
|
| 78 |
+
npt.NDArray[np.floating[Any]],
|
| 79 |
+
],
|
| 80 |
+
)
|
| 81 |
+
assert_type(
|
| 82 |
+
np.histogram2d(AR_f, AR_c, weights=AR_LIKE_b),
|
| 83 |
+
tuple[
|
| 84 |
+
npt.NDArray[np.float64],
|
| 85 |
+
npt.NDArray[np.complexfloating[Any, Any]],
|
| 86 |
+
npt.NDArray[np.complexfloating[Any, Any]],
|
| 87 |
+
],
|
| 88 |
+
)
|
| 89 |
+
|
| 90 |
+
assert_type(np.mask_indices(10, func1), tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]])
|
| 91 |
+
assert_type(np.mask_indices(8, func2, "0"), tuple[npt.NDArray[np.intp], npt.NDArray[np.intp]])
|
| 92 |
+
|
| 93 |
+
assert_type(np.tril_indices(10), tuple[npt.NDArray[np.int_], npt.NDArray[np.int_]])
|
| 94 |
+
|
| 95 |
+
assert_type(np.tril_indices_from(AR_b), tuple[npt.NDArray[np.int_], npt.NDArray[np.int_]])
|
| 96 |
+
|
| 97 |
+
assert_type(np.triu_indices(10), tuple[npt.NDArray[np.int_], npt.NDArray[np.int_]])
|
| 98 |
+
|
| 99 |
+
assert_type(np.triu_indices_from(AR_b), tuple[npt.NDArray[np.int_], npt.NDArray[np.int_]])
|
LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/transformers/models/dab_detr/__init__.py
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright 2024 The HuggingFace Team. All rights reserved.
|
| 2 |
+
#
|
| 3 |
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
| 4 |
+
# you may not use this file except in compliance with the License.
|
| 5 |
+
# You may obtain a copy of the License at
|
| 6 |
+
#
|
| 7 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 8 |
+
#
|
| 9 |
+
# Unless required by applicable law or agreed to in writing, software
|
| 10 |
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
| 11 |
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 12 |
+
# See the License for the specific language governing permissions and
|
| 13 |
+
# limitations under the License.
|
| 14 |
+
|
| 15 |
+
from typing import TYPE_CHECKING
|
| 16 |
+
|
| 17 |
+
from ...utils import _LazyModule
|
| 18 |
+
from ...utils.import_utils import define_import_structure
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
if TYPE_CHECKING:
|
| 22 |
+
from .configuration_dab_detr import *
|
| 23 |
+
from .modeling_dab_detr import *
|
| 24 |
+
else:
|
| 25 |
+
import sys
|
| 26 |
+
|
| 27 |
+
_file = globals()["__file__"]
|
| 28 |
+
sys.modules[__name__] = _LazyModule(__name__, _file, define_import_structure(_file), module_spec=__spec__)
|
LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/transformers/models/gemma3n/__init__.py
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright 2025 The HuggingFace Team. All rights reserved.
|
| 2 |
+
#
|
| 3 |
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
| 4 |
+
# you may not use this file except in compliance with the License.
|
| 5 |
+
# You may obtain a copy of the License at
|
| 6 |
+
#
|
| 7 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 8 |
+
#
|
| 9 |
+
# Unless required by applicable law or agreed to in writing, software
|
| 10 |
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
| 11 |
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 12 |
+
# See the License for the specific language governing permissions and
|
| 13 |
+
# limitations under the License.
|
| 14 |
+
from typing import TYPE_CHECKING
|
| 15 |
+
|
| 16 |
+
from ...utils import _LazyModule
|
| 17 |
+
from ...utils.import_utils import define_import_structure
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
if TYPE_CHECKING:
|
| 21 |
+
from .configuration_gemma3n import *
|
| 22 |
+
from .feature_extraction_gemma3n import *
|
| 23 |
+
from .modeling_gemma3n import *
|
| 24 |
+
from .processing_gemma3n import *
|
| 25 |
+
else:
|
| 26 |
+
import sys
|
| 27 |
+
|
| 28 |
+
_file = globals()["__file__"]
|
| 29 |
+
sys.modules[__name__] = _LazyModule(__name__, _file, define_import_structure(_file), module_spec=__spec__)
|
LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/transformers/models/gemma3n/configuration_gemma3n.py
ADDED
|
@@ -0,0 +1,477 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨
|
| 2 |
+
# This file was automatically generated from src/transformers/models/gemma3n/modular_gemma3n.py.
|
| 3 |
+
# Do NOT edit this file manually as any edits will be overwritten by the generation of
|
| 4 |
+
# the file from the modular. If any change should be done, please apply the change to the
|
| 5 |
+
# modular_gemma3n.py file directly. One of our CI enforces this.
|
| 6 |
+
# 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨
|
| 7 |
+
# Copyright 2025 Google Inc. HuggingFace Inc. team. All rights reserved.
|
| 8 |
+
#
|
| 9 |
+
#
|
| 10 |
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
| 11 |
+
# you may not use this file except in compliance with the License.
|
| 12 |
+
# You may obtain a copy of the License at
|
| 13 |
+
#
|
| 14 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 15 |
+
#
|
| 16 |
+
# Unless required by applicable law or agreed to in writing, software
|
| 17 |
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
| 18 |
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 19 |
+
# See the License for the specific language governing permissions and
|
| 20 |
+
# limitations under the License.
|
| 21 |
+
from collections.abc import Sequence
|
| 22 |
+
from typing import Any
|
| 23 |
+
|
| 24 |
+
from huggingface_hub.dataclasses import strict
|
| 25 |
+
|
| 26 |
+
from ...configuration_utils import PreTrainedConfig
|
| 27 |
+
from ...utils import auto_docstring, is_timm_available, logging, requires_backends
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
if is_timm_available():
|
| 31 |
+
from timm.data import ImageNetInfo, infer_imagenet_subset
|
| 32 |
+
|
| 33 |
+
logger = logging.get_logger(__name__)
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
@auto_docstring(checkpoint="google/gemma-3n-E4B")
|
| 37 |
+
@strict
|
| 38 |
+
class Gemma3nTextConfig(PreTrainedConfig):
|
| 39 |
+
r"""
|
| 40 |
+
vocab_size_per_layer_input (`int`, *optional*, defaults to 262144):
|
| 41 |
+
Vocabulary size of the per-layer text embeddings that augment the standard embeddings.
|
| 42 |
+
hidden_size_per_layer_input (`int`, *optional*, defaults to 256):
|
| 43 |
+
Dimension of the hidden representations for per-layer embeddings.
|
| 44 |
+
altup_active_idx (`int`, *optional*, defaults to 0):
|
| 45 |
+
The index of the prediction from which AltUp will compute additional predictions or correct the active prediction.
|
| 46 |
+
altup_coef_clip (`float`, *optional*, defaults to 120.0):
|
| 47 |
+
The maximum amplitude of an AltUp prediction or correction coefficient weight.
|
| 48 |
+
altup_correct_scale (`bool`, *optional*, defaults to `True`):
|
| 49 |
+
If True, apply the `AltUp.correct_output_scale` to the corrected prediction at `altup_active_idx`.
|
| 50 |
+
altup_num_inputs (`int`, *optional*, defaults to 4):
|
| 51 |
+
The number of predictions that AltUp should make given the input sequence.
|
| 52 |
+
num_kv_shared_layers (`int`, *optional*, defaults to 15):
|
| 53 |
+
The number of layers that share KV cache values. During the forward pass, the last `num_kv_shared_layers`
|
| 54 |
+
layers in the model "share" the KV values in that each local and global layer in this range uses the KV
|
| 55 |
+
cache values computed for the last local or global layer, respectively, before entering this range. The
|
| 56 |
+
value should be a multiple of the attention pattern size (see `layer_types` parameter).
|
| 57 |
+
laurel_rank (`int`, *optional*, defaults to 64):
|
| 58 |
+
The intermediate size for the linear projections in the Learned Augmented Residual Layer.
|
| 59 |
+
activation_sparsity_pattern (`Sequence[float]`, *optional*):
|
| 60 |
+
The sparsity factor used to extract the top-k activations for a given layer. The provided Sequence must
|
| 61 |
+
explicitly provide a sparsity value for each layer in the model. By default, the first 10 layers are
|
| 62 |
+
sparse with a sparsity factor of 0.95 and the rest are dense.
|
| 63 |
+
|
| 64 |
+
```python
|
| 65 |
+
>>> from transformers import Gemma3nTextModel, Gemma3nTextConfig
|
| 66 |
+
|
| 67 |
+
>>> # Initializing a Gemma3nText gemma3n_text-E4B style configuration
|
| 68 |
+
>>> configuration = Gemma3nTextConfig()
|
| 69 |
+
|
| 70 |
+
>>> # Initializing a model from the gemma3n_text-E4B style configuration
|
| 71 |
+
>>> model = Gemma3nTextModel(configuration)
|
| 72 |
+
|
| 73 |
+
>>> # Accessing the model configuration
|
| 74 |
+
>>> configuration = model.config
|
| 75 |
+
```
|
| 76 |
+
"""
|
| 77 |
+
|
| 78 |
+
model_type = "gemma3n_text"
|
| 79 |
+
keys_to_ignore_at_inference = ["past_key_values"]
|
| 80 |
+
base_model_tp_plan = {
|
| 81 |
+
"layers.*.self_attn.q_proj": "colwise",
|
| 82 |
+
"layers.*.self_attn.k_proj": "colwise",
|
| 83 |
+
"layers.*.self_attn.v_proj": "colwise",
|
| 84 |
+
"layers.*.self_attn.q_norm": "replicated_with_grad_allreduce",
|
| 85 |
+
"layers.*.self_attn.k_norm": "replicated_with_grad_allreduce",
|
| 86 |
+
"layers.*.self_attn.v_norm": "replicated_with_grad_allreduce",
|
| 87 |
+
"layers.*.self_attn.o_proj": "rowwise",
|
| 88 |
+
"layers.*.mlp.gate_proj": "colwise",
|
| 89 |
+
"layers.*.mlp.up_proj": "colwise",
|
| 90 |
+
"layers.*.mlp.down_proj": "rowwise",
|
| 91 |
+
}
|
| 92 |
+
base_model_pp_plan = {
|
| 93 |
+
"embed_tokens": (["input_ids"], ["inputs_embeds"]),
|
| 94 |
+
"layers": (["hidden_states", "attention_mask"], ["hidden_states"]),
|
| 95 |
+
"norm": (["hidden_states"], ["hidden_states"]),
|
| 96 |
+
}
|
| 97 |
+
|
| 98 |
+
vocab_size: int = 262_400
|
| 99 |
+
hidden_size: int = 2048
|
| 100 |
+
intermediate_size: int | list[int] = 16_384
|
| 101 |
+
num_hidden_layers: int = 35
|
| 102 |
+
num_attention_heads: int = 8
|
| 103 |
+
num_key_value_heads: int = 2
|
| 104 |
+
head_dim: int = 256
|
| 105 |
+
hidden_activation: str = "gelu_pytorch_tanh"
|
| 106 |
+
max_position_embeddings: int = 32_768
|
| 107 |
+
initializer_range: float = 0.02
|
| 108 |
+
rms_norm_eps: float = 1e-6
|
| 109 |
+
use_cache: bool = True
|
| 110 |
+
pad_token_id: int | None = 0
|
| 111 |
+
eos_token_id: int | list[int] | None = 1
|
| 112 |
+
bos_token_id: int | None = 2
|
| 113 |
+
tie_word_embeddings: bool = True
|
| 114 |
+
rope_parameters: dict | None = None
|
| 115 |
+
attention_bias: bool = False
|
| 116 |
+
attention_dropout: int | float | None = 0.0
|
| 117 |
+
sliding_window: int = 512
|
| 118 |
+
layer_types: list[str] | None = None
|
| 119 |
+
final_logit_softcapping: float = 30.0
|
| 120 |
+
default_theta = {"global": 1_000_000.0, "local": 10_000.0}
|
| 121 |
+
vocab_size_per_layer_input: int = 262_144
|
| 122 |
+
hidden_size_per_layer_input: int = 256
|
| 123 |
+
altup_active_idx: int = 0
|
| 124 |
+
altup_coef_clip: float = 120.0
|
| 125 |
+
altup_correct_scale: bool = True
|
| 126 |
+
altup_num_inputs: int = 4
|
| 127 |
+
num_kv_shared_layers: int = 15
|
| 128 |
+
laurel_rank: int = 64
|
| 129 |
+
activation_sparsity_pattern: float | list[float] | None = None
|
| 130 |
+
|
| 131 |
+
def __post_init__(self, **kwargs):
|
| 132 |
+
if (
|
| 133 |
+
isinstance(self.intermediate_size, Sequence)
|
| 134 |
+
and (intsize_len := len(self.intermediate_size)) != self.num_hidden_layers
|
| 135 |
+
):
|
| 136 |
+
raise ValueError(
|
| 137 |
+
"intermediate_size must have an explicit intermediate size for every layer or one for all layers. "
|
| 138 |
+
f"Expected {self.num_hidden_layers} values but got {intsize_len}."
|
| 139 |
+
)
|
| 140 |
+
elif not isinstance(self.intermediate_size, Sequence):
|
| 141 |
+
self.intermediate_size = [self.intermediate_size] * self.num_hidden_layers
|
| 142 |
+
|
| 143 |
+
if self.layer_types is None:
|
| 144 |
+
self.layer_types = [
|
| 145 |
+
"full_attention" if (i + 1) % 5 == 0 else "sliding_attention" for i in range(self.num_hidden_layers)
|
| 146 |
+
]
|
| 147 |
+
|
| 148 |
+
if self.activation_sparsity_pattern is None:
|
| 149 |
+
num_sparse_layers = 10 if self.num_hidden_layers > 10 else 0
|
| 150 |
+
self.activation_sparsity_pattern = [0.95] * num_sparse_layers + [0.0] * (
|
| 151 |
+
self.num_hidden_layers - num_sparse_layers
|
| 152 |
+
)
|
| 153 |
+
|
| 154 |
+
if (len_asp := len(self.activation_sparsity_pattern)) != self.num_hidden_layers:
|
| 155 |
+
raise ValueError(
|
| 156 |
+
"activation_sparsity_pattern must have an explicit activation sparsity value for every layer."
|
| 157 |
+
f"Expected {self.num_hidden_layers} values but got {len_asp}."
|
| 158 |
+
)
|
| 159 |
+
|
| 160 |
+
super().__post_init__(**kwargs)
|
| 161 |
+
|
| 162 |
+
def validate_architecture(self):
|
| 163 |
+
"""Part of `@strict`-powered validation. Validates the architecture of the config."""
|
| 164 |
+
if self.hidden_size % self.num_attention_heads != 0:
|
| 165 |
+
raise ValueError(
|
| 166 |
+
f"The hidden size ({self.hidden_size}) is not a multiple of the number of attention "
|
| 167 |
+
f"heads ({self.num_attention_heads})."
|
| 168 |
+
)
|
| 169 |
+
|
| 170 |
+
def convert_rope_params_to_dict(self, **kwargs):
|
| 171 |
+
rope_scaling = kwargs.pop("rope_scaling", None)
|
| 172 |
+
|
| 173 |
+
# Try to set `rope_scaling` if available, otherwise use `rope_parameters`. If we find `rope_parameters`
|
| 174 |
+
# as arg in the inputs, we can safely assume that it is in the new format. New naming used -> new format
|
| 175 |
+
default_rope_params = {
|
| 176 |
+
"sliding_attention": {"rope_type": "default"},
|
| 177 |
+
"full_attention": {"rope_type": "default"},
|
| 178 |
+
}
|
| 179 |
+
self.rope_parameters = self.rope_parameters if self.rope_parameters is not None else default_rope_params
|
| 180 |
+
if rope_scaling is not None:
|
| 181 |
+
self.rope_parameters["full_attention"].update(rope_scaling)
|
| 182 |
+
|
| 183 |
+
# Set default values if not present
|
| 184 |
+
if self.rope_parameters.get("full_attention") is None:
|
| 185 |
+
self.rope_parameters["full_attention"] = {"rope_type": "default"}
|
| 186 |
+
self.rope_parameters["full_attention"].setdefault(
|
| 187 |
+
"rope_theta", kwargs.pop("rope_theta", self.default_theta["global"])
|
| 188 |
+
)
|
| 189 |
+
if self.rope_parameters.get("sliding_attention") is None:
|
| 190 |
+
self.rope_parameters["sliding_attention"] = {"rope_type": "default"}
|
| 191 |
+
self.rope_parameters["sliding_attention"].setdefault(
|
| 192 |
+
"rope_theta", kwargs.pop("rope_local_base_freq", self.default_theta["local"])
|
| 193 |
+
)
|
| 194 |
+
|
| 195 |
+
# Standardize and validate the correctness of rotary position embeddings parameters
|
| 196 |
+
self.standardize_rope_params()
|
| 197 |
+
return kwargs
|
| 198 |
+
|
| 199 |
+
|
| 200 |
+
@auto_docstring(checkpoint="google/gemma-3n-E4B")
|
| 201 |
+
@strict
|
| 202 |
+
class Gemma3nAudioConfig(PreTrainedConfig):
|
| 203 |
+
r"""
|
| 204 |
+
vocab_offset (`int`, *optional*, defaults to 262272):
|
| 205 |
+
Offset between the tokenizer vocab index for the token ids embedded by `Gemma3nMultimodalEmbedder` and the
|
| 206 |
+
0-indexed `Gemma3nMultimodalEmbedder.embedding` table.
|
| 207 |
+
input_feat_size (`int`, *optional*, defaults to 128):
|
| 208 |
+
The number of channels in each mel-spectrogram frame.
|
| 209 |
+
gradient_clipping (`float`, *optional*, defaults to 10000000000.0):
|
| 210 |
+
Clipping value used to stabilize extremely large gradient values.
|
| 211 |
+
conf_attention_chunk_size (`int`, *optional*, defaults to 12):
|
| 212 |
+
The sub-sequence size for local attention processing inside the Conformer ("conf") section of the
|
| 213 |
+
Universal Speech Model.
|
| 214 |
+
conf_attention_context_left (`int`, *optional*, defaults to 13):
|
| 215 |
+
The left context size of the local attention inside the Conformer ("conf") section of the
|
| 216 |
+
Universal Speech Model.
|
| 217 |
+
conf_attention_context_right (`int`, *optional*, defaults to 0):
|
| 218 |
+
The right context size of the local attention inside the Conformer ("conf") section of the
|
| 219 |
+
Universal Speech Model.
|
| 220 |
+
conf_attention_logit_cap (`float`, *optional*, defaults to 50.0):
|
| 221 |
+
Logit cap applied during local attention inside the Conformer ("conf") section of the
|
| 222 |
+
Universal Speech Model.
|
| 223 |
+
conf_num_attention_heads (`int`, *optional*, defaults to 8):
|
| 224 |
+
The number of attention heads in local attention inside the Conformer ("conf") section of the
|
| 225 |
+
Universal Speech Model.
|
| 226 |
+
conf_num_hidden_layers (`int`, *optional*, defaults to 12):
|
| 227 |
+
The number of layers that use local attention inside the Conformer ("conf") section of the
|
| 228 |
+
Universal Speech Model.
|
| 229 |
+
conf_conv_kernel_size (`int`, *optional*, defaults to 5):
|
| 230 |
+
Convolution kernel size for the conformer block inside the Conformer ("conf") section of the
|
| 231 |
+
Universal Speech Model.
|
| 232 |
+
conf_reduction_factor (`int`, *optional*, defaults to 4):
|
| 233 |
+
Reduction factor used in the conformer block inside the Conformer ("conf") section of the
|
| 234 |
+
Universal Speech Model.
|
| 235 |
+
conf_residual_weight (`float`, *optional*, defaults to 0.5):
|
| 236 |
+
Residual connection weight inside the Conformer ("conf") section of the
|
| 237 |
+
Universal Speech Model.
|
| 238 |
+
sscp_conv_channel_size (`tuple(int, int)`, *optional*, defaults to `(128, 32)`):
|
| 239 |
+
The channel sizes for the first and second convolutional layers in the Sub-sample Convolution Projection
|
| 240 |
+
("sscp") section of the Universal Speech Model.
|
| 241 |
+
sscp_conv_group_norm_eps (`float`, *optional*, defaults to 0.001):
|
| 242 |
+
Epsilon used in group normalization in the subsample convolution projection in the Sub-sample Convolution
|
| 243 |
+
Projection ("sscp") section of the Universal Speech Model.
|
| 244 |
+
sscp_conv_kernel_size (`tuple(tuple(int, int), tuple(int, int))`, *optional*, defaults to `((3, 3), (3, 3))`):
|
| 245 |
+
Kernel sizes of the two convolutional layers in the subsample convolution projection in the Sub-sample
|
| 246 |
+
Convolution Projection ("sscp") section of the Universal Speech Model. The kernel sizes are specified as a
|
| 247 |
+
tuple of height and width for each layer, where the height corresponds to the time dimension and the width
|
| 248 |
+
corresponds to the frequency dimension.
|
| 249 |
+
sscp_conv_stride_size (`tuple(tuple(int, int), tuple(int, int))`, *optional*, defaults to `((2, 2), (2, 2))`):
|
| 250 |
+
Stride sizes of the two convolutional layers in the subsample convolution projection in the Sub-sample
|
| 251 |
+
Convolution Projection ("sscp") section of the Universal Speech Model. The stride sizes are specified as a
|
| 252 |
+
tuple of height and width for each layer, where the height corresponds to the time dimension and the width
|
| 253 |
+
corresponds to the frequency dimension.
|
| 254 |
+
|
| 255 |
+
Example:
|
| 256 |
+
|
| 257 |
+
```python
|
| 258 |
+
>>> from transformers import Gemma3nAudioConfig, Gemma3nAudioEncoder
|
| 259 |
+
|
| 260 |
+
>>> # Initializing a Gemma3nAudioEncoder gemma3n_audio-E4B-style configuration
|
| 261 |
+
>>> configuration = Gemma3nAudioConfig()
|
| 262 |
+
|
| 263 |
+
>>> # Initializing a model from the gemma3n_audio-E4B style configuration
|
| 264 |
+
>>> model = Gemma3nAudioEncoder(configuration)
|
| 265 |
+
|
| 266 |
+
>>> # Accessing the model configuration
|
| 267 |
+
>>> configuration = model.config
|
| 268 |
+
```
|
| 269 |
+
"""
|
| 270 |
+
|
| 271 |
+
model_type = "gemma3n_audio"
|
| 272 |
+
|
| 273 |
+
vocab_size: int = 128
|
| 274 |
+
vocab_offset: int = 262_144 + 128 # text vocab size + vision vocab size
|
| 275 |
+
input_feat_size: int = 128
|
| 276 |
+
hidden_size: int = 1536
|
| 277 |
+
rms_norm_eps: float = 1e-6
|
| 278 |
+
gradient_clipping: float = 10_000_000_000.0
|
| 279 |
+
conf_attention_chunk_size: int = 12
|
| 280 |
+
conf_attention_context_left: int = 13
|
| 281 |
+
conf_attention_context_right: int = 0
|
| 282 |
+
conf_attention_logit_cap: float = 50.0
|
| 283 |
+
conf_num_attention_heads: int = 8
|
| 284 |
+
conf_num_hidden_layers: int = 12
|
| 285 |
+
conf_conv_kernel_size: int = 5
|
| 286 |
+
conf_reduction_factor: int = 4
|
| 287 |
+
conf_residual_weight: float = 0.5
|
| 288 |
+
sscp_conv_channel_size: list[int] | tuple[int, int] = (128, 32)
|
| 289 |
+
sscp_conv_group_norm_eps: float = 1e-3
|
| 290 |
+
sscp_conv_kernel_size: list | tuple[tuple[int, int], tuple[int, int]] = (
|
| 291 |
+
(3, 3),
|
| 292 |
+
(3, 3),
|
| 293 |
+
)
|
| 294 |
+
sscp_conv_stride_size: list | tuple[tuple[int, int], tuple[int, int]] = (
|
| 295 |
+
(2, 2),
|
| 296 |
+
(2, 2),
|
| 297 |
+
)
|
| 298 |
+
|
| 299 |
+
|
| 300 |
+
@auto_docstring(checkpoint="google/gemma-3n-E4B")
|
| 301 |
+
@strict
|
| 302 |
+
class Gemma3nVisionConfig(PreTrainedConfig):
|
| 303 |
+
r"""
|
| 304 |
+
architecture (`str`, *optional*, defaults to `"resnet50"`):
|
| 305 |
+
The timm architecture to load.
|
| 306 |
+
do_pooling (`bool`, *optional*, defaults to `True`):
|
| 307 |
+
Whether to do pooling for the last_hidden_state in `TimmWrapperModel` or not.
|
| 308 |
+
model_args (`dict[str, Any]`, *optional*):
|
| 309 |
+
Additional keyword arguments to pass to the `timm.create_model` function. e.g. `model_args={"depth": 3}`
|
| 310 |
+
for `timm/vit_base_patch32_clip_448.laion2b_ft_in12k_in1k` to create a model with 3 blocks. Defaults to `None`.
|
| 311 |
+
vocab_offset (`int`, *optional*, defaults to 262144):
|
| 312 |
+
Offset between the tokenizer vocab index for the token ids embedded by `Gemma3nMultimodalEmbedder` and the
|
| 313 |
+
0-indexed `Gemma3nMultimodalEmbedder.embedding` table.
|
| 314 |
+
|
| 315 |
+
Example:
|
| 316 |
+
```python
|
| 317 |
+
>>> from transformers import Gemma3nVisionConfig, TimmWrapper
|
| 318 |
+
|
| 319 |
+
>>> # Initializing a TimmWrapper gemma3n_vision-E4B-style configuration
|
| 320 |
+
>>> configuration = Gemma3nVisionConfig()
|
| 321 |
+
|
| 322 |
+
>>> # Initializing a gemma3n_vision-E4B-style TimmWrapper from the configuration
|
| 323 |
+
>>> model = TimmWrapper(configuration)
|
| 324 |
+
|
| 325 |
+
>>> # Accessing the model configuration
|
| 326 |
+
>>> configuration = model.config
|
| 327 |
+
```
|
| 328 |
+
"""
|
| 329 |
+
|
| 330 |
+
model_type = "gemma3n_vision"
|
| 331 |
+
architecture: str = "mobilenetv5_300m_enc"
|
| 332 |
+
|
| 333 |
+
initializer_range: float = 0.02
|
| 334 |
+
do_pooling: bool = False
|
| 335 |
+
model_args: dict | None = None
|
| 336 |
+
hidden_size: int = 2048
|
| 337 |
+
vocab_size: int = 128
|
| 338 |
+
vocab_offset: int = 262_144
|
| 339 |
+
rms_norm_eps: float = 1e-06
|
| 340 |
+
|
| 341 |
+
@classmethod
|
| 342 |
+
def from_dict(cls, config_dict: dict[str, Any], **kwargs):
|
| 343 |
+
# Create a copy to avoid mutating the original dict
|
| 344 |
+
config_dict = config_dict.copy()
|
| 345 |
+
|
| 346 |
+
label_names = config_dict.get("label_names")
|
| 347 |
+
is_custom_model = "num_labels" in kwargs or "id2label" in kwargs
|
| 348 |
+
|
| 349 |
+
# if no labels added to config, use imagenet labeller in timm
|
| 350 |
+
if label_names is None and not is_custom_model:
|
| 351 |
+
requires_backends(cls, ["timm"])
|
| 352 |
+
imagenet_subset = infer_imagenet_subset(config_dict)
|
| 353 |
+
if imagenet_subset:
|
| 354 |
+
dataset_info = ImageNetInfo(imagenet_subset)
|
| 355 |
+
synsets = dataset_info.label_names()
|
| 356 |
+
label_descriptions = dataset_info.label_descriptions(as_dict=True)
|
| 357 |
+
label_names = [label_descriptions[synset] for synset in synsets]
|
| 358 |
+
|
| 359 |
+
if label_names is not None and not is_custom_model:
|
| 360 |
+
kwargs["id2label"] = dict(enumerate(label_names))
|
| 361 |
+
|
| 362 |
+
# if all label names are unique, create label2id mapping as well
|
| 363 |
+
if len(set(label_names)) == len(label_names):
|
| 364 |
+
kwargs["label2id"] = {name: i for i, name in enumerate(label_names)}
|
| 365 |
+
else:
|
| 366 |
+
kwargs["label2id"] = None
|
| 367 |
+
|
| 368 |
+
# timm config stores the `num_classes` attribute in both the root of config and in the "pretrained_cfg" dict.
|
| 369 |
+
# We are removing these attributes in order to have the native `transformers` num_labels attribute in config
|
| 370 |
+
# and to avoid duplicate attributes
|
| 371 |
+
num_labels_in_kwargs = kwargs.pop("num_labels", None)
|
| 372 |
+
num_labels_in_dict = config_dict.pop("num_classes", None)
|
| 373 |
+
|
| 374 |
+
# passed num_labels has priority over num_classes in config_dict
|
| 375 |
+
kwargs["num_labels"] = num_labels_in_kwargs or num_labels_in_dict
|
| 376 |
+
|
| 377 |
+
# pop num_classes from "pretrained_cfg",
|
| 378 |
+
# it is not necessary to have it, only root one is used in timm
|
| 379 |
+
if "pretrained_cfg" in config_dict and "num_classes" in config_dict["pretrained_cfg"]:
|
| 380 |
+
config_dict["pretrained_cfg"].pop("num_classes", None)
|
| 381 |
+
|
| 382 |
+
return super().from_dict(config_dict, **kwargs)
|
| 383 |
+
|
| 384 |
+
def to_dict(self) -> dict[str, Any]:
|
| 385 |
+
output = super().to_dict()
|
| 386 |
+
output.setdefault("num_classes", self.num_labels)
|
| 387 |
+
output.setdefault("label_names", list(self.id2label.values()))
|
| 388 |
+
output.pop("id2label", None)
|
| 389 |
+
output.pop("label2id", None)
|
| 390 |
+
return output
|
| 391 |
+
|
| 392 |
+
|
| 393 |
+
@auto_docstring(checkpoint="google/gemma-3n-E4B")
|
| 394 |
+
@strict
|
| 395 |
+
class Gemma3nConfig(PreTrainedConfig):
|
| 396 |
+
r"""
|
| 397 |
+
audio_soft_tokens_per_image (`int`, *optional*, defaults to 188):
|
| 398 |
+
The number of soft tokens per audio clip.
|
| 399 |
+
vision_soft_tokens_per_image (`int`, *optional*, defaults to 256):
|
| 400 |
+
The number of soft tokens per image.
|
| 401 |
+
boi_token_id (`int`, *optional*, defaults to 255999):
|
| 402 |
+
The begin-of-image token index to wrap the image prompt.
|
| 403 |
+
eoi_token_id (`int`, *optional*, defaults to 262144):
|
| 404 |
+
The end-of-image token index to wrap the image prompt.
|
| 405 |
+
boa_token_id (`int`, *optional*, defaults to 256000):
|
| 406 |
+
The begin-of-audio token index to wrap the audio prompt.
|
| 407 |
+
eoa_token_id (`int`, *optional*, defaults to 262272):
|
| 408 |
+
The end-of-audio token index to wrap the audio prompt.
|
| 409 |
+
|
| 410 |
+
Example:
|
| 411 |
+
|
| 412 |
+
```python
|
| 413 |
+
>>> from transformers import Gemma3nForConditionalGeneration, Gemma3nConfig, Gemma3nTextConfig
|
| 414 |
+
|
| 415 |
+
>>> # Initializing a MobileNet vision config, which is loaded from TIMM
|
| 416 |
+
>>> vision_config = Gemma3nVisionConfig()
|
| 417 |
+
|
| 418 |
+
>>> # Initializing a Gemma3n Audio config
|
| 419 |
+
>>> audio_config = Gemma3nAudioConfig()
|
| 420 |
+
|
| 421 |
+
>>> # Initializing a Gemma3n Text config
|
| 422 |
+
>>> text_config = Gemma3nTextConfig()
|
| 423 |
+
|
| 424 |
+
>>> # Initializing a Gemma3n gemma-3-4b style configuration
|
| 425 |
+
>>> configuration = Gemma3nConfig(text_config, vision_config, audio_config)
|
| 426 |
+
|
| 427 |
+
>>> # Initializing a model from the gemma-3-4b style configuration
|
| 428 |
+
>>> model = Gemma3nTextConfig(configuration)
|
| 429 |
+
|
| 430 |
+
>>> # Accessing the model configuration
|
| 431 |
+
>>> configuration = model.config
|
| 432 |
+
```"""
|
| 433 |
+
|
| 434 |
+
model_type = "gemma3n"
|
| 435 |
+
sub_configs = {
|
| 436 |
+
"text_config": Gemma3nTextConfig,
|
| 437 |
+
"vision_config": Gemma3nVisionConfig,
|
| 438 |
+
"audio_config": Gemma3nAudioConfig,
|
| 439 |
+
}
|
| 440 |
+
|
| 441 |
+
text_config: Gemma3nTextConfig | dict[str, Any] | None = None
|
| 442 |
+
vision_config: Gemma3nVisionConfig | dict[str, Any] | None = None
|
| 443 |
+
audio_config: Gemma3nAudioConfig | dict[str, Any] | None = None
|
| 444 |
+
audio_soft_tokens_per_image: int | None = 188
|
| 445 |
+
vision_soft_tokens_per_image: int | None = 256
|
| 446 |
+
boi_token_id: int | None = 255_999
|
| 447 |
+
eoi_token_id: int | None = 262_144
|
| 448 |
+
image_token_id: int | None = 262_145
|
| 449 |
+
boa_token_id: int | None = 256_000
|
| 450 |
+
eoa_token_id: int | None = 262_272
|
| 451 |
+
audio_token_id: int | None = 262_273
|
| 452 |
+
initializer_range: float | None = 0.02
|
| 453 |
+
tie_word_embeddings: bool | None = True
|
| 454 |
+
|
| 455 |
+
def __post_init__(self, **kwargs):
|
| 456 |
+
if self.text_config is None:
|
| 457 |
+
self.text_config = Gemma3nTextConfig()
|
| 458 |
+
logger.info("text_config is None, using default Gemma3nTextConfig text config.")
|
| 459 |
+
elif isinstance(self.text_config, dict):
|
| 460 |
+
self.text_config = Gemma3nTextConfig(**self.text_config)
|
| 461 |
+
|
| 462 |
+
if isinstance(self.vision_config, dict):
|
| 463 |
+
self.vision_config = Gemma3nVisionConfig(**self.vision_config)
|
| 464 |
+
elif self.vision_config is None:
|
| 465 |
+
self.vision_config = Gemma3nVisionConfig()
|
| 466 |
+
logger.info("vision_config is None, using default Gemma3nVisionConfig vision config.")
|
| 467 |
+
|
| 468 |
+
if isinstance(self.audio_config, dict):
|
| 469 |
+
self.audio_config = Gemma3nAudioConfig(**self.audio_config)
|
| 470 |
+
elif self.audio_config is None:
|
| 471 |
+
self.audio_config = Gemma3nAudioConfig()
|
| 472 |
+
logger.info("audio_config is None. Using default Gemma3nAudioConfig.")
|
| 473 |
+
|
| 474 |
+
super().__post_init__(**kwargs)
|
| 475 |
+
|
| 476 |
+
|
| 477 |
+
__all__ = ["Gemma3nAudioConfig", "Gemma3nConfig", "Gemma3nTextConfig", "Gemma3nVisionConfig"]
|
LTA_openwebtext_dualt/mini_owt_logdirichlet/.venv_qwen35_uv/lib/python3.12/site-packages/transformers/models/gemma3n/processing_gemma3n.py
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright 2025 Google Inc. HuggingFace Inc. team. All rights reserved.
|
| 2 |
+
#
|
| 3 |
+
#
|
| 4 |
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
| 5 |
+
# you may not use this file except in compliance with the License.
|
| 6 |
+
# You may obtain a copy of the License at
|
| 7 |
+
#
|
| 8 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 9 |
+
#
|
| 10 |
+
# Unless required by applicable law or agreed to in writing, software
|
| 11 |
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
| 12 |
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 13 |
+
# See the License for the specific language governing permissions and
|
| 14 |
+
# limitations under the License.
|
| 15 |
+
|
| 16 |
+
import numpy as np
|
| 17 |
+
|
| 18 |
+
from ...feature_extraction_utils import BatchFeature
|
| 19 |
+
from ...image_utils import ImageInput, make_nested_list_of_images
|
| 20 |
+
from ...processing_utils import ProcessingKwargs, ProcessorMixin, Unpack
|
| 21 |
+
from ...tokenization_utils_base import PreTokenizedInput, TextInput
|
| 22 |
+
from ...utils import auto_docstring
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
class Gemma3nProcessorKwargs(ProcessingKwargs, total=False):
|
| 26 |
+
_defaults = {
|
| 27 |
+
"text_kwargs": {"padding": False},
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
@auto_docstring
|
| 32 |
+
class Gemma3nProcessor(ProcessorMixin):
|
| 33 |
+
def __init__(
|
| 34 |
+
self,
|
| 35 |
+
feature_extractor,
|
| 36 |
+
image_processor,
|
| 37 |
+
tokenizer,
|
| 38 |
+
chat_template=None,
|
| 39 |
+
audio_seq_length: int = 188,
|
| 40 |
+
image_seq_length: int = 256,
|
| 41 |
+
**kwargs,
|
| 42 |
+
):
|
| 43 |
+
r"""
|
| 44 |
+
audio_seq_length (int, *optional*, defaults to 188):
|
| 45 |
+
The number of audio soft tokens that will be added to the text prompt
|
| 46 |
+
image_seq_length (int, *optional*, defaults to 256):
|
| 47 |
+
The number of image soft tokens that should be added to
|
| 48 |
+
"""
|
| 49 |
+
self.audio_seq_length = audio_seq_length
|
| 50 |
+
self.audio_token_id = tokenizer.audio_token_id
|
| 51 |
+
self.boa_token = tokenizer.boa_token
|
| 52 |
+
self.audio_token = tokenizer.audio_token
|
| 53 |
+
audio_tokens_expanded = "".join([tokenizer.audio_token] * audio_seq_length)
|
| 54 |
+
self.full_audio_sequence = f"\n\n{tokenizer.boa_token}{audio_tokens_expanded}{tokenizer.eoa_token}\n\n"
|
| 55 |
+
|
| 56 |
+
self.image_seq_length = image_seq_length
|
| 57 |
+
self.image_token_id = tokenizer.image_token_id
|
| 58 |
+
self.boi_token = tokenizer.boi_token
|
| 59 |
+
self.image_token = tokenizer.image_token
|
| 60 |
+
image_tokens_expanded = "".join([tokenizer.image_token] * image_seq_length)
|
| 61 |
+
self.full_image_sequence = f"\n\n{tokenizer.boi_token}{image_tokens_expanded}{tokenizer.eoi_token}\n\n"
|
| 62 |
+
|
| 63 |
+
super().__init__(
|
| 64 |
+
feature_extractor=feature_extractor,
|
| 65 |
+
image_processor=image_processor,
|
| 66 |
+
tokenizer=tokenizer,
|
| 67 |
+
chat_template=chat_template,
|
| 68 |
+
**kwargs,
|
| 69 |
+
)
|
| 70 |
+
|
| 71 |
+
@auto_docstring
|
| 72 |
+
def __call__(
|
| 73 |
+
self,
|
| 74 |
+
images: ImageInput | None = None,
|
| 75 |
+
text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] = None,
|
| 76 |
+
audio: np.ndarray | list[float] | list[np.ndarray] | list[list[float]] | None = None,
|
| 77 |
+
**kwargs: Unpack[Gemma3nProcessorKwargs],
|
| 78 |
+
) -> BatchFeature:
|
| 79 |
+
if text is None and images is None and audio is None:
|
| 80 |
+
raise ValueError("Provide at least one of `text`, `images`, or `audio`.")
|
| 81 |
+
|
| 82 |
+
output_kwargs = self._merge_kwargs(
|
| 83 |
+
Gemma3nProcessorKwargs,
|
| 84 |
+
tokenizer_init_kwargs=self.tokenizer.init_kwargs,
|
| 85 |
+
**kwargs,
|
| 86 |
+
)
|
| 87 |
+
|
| 88 |
+
if isinstance(text, str):
|
| 89 |
+
text = [text]
|
| 90 |
+
elif not isinstance(text, list) and not isinstance(text[0], str):
|
| 91 |
+
raise TypeError("Invalid input text. Please provide a string, or a list of strings")
|
| 92 |
+
|
| 93 |
+
if audio is not None:
|
| 94 |
+
audio_inputs = self.feature_extractor(audio, **output_kwargs["audio_kwargs"])
|
| 95 |
+
|
| 96 |
+
if not text:
|
| 97 |
+
text = [self.audio_token for _ in audio]
|
| 98 |
+
|
| 99 |
+
# Expand placeholder audio tokens to the full audio token sequence
|
| 100 |
+
text = [prompt.replace(self.audio_token, self.full_audio_sequence) for prompt in text]
|
| 101 |
+
else:
|
| 102 |
+
audio_inputs = {}
|
| 103 |
+
|
| 104 |
+
if images is not None:
|
| 105 |
+
images = self.image_processor.fetch_images(images)
|
| 106 |
+
batched_images = make_nested_list_of_images(images)
|
| 107 |
+
image_inputs = self.image_processor(batched_images, **output_kwargs["images_kwargs"])
|
| 108 |
+
|
| 109 |
+
# Create empty text to be replaced with placeholders
|
| 110 |
+
if not text:
|
| 111 |
+
text = [" ".join([self.image_token] * len(images)) for images in batched_images]
|
| 112 |
+
|
| 113 |
+
if len(batched_images) != len(text):
|
| 114 |
+
raise ValueError(
|
| 115 |
+
f"Received inconsistently sized batches of images ({len(batched_images)}) and text ({len(text)})."
|
| 116 |
+
)
|
| 117 |
+
|
| 118 |
+
# Expand placeholder image tokens to the full image token sequence
|
| 119 |
+
text = [prompt.replace(self.image_token, self.full_image_sequence) for prompt in text]
|
| 120 |
+
else:
|
| 121 |
+
image_inputs = {}
|
| 122 |
+
|
| 123 |
+
return_tensors = output_kwargs["text_kwargs"].pop("return_tensors", None)
|
| 124 |
+
text_inputs = self.tokenizer(text=text, **output_kwargs["text_kwargs"], return_tensors="np")
|
| 125 |
+
self._check_special_mm_tokens(text, text_inputs, modalities=["image"])
|
| 126 |
+
|
| 127 |
+
# Add token type ids manually, as tokenizer can't do arbitrary position token types
|
| 128 |
+
array_ids = text_inputs["input_ids"]
|
| 129 |
+
token_type_ids = np.zeros_like(array_ids)
|
| 130 |
+
token_type_ids[array_ids == self.image_token_id] = 1
|
| 131 |
+
token_type_ids[array_ids == self.audio_token_id] = 3
|
| 132 |
+
text_inputs = {k: v.tolist() for k, v in text_inputs.items()} # in case user requested list inputs
|
| 133 |
+
text_inputs["token_type_ids"] = token_type_ids.tolist()
|
| 134 |
+
return BatchFeature(data={**text_inputs, **image_inputs, **audio_inputs}, tensor_type=return_tensors)
|
| 135 |
+
|
| 136 |
+
@property
|
| 137 |
+
def model_input_names(self):
|
| 138 |
+
tokenizer_input_names = self.tokenizer.model_input_names + ["token_type_ids"]
|
| 139 |
+
image_processor_input_names = self.image_processor.model_input_names
|
| 140 |
+
audio_processor_input_names = self.feature_extractor.model_input_names
|
| 141 |
+
image_processor_input_names = [name for name in image_processor_input_names if name != "num_crops"]
|
| 142 |
+
return list(tokenizer_input_names + image_processor_input_names + audio_processor_input_names)
|
| 143 |
+
|
| 144 |
+
|
| 145 |
+
__all__ = ["Gemma3nProcessor"]
|