Upload folder using huggingface_hub
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +2 -0
- .gitignore +5 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/README.md +61 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/added_tokens.json +28 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/all_results.json +8 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/chat_template.jinja +89 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/config.json +30 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/generation_config.json +13 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/merges.txt +0 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/model-00001-of-00002.safetensors +3 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/model-00002-of-00002.safetensors +3 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/model.safetensors.index.json +406 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/special_tokens_map.json +31 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/tokenizer.json +3 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/tokenizer_config.json +240 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/train_results.json +8 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/trainer_log.jsonl +0 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/trainer_state.json +0 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/training_args.bin +3 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/training_loss.png +0 -0
- LLMs/qwen3-4b-base-sft-qwen3-8b/vocab.json +0 -0
- README.md +118 -0
- data/dapo-math-17k/dapo-math-17k.jsonl +3 -0
- math_jlens.egg-info/PKG-INFO +7 -0
- math_jlens.egg-info/SOURCES.txt +15 -0
- math_jlens.egg-info/dependency_links.txt +1 -0
- math_jlens.egg-info/entry_points.txt +2 -0
- math_jlens.egg-info/requires.txt +3 -0
- math_jlens.egg-info/top_level.txt +1 -0
- math_jlens/__init__.py +6 -0
- math_jlens/__pycache__/__init__.cpython-311.pyc +0 -0
- math_jlens/__pycache__/cli.cpython-311.pyc +0 -0
- math_jlens/__pycache__/corpus.cpython-311.pyc +0 -0
- math_jlens/__pycache__/explore.cpython-311.pyc +0 -0
- math_jlens/__pycache__/fitting.cpython-311.pyc +0 -0
- math_jlens/__pycache__/hooks.cpython-311.pyc +0 -0
- math_jlens/__pycache__/merge.cpython-311.pyc +0 -0
- math_jlens/__pycache__/model.cpython-311.pyc +0 -0
- math_jlens/cli.py +57 -0
- math_jlens/corpus.py +34 -0
- math_jlens/explore.py +495 -0
- math_jlens/fitting.py +160 -0
- math_jlens/hooks.py +40 -0
- math_jlens/merge.py +79 -0
- math_jlens/model.py +47 -0
- outputs/explorer-cache/seed-17-fit-20-sample-0.json +2058 -0
- outputs/multi-gpu-1000/lens-bf16.pt +3 -0
- outputs/multi-gpu-1000/shard-0/config.json +55 -0
- outputs/multi-gpu-1000/shard-0/fit-checkpoint-fp32.pt +3 -0
- outputs/multi-gpu-1000/shard-0/lens-bf16.pt +3 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
LLMs/qwen3-4b-base-sft-qwen3-8b/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
data/dapo-math-17k/dapo-math-17k.jsonl filter=lfs diff=lfs merge=lfs -text
|
.gitignore
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
__pycache__/
|
| 2 |
+
.pytest_cache/
|
| 3 |
+
*.egg-info/
|
| 4 |
+
outputs/
|
| 5 |
+
|
LLMs/qwen3-4b-base-sft-qwen3-8b/README.md
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
library_name: transformers
|
| 3 |
+
license: other
|
| 4 |
+
base_model: model_weights/qwen3-4b-base
|
| 5 |
+
tags:
|
| 6 |
+
- llama-factory
|
| 7 |
+
- full
|
| 8 |
+
- generated_from_trainer
|
| 9 |
+
model-index:
|
| 10 |
+
- name: qwen3-4b-base-sft-qwen3-8b
|
| 11 |
+
results: []
|
| 12 |
+
---
|
| 13 |
+
|
| 14 |
+
<!-- This model card has been generated automatically according to the information the Trainer had access to. You
|
| 15 |
+
should probably proofread and complete it, then remove this comment. -->
|
| 16 |
+
|
| 17 |
+
# qwen3-4b-base-sft-qwen3-8b
|
| 18 |
+
|
| 19 |
+
This model is a fine-tuned version of [model_weights/qwen3-4b-base](https://huggingface.co/model_weights/qwen3-4b-base) on the openthoughts3_300k_qwen3-8b dataset.
|
| 20 |
+
|
| 21 |
+
## Model description
|
| 22 |
+
|
| 23 |
+
More information needed
|
| 24 |
+
|
| 25 |
+
## Intended uses & limitations
|
| 26 |
+
|
| 27 |
+
More information needed
|
| 28 |
+
|
| 29 |
+
## Training and evaluation data
|
| 30 |
+
|
| 31 |
+
More information needed
|
| 32 |
+
|
| 33 |
+
## Training procedure
|
| 34 |
+
|
| 35 |
+
### Training hyperparameters
|
| 36 |
+
|
| 37 |
+
The following hyperparameters were used during training:
|
| 38 |
+
- learning_rate: 8e-05
|
| 39 |
+
- train_batch_size: 4
|
| 40 |
+
- eval_batch_size: 8
|
| 41 |
+
- seed: 42
|
| 42 |
+
- distributed_type: multi-GPU
|
| 43 |
+
- num_devices: 4
|
| 44 |
+
- gradient_accumulation_steps: 2
|
| 45 |
+
- total_train_batch_size: 32
|
| 46 |
+
- total_eval_batch_size: 32
|
| 47 |
+
- optimizer: Use adamw_torch with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments
|
| 48 |
+
- lr_scheduler_type: cosine
|
| 49 |
+
- lr_scheduler_warmup_ratio: 0.1
|
| 50 |
+
- training_steps: 3000
|
| 51 |
+
|
| 52 |
+
### Training results
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
### Framework versions
|
| 57 |
+
|
| 58 |
+
- Transformers 4.52.4
|
| 59 |
+
- Pytorch 2.12.0+cu130
|
| 60 |
+
- Datasets 3.6.0
|
| 61 |
+
- Tokenizers 0.21.1
|
LLMs/qwen3-4b-base-sft-qwen3-8b/added_tokens.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"</think>": 151668,
|
| 3 |
+
"</tool_call>": 151658,
|
| 4 |
+
"</tool_response>": 151666,
|
| 5 |
+
"<think>": 151667,
|
| 6 |
+
"<tool_call>": 151657,
|
| 7 |
+
"<tool_response>": 151665,
|
| 8 |
+
"<|box_end|>": 151649,
|
| 9 |
+
"<|box_start|>": 151648,
|
| 10 |
+
"<|endoftext|>": 151643,
|
| 11 |
+
"<|file_sep|>": 151664,
|
| 12 |
+
"<|fim_middle|>": 151660,
|
| 13 |
+
"<|fim_pad|>": 151662,
|
| 14 |
+
"<|fim_prefix|>": 151659,
|
| 15 |
+
"<|fim_suffix|>": 151661,
|
| 16 |
+
"<|im_end|>": 151645,
|
| 17 |
+
"<|im_start|>": 151644,
|
| 18 |
+
"<|image_pad|>": 151655,
|
| 19 |
+
"<|object_ref_end|>": 151647,
|
| 20 |
+
"<|object_ref_start|>": 151646,
|
| 21 |
+
"<|quad_end|>": 151651,
|
| 22 |
+
"<|quad_start|>": 151650,
|
| 23 |
+
"<|repo_name|>": 151663,
|
| 24 |
+
"<|video_pad|>": 151656,
|
| 25 |
+
"<|vision_end|>": 151653,
|
| 26 |
+
"<|vision_pad|>": 151654,
|
| 27 |
+
"<|vision_start|>": 151652
|
| 28 |
+
}
|
LLMs/qwen3-4b-base-sft-qwen3-8b/all_results.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"epoch": 0.34443168771526983,
|
| 3 |
+
"total_flos": 3.429011909561549e+19,
|
| 4 |
+
"train_loss": 0.27564545996983847,
|
| 5 |
+
"train_runtime": 45365.0148,
|
| 6 |
+
"train_samples_per_second": 2.116,
|
| 7 |
+
"train_steps_per_second": 0.066
|
| 8 |
+
}
|
LLMs/qwen3-4b-base-sft-qwen3-8b/chat_template.jinja
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{%- if tools %}
|
| 2 |
+
{{- '<|im_start|>system\n' }}
|
| 3 |
+
{%- if messages[0].role == 'system' %}
|
| 4 |
+
{{- messages[0].content + '\n\n' }}
|
| 5 |
+
{%- endif %}
|
| 6 |
+
{{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
|
| 7 |
+
{%- for tool in tools %}
|
| 8 |
+
{{- "\n" }}
|
| 9 |
+
{{- tool | tojson }}
|
| 10 |
+
{%- endfor %}
|
| 11 |
+
{{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
|
| 12 |
+
{%- else %}
|
| 13 |
+
{%- if messages[0].role == 'system' %}
|
| 14 |
+
{{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}
|
| 15 |
+
{%- endif %}
|
| 16 |
+
{%- endif %}
|
| 17 |
+
{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
|
| 18 |
+
{%- for message in messages[::-1] %}
|
| 19 |
+
{%- set index = (messages|length - 1) - loop.index0 %}
|
| 20 |
+
{%- if ns.multi_step_tool and message.role == "user" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}
|
| 21 |
+
{%- set ns.multi_step_tool = false %}
|
| 22 |
+
{%- set ns.last_query_index = index %}
|
| 23 |
+
{%- endif %}
|
| 24 |
+
{%- endfor %}
|
| 25 |
+
{%- for message in messages %}
|
| 26 |
+
{%- if message.content is string %}
|
| 27 |
+
{%- set content = message.content %}
|
| 28 |
+
{%- else %}
|
| 29 |
+
{%- set content = '' %}
|
| 30 |
+
{%- endif %}
|
| 31 |
+
{%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
|
| 32 |
+
{{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
|
| 33 |
+
{%- elif message.role == "assistant" %}
|
| 34 |
+
{%- set reasoning_content = '' %}
|
| 35 |
+
{%- if message.reasoning_content is string %}
|
| 36 |
+
{%- set reasoning_content = message.reasoning_content %}
|
| 37 |
+
{%- else %}
|
| 38 |
+
{%- if '</think>' in content %}
|
| 39 |
+
{%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
|
| 40 |
+
{%- set content = content.split('</think>')[-1].lstrip('\n') %}
|
| 41 |
+
{%- endif %}
|
| 42 |
+
{%- endif %}
|
| 43 |
+
{%- if loop.index0 > ns.last_query_index %}
|
| 44 |
+
{%- if loop.last or (not loop.last and reasoning_content) %}
|
| 45 |
+
{{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
|
| 46 |
+
{%- else %}
|
| 47 |
+
{{- '<|im_start|>' + message.role + '\n' + content }}
|
| 48 |
+
{%- endif %}
|
| 49 |
+
{%- else %}
|
| 50 |
+
{{- '<|im_start|>' + message.role + '\n' + content }}
|
| 51 |
+
{%- endif %}
|
| 52 |
+
{%- if message.tool_calls %}
|
| 53 |
+
{%- for tool_call in message.tool_calls %}
|
| 54 |
+
{%- if (loop.first and content) or (not loop.first) %}
|
| 55 |
+
{{- '\n' }}
|
| 56 |
+
{%- endif %}
|
| 57 |
+
{%- if tool_call.function %}
|
| 58 |
+
{%- set tool_call = tool_call.function %}
|
| 59 |
+
{%- endif %}
|
| 60 |
+
{{- '<tool_call>\n{"name": "' }}
|
| 61 |
+
{{- tool_call.name }}
|
| 62 |
+
{{- '", "arguments": ' }}
|
| 63 |
+
{%- if tool_call.arguments is string %}
|
| 64 |
+
{{- tool_call.arguments }}
|
| 65 |
+
{%- else %}
|
| 66 |
+
{{- tool_call.arguments | tojson }}
|
| 67 |
+
{%- endif %}
|
| 68 |
+
{{- '}\n</tool_call>' }}
|
| 69 |
+
{%- endfor %}
|
| 70 |
+
{%- endif %}
|
| 71 |
+
{{- '<|im_end|>\n' }}
|
| 72 |
+
{%- elif message.role == "tool" %}
|
| 73 |
+
{%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
|
| 74 |
+
{{- '<|im_start|>user' }}
|
| 75 |
+
{%- endif %}
|
| 76 |
+
{{- '\n<tool_response>\n' }}
|
| 77 |
+
{{- content }}
|
| 78 |
+
{{- '\n</tool_response>' }}
|
| 79 |
+
{%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
|
| 80 |
+
{{- '<|im_end|>\n' }}
|
| 81 |
+
{%- endif %}
|
| 82 |
+
{%- endif %}
|
| 83 |
+
{%- endfor %}
|
| 84 |
+
{%- if add_generation_prompt %}
|
| 85 |
+
{{- '<|im_start|>assistant\n' }}
|
| 86 |
+
{%- if enable_thinking is defined and enable_thinking is false %}
|
| 87 |
+
{{- '<think>\n\n</think>\n\n' }}
|
| 88 |
+
{%- endif %}
|
| 89 |
+
{%- endif %}
|
LLMs/qwen3-4b-base-sft-qwen3-8b/config.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"Qwen3ForCausalLM"
|
| 4 |
+
],
|
| 5 |
+
"attention_bias": false,
|
| 6 |
+
"attention_dropout": 0.0,
|
| 7 |
+
"bos_token_id": 151643,
|
| 8 |
+
"eos_token_id": 151645,
|
| 9 |
+
"head_dim": 128,
|
| 10 |
+
"hidden_act": "silu",
|
| 11 |
+
"hidden_size": 2560,
|
| 12 |
+
"initializer_range": 0.02,
|
| 13 |
+
"intermediate_size": 9728,
|
| 14 |
+
"max_position_embeddings": 40960,
|
| 15 |
+
"max_window_layers": 36,
|
| 16 |
+
"model_type": "qwen3",
|
| 17 |
+
"num_attention_heads": 32,
|
| 18 |
+
"num_hidden_layers": 36,
|
| 19 |
+
"num_key_value_heads": 8,
|
| 20 |
+
"rms_norm_eps": 1e-06,
|
| 21 |
+
"rope_scaling": null,
|
| 22 |
+
"rope_theta": 1000000,
|
| 23 |
+
"sliding_window": null,
|
| 24 |
+
"tie_word_embeddings": true,
|
| 25 |
+
"torch_dtype": "bfloat16",
|
| 26 |
+
"transformers_version": "4.52.4",
|
| 27 |
+
"use_cache": false,
|
| 28 |
+
"use_sliding_window": false,
|
| 29 |
+
"vocab_size": 151936
|
| 30 |
+
}
|
LLMs/qwen3-4b-base-sft-qwen3-8b/generation_config.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"bos_token_id": 151643,
|
| 3 |
+
"do_sample": true,
|
| 4 |
+
"eos_token_id": [
|
| 5 |
+
151645,
|
| 6 |
+
151643
|
| 7 |
+
],
|
| 8 |
+
"pad_token_id": 151643,
|
| 9 |
+
"temperature": 0.6,
|
| 10 |
+
"top_k": 20,
|
| 11 |
+
"top_p": 0.95,
|
| 12 |
+
"transformers_version": "4.52.4"
|
| 13 |
+
}
|
LLMs/qwen3-4b-base-sft-qwen3-8b/merges.txt
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
LLMs/qwen3-4b-base-sft-qwen3-8b/model-00001-of-00002.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:00619761893181a1e70ec80551accdf1a17b173a4cc956de5d744e42239ddda5
|
| 3 |
+
size 15190896
|
LLMs/qwen3-4b-base-sft-qwen3-8b/model-00002-of-00002.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:591aed33a9c8e68474a30fd166f755fa3a348f6d6c1c1ed5e1c49e329ff04051
|
| 3 |
+
size 18464796
|
LLMs/qwen3-4b-base-sft-qwen3-8b/model.safetensors.index.json
ADDED
|
@@ -0,0 +1,406 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"metadata": {
|
| 3 |
+
"total_size": 8822848512
|
| 4 |
+
},
|
| 5 |
+
"weight_map": {
|
| 6 |
+
"lm_head.weight": "model-00002-of-00002.safetensors",
|
| 7 |
+
"model.embed_tokens.weight": "model-00001-of-00002.safetensors",
|
| 8 |
+
"model.layers.0.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 9 |
+
"model.layers.0.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 10 |
+
"model.layers.0.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 11 |
+
"model.layers.0.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 12 |
+
"model.layers.0.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 13 |
+
"model.layers.0.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 14 |
+
"model.layers.0.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 15 |
+
"model.layers.0.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 16 |
+
"model.layers.0.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 17 |
+
"model.layers.0.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 18 |
+
"model.layers.0.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 19 |
+
"model.layers.1.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 20 |
+
"model.layers.1.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 21 |
+
"model.layers.1.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 22 |
+
"model.layers.1.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 23 |
+
"model.layers.1.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 24 |
+
"model.layers.1.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 25 |
+
"model.layers.1.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 26 |
+
"model.layers.1.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 27 |
+
"model.layers.1.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 28 |
+
"model.layers.1.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 29 |
+
"model.layers.1.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 30 |
+
"model.layers.10.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 31 |
+
"model.layers.10.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 32 |
+
"model.layers.10.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 33 |
+
"model.layers.10.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 34 |
+
"model.layers.10.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 35 |
+
"model.layers.10.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 36 |
+
"model.layers.10.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 37 |
+
"model.layers.10.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 38 |
+
"model.layers.10.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 39 |
+
"model.layers.10.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 40 |
+
"model.layers.10.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 41 |
+
"model.layers.11.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 42 |
+
"model.layers.11.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 43 |
+
"model.layers.11.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 44 |
+
"model.layers.11.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 45 |
+
"model.layers.11.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 46 |
+
"model.layers.11.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 47 |
+
"model.layers.11.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 48 |
+
"model.layers.11.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 49 |
+
"model.layers.11.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 50 |
+
"model.layers.11.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 51 |
+
"model.layers.11.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 52 |
+
"model.layers.12.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 53 |
+
"model.layers.12.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 54 |
+
"model.layers.12.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 55 |
+
"model.layers.12.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 56 |
+
"model.layers.12.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 57 |
+
"model.layers.12.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 58 |
+
"model.layers.12.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 59 |
+
"model.layers.12.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 60 |
+
"model.layers.12.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 61 |
+
"model.layers.12.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 62 |
+
"model.layers.12.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 63 |
+
"model.layers.13.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 64 |
+
"model.layers.13.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 65 |
+
"model.layers.13.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 66 |
+
"model.layers.13.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 67 |
+
"model.layers.13.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 68 |
+
"model.layers.13.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 69 |
+
"model.layers.13.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 70 |
+
"model.layers.13.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 71 |
+
"model.layers.13.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 72 |
+
"model.layers.13.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 73 |
+
"model.layers.13.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 74 |
+
"model.layers.14.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 75 |
+
"model.layers.14.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 76 |
+
"model.layers.14.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 77 |
+
"model.layers.14.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 78 |
+
"model.layers.14.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 79 |
+
"model.layers.14.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 80 |
+
"model.layers.14.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 81 |
+
"model.layers.14.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 82 |
+
"model.layers.14.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 83 |
+
"model.layers.14.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 84 |
+
"model.layers.14.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 85 |
+
"model.layers.15.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 86 |
+
"model.layers.15.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 87 |
+
"model.layers.15.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 88 |
+
"model.layers.15.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 89 |
+
"model.layers.15.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 90 |
+
"model.layers.15.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 91 |
+
"model.layers.15.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 92 |
+
"model.layers.15.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 93 |
+
"model.layers.15.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 94 |
+
"model.layers.15.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 95 |
+
"model.layers.15.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 96 |
+
"model.layers.16.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 97 |
+
"model.layers.16.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 98 |
+
"model.layers.16.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 99 |
+
"model.layers.16.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 100 |
+
"model.layers.16.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 101 |
+
"model.layers.16.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 102 |
+
"model.layers.16.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 103 |
+
"model.layers.16.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 104 |
+
"model.layers.16.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 105 |
+
"model.layers.16.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 106 |
+
"model.layers.16.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 107 |
+
"model.layers.17.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 108 |
+
"model.layers.17.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 109 |
+
"model.layers.17.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 110 |
+
"model.layers.17.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 111 |
+
"model.layers.17.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 112 |
+
"model.layers.17.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 113 |
+
"model.layers.17.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 114 |
+
"model.layers.17.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 115 |
+
"model.layers.17.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 116 |
+
"model.layers.17.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 117 |
+
"model.layers.17.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 118 |
+
"model.layers.18.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 119 |
+
"model.layers.18.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 120 |
+
"model.layers.18.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 121 |
+
"model.layers.18.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 122 |
+
"model.layers.18.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 123 |
+
"model.layers.18.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 124 |
+
"model.layers.18.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 125 |
+
"model.layers.18.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 126 |
+
"model.layers.18.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 127 |
+
"model.layers.18.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 128 |
+
"model.layers.18.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 129 |
+
"model.layers.19.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 130 |
+
"model.layers.19.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 131 |
+
"model.layers.19.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 132 |
+
"model.layers.19.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 133 |
+
"model.layers.19.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 134 |
+
"model.layers.19.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 135 |
+
"model.layers.19.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 136 |
+
"model.layers.19.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 137 |
+
"model.layers.19.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 138 |
+
"model.layers.19.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 139 |
+
"model.layers.19.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 140 |
+
"model.layers.2.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 141 |
+
"model.layers.2.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 142 |
+
"model.layers.2.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 143 |
+
"model.layers.2.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 144 |
+
"model.layers.2.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 145 |
+
"model.layers.2.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 146 |
+
"model.layers.2.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 147 |
+
"model.layers.2.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 148 |
+
"model.layers.2.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 149 |
+
"model.layers.2.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 150 |
+
"model.layers.2.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 151 |
+
"model.layers.20.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 152 |
+
"model.layers.20.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 153 |
+
"model.layers.20.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 154 |
+
"model.layers.20.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 155 |
+
"model.layers.20.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 156 |
+
"model.layers.20.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 157 |
+
"model.layers.20.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 158 |
+
"model.layers.20.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 159 |
+
"model.layers.20.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 160 |
+
"model.layers.20.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 161 |
+
"model.layers.20.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 162 |
+
"model.layers.21.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 163 |
+
"model.layers.21.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 164 |
+
"model.layers.21.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
|
| 165 |
+
"model.layers.21.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
|
| 166 |
+
"model.layers.21.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 167 |
+
"model.layers.21.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
|
| 168 |
+
"model.layers.21.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
|
| 169 |
+
"model.layers.21.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
|
| 170 |
+
"model.layers.21.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
|
| 171 |
+
"model.layers.21.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
|
| 172 |
+
"model.layers.21.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
|
| 173 |
+
"model.layers.22.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 174 |
+
"model.layers.22.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 175 |
+
"model.layers.22.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
|
| 176 |
+
"model.layers.22.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
|
| 177 |
+
"model.layers.22.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 178 |
+
"model.layers.22.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
|
| 179 |
+
"model.layers.22.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
|
| 180 |
+
"model.layers.22.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
|
| 181 |
+
"model.layers.22.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
|
| 182 |
+
"model.layers.22.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
|
| 183 |
+
"model.layers.22.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
|
| 184 |
+
"model.layers.23.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 185 |
+
"model.layers.23.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 186 |
+
"model.layers.23.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
|
| 187 |
+
"model.layers.23.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
|
| 188 |
+
"model.layers.23.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 189 |
+
"model.layers.23.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
|
| 190 |
+
"model.layers.23.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
|
| 191 |
+
"model.layers.23.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
|
| 192 |
+
"model.layers.23.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
|
| 193 |
+
"model.layers.23.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
|
| 194 |
+
"model.layers.23.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
|
| 195 |
+
"model.layers.24.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 196 |
+
"model.layers.24.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 197 |
+
"model.layers.24.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
|
| 198 |
+
"model.layers.24.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
|
| 199 |
+
"model.layers.24.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 200 |
+
"model.layers.24.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
|
| 201 |
+
"model.layers.24.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
|
| 202 |
+
"model.layers.24.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
|
| 203 |
+
"model.layers.24.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
|
| 204 |
+
"model.layers.24.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
|
| 205 |
+
"model.layers.24.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
|
| 206 |
+
"model.layers.25.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 207 |
+
"model.layers.25.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 208 |
+
"model.layers.25.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
|
| 209 |
+
"model.layers.25.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
|
| 210 |
+
"model.layers.25.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 211 |
+
"model.layers.25.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
|
| 212 |
+
"model.layers.25.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
|
| 213 |
+
"model.layers.25.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
|
| 214 |
+
"model.layers.25.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
|
| 215 |
+
"model.layers.25.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
|
| 216 |
+
"model.layers.25.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
|
| 217 |
+
"model.layers.26.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 218 |
+
"model.layers.26.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 219 |
+
"model.layers.26.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
|
| 220 |
+
"model.layers.26.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
|
| 221 |
+
"model.layers.26.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 222 |
+
"model.layers.26.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
|
| 223 |
+
"model.layers.26.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
|
| 224 |
+
"model.layers.26.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
|
| 225 |
+
"model.layers.26.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
|
| 226 |
+
"model.layers.26.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
|
| 227 |
+
"model.layers.26.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
|
| 228 |
+
"model.layers.27.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 229 |
+
"model.layers.27.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 230 |
+
"model.layers.27.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
|
| 231 |
+
"model.layers.27.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
|
| 232 |
+
"model.layers.27.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 233 |
+
"model.layers.27.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
|
| 234 |
+
"model.layers.27.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
|
| 235 |
+
"model.layers.27.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
|
| 236 |
+
"model.layers.27.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
|
| 237 |
+
"model.layers.27.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
|
| 238 |
+
"model.layers.27.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
|
| 239 |
+
"model.layers.28.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 240 |
+
"model.layers.28.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 241 |
+
"model.layers.28.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
|
| 242 |
+
"model.layers.28.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
|
| 243 |
+
"model.layers.28.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 244 |
+
"model.layers.28.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
|
| 245 |
+
"model.layers.28.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
|
| 246 |
+
"model.layers.28.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
|
| 247 |
+
"model.layers.28.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
|
| 248 |
+
"model.layers.28.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
|
| 249 |
+
"model.layers.28.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
|
| 250 |
+
"model.layers.29.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 251 |
+
"model.layers.29.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 252 |
+
"model.layers.29.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
|
| 253 |
+
"model.layers.29.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
|
| 254 |
+
"model.layers.29.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 255 |
+
"model.layers.29.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
|
| 256 |
+
"model.layers.29.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
|
| 257 |
+
"model.layers.29.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
|
| 258 |
+
"model.layers.29.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
|
| 259 |
+
"model.layers.29.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
|
| 260 |
+
"model.layers.29.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
|
| 261 |
+
"model.layers.3.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 262 |
+
"model.layers.3.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 263 |
+
"model.layers.3.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 264 |
+
"model.layers.3.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 265 |
+
"model.layers.3.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 266 |
+
"model.layers.3.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 267 |
+
"model.layers.3.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 268 |
+
"model.layers.3.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 269 |
+
"model.layers.3.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 270 |
+
"model.layers.3.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 271 |
+
"model.layers.3.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 272 |
+
"model.layers.30.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 273 |
+
"model.layers.30.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 274 |
+
"model.layers.30.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
|
| 275 |
+
"model.layers.30.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
|
| 276 |
+
"model.layers.30.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 277 |
+
"model.layers.30.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
|
| 278 |
+
"model.layers.30.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
|
| 279 |
+
"model.layers.30.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
|
| 280 |
+
"model.layers.30.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
|
| 281 |
+
"model.layers.30.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
|
| 282 |
+
"model.layers.30.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
|
| 283 |
+
"model.layers.31.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 284 |
+
"model.layers.31.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 285 |
+
"model.layers.31.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
|
| 286 |
+
"model.layers.31.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
|
| 287 |
+
"model.layers.31.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 288 |
+
"model.layers.31.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
|
| 289 |
+
"model.layers.31.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
|
| 290 |
+
"model.layers.31.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
|
| 291 |
+
"model.layers.31.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
|
| 292 |
+
"model.layers.31.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
|
| 293 |
+
"model.layers.31.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
|
| 294 |
+
"model.layers.32.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 295 |
+
"model.layers.32.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 296 |
+
"model.layers.32.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
|
| 297 |
+
"model.layers.32.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
|
| 298 |
+
"model.layers.32.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 299 |
+
"model.layers.32.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
|
| 300 |
+
"model.layers.32.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
|
| 301 |
+
"model.layers.32.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
|
| 302 |
+
"model.layers.32.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
|
| 303 |
+
"model.layers.32.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
|
| 304 |
+
"model.layers.32.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
|
| 305 |
+
"model.layers.33.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 306 |
+
"model.layers.33.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 307 |
+
"model.layers.33.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
|
| 308 |
+
"model.layers.33.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
|
| 309 |
+
"model.layers.33.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 310 |
+
"model.layers.33.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
|
| 311 |
+
"model.layers.33.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
|
| 312 |
+
"model.layers.33.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
|
| 313 |
+
"model.layers.33.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
|
| 314 |
+
"model.layers.33.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
|
| 315 |
+
"model.layers.33.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
|
| 316 |
+
"model.layers.34.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 317 |
+
"model.layers.34.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 318 |
+
"model.layers.34.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
|
| 319 |
+
"model.layers.34.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
|
| 320 |
+
"model.layers.34.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 321 |
+
"model.layers.34.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
|
| 322 |
+
"model.layers.34.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
|
| 323 |
+
"model.layers.34.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
|
| 324 |
+
"model.layers.34.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
|
| 325 |
+
"model.layers.34.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
|
| 326 |
+
"model.layers.34.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
|
| 327 |
+
"model.layers.35.input_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 328 |
+
"model.layers.35.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
|
| 329 |
+
"model.layers.35.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
|
| 330 |
+
"model.layers.35.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
|
| 331 |
+
"model.layers.35.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
|
| 332 |
+
"model.layers.35.self_attn.k_norm.weight": "model-00002-of-00002.safetensors",
|
| 333 |
+
"model.layers.35.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
|
| 334 |
+
"model.layers.35.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
|
| 335 |
+
"model.layers.35.self_attn.q_norm.weight": "model-00002-of-00002.safetensors",
|
| 336 |
+
"model.layers.35.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
|
| 337 |
+
"model.layers.35.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
|
| 338 |
+
"model.layers.4.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 339 |
+
"model.layers.4.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 340 |
+
"model.layers.4.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 341 |
+
"model.layers.4.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 342 |
+
"model.layers.4.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 343 |
+
"model.layers.4.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 344 |
+
"model.layers.4.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 345 |
+
"model.layers.4.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 346 |
+
"model.layers.4.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 347 |
+
"model.layers.4.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 348 |
+
"model.layers.4.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 349 |
+
"model.layers.5.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 350 |
+
"model.layers.5.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 351 |
+
"model.layers.5.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 352 |
+
"model.layers.5.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 353 |
+
"model.layers.5.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 354 |
+
"model.layers.5.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 355 |
+
"model.layers.5.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 356 |
+
"model.layers.5.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 357 |
+
"model.layers.5.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 358 |
+
"model.layers.5.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 359 |
+
"model.layers.5.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 360 |
+
"model.layers.6.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 361 |
+
"model.layers.6.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 362 |
+
"model.layers.6.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 363 |
+
"model.layers.6.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 364 |
+
"model.layers.6.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 365 |
+
"model.layers.6.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 366 |
+
"model.layers.6.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 367 |
+
"model.layers.6.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 368 |
+
"model.layers.6.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 369 |
+
"model.layers.6.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 370 |
+
"model.layers.6.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 371 |
+
"model.layers.7.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 372 |
+
"model.layers.7.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 373 |
+
"model.layers.7.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 374 |
+
"model.layers.7.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 375 |
+
"model.layers.7.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 376 |
+
"model.layers.7.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 377 |
+
"model.layers.7.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 378 |
+
"model.layers.7.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 379 |
+
"model.layers.7.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 380 |
+
"model.layers.7.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 381 |
+
"model.layers.7.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 382 |
+
"model.layers.8.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 383 |
+
"model.layers.8.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 384 |
+
"model.layers.8.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 385 |
+
"model.layers.8.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 386 |
+
"model.layers.8.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 387 |
+
"model.layers.8.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 388 |
+
"model.layers.8.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 389 |
+
"model.layers.8.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 390 |
+
"model.layers.8.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 391 |
+
"model.layers.8.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 392 |
+
"model.layers.8.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 393 |
+
"model.layers.9.input_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 394 |
+
"model.layers.9.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
|
| 395 |
+
"model.layers.9.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
|
| 396 |
+
"model.layers.9.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
|
| 397 |
+
"model.layers.9.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
|
| 398 |
+
"model.layers.9.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
|
| 399 |
+
"model.layers.9.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
|
| 400 |
+
"model.layers.9.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
|
| 401 |
+
"model.layers.9.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
|
| 402 |
+
"model.layers.9.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
|
| 403 |
+
"model.layers.9.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
|
| 404 |
+
"model.norm.weight": "model-00002-of-00002.safetensors"
|
| 405 |
+
}
|
| 406 |
+
}
|
LLMs/qwen3-4b-base-sft-qwen3-8b/special_tokens_map.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"additional_special_tokens": [
|
| 3 |
+
"<|im_start|>",
|
| 4 |
+
"<|im_end|>",
|
| 5 |
+
"<|object_ref_start|>",
|
| 6 |
+
"<|object_ref_end|>",
|
| 7 |
+
"<|box_start|>",
|
| 8 |
+
"<|box_end|>",
|
| 9 |
+
"<|quad_start|>",
|
| 10 |
+
"<|quad_end|>",
|
| 11 |
+
"<|vision_start|>",
|
| 12 |
+
"<|vision_end|>",
|
| 13 |
+
"<|vision_pad|>",
|
| 14 |
+
"<|image_pad|>",
|
| 15 |
+
"<|video_pad|>"
|
| 16 |
+
],
|
| 17 |
+
"eos_token": {
|
| 18 |
+
"content": "<|im_end|>",
|
| 19 |
+
"lstrip": false,
|
| 20 |
+
"normalized": false,
|
| 21 |
+
"rstrip": false,
|
| 22 |
+
"single_word": false
|
| 23 |
+
},
|
| 24 |
+
"pad_token": {
|
| 25 |
+
"content": "<|endoftext|>",
|
| 26 |
+
"lstrip": false,
|
| 27 |
+
"normalized": false,
|
| 28 |
+
"rstrip": false,
|
| 29 |
+
"single_word": false
|
| 30 |
+
}
|
| 31 |
+
}
|
LLMs/qwen3-4b-base-sft-qwen3-8b/tokenizer.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4
|
| 3 |
+
size 11422654
|
LLMs/qwen3-4b-base-sft-qwen3-8b/tokenizer_config.json
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_bos_token": false,
|
| 3 |
+
"add_prefix_space": false,
|
| 4 |
+
"added_tokens_decoder": {
|
| 5 |
+
"151643": {
|
| 6 |
+
"content": "<|endoftext|>",
|
| 7 |
+
"lstrip": false,
|
| 8 |
+
"normalized": false,
|
| 9 |
+
"rstrip": false,
|
| 10 |
+
"single_word": false,
|
| 11 |
+
"special": true
|
| 12 |
+
},
|
| 13 |
+
"151644": {
|
| 14 |
+
"content": "<|im_start|>",
|
| 15 |
+
"lstrip": false,
|
| 16 |
+
"normalized": false,
|
| 17 |
+
"rstrip": false,
|
| 18 |
+
"single_word": false,
|
| 19 |
+
"special": true
|
| 20 |
+
},
|
| 21 |
+
"151645": {
|
| 22 |
+
"content": "<|im_end|>",
|
| 23 |
+
"lstrip": false,
|
| 24 |
+
"normalized": false,
|
| 25 |
+
"rstrip": false,
|
| 26 |
+
"single_word": false,
|
| 27 |
+
"special": true
|
| 28 |
+
},
|
| 29 |
+
"151646": {
|
| 30 |
+
"content": "<|object_ref_start|>",
|
| 31 |
+
"lstrip": false,
|
| 32 |
+
"normalized": false,
|
| 33 |
+
"rstrip": false,
|
| 34 |
+
"single_word": false,
|
| 35 |
+
"special": true
|
| 36 |
+
},
|
| 37 |
+
"151647": {
|
| 38 |
+
"content": "<|object_ref_end|>",
|
| 39 |
+
"lstrip": false,
|
| 40 |
+
"normalized": false,
|
| 41 |
+
"rstrip": false,
|
| 42 |
+
"single_word": false,
|
| 43 |
+
"special": true
|
| 44 |
+
},
|
| 45 |
+
"151648": {
|
| 46 |
+
"content": "<|box_start|>",
|
| 47 |
+
"lstrip": false,
|
| 48 |
+
"normalized": false,
|
| 49 |
+
"rstrip": false,
|
| 50 |
+
"single_word": false,
|
| 51 |
+
"special": true
|
| 52 |
+
},
|
| 53 |
+
"151649": {
|
| 54 |
+
"content": "<|box_end|>",
|
| 55 |
+
"lstrip": false,
|
| 56 |
+
"normalized": false,
|
| 57 |
+
"rstrip": false,
|
| 58 |
+
"single_word": false,
|
| 59 |
+
"special": true
|
| 60 |
+
},
|
| 61 |
+
"151650": {
|
| 62 |
+
"content": "<|quad_start|>",
|
| 63 |
+
"lstrip": false,
|
| 64 |
+
"normalized": false,
|
| 65 |
+
"rstrip": false,
|
| 66 |
+
"single_word": false,
|
| 67 |
+
"special": true
|
| 68 |
+
},
|
| 69 |
+
"151651": {
|
| 70 |
+
"content": "<|quad_end|>",
|
| 71 |
+
"lstrip": false,
|
| 72 |
+
"normalized": false,
|
| 73 |
+
"rstrip": false,
|
| 74 |
+
"single_word": false,
|
| 75 |
+
"special": true
|
| 76 |
+
},
|
| 77 |
+
"151652": {
|
| 78 |
+
"content": "<|vision_start|>",
|
| 79 |
+
"lstrip": false,
|
| 80 |
+
"normalized": false,
|
| 81 |
+
"rstrip": false,
|
| 82 |
+
"single_word": false,
|
| 83 |
+
"special": true
|
| 84 |
+
},
|
| 85 |
+
"151653": {
|
| 86 |
+
"content": "<|vision_end|>",
|
| 87 |
+
"lstrip": false,
|
| 88 |
+
"normalized": false,
|
| 89 |
+
"rstrip": false,
|
| 90 |
+
"single_word": false,
|
| 91 |
+
"special": true
|
| 92 |
+
},
|
| 93 |
+
"151654": {
|
| 94 |
+
"content": "<|vision_pad|>",
|
| 95 |
+
"lstrip": false,
|
| 96 |
+
"normalized": false,
|
| 97 |
+
"rstrip": false,
|
| 98 |
+
"single_word": false,
|
| 99 |
+
"special": true
|
| 100 |
+
},
|
| 101 |
+
"151655": {
|
| 102 |
+
"content": "<|image_pad|>",
|
| 103 |
+
"lstrip": false,
|
| 104 |
+
"normalized": false,
|
| 105 |
+
"rstrip": false,
|
| 106 |
+
"single_word": false,
|
| 107 |
+
"special": true
|
| 108 |
+
},
|
| 109 |
+
"151656": {
|
| 110 |
+
"content": "<|video_pad|>",
|
| 111 |
+
"lstrip": false,
|
| 112 |
+
"normalized": false,
|
| 113 |
+
"rstrip": false,
|
| 114 |
+
"single_word": false,
|
| 115 |
+
"special": true
|
| 116 |
+
},
|
| 117 |
+
"151657": {
|
| 118 |
+
"content": "<tool_call>",
|
| 119 |
+
"lstrip": false,
|
| 120 |
+
"normalized": false,
|
| 121 |
+
"rstrip": false,
|
| 122 |
+
"single_word": false,
|
| 123 |
+
"special": false
|
| 124 |
+
},
|
| 125 |
+
"151658": {
|
| 126 |
+
"content": "</tool_call>",
|
| 127 |
+
"lstrip": false,
|
| 128 |
+
"normalized": false,
|
| 129 |
+
"rstrip": false,
|
| 130 |
+
"single_word": false,
|
| 131 |
+
"special": false
|
| 132 |
+
},
|
| 133 |
+
"151659": {
|
| 134 |
+
"content": "<|fim_prefix|>",
|
| 135 |
+
"lstrip": false,
|
| 136 |
+
"normalized": false,
|
| 137 |
+
"rstrip": false,
|
| 138 |
+
"single_word": false,
|
| 139 |
+
"special": false
|
| 140 |
+
},
|
| 141 |
+
"151660": {
|
| 142 |
+
"content": "<|fim_middle|>",
|
| 143 |
+
"lstrip": false,
|
| 144 |
+
"normalized": false,
|
| 145 |
+
"rstrip": false,
|
| 146 |
+
"single_word": false,
|
| 147 |
+
"special": false
|
| 148 |
+
},
|
| 149 |
+
"151661": {
|
| 150 |
+
"content": "<|fim_suffix|>",
|
| 151 |
+
"lstrip": false,
|
| 152 |
+
"normalized": false,
|
| 153 |
+
"rstrip": false,
|
| 154 |
+
"single_word": false,
|
| 155 |
+
"special": false
|
| 156 |
+
},
|
| 157 |
+
"151662": {
|
| 158 |
+
"content": "<|fim_pad|>",
|
| 159 |
+
"lstrip": false,
|
| 160 |
+
"normalized": false,
|
| 161 |
+
"rstrip": false,
|
| 162 |
+
"single_word": false,
|
| 163 |
+
"special": false
|
| 164 |
+
},
|
| 165 |
+
"151663": {
|
| 166 |
+
"content": "<|repo_name|>",
|
| 167 |
+
"lstrip": false,
|
| 168 |
+
"normalized": false,
|
| 169 |
+
"rstrip": false,
|
| 170 |
+
"single_word": false,
|
| 171 |
+
"special": false
|
| 172 |
+
},
|
| 173 |
+
"151664": {
|
| 174 |
+
"content": "<|file_sep|>",
|
| 175 |
+
"lstrip": false,
|
| 176 |
+
"normalized": false,
|
| 177 |
+
"rstrip": false,
|
| 178 |
+
"single_word": false,
|
| 179 |
+
"special": false
|
| 180 |
+
},
|
| 181 |
+
"151665": {
|
| 182 |
+
"content": "<tool_response>",
|
| 183 |
+
"lstrip": false,
|
| 184 |
+
"normalized": false,
|
| 185 |
+
"rstrip": false,
|
| 186 |
+
"single_word": false,
|
| 187 |
+
"special": false
|
| 188 |
+
},
|
| 189 |
+
"151666": {
|
| 190 |
+
"content": "</tool_response>",
|
| 191 |
+
"lstrip": false,
|
| 192 |
+
"normalized": false,
|
| 193 |
+
"rstrip": false,
|
| 194 |
+
"single_word": false,
|
| 195 |
+
"special": false
|
| 196 |
+
},
|
| 197 |
+
"151667": {
|
| 198 |
+
"content": "<think>",
|
| 199 |
+
"lstrip": false,
|
| 200 |
+
"normalized": false,
|
| 201 |
+
"rstrip": false,
|
| 202 |
+
"single_word": false,
|
| 203 |
+
"special": false
|
| 204 |
+
},
|
| 205 |
+
"151668": {
|
| 206 |
+
"content": "</think>",
|
| 207 |
+
"lstrip": false,
|
| 208 |
+
"normalized": false,
|
| 209 |
+
"rstrip": false,
|
| 210 |
+
"single_word": false,
|
| 211 |
+
"special": false
|
| 212 |
+
}
|
| 213 |
+
},
|
| 214 |
+
"additional_special_tokens": [
|
| 215 |
+
"<|im_start|>",
|
| 216 |
+
"<|im_end|>",
|
| 217 |
+
"<|object_ref_start|>",
|
| 218 |
+
"<|object_ref_end|>",
|
| 219 |
+
"<|box_start|>",
|
| 220 |
+
"<|box_end|>",
|
| 221 |
+
"<|quad_start|>",
|
| 222 |
+
"<|quad_end|>",
|
| 223 |
+
"<|vision_start|>",
|
| 224 |
+
"<|vision_end|>",
|
| 225 |
+
"<|vision_pad|>",
|
| 226 |
+
"<|image_pad|>",
|
| 227 |
+
"<|video_pad|>"
|
| 228 |
+
],
|
| 229 |
+
"bos_token": null,
|
| 230 |
+
"clean_up_tokenization_spaces": false,
|
| 231 |
+
"eos_token": "<|im_end|>",
|
| 232 |
+
"errors": "replace",
|
| 233 |
+
"extra_special_tokens": {},
|
| 234 |
+
"model_max_length": 131072,
|
| 235 |
+
"pad_token": "<|endoftext|>",
|
| 236 |
+
"padding_side": "right",
|
| 237 |
+
"split_special_tokens": false,
|
| 238 |
+
"tokenizer_class": "Qwen2Tokenizer",
|
| 239 |
+
"unk_token": null
|
| 240 |
+
}
|
LLMs/qwen3-4b-base-sft-qwen3-8b/train_results.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"epoch": 0.34443168771526983,
|
| 3 |
+
"total_flos": 3.429011909561549e+19,
|
| 4 |
+
"train_loss": 0.27564545996983847,
|
| 5 |
+
"train_runtime": 45365.0148,
|
| 6 |
+
"train_samples_per_second": 2.116,
|
| 7 |
+
"train_steps_per_second": 0.066
|
| 8 |
+
}
|
LLMs/qwen3-4b-base-sft-qwen3-8b/trainer_log.jsonl
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
LLMs/qwen3-4b-base-sft-qwen3-8b/trainer_state.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
LLMs/qwen3-4b-base-sft-qwen3-8b/training_args.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b28ccff420c215e9d7eaa03851e14301ec0e1720a9cca5e39fab81383ec4e4a7
|
| 3 |
+
size 7377
|
LLMs/qwen3-4b-base-sft-qwen3-8b/training_loss.png
ADDED
|
LLMs/qwen3-4b-base-sft-qwen3-8b/vocab.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
README.md
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# DAPO Math Jacobian matrices
|
| 2 |
+
|
| 3 |
+
Fits averaged Jacobian transport matrices from Anthropic's Jacobian Lens
|
| 4 |
+
method on a local Qwen checkpoint and DAPO Math prompts.
|
| 5 |
+
|
| 6 |
+
For block output `l` and target block output `L`:
|
| 7 |
+
|
| 8 |
+
```text
|
| 9 |
+
J_l = E_prompt,source-position,future-target-position[d h_L / d h_l]
|
| 10 |
+
```
|
| 11 |
+
|
| 12 |
+
The estimator follows Anthropic's Apache-2.0
|
| 13 |
+
[`jacobian-lens`](https://github.com/anthropics/jacobian-lens) reference code.
|
| 14 |
+
|
| 15 |
+
## Layer convention
|
| 16 |
+
|
| 17 |
+
Qwen3-4B has 36 transformer blocks indexed `0..35`. The default target is the
|
| 18 |
+
output of block 35, and matrices are fitted for block outputs `0..34`. The
|
| 19 |
+
target-to-itself map is exactly identity and is included as matrix 35, giving
|
| 20 |
+
one exported matrix for every transformer-block output. The embedding boundary
|
| 21 |
+
is not included in this first version.
|
| 22 |
+
|
| 23 |
+
## Install and smoke fit
|
| 24 |
+
|
| 25 |
+
```bash
|
| 26 |
+
python -m pip install -e .
|
| 27 |
+
fit-jacobians \
|
| 28 |
+
--model LLMs/qwen3-4b-base-sft-qwen3-8b \
|
| 29 |
+
--data data/dapo-math-17k/dapo-math-17k.jsonl \
|
| 30 |
+
--num-prompts 20 \
|
| 31 |
+
--dim-batch 8 \
|
| 32 |
+
--output-dir outputs/smoke-20
|
| 33 |
+
```
|
| 34 |
+
|
| 35 |
+
The resumable checkpoint keeps FP32 sums. `lens-bf16.pt` contains the final
|
| 36 |
+
BF16 means. Increase `--dim-batch` only if GPU memory permits.
|
| 37 |
+
|
| 38 |
+
For the main fit, change `--num-prompts` to `1000` and preferably set
|
| 39 |
+
`--checkpoint-every 10`.
|
| 40 |
+
|
| 41 |
+
## Multiple GPUs
|
| 42 |
+
|
| 43 |
+
The multi-GPU launcher fits disjoint prompt shards with one complete model
|
| 44 |
+
replica per GPU, then merges the FP32 sums exactly before converting to BF16:
|
| 45 |
+
|
| 46 |
+
```bash
|
| 47 |
+
GPUS=0,1,2,3 \
|
| 48 |
+
NUM_PROMPTS=1000 \
|
| 49 |
+
OUTPUT_DIR=outputs/main-1000 \
|
| 50 |
+
bash scripts/fit_multi_gpu.sh
|
| 51 |
+
```
|
| 52 |
+
|
| 53 |
+
For two GPUs and the default 20-prompt smoke test:
|
| 54 |
+
|
| 55 |
+
```bash
|
| 56 |
+
GPUS=0,1 bash scripts/fit_multi_gpu.sh
|
| 57 |
+
```
|
| 58 |
+
|
| 59 |
+
Optional variables include `DIM_BATCH`, `MAX_SEQ_LEN`, `CHECKPOINT_EVERY`,
|
| 60 |
+
`MODEL_PATH`, `DATA_PATH`, `SEED`, and `PYTHON_BIN`. Each process sees its
|
| 61 |
+
assigned physical GPU as `cuda:0`. Failed shards retain their checkpoints, so
|
| 62 |
+
running the same command resumes them rather than restarting.
|
| 63 |
+
|
| 64 |
+
This first stage uses question text only. Prompt-plus-rollout windows require a
|
| 65 |
+
separate frozen rollout corpus; adding that corpus is the next stage and does
|
| 66 |
+
not change the Jacobian estimator.
|
| 67 |
+
|
| 68 |
+
## Interactive sanity check
|
| 69 |
+
|
| 70 |
+
Use held-out samples after the fitting range. For a lens fitted with the first
|
| 71 |
+
20 seed-17 shuffled prompts:
|
| 72 |
+
|
| 73 |
+
```bash
|
| 74 |
+
python -m math_jlens.explore \
|
| 75 |
+
--model LLMs/qwen3-4b-base-sft-qwen3-8b \
|
| 76 |
+
--data data/dapo-math-17k/dapo-math-17k.jsonl \
|
| 77 |
+
--lens outputs/multi-gpu-smoke-20/lens-bf16.pt \
|
| 78 |
+
--fit-count 20 \
|
| 79 |
+
--seed 17 \
|
| 80 |
+
--sample-index 0 \
|
| 81 |
+
--device cuda:0
|
| 82 |
+
```
|
| 83 |
+
|
| 84 |
+
The explorer generates one deterministic solution, caches it, performs a
|
| 85 |
+
teacher-forced residual capture, and opens a prompt. Useful commands:
|
| 86 |
+
|
| 87 |
+
```text
|
| 88 |
+
tokens [start] [end] show token positions (P=prompt, R=response)
|
| 89 |
+
inspect POSITION [TOP_K] top J-lens tokens across every layer
|
| 90 |
+
compare POSITION LAYER compare J-lens against ordinary logit lens
|
| 91 |
+
trace "TOKEN TEXT" [POSITION] show token ranks across layers
|
| 92 |
+
save START END [LAYER|all] [TOP_K] [FILE]
|
| 93 |
+
export original and J-lens tokens to text
|
| 94 |
+
answer trace the first gold-answer token before output
|
| 95 |
+
problem show the complete DAPO problem
|
| 96 |
+
output show the complete generated solution
|
| 97 |
+
result show extracted answer, ground truth, and match
|
| 98 |
+
info show sample, problem, output, and result together
|
| 99 |
+
sample INDEX load another held-out sample
|
| 100 |
+
next load the next held-out sample
|
| 101 |
+
quit
|
| 102 |
+
```
|
| 103 |
+
|
| 104 |
+
At activation position `t`, the readout predicts token `t+1`; the interface
|
| 105 |
+
always prints both tokens to prevent an off-by-one interpretation.
|
| 106 |
+
|
| 107 |
+
Examples of text export:
|
| 108 |
+
|
| 109 |
+
```text
|
| 110 |
+
save 200 220 all layers, top 5, automatic filename
|
| 111 |
+
save 200 220 18 layer 18 only, top 5
|
| 112 |
+
save 200 220 all 10 all layers, top 10
|
| 113 |
+
save 200 220 18 10 report.txt layer 18, top 10, explicit filename
|
| 114 |
+
```
|
| 115 |
+
|
| 116 |
+
`END` is exclusive. Automatic files are written under
|
| 117 |
+
`outputs/jlens-exports/` and include the original token, next predicted token,
|
| 118 |
+
token IDs, mapped J-lens tokens, ranks, and logits.
|
data/dapo-math-17k/dapo-math-17k.jsonl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:cc9c39c2aa19177abe9464741e121cf4cac90fd25484ef3cdf86535101e3a5b6
|
| 3 |
+
size 10490834
|
math_jlens.egg-info/PKG-INFO
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Metadata-Version: 2.4
|
| 2 |
+
Name: math-jlens
|
| 3 |
+
Version: 0.1.0
|
| 4 |
+
Requires-Python: >=3.11
|
| 5 |
+
Requires-Dist: torch>=2.6
|
| 6 |
+
Requires-Dist: transformers>=4.53
|
| 7 |
+
Requires-Dist: tqdm>=4.67
|
math_jlens.egg-info/SOURCES.txt
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
README.md
|
| 2 |
+
pyproject.toml
|
| 3 |
+
math_jlens/__init__.py
|
| 4 |
+
math_jlens/cli.py
|
| 5 |
+
math_jlens/corpus.py
|
| 6 |
+
math_jlens/fitting.py
|
| 7 |
+
math_jlens/hooks.py
|
| 8 |
+
math_jlens/model.py
|
| 9 |
+
math_jlens.egg-info/PKG-INFO
|
| 10 |
+
math_jlens.egg-info/SOURCES.txt
|
| 11 |
+
math_jlens.egg-info/dependency_links.txt
|
| 12 |
+
math_jlens.egg-info/entry_points.txt
|
| 13 |
+
math_jlens.egg-info/requires.txt
|
| 14 |
+
math_jlens.egg-info/top_level.txt
|
| 15 |
+
tests/test_fitting.py
|
math_jlens.egg-info/dependency_links.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
|
math_jlens.egg-info/entry_points.txt
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[console_scripts]
|
| 2 |
+
fit-jacobians = math_jlens.cli:main
|
math_jlens.egg-info/requires.txt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
torch>=2.6
|
| 2 |
+
transformers>=4.53
|
| 3 |
+
tqdm>=4.67
|
math_jlens.egg-info/top_level.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
math_jlens
|
math_jlens/__init__.py
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Math-domain Jacobian lens fitting."""
|
| 2 |
+
|
| 3 |
+
from .fitting import fit, jacobian_for_tokens
|
| 4 |
+
|
| 5 |
+
__all__ = ["fit", "jacobian_for_tokens"]
|
| 6 |
+
|
math_jlens/__pycache__/__init__.cpython-311.pyc
ADDED
|
Binary file (332 Bytes). View file
|
|
|
math_jlens/__pycache__/cli.cpython-311.pyc
ADDED
|
Binary file (4.14 kB). View file
|
|
|
math_jlens/__pycache__/corpus.cpython-311.pyc
ADDED
|
Binary file (2.98 kB). View file
|
|
|
math_jlens/__pycache__/explore.cpython-311.pyc
ADDED
|
Binary file (34.6 kB). View file
|
|
|
math_jlens/__pycache__/fitting.cpython-311.pyc
ADDED
|
Binary file (10.9 kB). View file
|
|
|
math_jlens/__pycache__/hooks.cpython-311.pyc
ADDED
|
Binary file (2.88 kB). View file
|
|
|
math_jlens/__pycache__/merge.cpython-311.pyc
ADDED
|
Binary file (5.19 kB). View file
|
|
|
math_jlens/__pycache__/model.cpython-311.pyc
ADDED
|
Binary file (3.21 kB). View file
|
|
|
math_jlens/cli.py
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Command-line entry point for fitting DAPO Jacobians."""
|
| 2 |
+
|
| 3 |
+
from __future__ import annotations
|
| 4 |
+
|
| 5 |
+
import argparse
|
| 6 |
+
import json
|
| 7 |
+
from pathlib import Path
|
| 8 |
+
|
| 9 |
+
import torch
|
| 10 |
+
|
| 11 |
+
from .corpus import load_dapo_prompts
|
| 12 |
+
from .fitting import fit
|
| 13 |
+
from .model import load_qwen
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
def build_parser() -> argparse.ArgumentParser:
|
| 17 |
+
command = argparse.ArgumentParser(description=__doc__)
|
| 18 |
+
command.add_argument("--model", required=True)
|
| 19 |
+
command.add_argument("--data", required=True)
|
| 20 |
+
command.add_argument("--output-dir", default="outputs/jacobians")
|
| 21 |
+
command.add_argument("--num-prompts", type=int, default=20)
|
| 22 |
+
command.add_argument("--offset", type=int, default=0)
|
| 23 |
+
command.add_argument("--seed", type=int, default=17)
|
| 24 |
+
command.add_argument("--max-seq-len", type=int, default=128)
|
| 25 |
+
command.add_argument("--skip-first", type=int, default=16)
|
| 26 |
+
command.add_argument("--dim-batch", type=int, default=8)
|
| 27 |
+
command.add_argument("--target-layer", type=int)
|
| 28 |
+
command.add_argument("--checkpoint-every", type=int, default=1)
|
| 29 |
+
command.add_argument("--device", default="cuda")
|
| 30 |
+
command.add_argument("--no-resume", action="store_true")
|
| 31 |
+
return command
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
def main() -> None:
|
| 35 |
+
args = build_parser().parse_args()
|
| 36 |
+
output = Path(args.output_dir)
|
| 37 |
+
output.mkdir(parents=True, exist_ok=True)
|
| 38 |
+
prompts = load_dapo_prompts(args.data, count=args.num_prompts, seed=args.seed, offset=args.offset)
|
| 39 |
+
model = load_qwen(args.model, device=args.device, dtype=torch.bfloat16)
|
| 40 |
+
target = model.n_layers - 1 if args.target_layer is None else args.target_layer
|
| 41 |
+
configuration = vars(args) | {
|
| 42 |
+
"resolved_target_layer": target, "source_layers": list(range(target)),
|
| 43 |
+
"model_layers": model.n_layers, "d_model": model.d_model,
|
| 44 |
+
}
|
| 45 |
+
(output / "config.json").write_text(json.dumps(configuration, indent=2), encoding="utf-8")
|
| 46 |
+
fit(
|
| 47 |
+
model, prompts, output_path=str(output / "lens-bf16.pt"),
|
| 48 |
+
checkpoint_path=str(output / "fit-checkpoint-fp32.pt"), target_layer=target,
|
| 49 |
+
max_seq_len=args.max_seq_len, dim_batch=args.dim_batch,
|
| 50 |
+
skip_first=args.skip_first, checkpoint_every=args.checkpoint_every,
|
| 51 |
+
resume=not args.no_resume, export_dtype=torch.bfloat16,
|
| 52 |
+
)
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
if __name__ == "__main__":
|
| 56 |
+
main()
|
| 57 |
+
|
math_jlens/corpus.py
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Deterministic sampling from the DAPO Math JSONL corpus."""
|
| 2 |
+
|
| 3 |
+
from __future__ import annotations
|
| 4 |
+
|
| 5 |
+
import json
|
| 6 |
+
import random
|
| 7 |
+
from pathlib import Path
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
def _prompt_text(record: dict) -> str:
|
| 11 |
+
prompt = record.get("prompt")
|
| 12 |
+
if isinstance(prompt, str):
|
| 13 |
+
return prompt
|
| 14 |
+
if isinstance(prompt, list):
|
| 15 |
+
parts = [m["content"] for m in prompt if isinstance(m, dict) and isinstance(m.get("content"), str)]
|
| 16 |
+
if parts:
|
| 17 |
+
return "\n".join(parts)
|
| 18 |
+
raise ValueError("record has no supported prompt field")
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
def load_dapo_prompts(path: str, *, count: int, seed: int, offset: int = 0) -> list[str]:
|
| 22 |
+
records: list[str] = []
|
| 23 |
+
with Path(path).open(encoding="utf-8") as handle:
|
| 24 |
+
for line_number, line in enumerate(handle, 1):
|
| 25 |
+
try:
|
| 26 |
+
records.append(_prompt_text(json.loads(line)))
|
| 27 |
+
except (json.JSONDecodeError, ValueError) as exc:
|
| 28 |
+
raise ValueError(f"invalid DAPO record on line {line_number}: {exc}") from exc
|
| 29 |
+
random.Random(seed).shuffle(records)
|
| 30 |
+
selected = records[offset:offset + count]
|
| 31 |
+
if len(selected) != count:
|
| 32 |
+
raise ValueError(f"requested {count} prompts at offset {offset}, only {len(selected)} available")
|
| 33 |
+
return selected
|
| 34 |
+
|
math_jlens/explore.py
ADDED
|
@@ -0,0 +1,495 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Interactive, on-demand J-lens explorer for held-out DAPO Math samples."""
|
| 2 |
+
|
| 3 |
+
from __future__ import annotations
|
| 4 |
+
|
| 5 |
+
import argparse
|
| 6 |
+
import json
|
| 7 |
+
import random
|
| 8 |
+
import re
|
| 9 |
+
import shlex
|
| 10 |
+
from dataclasses import dataclass
|
| 11 |
+
from pathlib import Path
|
| 12 |
+
|
| 13 |
+
import torch
|
| 14 |
+
|
| 15 |
+
from .model import load_qwen
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
def extract_boxed(text: str) -> str | None:
|
| 19 |
+
"""Return the content of the last balanced ``\\boxed{...}``."""
|
| 20 |
+
marker = r"\boxed{"
|
| 21 |
+
start = text.rfind(marker)
|
| 22 |
+
if start < 0:
|
| 23 |
+
return None
|
| 24 |
+
content_start = start + len(marker)
|
| 25 |
+
depth = 1
|
| 26 |
+
for index in range(content_start, len(text)):
|
| 27 |
+
if text[index] == "{":
|
| 28 |
+
depth += 1
|
| 29 |
+
elif text[index] == "}":
|
| 30 |
+
depth -= 1
|
| 31 |
+
if depth == 0:
|
| 32 |
+
return text[content_start:index]
|
| 33 |
+
return None
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
def normalize_answer(answer: str | None) -> str | None:
|
| 37 |
+
if answer is None:
|
| 38 |
+
return None
|
| 39 |
+
value = answer.strip().strip("$")
|
| 40 |
+
value = re.sub(r"\\(?:,|!|;|:|quad|qquad)", "", value)
|
| 41 |
+
value = value.replace(" ", "").replace(",", "")
|
| 42 |
+
return value
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
def response_answer(text: str) -> str | None:
|
| 46 |
+
boxed = extract_boxed(text)
|
| 47 |
+
if boxed is not None:
|
| 48 |
+
return boxed
|
| 49 |
+
matches = re.findall(r"(?im)^\s*Answer\s*:\s*(.+?)\s*$", text)
|
| 50 |
+
return matches[-1] if matches else None
|
| 51 |
+
|
| 52 |
+
|
| 53 |
+
@dataclass(frozen=True)
|
| 54 |
+
class DapoSample:
|
| 55 |
+
original_index: int
|
| 56 |
+
messages: list[dict]
|
| 57 |
+
label: str
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
def load_held_out_sample(path: str, *, seed: int, fit_count: int, sample_index: int) -> DapoSample:
|
| 61 |
+
records: list[tuple[int, dict]] = []
|
| 62 |
+
with Path(path).open(encoding="utf-8") as handle:
|
| 63 |
+
for index, line in enumerate(handle):
|
| 64 |
+
records.append((index, json.loads(line)))
|
| 65 |
+
random.Random(seed).shuffle(records)
|
| 66 |
+
held_out_index = fit_count + sample_index
|
| 67 |
+
if not 0 <= held_out_index < len(records):
|
| 68 |
+
raise IndexError(f"held-out sample {sample_index} is outside the dataset")
|
| 69 |
+
original_index, record = records[held_out_index]
|
| 70 |
+
prompt = record["prompt"]
|
| 71 |
+
messages = prompt if isinstance(prompt, list) else [{"role": "user", "content": prompt}]
|
| 72 |
+
return DapoSample(original_index, messages, str(record["label"]))
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
def find_last_subsequence(sequence: list[int], pattern: list[int]) -> int | None:
|
| 76 |
+
if not pattern or len(pattern) > len(sequence):
|
| 77 |
+
return None
|
| 78 |
+
for start in range(len(sequence) - len(pattern), -1, -1):
|
| 79 |
+
if sequence[start:start + len(pattern)] == pattern:
|
| 80 |
+
return start
|
| 81 |
+
return None
|
| 82 |
+
|
| 83 |
+
|
| 84 |
+
class Explorer:
|
| 85 |
+
def __init__(self, args: argparse.Namespace) -> None:
|
| 86 |
+
self.args = args
|
| 87 |
+
self.adapter = load_qwen(args.model, device=args.device, dtype=torch.bfloat16)
|
| 88 |
+
self.model = self.adapter.model
|
| 89 |
+
self.tokenizer = self.adapter.tokenizer
|
| 90 |
+
lens_state = torch.load(args.lens, map_location="cpu", weights_only=True)
|
| 91 |
+
if lens_state["d_model"] != self.adapter.d_model:
|
| 92 |
+
raise ValueError(
|
| 93 |
+
f"lens width {lens_state['d_model']} does not match model width {self.adapter.d_model}"
|
| 94 |
+
)
|
| 95 |
+
self.layer_numbers = sorted(lens_state["J"])
|
| 96 |
+
self.jacobians = {
|
| 97 |
+
int(layer): matrix.to(args.device)
|
| 98 |
+
for layer, matrix in lens_state["J"].items()
|
| 99 |
+
}
|
| 100 |
+
self.cache_dir = Path(args.cache_dir)
|
| 101 |
+
self.cache_dir.mkdir(parents=True, exist_ok=True)
|
| 102 |
+
self.activations: dict[int, torch.Tensor] = {}
|
| 103 |
+
self.sample: DapoSample | None = None
|
| 104 |
+
self.full_ids: torch.Tensor | None = None
|
| 105 |
+
self.prompt_length = 0
|
| 106 |
+
self.response_text = ""
|
| 107 |
+
self.current_position = 0
|
| 108 |
+
self.load_sample(args.sample_index)
|
| 109 |
+
|
| 110 |
+
def _cache_path(self, sample_index: int) -> Path:
|
| 111 |
+
return self.cache_dir / f"seed-{self.args.seed}-fit-{self.args.fit_count}-sample-{sample_index}.json"
|
| 112 |
+
|
| 113 |
+
def _chat_prompt_ids(self, messages: list[dict]) -> torch.Tensor:
|
| 114 |
+
ids = self.tokenizer.apply_chat_template(
|
| 115 |
+
messages,
|
| 116 |
+
tokenize=True,
|
| 117 |
+
add_generation_prompt=True,
|
| 118 |
+
return_tensors="pt",
|
| 119 |
+
)
|
| 120 |
+
return ids.to(self.args.device)
|
| 121 |
+
|
| 122 |
+
@torch.inference_mode()
|
| 123 |
+
def _generate(self, sample: DapoSample) -> tuple[list[int], str]:
|
| 124 |
+
prompt_ids = self._chat_prompt_ids(sample.messages)
|
| 125 |
+
attention_mask = torch.ones_like(prompt_ids)
|
| 126 |
+
generated = self.model.generate(
|
| 127 |
+
input_ids=prompt_ids,
|
| 128 |
+
attention_mask=attention_mask,
|
| 129 |
+
do_sample=False,
|
| 130 |
+
max_new_tokens=self.args.max_new_tokens,
|
| 131 |
+
use_cache=True,
|
| 132 |
+
pad_token_id=self.tokenizer.eos_token_id,
|
| 133 |
+
)
|
| 134 |
+
response_ids = generated[0, prompt_ids.shape[1]:].tolist()
|
| 135 |
+
response = self.tokenizer.decode(response_ids, skip_special_tokens=True)
|
| 136 |
+
return response_ids, response
|
| 137 |
+
|
| 138 |
+
def _load_or_generate(self, sample_index: int, sample: DapoSample) -> tuple[list[int], str]:
|
| 139 |
+
path = self._cache_path(sample_index)
|
| 140 |
+
if path.exists() and not self.args.regenerate:
|
| 141 |
+
cached = json.loads(path.read_text(encoding="utf-8"))
|
| 142 |
+
if cached["original_index"] != sample.original_index:
|
| 143 |
+
raise ValueError(f"cache identity mismatch at {path}")
|
| 144 |
+
return cached["response_ids"], cached["response_text"]
|
| 145 |
+
response_ids, response = self._generate(sample)
|
| 146 |
+
path.write_text(
|
| 147 |
+
json.dumps(
|
| 148 |
+
{
|
| 149 |
+
"sample_index": sample_index,
|
| 150 |
+
"original_index": sample.original_index,
|
| 151 |
+
"label": sample.label,
|
| 152 |
+
"response_ids": response_ids,
|
| 153 |
+
"response_text": response,
|
| 154 |
+
"max_new_tokens": self.args.max_new_tokens,
|
| 155 |
+
"do_sample": False,
|
| 156 |
+
},
|
| 157 |
+
ensure_ascii=False,
|
| 158 |
+
indent=2,
|
| 159 |
+
),
|
| 160 |
+
encoding="utf-8",
|
| 161 |
+
)
|
| 162 |
+
return response_ids, response
|
| 163 |
+
|
| 164 |
+
@torch.inference_mode()
|
| 165 |
+
def _capture(self, full_ids: torch.Tensor) -> None:
|
| 166 |
+
self.activations.clear()
|
| 167 |
+
handles = []
|
| 168 |
+
for layer, block in enumerate(self.adapter.layers):
|
| 169 |
+
def capture(_module, _inputs, output, layer=layer):
|
| 170 |
+
tensor = output if torch.is_tensor(output) else output[0]
|
| 171 |
+
self.activations[layer] = tensor[0].detach()
|
| 172 |
+
handles.append(block.register_forward_hook(capture))
|
| 173 |
+
try:
|
| 174 |
+
self.adapter.forward(full_ids)
|
| 175 |
+
finally:
|
| 176 |
+
for handle in handles:
|
| 177 |
+
handle.remove()
|
| 178 |
+
|
| 179 |
+
def load_sample(self, sample_index: int) -> None:
|
| 180 |
+
sample = load_held_out_sample(
|
| 181 |
+
self.args.data,
|
| 182 |
+
seed=self.args.seed,
|
| 183 |
+
fit_count=self.args.fit_count,
|
| 184 |
+
sample_index=sample_index,
|
| 185 |
+
)
|
| 186 |
+
prompt_ids = self._chat_prompt_ids(sample.messages)
|
| 187 |
+
response_ids, response = self._load_or_generate(sample_index, sample)
|
| 188 |
+
full_ids = torch.cat(
|
| 189 |
+
[prompt_ids, torch.tensor([response_ids], device=self.args.device)], dim=1
|
| 190 |
+
)
|
| 191 |
+
self._capture(full_ids)
|
| 192 |
+
self.args.sample_index = sample_index
|
| 193 |
+
self.sample = sample
|
| 194 |
+
self.full_ids = full_ids[0]
|
| 195 |
+
self.prompt_length = prompt_ids.shape[1]
|
| 196 |
+
self.response_text = response
|
| 197 |
+
self.current_position = max(0, self.prompt_length - 1)
|
| 198 |
+
print(
|
| 199 |
+
f"Loaded held-out sample {sample_index} (dataset row {sample.original_index})\n"
|
| 200 |
+
f"prompt_tokens={self.prompt_length} response_tokens={len(response_ids)} "
|
| 201 |
+
f"total_tokens={len(self.full_ids)}"
|
| 202 |
+
)
|
| 203 |
+
self.print_result()
|
| 204 |
+
|
| 205 |
+
def problem_text(self) -> str:
|
| 206 |
+
assert self.sample is not None
|
| 207 |
+
parts = []
|
| 208 |
+
for message in self.sample.messages:
|
| 209 |
+
role = str(message.get("role", "unknown")).upper()
|
| 210 |
+
content = str(message.get("content", ""))
|
| 211 |
+
parts.append(f"[{role}]\n{content}")
|
| 212 |
+
return "\n\n".join(parts)
|
| 213 |
+
|
| 214 |
+
def print_problem(self) -> None:
|
| 215 |
+
print("=== Problem ===")
|
| 216 |
+
print(self.problem_text())
|
| 217 |
+
|
| 218 |
+
def print_output(self) -> None:
|
| 219 |
+
print("=== Model output ===")
|
| 220 |
+
print(self.response_text)
|
| 221 |
+
|
| 222 |
+
def print_result(self) -> None:
|
| 223 |
+
assert self.sample is not None
|
| 224 |
+
predicted = response_answer(self.response_text)
|
| 225 |
+
normalized_prediction = normalize_answer(predicted)
|
| 226 |
+
normalized_gold = normalize_answer(self.sample.label)
|
| 227 |
+
correct = normalized_prediction == normalized_gold
|
| 228 |
+
print("=== Answers ===")
|
| 229 |
+
print(f"Extracted: {predicted!r}")
|
| 230 |
+
print(f"Ground truth: {self.sample.label!r}")
|
| 231 |
+
print(f"Correct: {correct}")
|
| 232 |
+
|
| 233 |
+
def print_info(self) -> None:
|
| 234 |
+
assert self.sample is not None
|
| 235 |
+
print(
|
| 236 |
+
f"=== Sample ===\nheld-out index: {self.args.sample_index}\n"
|
| 237 |
+
f"dataset row: {self.sample.original_index}"
|
| 238 |
+
)
|
| 239 |
+
self.print_problem()
|
| 240 |
+
self.print_output()
|
| 241 |
+
self.print_result()
|
| 242 |
+
|
| 243 |
+
def _check_position(self, position: int) -> int:
|
| 244 |
+
assert self.full_ids is not None
|
| 245 |
+
if position < 0:
|
| 246 |
+
position += len(self.full_ids)
|
| 247 |
+
if not 0 <= position < len(self.full_ids) - 1:
|
| 248 |
+
raise ValueError(f"position must be in [0, {len(self.full_ids) - 2}]")
|
| 249 |
+
return position
|
| 250 |
+
|
| 251 |
+
@torch.inference_mode()
|
| 252 |
+
def logits(self, layer: int, position: int, *, use_jacobian: bool = True) -> torch.Tensor:
|
| 253 |
+
residual = self.activations[layer][position]
|
| 254 |
+
if use_jacobian:
|
| 255 |
+
residual = residual @ self.jacobians[layer].T
|
| 256 |
+
residual = self.adapter.decoder.norm(residual)
|
| 257 |
+
return self.model.lm_head(residual).float()
|
| 258 |
+
|
| 259 |
+
def token_label(self, token_id: int) -> str:
|
| 260 |
+
return repr(self.tokenizer.decode([int(token_id)]))
|
| 261 |
+
|
| 262 |
+
def print_tokens(self, start: int | None = None, end: int | None = None) -> None:
|
| 263 |
+
assert self.full_ids is not None
|
| 264 |
+
if start is None:
|
| 265 |
+
start = self.prompt_length
|
| 266 |
+
if end is None:
|
| 267 |
+
end = min(len(self.full_ids), start + 80)
|
| 268 |
+
start = max(0, start)
|
| 269 |
+
end = min(len(self.full_ids), end)
|
| 270 |
+
for position in range(start, end):
|
| 271 |
+
marker = ">" if position == self.current_position else " "
|
| 272 |
+
region = "R" if position >= self.prompt_length else "P"
|
| 273 |
+
print(f"{marker} {position:5d} {region} {self.token_label(self.full_ids[position])}")
|
| 274 |
+
|
| 275 |
+
def inspect(self, position: int, top_k: int = 5) -> None:
|
| 276 |
+
position = self._check_position(position)
|
| 277 |
+
self.current_position = position
|
| 278 |
+
assert self.full_ids is not None
|
| 279 |
+
print(
|
| 280 |
+
f"position={position} current={self.token_label(self.full_ids[position])} "
|
| 281 |
+
f"predicts={self.token_label(self.full_ids[position + 1])}"
|
| 282 |
+
)
|
| 283 |
+
for layer in self.layer_numbers:
|
| 284 |
+
logits = self.logits(layer, position)
|
| 285 |
+
values, ids = logits.topk(top_k)
|
| 286 |
+
decoded = " ".join(
|
| 287 |
+
f"{self.token_label(token_id)}({value:.2f})"
|
| 288 |
+
for token_id, value in zip(ids.tolist(), values.tolist(), strict=True)
|
| 289 |
+
)
|
| 290 |
+
print(f"L{layer:02d} J: {decoded}")
|
| 291 |
+
|
| 292 |
+
def compare(self, position: int, layer: int, top_k: int = 10) -> None:
|
| 293 |
+
position = self._check_position(position)
|
| 294 |
+
if layer not in self.layer_numbers:
|
| 295 |
+
raise ValueError(f"layer must be one of {self.layer_numbers}")
|
| 296 |
+
for name, enabled in (("J-lens", True), ("logit", False)):
|
| 297 |
+
values, ids = self.logits(layer, position, use_jacobian=enabled).topk(top_k)
|
| 298 |
+
decoded = " ".join(
|
| 299 |
+
f"{self.token_label(token_id)}({value:.2f})"
|
| 300 |
+
for token_id, value in zip(ids.tolist(), values.tolist(), strict=True)
|
| 301 |
+
)
|
| 302 |
+
print(f"{name:7s}: {decoded}")
|
| 303 |
+
|
| 304 |
+
@torch.inference_mode()
|
| 305 |
+
def save_interval(
|
| 306 |
+
self,
|
| 307 |
+
start: int,
|
| 308 |
+
end: int,
|
| 309 |
+
layer: int | None = None,
|
| 310 |
+
top_k: int = 5,
|
| 311 |
+
output_path: str | None = None,
|
| 312 |
+
) -> Path:
|
| 313 |
+
"""Export original tokens and their J-lens mappings for ``[start, end)``."""
|
| 314 |
+
assert self.full_ids is not None and self.sample is not None
|
| 315 |
+
if start < 0 or end <= start or end > len(self.full_ids) - 1:
|
| 316 |
+
raise ValueError(
|
| 317 |
+
f"require 0 <= START < END <= {len(self.full_ids) - 1}; "
|
| 318 |
+
"END is exclusive"
|
| 319 |
+
)
|
| 320 |
+
if top_k < 1:
|
| 321 |
+
raise ValueError("TOP_K must be positive")
|
| 322 |
+
layers = self.layer_numbers if layer is None else [layer]
|
| 323 |
+
if any(item not in self.layer_numbers for item in layers):
|
| 324 |
+
raise ValueError(f"layer must be one of {self.layer_numbers}, or 'all'")
|
| 325 |
+
|
| 326 |
+
layer_label = "all" if layer is None else str(layer)
|
| 327 |
+
if output_path is None:
|
| 328 |
+
output = Path(self.args.export_dir) / (
|
| 329 |
+
f"sample-{self.args.sample_index}-tokens-{start}-{end}-layer-{layer_label}.txt"
|
| 330 |
+
)
|
| 331 |
+
else:
|
| 332 |
+
output = Path(output_path)
|
| 333 |
+
output.parent.mkdir(parents=True, exist_ok=True)
|
| 334 |
+
|
| 335 |
+
lines = [
|
| 336 |
+
"J-lens token interval export",
|
| 337 |
+
f"held_out_sample: {self.args.sample_index}",
|
| 338 |
+
f"dataset_row: {self.sample.original_index}",
|
| 339 |
+
f"ground_truth: {self.sample.label!r}",
|
| 340 |
+
f"token_interval: [{start}, {end})",
|
| 341 |
+
f"layers: {layer_label}",
|
| 342 |
+
f"top_k: {top_k}",
|
| 343 |
+
"convention: activation at position t predicts token at t+1",
|
| 344 |
+
"",
|
| 345 |
+
]
|
| 346 |
+
for position in range(start, end):
|
| 347 |
+
current_id = int(self.full_ids[position])
|
| 348 |
+
next_id = int(self.full_ids[position + 1])
|
| 349 |
+
region = "response" if position >= self.prompt_length else "prompt"
|
| 350 |
+
lines.extend(
|
| 351 |
+
[
|
| 352 |
+
f"POSITION {position} ({region})",
|
| 353 |
+
f" original: id={current_id} token={self.token_label(current_id)}",
|
| 354 |
+
f" predicts: id={next_id} token={self.token_label(next_id)}",
|
| 355 |
+
]
|
| 356 |
+
)
|
| 357 |
+
for layer_number in layers:
|
| 358 |
+
values, ids = self.logits(layer_number, position).topk(top_k)
|
| 359 |
+
mapped = " | ".join(
|
| 360 |
+
f"rank={rank} id={token_id} token={self.token_label(token_id)} logit={value:.4f}"
|
| 361 |
+
for rank, (token_id, value) in enumerate(
|
| 362 |
+
zip(ids.tolist(), values.tolist(), strict=True), start=1
|
| 363 |
+
)
|
| 364 |
+
)
|
| 365 |
+
lines.append(f" L{layer_number:02d}: {mapped}")
|
| 366 |
+
lines.append("")
|
| 367 |
+
output.write_text("\n".join(lines), encoding="utf-8")
|
| 368 |
+
print(f"saved {end - start} positions × {len(layers)} layers to {output}")
|
| 369 |
+
return output
|
| 370 |
+
|
| 371 |
+
def _token_ids(self, text: str) -> list[int]:
|
| 372 |
+
return self.tokenizer.encode(text, add_special_tokens=False)
|
| 373 |
+
|
| 374 |
+
def trace(self, text: str, position: int | None = None) -> None:
|
| 375 |
+
position = self.current_position if position is None else self._check_position(position)
|
| 376 |
+
ids = self._token_ids(text)
|
| 377 |
+
if not ids:
|
| 378 |
+
raise ValueError("text tokenized to no tokens")
|
| 379 |
+
print(f"trace text={text!r} ids={ids} at position={position}")
|
| 380 |
+
for layer in self.layer_numbers:
|
| 381 |
+
logits = self.logits(layer, position)
|
| 382 |
+
details = []
|
| 383 |
+
for token_id in ids:
|
| 384 |
+
rank = 1 + int((logits > logits[token_id]).sum().item())
|
| 385 |
+
details.append(f"{self.token_label(token_id)} rank={rank} logit={logits[token_id]:.2f}")
|
| 386 |
+
print(f"L{layer:02d}: {'; '.join(details)}")
|
| 387 |
+
|
| 388 |
+
def answer_trace(self) -> None:
|
| 389 |
+
assert self.sample is not None and self.full_ids is not None
|
| 390 |
+
full_list = self.full_ids.tolist()
|
| 391 |
+
candidates = [self.sample.label, " " + self.sample.label]
|
| 392 |
+
match = None
|
| 393 |
+
matched_ids = None
|
| 394 |
+
for candidate in candidates:
|
| 395 |
+
ids = self._token_ids(candidate)
|
| 396 |
+
found = find_last_subsequence(full_list[self.prompt_length:], ids)
|
| 397 |
+
if found is not None:
|
| 398 |
+
match = self.prompt_length + found
|
| 399 |
+
matched_ids = ids
|
| 400 |
+
break
|
| 401 |
+
if match is None or matched_ids is None:
|
| 402 |
+
print(f"Gold answer {self.sample.label!r} was not found as a token sequence in the response")
|
| 403 |
+
return
|
| 404 |
+
activation_position = match - 1
|
| 405 |
+
print(
|
| 406 |
+
f"gold answer starts at token position {match}; inspecting position "
|
| 407 |
+
f"{activation_position}, which predicts its first token"
|
| 408 |
+
)
|
| 409 |
+
self.trace(self.tokenizer.decode([matched_ids[0]]), activation_position)
|
| 410 |
+
|
| 411 |
+
def repl(self) -> None:
|
| 412 |
+
print("Type 'help' for commands.")
|
| 413 |
+
while True:
|
| 414 |
+
try:
|
| 415 |
+
raw = input("jlens> ").strip()
|
| 416 |
+
if not raw:
|
| 417 |
+
continue
|
| 418 |
+
parts = shlex.split(raw)
|
| 419 |
+
command, values = parts[0].lower(), parts[1:]
|
| 420 |
+
if command in {"quit", "exit", "q"}:
|
| 421 |
+
return
|
| 422 |
+
if command == "help":
|
| 423 |
+
print(
|
| 424 |
+
"tokens [start] [end]\ninspect POSITION [TOP_K]\n"
|
| 425 |
+
"compare POSITION LAYER [TOP_K]\ntrace TEXT [POSITION]\n"
|
| 426 |
+
"save START END [LAYER|all] [TOP_K] [FILE]\n"
|
| 427 |
+
"problem\noutput\nresult\ninfo\nanswer\n"
|
| 428 |
+
"sample INDEX\nnext\nquit"
|
| 429 |
+
)
|
| 430 |
+
elif command == "tokens":
|
| 431 |
+
self.print_tokens(*(int(value) for value in values))
|
| 432 |
+
elif command == "inspect":
|
| 433 |
+
self.inspect(int(values[0]), int(values[1]) if len(values) > 1 else 5)
|
| 434 |
+
elif command == "compare":
|
| 435 |
+
self.compare(int(values[0]), int(values[1]), int(values[2]) if len(values) > 2 else 10)
|
| 436 |
+
elif command == "trace":
|
| 437 |
+
self.trace(values[0], int(values[1]) if len(values) > 1 else None)
|
| 438 |
+
elif command == "save":
|
| 439 |
+
if len(values) < 2:
|
| 440 |
+
raise ValueError(
|
| 441 |
+
"usage: save START END [LAYER|all] [TOP_K] [FILE]"
|
| 442 |
+
)
|
| 443 |
+
chosen_layer = None
|
| 444 |
+
if len(values) > 2 and values[2].lower() != "all":
|
| 445 |
+
chosen_layer = int(values[2])
|
| 446 |
+
chosen_top_k = int(values[3]) if len(values) > 3 else 5
|
| 447 |
+
chosen_file = values[4] if len(values) > 4 else None
|
| 448 |
+
self.save_interval(
|
| 449 |
+
int(values[0]), int(values[1]), chosen_layer,
|
| 450 |
+
chosen_top_k, chosen_file,
|
| 451 |
+
)
|
| 452 |
+
elif command == "answer":
|
| 453 |
+
self.answer_trace()
|
| 454 |
+
elif command == "problem":
|
| 455 |
+
self.print_problem()
|
| 456 |
+
elif command == "output":
|
| 457 |
+
self.print_output()
|
| 458 |
+
elif command == "result":
|
| 459 |
+
self.print_result()
|
| 460 |
+
elif command == "sample":
|
| 461 |
+
self.load_sample(int(values[0]))
|
| 462 |
+
elif command == "next":
|
| 463 |
+
self.load_sample(self.args.sample_index + 1)
|
| 464 |
+
elif command == "info":
|
| 465 |
+
self.print_info()
|
| 466 |
+
else:
|
| 467 |
+
print(f"unknown command: {command}")
|
| 468 |
+
except (IndexError, ValueError) as exc:
|
| 469 |
+
print(f"error: {exc}")
|
| 470 |
+
except KeyboardInterrupt:
|
| 471 |
+
print("\nUse 'quit' to exit.")
|
| 472 |
+
|
| 473 |
+
|
| 474 |
+
def build_parser() -> argparse.ArgumentParser:
|
| 475 |
+
parser = argparse.ArgumentParser(description=__doc__)
|
| 476 |
+
parser.add_argument("--model", required=True)
|
| 477 |
+
parser.add_argument("--data", required=True)
|
| 478 |
+
parser.add_argument("--lens", required=True)
|
| 479 |
+
parser.add_argument("--fit-count", type=int, required=True)
|
| 480 |
+
parser.add_argument("--seed", type=int, default=17)
|
| 481 |
+
parser.add_argument("--sample-index", type=int, default=0)
|
| 482 |
+
parser.add_argument("--device", default="cuda:0")
|
| 483 |
+
parser.add_argument("--max-new-tokens", type=int, default=2048)
|
| 484 |
+
parser.add_argument("--cache-dir", default="outputs/explorer-cache")
|
| 485 |
+
parser.add_argument("--export-dir", default="outputs/jlens-exports")
|
| 486 |
+
parser.add_argument("--regenerate", action="store_true")
|
| 487 |
+
return parser
|
| 488 |
+
|
| 489 |
+
|
| 490 |
+
def main() -> None:
|
| 491 |
+
Explorer(build_parser().parse_args()).repl()
|
| 492 |
+
|
| 493 |
+
|
| 494 |
+
if __name__ == "__main__":
|
| 495 |
+
main()
|
math_jlens/fitting.py
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Averaged input-output Jacobian estimator.
|
| 2 |
+
|
| 3 |
+
This matches Anthropic's released Jacobian Lens estimator (Apache-2.0): each
|
| 4 |
+
cotangent row is injected at every valid target position, and source-position
|
| 5 |
+
gradients are averaged. ``dim_batch`` rows are computed in parallel.
|
| 6 |
+
"""
|
| 7 |
+
|
| 8 |
+
from __future__ import annotations
|
| 9 |
+
|
| 10 |
+
import math
|
| 11 |
+
import os
|
| 12 |
+
from collections.abc import Sequence
|
| 13 |
+
from pathlib import Path
|
| 14 |
+
|
| 15 |
+
import torch
|
| 16 |
+
from tqdm import tqdm
|
| 17 |
+
|
| 18 |
+
from .hooks import ActivationRecorder
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
def valid_position_mask(seq_len: int, skip_first: int = 16) -> torch.Tensor:
|
| 22 |
+
if skip_first < 0:
|
| 23 |
+
raise ValueError("skip_first must be nonnegative")
|
| 24 |
+
mask = torch.zeros(seq_len, dtype=torch.bool)
|
| 25 |
+
mask[skip_first:seq_len - 1] = True
|
| 26 |
+
if not mask.any():
|
| 27 |
+
raise ValueError(f"sequence length {seq_len} leaves no positions after skip_first={skip_first}")
|
| 28 |
+
return mask
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
def jacobian_for_tokens(
|
| 32 |
+
model,
|
| 33 |
+
input_ids: torch.Tensor,
|
| 34 |
+
*,
|
| 35 |
+
source_layers: Sequence[int],
|
| 36 |
+
target_layer: int,
|
| 37 |
+
dim_batch: int = 8,
|
| 38 |
+
skip_first: int = 16,
|
| 39 |
+
) -> tuple[dict[int, torch.Tensor], int]:
|
| 40 |
+
"""Return per-prompt FP32 CPU Jacobians and valid-position count."""
|
| 41 |
+
sources = sorted(set(source_layers))
|
| 42 |
+
if not sources or sources[0] < 0 or sources[-1] >= target_layer:
|
| 43 |
+
raise ValueError("source layers must be nonempty and below target_layer")
|
| 44 |
+
if target_layer >= model.n_layers:
|
| 45 |
+
raise ValueError("target_layer is outside the model")
|
| 46 |
+
if dim_batch < 1:
|
| 47 |
+
raise ValueError("dim_batch must be positive")
|
| 48 |
+
|
| 49 |
+
width = model.d_model
|
| 50 |
+
mask = valid_position_mask(input_ids.shape[1], skip_first)
|
| 51 |
+
jacobians = {layer: torch.zeros(width, width, dtype=torch.float32) for layer in sources}
|
| 52 |
+
passes = math.ceil(width / dim_batch)
|
| 53 |
+
|
| 54 |
+
with ActivationRecorder(model.layers, at=[*sources, target_layer], start_graph_at=sources[0]) as recorder, torch.enable_grad():
|
| 55 |
+
model.forward(input_ids.expand(dim_batch, -1))
|
| 56 |
+
target = recorder.activations[target_layer]
|
| 57 |
+
source_activations = [recorder.activations[layer] for layer in sources]
|
| 58 |
+
positions = mask.nonzero(as_tuple=True)[0].to(target.device)
|
| 59 |
+
batch_indices = torch.arange(dim_batch, device=target.device)
|
| 60 |
+
cotangent = torch.zeros_like(target)
|
| 61 |
+
|
| 62 |
+
for pass_index, start in enumerate(range(0, width, dim_batch)):
|
| 63 |
+
row_count = min(dim_batch, width - start)
|
| 64 |
+
cotangent.zero_()
|
| 65 |
+
cotangent[
|
| 66 |
+
batch_indices[:row_count, None], positions[None, :],
|
| 67 |
+
start + batch_indices[:row_count, None],
|
| 68 |
+
] = 1
|
| 69 |
+
gradients = torch.autograd.grad(
|
| 70 |
+
outputs=target, inputs=source_activations, grad_outputs=cotangent,
|
| 71 |
+
retain_graph=pass_index < passes - 1,
|
| 72 |
+
)
|
| 73 |
+
for layer, gradient in zip(sources, gradients, strict=True):
|
| 74 |
+
local_positions = positions.to(gradient.device)
|
| 75 |
+
rows = gradient[:row_count, local_positions, :].float().mean(dim=1)
|
| 76 |
+
jacobians[layer][start:start + row_count] = rows.cpu()
|
| 77 |
+
return jacobians, int(mask.sum())
|
| 78 |
+
|
| 79 |
+
|
| 80 |
+
def _atomic_save(state: dict, path: Path) -> None:
|
| 81 |
+
path.parent.mkdir(parents=True, exist_ok=True)
|
| 82 |
+
temporary = path.with_suffix(path.suffix + f".tmp.{os.getpid()}")
|
| 83 |
+
torch.save(state, temporary)
|
| 84 |
+
os.replace(temporary, path)
|
| 85 |
+
|
| 86 |
+
|
| 87 |
+
def fit(
|
| 88 |
+
model,
|
| 89 |
+
prompts: Sequence[str],
|
| 90 |
+
*,
|
| 91 |
+
output_path: str,
|
| 92 |
+
checkpoint_path: str,
|
| 93 |
+
source_layers: Sequence[int] | None = None,
|
| 94 |
+
target_layer: int | None = None,
|
| 95 |
+
max_seq_len: int = 128,
|
| 96 |
+
dim_batch: int = 8,
|
| 97 |
+
skip_first: int = 16,
|
| 98 |
+
checkpoint_every: int = 1,
|
| 99 |
+
resume: bool = True,
|
| 100 |
+
export_dtype: torch.dtype = torch.bfloat16,
|
| 101 |
+
) -> dict:
|
| 102 |
+
"""Fit, checkpoint FP32 sums, and export BF16 averaged matrices."""
|
| 103 |
+
target = model.n_layers - 1 if target_layer is None else target_layer
|
| 104 |
+
sources = list(range(target)) if source_layers is None else sorted(set(source_layers))
|
| 105 |
+
checkpoint = Path(checkpoint_path)
|
| 106 |
+
metadata_keys = ("source_layers", "target_layer", "d_model", "max_seq_len", "skip_first")
|
| 107 |
+
expected = (sources, target, model.d_model, max_seq_len, skip_first)
|
| 108 |
+
|
| 109 |
+
if resume and checkpoint.exists():
|
| 110 |
+
state = torch.load(checkpoint, map_location="cpu", weights_only=True)
|
| 111 |
+
actual = tuple(state[key] for key in metadata_keys)
|
| 112 |
+
if actual != expected:
|
| 113 |
+
raise ValueError(f"checkpoint configuration mismatch: {actual} != {expected}")
|
| 114 |
+
else:
|
| 115 |
+
state = {
|
| 116 |
+
"jacobian_sum": {layer: torch.zeros(model.d_model, model.d_model, dtype=torch.float32) for layer in sources},
|
| 117 |
+
"n_done": 0, "next_index": 0, "source_layers": sources,
|
| 118 |
+
"target_layer": target, "d_model": model.d_model,
|
| 119 |
+
"max_seq_len": max_seq_len, "skip_first": skip_first,
|
| 120 |
+
}
|
| 121 |
+
|
| 122 |
+
progress = tqdm(range(state["next_index"], len(prompts)), desc="fitting prompts")
|
| 123 |
+
for index in progress:
|
| 124 |
+
input_ids = model.encode(prompts[index], max_seq_len)
|
| 125 |
+
try:
|
| 126 |
+
per_prompt, n_valid = jacobian_for_tokens(
|
| 127 |
+
model, input_ids, source_layers=sources, target_layer=target,
|
| 128 |
+
dim_batch=dim_batch, skip_first=skip_first,
|
| 129 |
+
)
|
| 130 |
+
except ValueError as exc:
|
| 131 |
+
progress.write(f"skipping prompt {index}: {exc}")
|
| 132 |
+
state["next_index"] = index + 1
|
| 133 |
+
continue
|
| 134 |
+
for layer in sources:
|
| 135 |
+
state["jacobian_sum"][layer].add_(per_prompt[layer])
|
| 136 |
+
state["n_done"] += 1
|
| 137 |
+
state["next_index"] = index + 1
|
| 138 |
+
progress.set_postfix(valid=n_valid, completed=state["n_done"])
|
| 139 |
+
if checkpoint_every and state["n_done"] % checkpoint_every == 0:
|
| 140 |
+
_atomic_save(state, checkpoint)
|
| 141 |
+
|
| 142 |
+
_atomic_save(state, checkpoint)
|
| 143 |
+
if state["n_done"] == 0:
|
| 144 |
+
raise ValueError("no usable prompts were fitted")
|
| 145 |
+
exported = {
|
| 146 |
+
layer: (total / state["n_done"]).to(export_dtype)
|
| 147 |
+
for layer, total in state["jacobian_sum"].items()
|
| 148 |
+
}
|
| 149 |
+
# The transport from the target block output to itself is exactly identity.
|
| 150 |
+
# Include it so consumers have one matrix for every block-output boundary.
|
| 151 |
+
exported[target] = torch.eye(model.d_model, dtype=export_dtype)
|
| 152 |
+
result = {
|
| 153 |
+
"J": exported,
|
| 154 |
+
"n_prompts": state["n_done"], "source_layers": sources,
|
| 155 |
+
"target_layer": target, "d_model": model.d_model,
|
| 156 |
+
"max_seq_len": max_seq_len, "skip_first": skip_first,
|
| 157 |
+
"dtype": str(export_dtype), "target_is_identity": True,
|
| 158 |
+
}
|
| 159 |
+
_atomic_save(result, Path(output_path))
|
| 160 |
+
return result
|
math_jlens/hooks.py
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Forward hooks for residual-stream block outputs.
|
| 2 |
+
|
| 3 |
+
The estimator follows Anthropic's Apache-2.0 Jacobian Lens reference method:
|
| 4 |
+
https://github.com/anthropics/jacobian-lens
|
| 5 |
+
"""
|
| 6 |
+
|
| 7 |
+
from __future__ import annotations
|
| 8 |
+
|
| 9 |
+
from collections.abc import Iterable, Sequence
|
| 10 |
+
|
| 11 |
+
import torch
|
| 12 |
+
from torch import nn
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
class ActivationRecorder:
|
| 16 |
+
def __init__(self, blocks: Sequence[nn.Module], at: Iterable[int], *, start_graph_at: int) -> None:
|
| 17 |
+
self.blocks = blocks
|
| 18 |
+
self.indices = sorted(set(at) | {start_graph_at})
|
| 19 |
+
self.start_graph_at = start_graph_at
|
| 20 |
+
self.activations: dict[int, torch.Tensor] = {}
|
| 21 |
+
self.handles: list[torch.utils.hooks.RemovableHandle] = []
|
| 22 |
+
|
| 23 |
+
def _hook(self, index: int):
|
| 24 |
+
def record(_module, _inputs, output) -> None:
|
| 25 |
+
tensor = output if torch.is_tensor(output) else output[0]
|
| 26 |
+
if index == self.start_graph_at:
|
| 27 |
+
tensor.requires_grad_(True)
|
| 28 |
+
self.activations[index] = tensor
|
| 29 |
+
return record
|
| 30 |
+
|
| 31 |
+
def __enter__(self) -> "ActivationRecorder":
|
| 32 |
+
for index in self.indices:
|
| 33 |
+
self.handles.append(self.blocks[index].register_forward_hook(self._hook(index)))
|
| 34 |
+
return self
|
| 35 |
+
|
| 36 |
+
def __exit__(self, *_exc) -> None:
|
| 37 |
+
for handle in self.handles:
|
| 38 |
+
handle.remove()
|
| 39 |
+
self.handles.clear()
|
| 40 |
+
|
math_jlens/merge.py
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Merge data-parallel FP32 fitting checkpoints into one BF16 lens."""
|
| 2 |
+
|
| 3 |
+
from __future__ import annotations
|
| 4 |
+
|
| 5 |
+
import argparse
|
| 6 |
+
from pathlib import Path
|
| 7 |
+
|
| 8 |
+
import torch
|
| 9 |
+
|
| 10 |
+
from .fitting import _atomic_save
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
METADATA_KEYS = (
|
| 14 |
+
"source_layers",
|
| 15 |
+
"target_layer",
|
| 16 |
+
"d_model",
|
| 17 |
+
"max_seq_len",
|
| 18 |
+
"skip_first",
|
| 19 |
+
)
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
def merge_checkpoints(paths: list[str], output_path: str) -> dict:
|
| 23 |
+
if not paths:
|
| 24 |
+
raise ValueError("at least one checkpoint is required")
|
| 25 |
+
first = torch.load(paths[0], map_location="cpu", weights_only=True)
|
| 26 |
+
reference = tuple(first[key] for key in METADATA_KEYS)
|
| 27 |
+
if first["n_done"] <= 0:
|
| 28 |
+
raise ValueError("every shard must contain at least one completed prompt")
|
| 29 |
+
sources = first["source_layers"]
|
| 30 |
+
target = first["target_layer"]
|
| 31 |
+
d_model = first["d_model"]
|
| 32 |
+
totals = {layer: tensor.clone() for layer, tensor in first["jacobian_sum"].items()}
|
| 33 |
+
shard_counts = [first["n_done"]]
|
| 34 |
+
del first
|
| 35 |
+
|
| 36 |
+
for path in paths[1:]:
|
| 37 |
+
state = torch.load(path, map_location="cpu", weights_only=True)
|
| 38 |
+
metadata = tuple(state[key] for key in METADATA_KEYS)
|
| 39 |
+
if metadata != reference:
|
| 40 |
+
raise ValueError(f"checkpoint metadata mismatch in {path}: {metadata} != {reference}")
|
| 41 |
+
if state["n_done"] <= 0:
|
| 42 |
+
raise ValueError("every shard must contain at least one completed prompt")
|
| 43 |
+
for layer in sources:
|
| 44 |
+
totals[layer].add_(state["jacobian_sum"][layer])
|
| 45 |
+
shard_counts.append(state["n_done"])
|
| 46 |
+
del state
|
| 47 |
+
|
| 48 |
+
total_prompts = sum(shard_counts)
|
| 49 |
+
means = {layer: (total / total_prompts).to(torch.bfloat16) for layer, total in totals.items()}
|
| 50 |
+
means[target] = torch.eye(d_model, dtype=torch.bfloat16)
|
| 51 |
+
|
| 52 |
+
result = {
|
| 53 |
+
"J": means,
|
| 54 |
+
"n_prompts": total_prompts,
|
| 55 |
+
"source_layers": sources,
|
| 56 |
+
"target_layer": target,
|
| 57 |
+
"d_model": d_model,
|
| 58 |
+
"max_seq_len": reference[3],
|
| 59 |
+
"skip_first": reference[4],
|
| 60 |
+
"dtype": str(torch.bfloat16),
|
| 61 |
+
"target_is_identity": True,
|
| 62 |
+
"merged_from": [str(Path(path)) for path in paths],
|
| 63 |
+
"shard_prompt_counts": shard_counts,
|
| 64 |
+
}
|
| 65 |
+
_atomic_save(result, Path(output_path))
|
| 66 |
+
return result
|
| 67 |
+
|
| 68 |
+
|
| 69 |
+
def main() -> None:
|
| 70 |
+
parser = argparse.ArgumentParser(description=__doc__)
|
| 71 |
+
parser.add_argument("--checkpoints", nargs="+", required=True)
|
| 72 |
+
parser.add_argument("--output", required=True)
|
| 73 |
+
args = parser.parse_args()
|
| 74 |
+
result = merge_checkpoints(args.checkpoints, args.output)
|
| 75 |
+
print(f"merged {len(args.checkpoints)} shards and {result['n_prompts']} prompts into {args.output}")
|
| 76 |
+
|
| 77 |
+
|
| 78 |
+
if __name__ == "__main__":
|
| 79 |
+
main()
|
math_jlens/model.py
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Minimal Hugging Face adapter for Qwen decoder-only models."""
|
| 2 |
+
|
| 3 |
+
from __future__ import annotations
|
| 4 |
+
|
| 5 |
+
from typing import Any
|
| 6 |
+
|
| 7 |
+
import torch
|
| 8 |
+
from torch import nn
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
class QwenLensModel:
|
| 12 |
+
def __init__(self, model: nn.Module, tokenizer: Any) -> None:
|
| 13 |
+
self.model = model
|
| 14 |
+
self.tokenizer = tokenizer
|
| 15 |
+
self.decoder = model.model
|
| 16 |
+
self.layers = self.decoder.layers
|
| 17 |
+
self.n_layers = len(self.layers)
|
| 18 |
+
self.d_model = model.config.hidden_size
|
| 19 |
+
model.eval()
|
| 20 |
+
for parameter in model.parameters():
|
| 21 |
+
parameter.requires_grad_(False)
|
| 22 |
+
|
| 23 |
+
@property
|
| 24 |
+
def input_device(self) -> torch.device:
|
| 25 |
+
return self.decoder.embed_tokens.weight.device
|
| 26 |
+
|
| 27 |
+
def forward(self, input_ids: torch.Tensor) -> Any:
|
| 28 |
+
return self.decoder(input_ids=input_ids, use_cache=False)
|
| 29 |
+
|
| 30 |
+
def encode(self, text: str, max_length: int) -> torch.Tensor:
|
| 31 |
+
encoded = self.tokenizer(
|
| 32 |
+
text, return_tensors="pt", truncation=True, max_length=max_length,
|
| 33 |
+
add_special_tokens=True,
|
| 34 |
+
)
|
| 35 |
+
return encoded.input_ids.to(self.input_device)
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
def load_qwen(model_path: str, *, device: str, dtype: torch.dtype) -> QwenLensModel:
|
| 39 |
+
"""Load a complete local checkpoint without network requests."""
|
| 40 |
+
from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 41 |
+
|
| 42 |
+
tokenizer = AutoTokenizer.from_pretrained(model_path, local_files_only=True)
|
| 43 |
+
model = AutoModelForCausalLM.from_pretrained(
|
| 44 |
+
model_path, local_files_only=True, torch_dtype=dtype
|
| 45 |
+
).to(device)
|
| 46 |
+
return QwenLensModel(model, tokenizer)
|
| 47 |
+
|
outputs/explorer-cache/seed-17-fit-20-sample-0.json
ADDED
|
@@ -0,0 +1,2058 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"sample_index": 0,
|
| 3 |
+
"original_index": 8040,
|
| 4 |
+
"label": "31",
|
| 5 |
+
"response_ids": [
|
| 6 |
+
151667,
|
| 7 |
+
198,
|
| 8 |
+
32313,
|
| 9 |
+
11,
|
| 10 |
+
773,
|
| 11 |
+
358,
|
| 12 |
+
1184,
|
| 13 |
+
311,
|
| 14 |
+
11625,
|
| 15 |
+
419,
|
| 16 |
+
1849,
|
| 17 |
+
315,
|
| 18 |
+
37906,
|
| 19 |
+
448,
|
| 20 |
+
2326,
|
| 21 |
+
7332,
|
| 22 |
+
856,
|
| 23 |
+
11,
|
| 24 |
+
379,
|
| 25 |
+
11,
|
| 26 |
+
1147,
|
| 27 |
+
13,
|
| 28 |
+
2009,
|
| 29 |
+
315,
|
| 30 |
+
1105,
|
| 31 |
+
525,
|
| 32 |
+
6785,
|
| 33 |
+
1931,
|
| 34 |
+
5109,
|
| 35 |
+
13,
|
| 36 |
+
576,
|
| 37 |
+
37906,
|
| 38 |
+
525,
|
| 39 |
+
1447,
|
| 40 |
+
16,
|
| 41 |
+
13,
|
| 42 |
+
400,
|
| 43 |
+
856,
|
| 44 |
+
7021,
|
| 45 |
+
61,
|
| 46 |
+
17,
|
| 47 |
+
488,
|
| 48 |
+
379,
|
| 49 |
+
89,
|
| 50 |
+
488,
|
| 51 |
+
1147,
|
| 52 |
+
61,
|
| 53 |
+
17,
|
| 54 |
+
8,
|
| 55 |
+
284,
|
| 56 |
+
220,
|
| 57 |
+
18,
|
| 58 |
+
88,
|
| 59 |
+
488,
|
| 60 |
+
220,
|
| 61 |
+
16,
|
| 62 |
+
15,
|
| 63 |
+
89,
|
| 64 |
+
24437,
|
| 65 |
+
17,
|
| 66 |
+
13,
|
| 67 |
+
400,
|
| 68 |
+
379,
|
| 69 |
+
13174,
|
| 70 |
+
61,
|
| 71 |
+
17,
|
| 72 |
+
488,
|
| 73 |
+
71322,
|
| 74 |
+
488,
|
| 75 |
+
856,
|
| 76 |
+
61,
|
| 77 |
+
17,
|
| 78 |
+
8,
|
| 79 |
+
284,
|
| 80 |
+
220,
|
| 81 |
+
17,
|
| 82 |
+
16,
|
| 83 |
+
89,
|
| 84 |
+
488,
|
| 85 |
+
220,
|
| 86 |
+
17,
|
| 87 |
+
19,
|
| 88 |
+
87,
|
| 89 |
+
24437,
|
| 90 |
+
18,
|
| 91 |
+
13,
|
| 92 |
+
400,
|
| 93 |
+
1147,
|
| 94 |
+
2075,
|
| 95 |
+
61,
|
| 96 |
+
17,
|
| 97 |
+
488,
|
| 98 |
+
30784,
|
| 99 |
+
488,
|
| 100 |
+
379,
|
| 101 |
+
61,
|
| 102 |
+
17,
|
| 103 |
+
8,
|
| 104 |
+
284,
|
| 105 |
+
220,
|
| 106 |
+
22,
|
| 107 |
+
87,
|
| 108 |
+
488,
|
| 109 |
+
220,
|
| 110 |
+
17,
|
| 111 |
+
23,
|
| 112 |
+
88,
|
| 113 |
+
84500,
|
| 114 |
+
3036,
|
| 115 |
+
279,
|
| 116 |
+
5795,
|
| 117 |
+
374,
|
| 118 |
+
311,
|
| 119 |
+
1477,
|
| 120 |
+
400,
|
| 121 |
+
30784,
|
| 122 |
+
488,
|
| 123 |
+
379,
|
| 124 |
+
89,
|
| 125 |
+
488,
|
| 126 |
+
71322,
|
| 127 |
+
400,
|
| 128 |
+
382,
|
| 129 |
+
80022,
|
| 130 |
+
11,
|
| 131 |
+
1493,
|
| 132 |
+
37906,
|
| 133 |
+
1401,
|
| 134 |
+
5020,
|
| 135 |
+
54343,
|
| 136 |
+
11,
|
| 137 |
+
714,
|
| 138 |
+
807,
|
| 139 |
+
7629,
|
| 140 |
+
944,
|
| 141 |
+
6896,
|
| 142 |
+
54343,
|
| 143 |
+
13,
|
| 144 |
+
8886,
|
| 145 |
+
23606,
|
| 146 |
+
702,
|
| 147 |
+
264,
|
| 148 |
+
76002,
|
| 149 |
+
58441,
|
| 150 |
+
315,
|
| 151 |
+
7332,
|
| 152 |
+
13,
|
| 153 |
+
10696,
|
| 154 |
+
1052,
|
| 155 |
+
594,
|
| 156 |
+
264,
|
| 157 |
+
1616,
|
| 158 |
+
311,
|
| 159 |
+
32194,
|
| 160 |
+
429,
|
| 161 |
+
45120,
|
| 162 |
+
30,
|
| 163 |
+
6771,
|
| 164 |
+
752,
|
| 165 |
+
1744,
|
| 166 |
+
382,
|
| 167 |
+
5338,
|
| 168 |
+
11,
|
| 169 |
+
1077,
|
| 170 |
+
752,
|
| 171 |
+
5185,
|
| 172 |
+
429,
|
| 173 |
+
1817,
|
| 174 |
+
23606,
|
| 175 |
+
702,
|
| 176 |
+
264,
|
| 177 |
+
79151,
|
| 178 |
+
4647,
|
| 179 |
+
304,
|
| 180 |
+
279,
|
| 181 |
+
2115,
|
| 182 |
+
24413,
|
| 183 |
+
3108,
|
| 184 |
+
320,
|
| 185 |
+
43,
|
| 186 |
+
11961,
|
| 187 |
+
8,
|
| 188 |
+
323,
|
| 189 |
+
13482,
|
| 190 |
+
3793,
|
| 191 |
+
389,
|
| 192 |
+
279,
|
| 193 |
+
1290,
|
| 194 |
+
24413,
|
| 195 |
+
3108,
|
| 196 |
+
320,
|
| 197 |
+
49,
|
| 198 |
+
11961,
|
| 199 |
+
568,
|
| 200 |
+
576,
|
| 201 |
+
79151,
|
| 202 |
+
3793,
|
| 203 |
+
525,
|
| 204 |
+
315,
|
| 205 |
+
279,
|
| 206 |
+
1352,
|
| 207 |
+
400,
|
| 208 |
+
264,
|
| 209 |
+
61,
|
| 210 |
+
17,
|
| 211 |
+
488,
|
| 212 |
+
668,
|
| 213 |
+
488,
|
| 214 |
+
293,
|
| 215 |
+
61,
|
| 216 |
+
17,
|
| 217 |
+
400,
|
| 218 |
+
11,
|
| 219 |
+
892,
|
| 220 |
+
374,
|
| 221 |
+
264,
|
| 222 |
+
4185,
|
| 223 |
+
7493,
|
| 224 |
+
304,
|
| 225 |
+
54343,
|
| 226 |
+
37906,
|
| 227 |
+
13,
|
| 228 |
+
10696,
|
| 229 |
+
358,
|
| 230 |
+
646,
|
| 231 |
+
28143,
|
| 232 |
+
1493,
|
| 233 |
+
37906,
|
| 234 |
+
16925,
|
| 235 |
+
1939,
|
| 236 |
+
92014,
|
| 237 |
+
11,
|
| 238 |
+
7196,
|
| 239 |
+
358,
|
| 240 |
+
646,
|
| 241 |
+
9658,
|
| 242 |
+
1045,
|
| 243 |
+
11341,
|
| 244 |
+
1948,
|
| 245 |
+
856,
|
| 246 |
+
11,
|
| 247 |
+
379,
|
| 248 |
+
11,
|
| 249 |
+
1147,
|
| 250 |
+
30,
|
| 251 |
+
1752,
|
| 252 |
+
3110,
|
| 253 |
+
11,
|
| 254 |
+
22477,
|
| 255 |
+
429,
|
| 256 |
+
856,
|
| 257 |
+
11,
|
| 258 |
+
379,
|
| 259 |
+
11,
|
| 260 |
+
1147,
|
| 261 |
+
525,
|
| 262 |
+
54172,
|
| 263 |
+
311,
|
| 264 |
+
1045,
|
| 265 |
+
18021,
|
| 266 |
+
13,
|
| 267 |
+
6771,
|
| 268 |
+
752,
|
| 269 |
+
1430,
|
| 270 |
+
311,
|
| 271 |
+
9658,
|
| 272 |
+
429,
|
| 273 |
+
856,
|
| 274 |
+
284,
|
| 275 |
+
595,
|
| 276 |
+
353,
|
| 277 |
+
264,
|
| 278 |
+
11,
|
| 279 |
+
379,
|
| 280 |
+
284,
|
| 281 |
+
595,
|
| 282 |
+
353,
|
| 283 |
+
293,
|
| 284 |
+
11,
|
| 285 |
+
1147,
|
| 286 |
+
284,
|
| 287 |
+
595,
|
| 288 |
+
353,
|
| 289 |
+
272,
|
| 290 |
+
11,
|
| 291 |
+
1380,
|
| 292 |
+
264,
|
| 293 |
+
11,
|
| 294 |
+
293,
|
| 295 |
+
11,
|
| 296 |
+
272,
|
| 297 |
+
525,
|
| 298 |
+
18021,
|
| 299 |
+
323,
|
| 300 |
+
595,
|
| 301 |
+
374,
|
| 302 |
+
264,
|
| 303 |
+
6785,
|
| 304 |
+
1931,
|
| 305 |
+
1372,
|
| 306 |
+
13,
|
| 307 |
+
5005,
|
| 308 |
+
11,
|
| 309 |
+
31334,
|
| 310 |
+
10607,
|
| 311 |
+
1119,
|
| 312 |
+
279,
|
| 313 |
+
37906,
|
| 314 |
+
11,
|
| 315 |
+
7196,
|
| 316 |
+
358,
|
| 317 |
+
646,
|
| 318 |
+
1477,
|
| 319 |
+
264,
|
| 320 |
+
5025,
|
| 321 |
+
1948,
|
| 322 |
+
264,
|
| 323 |
+
11,
|
| 324 |
+
293,
|
| 325 |
+
11,
|
| 326 |
+
272,
|
| 327 |
+
1939,
|
| 328 |
+
3983,
|
| 329 |
+
1573,
|
| 330 |
+
29002,
|
| 331 |
+
1119,
|
| 332 |
+
429,
|
| 333 |
+
11,
|
| 334 |
+
1077,
|
| 335 |
+
752,
|
| 336 |
+
1779,
|
| 337 |
+
421,
|
| 338 |
+
1052,
|
| 339 |
+
594,
|
| 340 |
+
264,
|
| 341 |
+
48968,
|
| 342 |
+
476,
|
| 343 |
+
33686,
|
| 344 |
+
429,
|
| 345 |
+
646,
|
| 346 |
+
39721,
|
| 347 |
+
279,
|
| 348 |
+
37906,
|
| 349 |
+
13,
|
| 350 |
+
6771,
|
| 351 |
+
752,
|
| 352 |
+
1401,
|
| 353 |
+
518,
|
| 354 |
+
279,
|
| 355 |
+
37906,
|
| 356 |
+
1549,
|
| 357 |
+
1447,
|
| 358 |
+
24509,
|
| 359 |
+
367,
|
| 360 |
+
220,
|
| 361 |
+
16,
|
| 362 |
+
25,
|
| 363 |
+
400,
|
| 364 |
+
856,
|
| 365 |
+
7021,
|
| 366 |
+
61,
|
| 367 |
+
17,
|
| 368 |
+
488,
|
| 369 |
+
379,
|
| 370 |
+
89,
|
| 371 |
+
488,
|
| 372 |
+
1147,
|
| 373 |
+
61,
|
| 374 |
+
17,
|
| 375 |
+
8,
|
| 376 |
+
284,
|
| 377 |
+
220,
|
| 378 |
+
18,
|
| 379 |
+
88,
|
| 380 |
+
488,
|
| 381 |
+
220,
|
| 382 |
+
16,
|
| 383 |
+
15,
|
| 384 |
+
89,
|
| 385 |
+
84500,
|
| 386 |
+
24509,
|
| 387 |
+
367,
|
| 388 |
+
220,
|
| 389 |
+
17,
|
| 390 |
+
25,
|
| 391 |
+
400,
|
| 392 |
+
379,
|
| 393 |
+
13174,
|
| 394 |
+
61,
|
| 395 |
+
17,
|
| 396 |
+
488,
|
| 397 |
+
71322,
|
| 398 |
+
488,
|
| 399 |
+
856,
|
| 400 |
+
61,
|
| 401 |
+
17,
|
| 402 |
+
8,
|
| 403 |
+
284,
|
| 404 |
+
220,
|
| 405 |
+
17,
|
| 406 |
+
16,
|
| 407 |
+
89,
|
| 408 |
+
488,
|
| 409 |
+
220,
|
| 410 |
+
17,
|
| 411 |
+
19,
|
| 412 |
+
87,
|
| 413 |
+
84500,
|
| 414 |
+
24509,
|
| 415 |
+
367,
|
| 416 |
+
220,
|
| 417 |
+
18,
|
| 418 |
+
25,
|
| 419 |
+
400,
|
| 420 |
+
1147,
|
| 421 |
+
2075,
|
| 422 |
+
61,
|
| 423 |
+
17,
|
| 424 |
+
488,
|
| 425 |
+
30784,
|
| 426 |
+
488,
|
| 427 |
+
379,
|
| 428 |
+
61,
|
| 429 |
+
17,
|
| 430 |
+
8,
|
| 431 |
+
284,
|
| 432 |
+
220,
|
| 433 |
+
22,
|
| 434 |
+
87,
|
| 435 |
+
488,
|
| 436 |
+
220,
|
| 437 |
+
17,
|
| 438 |
+
23,
|
| 439 |
+
88,
|
| 440 |
+
84500,
|
| 441 |
+
22464,
|
| 442 |
+
518,
|
| 443 |
+
279,
|
| 444 |
+
36829,
|
| 445 |
+
389,
|
| 446 |
+
279,
|
| 447 |
+
73832,
|
| 448 |
+
25,
|
| 449 |
+
220,
|
| 450 |
+
18,
|
| 451 |
+
11,
|
| 452 |
+
220,
|
| 453 |
+
16,
|
| 454 |
+
15,
|
| 455 |
+
26,
|
| 456 |
+
220,
|
| 457 |
+
17,
|
| 458 |
+
16,
|
| 459 |
+
11,
|
| 460 |
+
220,
|
| 461 |
+
17,
|
| 462 |
+
19,
|
| 463 |
+
26,
|
| 464 |
+
220,
|
| 465 |
+
22,
|
| 466 |
+
11,
|
| 467 |
+
220,
|
| 468 |
+
17,
|
| 469 |
+
23,
|
| 470 |
+
13,
|
| 471 |
+
13824,
|
| 472 |
+
11,
|
| 473 |
+
220,
|
| 474 |
+
17,
|
| 475 |
+
16,
|
| 476 |
+
323,
|
| 477 |
+
220,
|
| 478 |
+
17,
|
| 479 |
+
19,
|
| 480 |
+
614,
|
| 481 |
+
264,
|
| 482 |
+
4185,
|
| 483 |
+
8168,
|
| 484 |
+
315,
|
| 485 |
+
220,
|
| 486 |
+
18,
|
| 487 |
+
11,
|
| 488 |
+
220,
|
| 489 |
+
22,
|
| 490 |
+
323,
|
| 491 |
+
220,
|
| 492 |
+
17,
|
| 493 |
+
23,
|
| 494 |
+
614,
|
| 495 |
+
264,
|
| 496 |
+
4185,
|
| 497 |
+
8168,
|
| 498 |
+
315,
|
| 499 |
+
220,
|
| 500 |
+
22,
|
| 501 |
+
13,
|
| 502 |
+
10696,
|
| 503 |
+
1052,
|
| 504 |
+
594,
|
| 505 |
+
264,
|
| 506 |
+
5383,
|
| 507 |
+
1588,
|
| 508 |
+
1939,
|
| 509 |
+
92014,
|
| 510 |
+
11,
|
| 511 |
+
7196,
|
| 512 |
+
358,
|
| 513 |
+
646,
|
| 514 |
+
21749,
|
| 515 |
+
279,
|
| 516 |
+
37906,
|
| 517 |
+
553,
|
| 518 |
+
2494,
|
| 519 |
+
30,
|
| 520 |
+
6771,
|
| 521 |
+
752,
|
| 522 |
+
1779,
|
| 523 |
+
279,
|
| 524 |
+
36829,
|
| 525 |
+
1549,
|
| 526 |
+
13,
|
| 527 |
+
1752,
|
| 528 |
+
3110,
|
| 529 |
+
11,
|
| 530 |
+
23606,
|
| 531 |
+
220,
|
| 532 |
+
17,
|
| 533 |
+
702,
|
| 534 |
+
220,
|
| 535 |
+
17,
|
| 536 |
+
16,
|
| 537 |
+
89,
|
| 538 |
+
488,
|
| 539 |
+
220,
|
| 540 |
+
17,
|
| 541 |
+
19,
|
| 542 |
+
87,
|
| 543 |
+
13,
|
| 544 |
+
1416,
|
| 545 |
+
358,
|
| 546 |
+
8168,
|
| 547 |
+
220,
|
| 548 |
+
18,
|
| 549 |
+
11,
|
| 550 |
+
432,
|
| 551 |
+
594,
|
| 552 |
+
220,
|
| 553 |
+
18,
|
| 554 |
+
6599,
|
| 555 |
+
22,
|
| 556 |
+
89,
|
| 557 |
+
488,
|
| 558 |
+
220,
|
| 559 |
+
23,
|
| 560 |
+
87,
|
| 561 |
+
568,
|
| 562 |
+
34239,
|
| 563 |
+
11,
|
| 564 |
+
23606,
|
| 565 |
+
220,
|
| 566 |
+
18,
|
| 567 |
+
702,
|
| 568 |
+
220,
|
| 569 |
+
22,
|
| 570 |
+
87,
|
| 571 |
+
488,
|
| 572 |
+
220,
|
| 573 |
+
17,
|
| 574 |
+
23,
|
| 575 |
+
88,
|
| 576 |
+
11,
|
| 577 |
+
892,
|
| 578 |
+
374,
|
| 579 |
+
220,
|
| 580 |
+
22,
|
| 581 |
+
6599,
|
| 582 |
+
87,
|
| 583 |
+
488,
|
| 584 |
+
220,
|
| 585 |
+
19,
|
| 586 |
+
88,
|
| 587 |
+
568,
|
| 588 |
+
84670,
|
| 589 |
+
220,
|
| 590 |
+
16,
|
| 591 |
+
702,
|
| 592 |
+
220,
|
| 593 |
+
18,
|
| 594 |
+
88,
|
| 595 |
+
488,
|
| 596 |
+
220,
|
| 597 |
+
16,
|
| 598 |
+
15,
|
| 599 |
+
89,
|
| 600 |
+
13,
|
| 601 |
+
2806,
|
| 602 |
+
2704,
|
| 603 |
+
421,
|
| 604 |
+
429,
|
| 605 |
+
8609,
|
| 606 |
+
3602,
|
| 607 |
+
382,
|
| 608 |
+
92014,
|
| 609 |
+
11,
|
| 610 |
+
7196,
|
| 611 |
+
358,
|
| 612 |
+
646,
|
| 613 |
+
2908,
|
| 614 |
+
41238,
|
| 615 |
+
1948,
|
| 616 |
+
37906,
|
| 617 |
+
30,
|
| 618 |
+
6771,
|
| 619 |
+
752,
|
| 620 |
+
1744,
|
| 621 |
+
13,
|
| 622 |
+
6771,
|
| 623 |
+
752,
|
| 624 |
+
78064,
|
| 625 |
+
279,
|
| 626 |
+
37906,
|
| 627 |
+
438,
|
| 628 |
+
33122,
|
| 629 |
+
16,
|
| 630 |
+
11,
|
| 631 |
+
33122,
|
| 632 |
+
17,
|
| 633 |
+
11,
|
| 634 |
+
33122,
|
| 635 |
+
18,
|
| 636 |
+
382,
|
| 637 |
+
10061,
|
| 638 |
+
752,
|
| 639 |
+
1430,
|
| 640 |
+
311,
|
| 641 |
+
3158,
|
| 642 |
+
1817,
|
| 643 |
+
23606,
|
| 644 |
+
304,
|
| 645 |
+
3793,
|
| 646 |
+
315,
|
| 647 |
+
7332,
|
| 648 |
+
13,
|
| 649 |
+
6771,
|
| 650 |
+
752,
|
| 651 |
+
1744,
|
| 652 |
+
911,
|
| 653 |
+
3204,
|
| 654 |
+
93650,
|
| 655 |
+
13,
|
| 656 |
+
1752,
|
| 657 |
+
3110,
|
| 658 |
+
11,
|
| 659 |
+
7196,
|
| 660 |
+
358,
|
| 661 |
+
646,
|
| 662 |
+
3158,
|
| 663 |
+
856,
|
| 664 |
+
11,
|
| 665 |
+
379,
|
| 666 |
+
11,
|
| 667 |
+
1147,
|
| 668 |
+
304,
|
| 669 |
+
3793,
|
| 670 |
+
315,
|
| 671 |
+
1817,
|
| 672 |
+
1008,
|
| 673 |
+
1939,
|
| 674 |
+
92014,
|
| 675 |
+
11,
|
| 676 |
+
7196,
|
| 677 |
+
358,
|
| 678 |
+
646,
|
| 679 |
+
2908,
|
| 680 |
+
279,
|
| 681 |
+
41238,
|
| 682 |
+
315,
|
| 683 |
+
279,
|
| 684 |
+
37906,
|
| 685 |
+
13,
|
| 686 |
+
1752,
|
| 687 |
+
3110,
|
| 688 |
+
11,
|
| 689 |
+
421,
|
| 690 |
+
358,
|
| 691 |
+
1896,
|
| 692 |
+
33122,
|
| 693 |
+
16,
|
| 694 |
+
17779,
|
| 695 |
+
553,
|
| 696 |
+
33122,
|
| 697 |
+
17,
|
| 698 |
+
476,
|
| 699 |
+
2494,
|
| 700 |
+
1075,
|
| 701 |
+
429,
|
| 702 |
+
13,
|
| 703 |
+
1988,
|
| 704 |
+
2474,
|
| 705 |
+
807,
|
| 706 |
+
525,
|
| 707 |
+
2155,
|
| 708 |
+
37906,
|
| 709 |
+
11,
|
| 710 |
+
7196,
|
| 711 |
+
537,
|
| 712 |
+
30339,
|
| 713 |
+
382,
|
| 714 |
+
92014,
|
| 715 |
+
11,
|
| 716 |
+
7196,
|
| 717 |
+
358,
|
| 718 |
+
646,
|
| 719 |
+
9658,
|
| 720 |
+
429,
|
| 721 |
+
7332,
|
| 722 |
+
525,
|
| 723 |
+
304,
|
| 724 |
+
1045,
|
| 725 |
+
21117,
|
| 726 |
+
13,
|
| 727 |
+
6771,
|
| 728 |
+
752,
|
| 729 |
+
1430,
|
| 730 |
+
311,
|
| 731 |
+
9658,
|
| 732 |
+
429,
|
| 733 |
+
856,
|
| 734 |
+
11,
|
| 735 |
+
379,
|
| 736 |
+
11,
|
| 737 |
+
1147,
|
| 738 |
+
525,
|
| 739 |
+
54172,
|
| 740 |
+
311,
|
| 741 |
+
1045,
|
| 742 |
+
5109,
|
| 743 |
+
13,
|
| 744 |
+
6771,
|
| 745 |
+
752,
|
| 746 |
+
1744,
|
| 747 |
+
911,
|
| 748 |
+
279,
|
| 749 |
+
36829,
|
| 750 |
+
304,
|
| 751 |
+
279,
|
| 752 |
+
73832,
|
| 753 |
+
13,
|
| 754 |
+
1752,
|
| 755 |
+
3110,
|
| 756 |
+
11,
|
| 757 |
+
304,
|
| 758 |
+
23606,
|
| 759 |
+
220,
|
| 760 |
+
16,
|
| 761 |
+
11,
|
| 762 |
+
279,
|
| 763 |
+
73832,
|
| 764 |
+
374,
|
| 765 |
+
220,
|
| 766 |
+
18,
|
| 767 |
+
88,
|
| 768 |
+
488,
|
| 769 |
+
220,
|
| 770 |
+
16,
|
| 771 |
+
15,
|
| 772 |
+
89,
|
| 773 |
+
13,
|
| 774 |
+
758,
|
| 775 |
+
23606,
|
| 776 |
+
220,
|
| 777 |
+
17,
|
| 778 |
+
11,
|
| 779 |
+
432,
|
| 780 |
+
594,
|
| 781 |
+
220,
|
| 782 |
+
17,
|
| 783 |
+
16,
|
| 784 |
+
89,
|
| 785 |
+
488,
|
| 786 |
+
220,
|
| 787 |
+
17,
|
| 788 |
+
19,
|
| 789 |
+
87,
|
| 790 |
+
13,
|
| 791 |
+
758,
|
| 792 |
+
23606,
|
| 793 |
+
220,
|
| 794 |
+
18,
|
| 795 |
+
11,
|
| 796 |
+
432,
|
| 797 |
+
594,
|
| 798 |
+
220,
|
| 799 |
+
22,
|
| 800 |
+
87,
|
| 801 |
+
488,
|
| 802 |
+
220,
|
| 803 |
+
17,
|
| 804 |
+
23,
|
| 805 |
+
88,
|
| 806 |
+
13,
|
| 807 |
+
6771,
|
| 808 |
+
752,
|
| 809 |
+
5185,
|
| 810 |
+
429,
|
| 811 |
+
220,
|
| 812 |
+
17,
|
| 813 |
+
16,
|
| 814 |
+
89,
|
| 815 |
+
488,
|
| 816 |
+
220,
|
| 817 |
+
17,
|
| 818 |
+
19,
|
| 819 |
+
87,
|
| 820 |
+
646,
|
| 821 |
+
387,
|
| 822 |
+
5326,
|
| 823 |
+
438,
|
| 824 |
+
220,
|
| 825 |
+
18,
|
| 826 |
+
6599,
|
| 827 |
+
22,
|
| 828 |
+
89,
|
| 829 |
+
488,
|
| 830 |
+
220,
|
| 831 |
+
23,
|
| 832 |
+
87,
|
| 833 |
+
701,
|
| 834 |
+
323,
|
| 835 |
+
220,
|
| 836 |
+
22,
|
| 837 |
+
87,
|
| 838 |
+
488,
|
| 839 |
+
220,
|
| 840 |
+
17,
|
| 841 |
+
23,
|
| 842 |
+
88,
|
| 843 |
+
374,
|
| 844 |
+
220,
|
| 845 |
+
22,
|
| 846 |
+
6599,
|
| 847 |
+
87,
|
| 848 |
+
488,
|
| 849 |
+
220,
|
| 850 |
+
19,
|
| 851 |
+
88,
|
| 852 |
+
568,
|
| 853 |
+
34239,
|
| 854 |
+
11,
|
| 855 |
+
23606,
|
| 856 |
+
220,
|
| 857 |
+
16,
|
| 858 |
+
374,
|
| 859 |
+
220,
|
| 860 |
+
18,
|
| 861 |
+
88,
|
| 862 |
+
488,
|
| 863 |
+
220,
|
| 864 |
+
16,
|
| 865 |
+
15,
|
| 866 |
+
89,
|
| 867 |
+
13,
|
| 868 |
+
10696,
|
| 869 |
+
1052,
|
| 870 |
+
594,
|
| 871 |
+
264,
|
| 872 |
+
1616,
|
| 873 |
+
311,
|
| 874 |
+
28143,
|
| 875 |
+
1493,
|
| 876 |
+
1939,
|
| 877 |
+
92014,
|
| 878 |
+
11,
|
| 879 |
+
7196,
|
| 880 |
+
358,
|
| 881 |
+
646,
|
| 882 |
+
1744,
|
| 883 |
+
315,
|
| 884 |
+
279,
|
| 885 |
+
37906,
|
| 886 |
+
438,
|
| 887 |
+
13482,
|
| 888 |
+
37906,
|
| 889 |
+
304,
|
| 890 |
+
3793,
|
| 891 |
+
315,
|
| 892 |
+
7332,
|
| 893 |
+
30,
|
| 894 |
+
13824,
|
| 895 |
+
11,
|
| 896 |
+
902,
|
| 897 |
+
11,
|
| 898 |
+
1576,
|
| 899 |
+
279,
|
| 900 |
+
444,
|
| 901 |
+
11961,
|
| 902 |
+
374,
|
| 903 |
+
79151,
|
| 904 |
+
13,
|
| 905 |
+
2055,
|
| 906 |
+
807,
|
| 907 |
+
525,
|
| 908 |
+
73998,
|
| 909 |
+
37906,
|
| 910 |
+
382,
|
| 911 |
+
92014,
|
| 912 |
+
11,
|
| 913 |
+
7196,
|
| 914 |
+
358,
|
| 915 |
+
646,
|
| 916 |
+
2908,
|
| 917 |
+
31334,
|
| 918 |
+
10607,
|
| 919 |
+
7332,
|
| 920 |
+
13,
|
| 921 |
+
6771,
|
| 922 |
+
752,
|
| 923 |
+
1744,
|
| 924 |
+
13,
|
| 925 |
+
6771,
|
| 926 |
+
752,
|
| 927 |
+
78064,
|
| 928 |
+
328,
|
| 929 |
+
284,
|
| 930 |
+
30784,
|
| 931 |
+
488,
|
| 932 |
+
379,
|
| 933 |
+
89,
|
| 934 |
+
488,
|
| 935 |
+
71322,
|
| 936 |
+
11,
|
| 937 |
+
892,
|
| 938 |
+
374,
|
| 939 |
+
279,
|
| 940 |
+
12194,
|
| 941 |
+
582,
|
| 942 |
+
1184,
|
| 943 |
+
311,
|
| 944 |
+
1477,
|
| 945 |
+
13,
|
| 946 |
+
10696,
|
| 947 |
+
358,
|
| 948 |
+
646,
|
| 949 |
+
1477,
|
| 950 |
+
23393,
|
| 951 |
+
15860,
|
| 952 |
+
328,
|
| 953 |
+
1939,
|
| 954 |
+
92014,
|
| 955 |
+
11,
|
| 956 |
+
7196,
|
| 957 |
+
358,
|
| 958 |
+
646,
|
| 959 |
+
2908,
|
| 960 |
+
279,
|
| 961 |
+
37906,
|
| 962 |
+
438,
|
| 963 |
+
11017,
|
| 964 |
+
13,
|
| 965 |
+
6771,
|
| 966 |
+
752,
|
| 967 |
+
5185,
|
| 968 |
+
429,
|
| 969 |
+
279,
|
| 970 |
+
79151,
|
| 971 |
+
3793,
|
| 972 |
+
389,
|
| 973 |
+
279,
|
| 974 |
+
444,
|
| 975 |
+
11961,
|
| 976 |
+
525,
|
| 977 |
+
4428,
|
| 978 |
+
311,
|
| 979 |
+
279,
|
| 980 |
+
7493,
|
| 981 |
+
369,
|
| 982 |
+
279,
|
| 983 |
+
9334,
|
| 984 |
+
315,
|
| 985 |
+
279,
|
| 986 |
+
2629,
|
| 987 |
+
476,
|
| 988 |
+
2494,
|
| 989 |
+
770,
|
| 990 |
+
13,
|
| 991 |
+
13824,
|
| 992 |
+
11,
|
| 993 |
+
369,
|
| 994 |
+
3110,
|
| 995 |
+
11,
|
| 996 |
+
400,
|
| 997 |
+
379,
|
| 998 |
+
61,
|
| 999 |
+
17,
|
| 1000 |
+
488,
|
| 1001 |
+
379,
|
| 1002 |
+
89,
|
| 1003 |
+
488,
|
| 1004 |
+
1147,
|
| 1005 |
+
61,
|
| 1006 |
+
17,
|
| 1007 |
+
284,
|
| 1008 |
+
1124,
|
| 1009 |
+
37018,
|
| 1010 |
+
90,
|
| 1011 |
+
18,
|
| 1012 |
+
15170,
|
| 1013 |
+
19,
|
| 1014 |
+
25547,
|
| 1015 |
+
88,
|
| 1016 |
+
488,
|
| 1017 |
+
1147,
|
| 1018 |
+
29776,
|
| 1019 |
+
17,
|
| 1020 |
+
488,
|
| 1021 |
+
1124,
|
| 1022 |
+
37018,
|
| 1023 |
+
90,
|
| 1024 |
+
16,
|
| 1025 |
+
15170,
|
| 1026 |
+
19,
|
| 1027 |
+
25547,
|
| 1028 |
+
88,
|
| 1029 |
+
481,
|
| 1030 |
+
1147,
|
| 1031 |
+
29776,
|
| 1032 |
+
17,
|
| 1033 |
+
400,
|
| 1034 |
+
11,
|
| 1035 |
+
714,
|
| 1036 |
+
537,
|
| 1037 |
+
2704,
|
| 1038 |
+
421,
|
| 1039 |
+
429,
|
| 1040 |
+
8609,
|
| 1041 |
+
1588,
|
| 1042 |
+
382,
|
| 1043 |
+
92014,
|
| 1044 |
+
11,
|
| 1045 |
+
7196,
|
| 1046 |
+
358,
|
| 1047 |
+
646,
|
| 1048 |
+
1744,
|
| 1049 |
+
315,
|
| 1050 |
+
279,
|
| 1051 |
+
37906,
|
| 1052 |
+
438,
|
| 1053 |
+
1447,
|
| 1054 |
+
2461,
|
| 1055 |
+
23606,
|
| 1056 |
+
220,
|
| 1057 |
+
16,
|
| 1058 |
+
25,
|
| 1059 |
+
400,
|
| 1060 |
+
856,
|
| 1061 |
+
7021,
|
| 1062 |
+
61,
|
| 1063 |
+
17,
|
| 1064 |
+
488,
|
| 1065 |
+
379,
|
| 1066 |
+
89,
|
| 1067 |
+
488,
|
| 1068 |
+
1147,
|
| 1069 |
+
61,
|
| 1070 |
+
17,
|
| 1071 |
+
8,
|
| 1072 |
+
481,
|
| 1073 |
+
220,
|
| 1074 |
+
18,
|
| 1075 |
+
88,
|
| 1076 |
+
481,
|
| 1077 |
+
220,
|
| 1078 |
+
16,
|
| 1079 |
+
15,
|
| 1080 |
+
89,
|
| 1081 |
+
284,
|
| 1082 |
+
220,
|
| 1083 |
+
15,
|
| 1084 |
+
84500,
|
| 1085 |
+
67691,
|
| 1086 |
+
369,
|
| 1087 |
+
3800,
|
| 1088 |
+
13,
|
| 1089 |
+
10696,
|
| 1090 |
+
358,
|
| 1091 |
+
646,
|
| 1092 |
+
1744,
|
| 1093 |
+
315,
|
| 1094 |
+
419,
|
| 1095 |
+
438,
|
| 1096 |
+
264,
|
| 1097 |
+
1849,
|
| 1098 |
+
1380,
|
| 1099 |
+
1817,
|
| 1100 |
+
23606,
|
| 1101 |
+
374,
|
| 1102 |
+
264,
|
| 1103 |
+
10601,
|
| 1104 |
+
315,
|
| 1105 |
+
7332,
|
| 1106 |
+
13,
|
| 1107 |
+
1988,
|
| 1108 |
+
21828,
|
| 1109 |
+
1741,
|
| 1110 |
+
264,
|
| 1111 |
+
1849,
|
| 1112 |
+
4977,
|
| 1113 |
+
16965,
|
| 1114 |
+
382,
|
| 1115 |
+
92014,
|
| 1116 |
+
11,
|
| 1117 |
+
7196,
|
| 1118 |
+
358,
|
| 1119 |
+
646,
|
| 1120 |
+
9658,
|
| 1121 |
+
429,
|
| 1122 |
+
7332,
|
| 1123 |
+
525,
|
| 1124 |
+
25780,
|
| 1125 |
+
30,
|
| 1126 |
+
6771,
|
| 1127 |
+
752,
|
| 1128 |
+
1779,
|
| 1129 |
+
421,
|
| 1130 |
+
429,
|
| 1131 |
+
594,
|
| 1132 |
+
3204,
|
| 1133 |
+
13,
|
| 1134 |
+
6771,
|
| 1135 |
+
752,
|
| 1136 |
+
1430,
|
| 1137 |
+
311,
|
| 1138 |
+
1490,
|
| 1139 |
+
421,
|
| 1140 |
+
1052,
|
| 1141 |
+
525,
|
| 1142 |
+
7546,
|
| 1143 |
+
9904,
|
| 1144 |
+
13,
|
| 1145 |
+
6771,
|
| 1146 |
+
752,
|
| 1147 |
+
22477,
|
| 1148 |
+
429,
|
| 1149 |
+
856,
|
| 1150 |
+
11,
|
| 1151 |
+
379,
|
| 1152 |
+
11,
|
| 1153 |
+
1147,
|
| 1154 |
+
525,
|
| 1155 |
+
25780,
|
| 1156 |
+
13,
|
| 1157 |
+
6771,
|
| 1158 |
+
752,
|
| 1159 |
+
1779,
|
| 1160 |
+
23606,
|
| 1161 |
+
220,
|
| 1162 |
+
18,
|
| 1163 |
+
25,
|
| 1164 |
+
1147,
|
| 1165 |
+
2075,
|
| 1166 |
+
29456,
|
| 1167 |
+
488,
|
| 1168 |
+
30784,
|
| 1169 |
+
488,
|
| 1170 |
+
379,
|
| 1171 |
+
29456,
|
| 1172 |
+
8,
|
| 1173 |
+
284,
|
| 1174 |
+
220,
|
| 1175 |
+
22,
|
| 1176 |
+
87,
|
| 1177 |
+
488,
|
| 1178 |
+
220,
|
| 1179 |
+
17,
|
| 1180 |
+
23,
|
| 1181 |
+
88,
|
| 1182 |
+
13,
|
| 1183 |
+
6771,
|
| 1184 |
+
752,
|
| 1185 |
+
5185,
|
| 1186 |
+
429,
|
| 1187 |
+
220,
|
| 1188 |
+
22,
|
| 1189 |
+
87,
|
| 1190 |
+
488,
|
| 1191 |
+
220,
|
| 1192 |
+
17,
|
| 1193 |
+
23,
|
| 1194 |
+
88,
|
| 1195 |
+
284,
|
| 1196 |
+
220,
|
| 1197 |
+
22,
|
| 1198 |
+
2075,
|
| 1199 |
+
488,
|
| 1200 |
+
220,
|
| 1201 |
+
19,
|
| 1202 |
+
88,
|
| 1203 |
+
568,
|
| 1204 |
+
2055,
|
| 1205 |
+
1147,
|
| 1206 |
+
64828,
|
| 1207 |
+
220,
|
| 1208 |
+
22,
|
| 1209 |
+
2075,
|
| 1210 |
+
488,
|
| 1211 |
+
220,
|
| 1212 |
+
19,
|
| 1213 |
+
88,
|
| 1214 |
+
568,
|
| 1215 |
+
34239,
|
| 1216 |
+
11,
|
| 1217 |
+
23606,
|
| 1218 |
+
220,
|
| 1219 |
+
17,
|
| 1220 |
+
25,
|
| 1221 |
+
379,
|
| 1222 |
+
13174,
|
| 1223 |
+
29456,
|
| 1224 |
+
488,
|
| 1225 |
+
71322,
|
| 1226 |
+
488,
|
| 1227 |
+
856,
|
| 1228 |
+
29456,
|
| 1229 |
+
8,
|
| 1230 |
+
284,
|
| 1231 |
+
220,
|
| 1232 |
+
17,
|
| 1233 |
+
16,
|
| 1234 |
+
89,
|
| 1235 |
+
488,
|
| 1236 |
+
220,
|
| 1237 |
+
17,
|
| 1238 |
+
19,
|
| 1239 |
+
87,
|
| 1240 |
+
13,
|
| 1241 |
+
6771,
|
| 1242 |
+
752,
|
| 1243 |
+
5185,
|
| 1244 |
+
429,
|
| 1245 |
+
220,
|
| 1246 |
+
17,
|
| 1247 |
+
16,
|
| 1248 |
+
89,
|
| 1249 |
+
488,
|
| 1250 |
+
220,
|
| 1251 |
+
17,
|
| 1252 |
+
19,
|
| 1253 |
+
87,
|
| 1254 |
+
284,
|
| 1255 |
+
220,
|
| 1256 |
+
18,
|
| 1257 |
+
7,
|
| 1258 |
+
22,
|
| 1259 |
+
89,
|
| 1260 |
+
488,
|
| 1261 |
+
220,
|
| 1262 |
+
23,
|
| 1263 |
+
87,
|
| 1264 |
+
568,
|
| 1265 |
+
2055,
|
| 1266 |
+
379,
|
| 1267 |
+
64828,
|
| 1268 |
+
220,
|
| 1269 |
+
18,
|
| 1270 |
+
7,
|
| 1271 |
+
22,
|
| 1272 |
+
89,
|
| 1273 |
+
488,
|
| 1274 |
+
220,
|
| 1275 |
+
23,
|
| 1276 |
+
87,
|
| 1277 |
+
568,
|
| 1278 |
+
34239,
|
| 1279 |
+
11,
|
| 1280 |
+
23606,
|
| 1281 |
+
220,
|
| 1282 |
+
16,
|
| 1283 |
+
25,
|
| 1284 |
+
856,
|
| 1285 |
+
7021,
|
| 1286 |
+
29456,
|
| 1287 |
+
488,
|
| 1288 |
+
379,
|
| 1289 |
+
89,
|
| 1290 |
+
488,
|
| 1291 |
+
1147,
|
| 1292 |
+
29456,
|
| 1293 |
+
8,
|
| 1294 |
+
284,
|
| 1295 |
+
220,
|
| 1296 |
+
18,
|
| 1297 |
+
88,
|
| 1298 |
+
488,
|
| 1299 |
+
220,
|
| 1300 |
+
16,
|
| 1301 |
+
15,
|
| 1302 |
+
89,
|
| 1303 |
+
13,
|
| 1304 |
+
2055,
|
| 1305 |
+
856,
|
| 1306 |
+
64828,
|
| 1307 |
+
220,
|
| 1308 |
+
18,
|
| 1309 |
+
88,
|
| 1310 |
+
488,
|
| 1311 |
+
220,
|
| 1312 |
+
16,
|
| 1313 |
+
15,
|
| 1314 |
+
89,
|
| 1315 |
+
382,
|
| 1316 |
+
3983,
|
| 1317 |
+
2474,
|
| 1318 |
+
856,
|
| 1319 |
+
11,
|
| 1320 |
+
379,
|
| 1321 |
+
11,
|
| 1322 |
+
1147,
|
| 1323 |
+
525,
|
| 1324 |
+
6785,
|
| 1325 |
+
25780,
|
| 1326 |
+
11,
|
| 1327 |
+
7196,
|
| 1328 |
+
582,
|
| 1329 |
+
646,
|
| 1330 |
+
1477,
|
| 1331 |
+
1045,
|
| 1332 |
+
4300,
|
| 1333 |
+
13,
|
| 1334 |
+
4354,
|
| 1335 |
+
11,
|
| 1336 |
+
2474,
|
| 1337 |
+
279,
|
| 1338 |
+
3491,
|
| 1339 |
+
2727,
|
| 1340 |
+
807,
|
| 1341 |
+
525,
|
| 1342 |
+
6785,
|
| 1343 |
+
1931,
|
| 1344 |
+
5109,
|
| 1345 |
+
11,
|
| 1346 |
+
537,
|
| 1347 |
+
14312,
|
| 1348 |
+
25780,
|
| 1349 |
+
11,
|
| 1350 |
+
773,
|
| 1351 |
+
7196,
|
| 1352 |
+
419,
|
| 1353 |
+
5486,
|
| 1354 |
+
374,
|
| 1355 |
+
2238,
|
| 1356 |
+
56996,
|
| 1357 |
+
13,
|
| 1358 |
+
1988,
|
| 1359 |
+
7196,
|
| 1360 |
+
1052,
|
| 1361 |
+
594,
|
| 1362 |
+
264,
|
| 1363 |
+
6291,
|
| 1364 |
+
448,
|
| 1365 |
+
7546,
|
| 1366 |
+
2750,
|
| 1367 |
+
30,
|
| 1368 |
+
6771,
|
| 1369 |
+
752,
|
| 1370 |
+
1430,
|
| 1371 |
+
311,
|
| 1372 |
+
1490,
|
| 1373 |
+
382,
|
| 1374 |
+
92014,
|
| 1375 |
+
11,
|
| 1376 |
+
7196,
|
| 1377 |
+
358,
|
| 1378 |
+
646,
|
| 1379 |
+
1401,
|
| 1380 |
+
369,
|
| 1381 |
+
41238,
|
| 1382 |
+
1948,
|
| 1383 |
+
7332,
|
| 1384 |
+
13,
|
| 1385 |
+
6771,
|
| 1386 |
+
752,
|
| 1387 |
+
22477,
|
| 1388 |
+
429,
|
| 1389 |
+
1052,
|
| 1390 |
+
374,
|
| 1391 |
+
264,
|
| 1392 |
+
11341,
|
| 1393 |
+
1948,
|
| 1394 |
+
856,
|
| 1395 |
+
11,
|
| 1396 |
+
379,
|
| 1397 |
+
11,
|
| 1398 |
+
1147,
|
| 1399 |
+
13,
|
| 1400 |
+
6771,
|
| 1401 |
+
752,
|
| 1402 |
+
9658,
|
| 1403 |
+
429,
|
| 1404 |
+
856,
|
| 1405 |
+
284,
|
| 1406 |
+
264,
|
| 1407 |
+
11,
|
| 1408 |
+
379,
|
| 1409 |
+
284,
|
| 1410 |
+
293,
|
| 1411 |
+
11,
|
| 1412 |
+
1147,
|
| 1413 |
+
284,
|
| 1414 |
+
272,
|
| 1415 |
+
11,
|
| 1416 |
+
323,
|
| 1417 |
+
1430,
|
| 1418 |
+
311,
|
| 1419 |
+
1477,
|
| 1420 |
+
41238,
|
| 1421 |
+
13,
|
| 1422 |
+
6771,
|
| 1423 |
+
752,
|
| 1424 |
+
1744,
|
| 1425 |
+
382,
|
| 1426 |
+
92014,
|
| 1427 |
+
11,
|
| 1428 |
+
7196,
|
| 1429 |
+
358,
|
| 1430 |
+
646,
|
| 1431 |
+
2908,
|
| 1432 |
+
49702,
|
| 1433 |
+
37906,
|
| 1434 |
+
13,
|
| 1435 |
+
1752,
|
| 1436 |
+
3110,
|
| 1437 |
+
11,
|
| 1438 |
+
1896,
|
| 1439 |
+
23606,
|
| 1440 |
+
220,
|
| 1441 |
+
16,
|
| 1442 |
+
323,
|
| 1443 |
+
23606,
|
| 1444 |
+
220,
|
| 1445 |
+
18,
|
| 1446 |
+
13,
|
| 1447 |
+
6771,
|
| 1448 |
+
752,
|
| 1449 |
+
1490,
|
| 1450 |
+
1447,
|
| 1451 |
+
24509,
|
| 1452 |
+
367,
|
| 1453 |
+
220,
|
| 1454 |
+
16,
|
| 1455 |
+
25,
|
| 1456 |
+
856,
|
| 1457 |
+
7021,
|
| 1458 |
+
29456,
|
| 1459 |
+
488,
|
| 1460 |
+
379,
|
| 1461 |
+
89,
|
| 1462 |
+
488,
|
| 1463 |
+
1147,
|
| 1464 |
+
29456,
|
| 1465 |
+
8,
|
| 1466 |
+
284,
|
| 1467 |
+
220,
|
| 1468 |
+
18,
|
| 1469 |
+
88,
|
| 1470 |
+
488,
|
| 1471 |
+
220,
|
| 1472 |
+
16,
|
| 1473 |
+
15,
|
| 1474 |
+
89,
|
| 1475 |
+
271,
|
| 1476 |
+
24509,
|
| 1477 |
+
367,
|
| 1478 |
+
220,
|
| 1479 |
+
18,
|
| 1480 |
+
25,
|
| 1481 |
+
1147,
|
| 1482 |
+
2075,
|
| 1483 |
+
29456,
|
| 1484 |
+
488,
|
| 1485 |
+
30784,
|
| 1486 |
+
488,
|
| 1487 |
+
379,
|
| 1488 |
+
29456,
|
| 1489 |
+
8,
|
| 1490 |
+
284,
|
| 1491 |
+
220,
|
| 1492 |
+
22,
|
| 1493 |
+
87,
|
| 1494 |
+
488,
|
| 1495 |
+
220,
|
| 1496 |
+
17,
|
| 1497 |
+
23,
|
| 1498 |
+
88,
|
| 1499 |
+
271,
|
| 1500 |
+
2679,
|
| 1501 |
+
358,
|
| 1502 |
+
21749,
|
| 1503 |
+
23606,
|
| 1504 |
+
220,
|
| 1505 |
+
16,
|
| 1506 |
+
553,
|
| 1507 |
+
23606,
|
| 1508 |
+
220,
|
| 1509 |
+
18,
|
| 1510 |
+
11,
|
| 1511 |
+
358,
|
| 1512 |
+
633,
|
| 1513 |
+
1447,
|
| 1514 |
+
58,
|
| 1515 |
+
856,
|
| 1516 |
+
7021,
|
| 1517 |
+
29456,
|
| 1518 |
+
488,
|
| 1519 |
+
379,
|
| 1520 |
+
89,
|
| 1521 |
+
488,
|
| 1522 |
+
1147,
|
| 1523 |
+
29456,
|
| 1524 |
+
8,
|
| 1525 |
+
2279,
|
| 1526 |
+
608,
|
| 1527 |
+
508,
|
| 1528 |
+
1147,
|
| 1529 |
+
2075,
|
| 1530 |
+
29456,
|
| 1531 |
+
488,
|
| 1532 |
+
30784,
|
| 1533 |
+
488,
|
| 1534 |
+
379,
|
| 1535 |
+
29456,
|
| 1536 |
+
8,
|
| 1537 |
+
2279,
|
| 1538 |
+
284,
|
| 1539 |
+
320,
|
| 1540 |
+
18,
|
| 1541 |
+
88,
|
| 1542 |
+
488,
|
| 1543 |
+
220,
|
| 1544 |
+
16,
|
| 1545 |
+
15,
|
| 1546 |
+
89,
|
| 1547 |
+
24254,
|
| 1548 |
+
22,
|
| 1549 |
+
87,
|
| 1550 |
+
488,
|
| 1551 |
+
220,
|
| 1552 |
+
17,
|
| 1553 |
+
23,
|
| 1554 |
+
88,
|
| 1555 |
+
692,
|
| 1556 |
+
50,
|
| 1557 |
+
70206,
|
| 1558 |
+
63533,
|
| 1559 |
+
323,
|
| 1560 |
+
46912,
|
| 1561 |
+
1447,
|
| 1562 |
+
5415,
|
| 1563 |
+
3108,
|
| 1564 |
+
25,
|
| 1565 |
+
508,
|
| 1566 |
+
87,
|
| 1567 |
+
31082,
|
| 1568 |
+
60,
|
| 1569 |
+
353,
|
| 1570 |
+
508,
|
| 1571 |
+
320,
|
| 1572 |
+
88,
|
| 1573 |
+
29456,
|
| 1574 |
+
488,
|
| 1575 |
+
379,
|
| 1576 |
+
89,
|
| 1577 |
+
488,
|
| 1578 |
+
1147,
|
| 1579 |
+
29456,
|
| 1580 |
+
8,
|
| 1581 |
+
608,
|
| 1582 |
+
320,
|
| 1583 |
+
87,
|
| 1584 |
+
29456,
|
| 1585 |
+
488,
|
| 1586 |
+
30784,
|
| 1587 |
+
488,
|
| 1588 |
+
379,
|
| 1589 |
+
29456,
|
| 1590 |
+
8,
|
| 1591 |
+
10444,
|
| 1592 |
+
5979,
|
| 1593 |
+
3108,
|
| 1594 |
+
25,
|
| 1595 |
+
508,
|
| 1596 |
+
18,
|
| 1597 |
+
88,
|
| 1598 |
+
488,
|
| 1599 |
+
220,
|
| 1600 |
+
16,
|
| 1601 |
+
15,
|
| 1602 |
+
89,
|
| 1603 |
+
9769,
|
| 1604 |
+
58,
|
| 1605 |
+
22,
|
| 1606 |
+
87,
|
| 1607 |
+
488,
|
| 1608 |
+
220,
|
| 1609 |
+
17,
|
| 1610 |
+
23,
|
| 1611 |
+
88,
|
| 1612 |
+
60,
|
| 1613 |
+
284,
|
| 1614 |
+
508,
|
| 1615 |
+
18,
|
| 1616 |
+
88,
|
| 1617 |
+
488,
|
| 1618 |
+
220,
|
| 1619 |
+
16,
|
| 1620 |
+
15,
|
| 1621 |
+
89,
|
| 1622 |
+
9769,
|
| 1623 |
+
58,
|
| 1624 |
+
22,
|
| 1625 |
+
2075,
|
| 1626 |
+
488,
|
| 1627 |
+
220,
|
| 1628 |
+
19,
|
| 1629 |
+
88,
|
| 1630 |
+
27771,
|
| 1631 |
+
80022,
|
| 1632 |
+
11,
|
| 1633 |
+
537,
|
| 1634 |
+
2704,
|
| 1635 |
+
421,
|
| 1636 |
+
10950,
|
| 1637 |
+
3602,
|
| 1638 |
+
13,
|
| 1639 |
+
10696,
|
| 1640 |
+
358,
|
| 1641 |
+
646,
|
| 1642 |
+
9658,
|
| 1643 |
+
1045,
|
| 1644 |
+
11341,
|
| 1645 |
+
1948,
|
| 1646 |
+
7332,
|
| 1647 |
+
13,
|
| 1648 |
+
6771,
|
| 1649 |
+
752,
|
| 1650 |
+
22477,
|
| 1651 |
+
429,
|
| 1652 |
+
856,
|
| 1653 |
+
11,
|
| 1654 |
+
379,
|
| 1655 |
+
11,
|
| 1656 |
+
1147,
|
| 1657 |
+
525,
|
| 1658 |
+
304,
|
| 1659 |
+
1045,
|
| 1660 |
+
21117,
|
| 1661 |
+
13,
|
| 1662 |
+
6771,
|
| 1663 |
+
752,
|
| 1664 |
+
1744,
|
| 1665 |
+
911,
|
| 1666 |
+
279,
|
| 1667 |
+
36829,
|
| 1668 |
+
304,
|
| 1669 |
+
279,
|
| 1670 |
+
73832,
|
| 1671 |
+
13,
|
| 1672 |
+
1752,
|
| 1673 |
+
3110,
|
| 1674 |
+
11,
|
| 1675 |
+
23606,
|
| 1676 |
+
220,
|
| 1677 |
+
16,
|
| 1678 |
+
702,
|
| 1679 |
+
220,
|
| 1680 |
+
18,
|
| 1681 |
+
88,
|
| 1682 |
+
488,
|
| 1683 |
+
220,
|
| 1684 |
+
16,
|
| 1685 |
+
15,
|
| 1686 |
+
89,
|
| 1687 |
+
11,
|
| 1688 |
+
23606,
|
| 1689 |
+
220,
|
| 1690 |
+
17,
|
| 1691 |
+
702,
|
| 1692 |
+
220,
|
| 1693 |
+
17,
|
| 1694 |
+
16,
|
| 1695 |
+
89,
|
| 1696 |
+
488,
|
| 1697 |
+
220,
|
| 1698 |
+
17,
|
| 1699 |
+
19,
|
| 1700 |
+
87,
|
| 1701 |
+
11,
|
| 1702 |
+
23606,
|
| 1703 |
+
220,
|
| 1704 |
+
18,
|
| 1705 |
+
702,
|
| 1706 |
+
220,
|
| 1707 |
+
22,
|
| 1708 |
+
87,
|
| 1709 |
+
488,
|
| 1710 |
+
220,
|
| 1711 |
+
17,
|
| 1712 |
+
23,
|
| 1713 |
+
88,
|
| 1714 |
+
13,
|
| 1715 |
+
6771,
|
| 1716 |
+
752,
|
| 1717 |
+
5185,
|
| 1718 |
+
429,
|
| 1719 |
+
220,
|
| 1720 |
+
17,
|
| 1721 |
+
16,
|
| 1722 |
+
89,
|
| 1723 |
+
488,
|
| 1724 |
+
220,
|
| 1725 |
+
17,
|
| 1726 |
+
19,
|
| 1727 |
+
87,
|
| 1728 |
+
284,
|
| 1729 |
+
220,
|
| 1730 |
+
18,
|
| 1731 |
+
6599,
|
| 1732 |
+
22,
|
| 1733 |
+
89,
|
| 1734 |
+
488,
|
| 1735 |
+
220,
|
| 1736 |
+
23,
|
| 1737 |
+
87,
|
| 1738 |
+
701,
|
| 1739 |
+
323,
|
| 1740 |
+
220,
|
| 1741 |
+
22,
|
| 1742 |
+
87,
|
| 1743 |
+
488,
|
| 1744 |
+
220,
|
| 1745 |
+
17,
|
| 1746 |
+
23,
|
| 1747 |
+
88,
|
| 1748 |
+
284,
|
| 1749 |
+
220,
|
| 1750 |
+
22,
|
| 1751 |
+
6599,
|
| 1752 |
+
87,
|
| 1753 |
+
488,
|
| 1754 |
+
220,
|
| 1755 |
+
19,
|
| 1756 |
+
88,
|
| 1757 |
+
568,
|
| 1758 |
+
7281,
|
| 1759 |
+
11,
|
| 1760 |
+
220,
|
| 1761 |
+
18,
|
| 1762 |
+
88,
|
| 1763 |
+
488,
|
| 1764 |
+
220,
|
| 1765 |
+
16,
|
| 1766 |
+
15,
|
| 1767 |
+
89,
|
| 1768 |
+
374,
|
| 1769 |
+
438,
|
| 1770 |
+
374,
|
| 1771 |
+
382,
|
| 1772 |
+
92014,
|
| 1773 |
+
11,
|
| 1774 |
+
7196,
|
| 1775 |
+
358,
|
| 1776 |
+
646,
|
| 1777 |
+
1744,
|
| 1778 |
+
315,
|
| 1779 |
+
279,
|
| 1780 |
+
37906,
|
| 1781 |
+
438,
|
| 1782 |
+
11017,
|
| 1783 |
+
1447,
|
| 1784 |
+
10061,
|
| 1785 |
+
752,
|
| 1786 |
+
78064,
|
| 1787 |
+
1447,
|
| 1788 |
+
10061,
|
| 1789 |
+
752,
|
| 1790 |
+
1744,
|
| 1791 |
+
315,
|
| 1792 |
+
23606,
|
| 1793 |
+
220,
|
| 1794 |
+
16,
|
| 1795 |
+
25,
|
| 1796 |
+
856,
|
| 1797 |
+
7021,
|
| 1798 |
+
29456,
|
| 1799 |
+
488,
|
| 1800 |
+
379,
|
| 1801 |
+
89,
|
| 1802 |
+
488,
|
| 1803 |
+
1147,
|
| 1804 |
+
29456,
|
| 1805 |
+
8,
|
| 1806 |
+
284,
|
| 1807 |
+
220,
|
| 1808 |
+
18,
|
| 1809 |
+
88,
|
| 1810 |
+
488,
|
| 1811 |
+
220,
|
| 1812 |
+
16,
|
| 1813 |
+
15,
|
| 1814 |
+
89,
|
| 1815 |
+
271,
|
| 1816 |
+
24509,
|
| 1817 |
+
367,
|
| 1818 |
+
220,
|
| 1819 |
+
17,
|
| 1820 |
+
25,
|
| 1821 |
+
379,
|
| 1822 |
+
13174,
|
| 1823 |
+
29456,
|
| 1824 |
+
488,
|
| 1825 |
+
71322,
|
| 1826 |
+
488,
|
| 1827 |
+
856,
|
| 1828 |
+
29456,
|
| 1829 |
+
8,
|
| 1830 |
+
284,
|
| 1831 |
+
220,
|
| 1832 |
+
17,
|
| 1833 |
+
16,
|
| 1834 |
+
89,
|
| 1835 |
+
488,
|
| 1836 |
+
220,
|
| 1837 |
+
17,
|
| 1838 |
+
19,
|
| 1839 |
+
87,
|
| 1840 |
+
271,
|
| 1841 |
+
24509,
|
| 1842 |
+
367,
|
| 1843 |
+
220,
|
| 1844 |
+
18,
|
| 1845 |
+
25,
|
| 1846 |
+
1147,
|
| 1847 |
+
2075,
|
| 1848 |
+
29456,
|
| 1849 |
+
488,
|
| 1850 |
+
30784,
|
| 1851 |
+
488,
|
| 1852 |
+
379,
|
| 1853 |
+
29456,
|
| 1854 |
+
8,
|
| 1855 |
+
284,
|
| 1856 |
+
220,
|
| 1857 |
+
22,
|
| 1858 |
+
87,
|
| 1859 |
+
488,
|
| 1860 |
+
220,
|
| 1861 |
+
17,
|
| 1862 |
+
23,
|
| 1863 |
+
88,
|
| 1864 |
+
271,
|
| 1865 |
+
10061,
|
| 1866 |
+
752,
|
| 1867 |
+
5185,
|
| 1868 |
+
429,
|
| 1869 |
+
279,
|
| 1870 |
+
36829,
|
| 1871 |
+
389,
|
| 1872 |
+
279,
|
| 1873 |
+
73832,
|
| 1874 |
+
315,
|
| 1875 |
+
23606,
|
| 1876 |
+
220,
|
| 1877 |
+
16,
|
| 1878 |
+
525,
|
| 1879 |
+
220,
|
| 1880 |
+
18,
|
| 1881 |
+
323,
|
| 1882 |
+
220,
|
| 1883 |
+
16,
|
| 1884 |
+
15,
|
| 1885 |
+
11,
|
| 1886 |
+
23606,
|
| 1887 |
+
220,
|
| 1888 |
+
17,
|
| 1889 |
+
525,
|
| 1890 |
+
220,
|
| 1891 |
+
17,
|
| 1892 |
+
16,
|
| 1893 |
+
323,
|
| 1894 |
+
220,
|
| 1895 |
+
17,
|
| 1896 |
+
19,
|
| 1897 |
+
11,
|
| 1898 |
+
23606,
|
| 1899 |
+
220,
|
| 1900 |
+
18,
|
| 1901 |
+
525,
|
| 1902 |
+
220,
|
| 1903 |
+
22,
|
| 1904 |
+
323,
|
| 1905 |
+
220,
|
| 1906 |
+
17,
|
| 1907 |
+
23,
|
| 1908 |
+
13,
|
| 1909 |
+
6771,
|
| 1910 |
+
752,
|
| 1911 |
+
1779,
|
| 1912 |
+
421,
|
| 1913 |
+
1052,
|
| 1914 |
+
594,
|
| 1915 |
+
264,
|
| 1916 |
+
5383,
|
| 1917 |
+
1588,
|
| 1918 |
+
13,
|
| 1919 |
+
1752,
|
| 1920 |
+
3110,
|
| 1921 |
+
11,
|
| 1922 |
+
220,
|
| 1923 |
+
18,
|
| 1924 |
+
11,
|
| 1925 |
+
220,
|
| 1926 |
+
16,
|
| 1927 |
+
15,
|
| 1928 |
+
26,
|
| 1929 |
+
220,
|
| 1930 |
+
17,
|
| 1931 |
+
16,
|
| 1932 |
+
11,
|
| 1933 |
+
220,
|
| 1934 |
+
17,
|
| 1935 |
+
19,
|
| 1936 |
+
26,
|
| 1937 |
+
220,
|
| 1938 |
+
22,
|
| 1939 |
+
11,
|
| 1940 |
+
220,
|
| 1941 |
+
17,
|
| 1942 |
+
23,
|
| 1943 |
+
13,
|
| 1944 |
+
6771,
|
| 1945 |
+
752,
|
| 1946 |
+
1490,
|
| 1947 |
+
1447,
|
| 1948 |
+
2679,
|
| 1949 |
+
358,
|
| 1950 |
+
1401,
|
| 1951 |
+
518,
|
| 1952 |
+
23606,
|
| 1953 |
+
220,
|
| 1954 |
+
16,
|
| 1955 |
+
323,
|
| 1956 |
+
23606,
|
| 1957 |
+
220,
|
| 1958 |
+
18,
|
| 1959 |
+
25,
|
| 1960 |
+
23606,
|
| 1961 |
+
220,
|
| 1962 |
+
16,
|
| 1963 |
+
702,
|
| 1964 |
+
220,
|
| 1965 |
+
18,
|
| 1966 |
+
88,
|
| 1967 |
+
488,
|
| 1968 |
+
220,
|
| 1969 |
+
16,
|
| 1970 |
+
15,
|
| 1971 |
+
89,
|
| 1972 |
+
11,
|
| 1973 |
+
23606,
|
| 1974 |
+
220,
|
| 1975 |
+
18,
|
| 1976 |
+
702,
|
| 1977 |
+
220,
|
| 1978 |
+
22,
|
| 1979 |
+
87,
|
| 1980 |
+
488,
|
| 1981 |
+
220,
|
| 1982 |
+
17,
|
| 1983 |
+
23,
|
| 1984 |
+
88,
|
| 1985 |
+
13,
|
| 1986 |
+
1416,
|
| 1987 |
+
358,
|
| 1988 |
+
30270,
|
| 1989 |
+
23606,
|
| 1990 |
+
220,
|
| 1991 |
+
16,
|
| 1992 |
+
553,
|
| 1993 |
+
2494,
|
| 1994 |
+
30,
|
| 1995 |
+
6771,
|
| 1996 |
+
752,
|
| 1997 |
+
1490,
|
| 1998 |
+
1447,
|
| 1999 |
+
2679,
|
| 2000 |
+
358,
|
| 2001 |
+
30270,
|
| 2002 |
+
23606,
|
| 2003 |
+
220,
|
| 2004 |
+
16,
|
| 2005 |
+
553,
|
| 2006 |
+
220,
|
| 2007 |
+
22,
|
| 2008 |
+
11,
|
| 2009 |
+
358,
|
| 2010 |
+
633,
|
| 2011 |
+
220,
|
| 2012 |
+
22,
|
| 2013 |
+
87,
|
| 2014 |
+
7021,
|
| 2015 |
+
29456,
|
| 2016 |
+
488,
|
| 2017 |
+
379,
|
| 2018 |
+
89,
|
| 2019 |
+
488,
|
| 2020 |
+
1147,
|
| 2021 |
+
29456,
|
| 2022 |
+
8,
|
| 2023 |
+
284,
|
| 2024 |
+
220,
|
| 2025 |
+
17,
|
| 2026 |
+
16,
|
| 2027 |
+
88,
|
| 2028 |
+
488,
|
| 2029 |
+
220,
|
| 2030 |
+
22,
|
| 2031 |
+
15,
|
| 2032 |
+
89,
|
| 2033 |
+
13,
|
| 2034 |
+
23768,
|
| 2035 |
+
448,
|
| 2036 |
+
23606,
|
| 2037 |
+
220,
|
| 2038 |
+
18,
|
| 2039 |
+
25,
|
| 2040 |
+
1147,
|
| 2041 |
+
2075,
|
| 2042 |
+
29456,
|
| 2043 |
+
488,
|
| 2044 |
+
30784,
|
| 2045 |
+
488,
|
| 2046 |
+
379,
|
| 2047 |
+
29456,
|
| 2048 |
+
8,
|
| 2049 |
+
284,
|
| 2050 |
+
220,
|
| 2051 |
+
22,
|
| 2052 |
+
87,
|
| 2053 |
+
488
|
| 2054 |
+
],
|
| 2055 |
+
"response_text": "<think>\nOkay, so I need to solve this system of equations with three variables x, y, z. All of them are positive real numbers. The equations are:\n\n1. $ x(y^2 + yz + z^2) = 3y + 10z $\n2. $ y(z^2 + zx + x^2) = 21z + 24x $\n3. $ z(x^2 + xy + y^2) = 7x + 28y $\n\nAnd the goal is to find $ xy + yz + zx $.\n\nHmm, these equations look pretty symmetric, but they aren't exactly symmetric. Each equation has a cyclic permutation of variables. Maybe there's a way to exploit that symmetry? Let me think.\n\nFirst, let me note that each equation has a quadratic term in the left-hand side (LHS) and linear terms on the right-hand side (RHS). The quadratic terms are of the form $ a^2 + ab + b^2 $, which is a common expression in symmetric equations. Maybe I can relate these equations somehow?\n\nAlternatively, maybe I can assume some ratio between x, y, z? For example, suppose that x, y, z are proportional to some constants. Let me try to assume that x = k * a, y = k * b, z = k * c, where a, b, c are constants and k is a positive real number. Then, substituting into the equations, maybe I can find a relationship between a, b, c?\n\nBut before jumping into that, let me check if there's a substitution or manipulation that can simplify the equations. Let me look at the equations again:\n\nEquation 1: $ x(y^2 + yz + z^2) = 3y + 10z $\n\nEquation 2: $ y(z^2 + zx + x^2) = 21z + 24x $\n\nEquation 3: $ z(x^2 + xy + y^2) = 7x + 28y $\n\nLooking at the coefficients on the RHS: 3, 10; 21, 24; 7, 28. Wait, 21 and 24 have a common factor of 3, 7 and 28 have a common factor of 7. Maybe there's a pattern here?\n\nAlternatively, maybe I can divide the equations by something? Let me check the coefficients again. For example, equation 2 has 21z + 24x. If I factor 3, it's 3*(7z + 8x). Similarly, equation 3 has 7x + 28y, which is 7*(x + 4y). Equation 1 has 3y + 10z. Not sure if that helps yet.\n\nAlternatively, maybe I can consider ratios between equations? Let me think. Let me denote the equations as Eq1, Eq2, Eq3.\n\nLet me try to express each equation in terms of variables. Let me think about possible substitutions. For example, maybe I can express x, y, z in terms of each other?\n\nAlternatively, maybe I can consider the ratios of the equations. For example, if I take Eq1 divided by Eq2 or something like that. But since they are different equations, maybe not straightforward.\n\nAlternatively, maybe I can assume that variables are in some proportion. Let me try to assume that x, y, z are proportional to some numbers. Let me think about the coefficients in the RHS. For example, in equation 1, the RHS is 3y + 10z. In equation 2, it's 21z + 24x. In equation 3, it's 7x + 28y. Let me note that 21z + 24x can be written as 3*(7z + 8x), and 7x + 28y is 7*(x + 4y). Similarly, equation 1 is 3y + 10z. Maybe there's a way to relate these?\n\nAlternatively, maybe I can think of the equations as linear equations in terms of variables? Wait, no, because the LHS is quadratic. So they are nonlinear equations.\n\nAlternatively, maybe I can consider substituting variables. Let me think. Let me denote S = xy + yz + zx, which is the quantity we need to find. Maybe I can find expressions involving S?\n\nAlternatively, maybe I can consider the equations as follows. Let me note that the quadratic terms on the LHS are similar to the expression for the square of the sum or something else. Wait, for example, $ y^2 + yz + z^2 = \\frac{3}{4}(y + z)^2 + \\frac{1}{4}(y - z)^2 $, but not sure if that helps here.\n\nAlternatively, maybe I can think of the equations as:\n\nFor equation 1: $ x(y^2 + yz + z^2) - 3y - 10z = 0 $\n\nSimilarly for others. Maybe I can think of this as a system where each equation is a combination of variables. But solving such a system seems complicated.\n\nAlternatively, maybe I can assume that variables are integers? Let me check if that's possible. Let me try to see if there are integer solutions. Let me suppose that x, y, z are integers. Let me check equation 3: z(x² + xy + y²) = 7x + 28y. Let me note that 7x + 28y = 7(x + 4y). So z divides 7(x + 4y). Similarly, equation 2: y(z² + zx + x²) = 21z + 24x. Let me note that 21z + 24x = 3(7z + 8x). So y divides 3(7z + 8x). Similarly, equation 1: x(y² + yz + z²) = 3y + 10z. So x divides 3y + 10z.\n\nBut since x, y, z are positive integers, maybe we can find some relations. However, since the problem says they are positive real numbers, not necessarily integers, so maybe this approach is too restrictive. But maybe there's a solution with integer values? Let me try to see.\n\nAlternatively, maybe I can look for ratios between variables. Let me suppose that there is a ratio between x, y, z. Let me assume that x = a, y = b, z = c, and try to find ratios. Let me think.\n\nAlternatively, maybe I can consider dividing equations. For example, take equation 1 and equation 3. Let me see:\n\nEquation 1: x(y² + yz + z²) = 3y + 10z\n\nEquation 3: z(x² + xy + y²) = 7x + 28y\n\nIf I divide equation 1 by equation 3, I get:\n\n[ x(y² + yz + z²) ] / [ z(x² + xy + y²) ] = (3y + 10z)/(7x + 28y)\n\nSimplify numerator and denominator:\n\nLeft side: [x/z] * [ (y² + yz + z²) / (x² + xy + y²) ]\n\nRight side: [3y + 10z]/[7x + 28y] = [3y + 10z]/[7(x + 4y)]\n\nHmm, not sure if helpful yet. Maybe I can assume some ratio between variables. Let me suppose that x, y, z are in some proportion. Let me think about the coefficients in the RHS. For example, equation 1 has 3y + 10z, equation 2 has 21z + 24x, equation 3 has 7x + 28y. Let me note that 21z + 24x = 3*(7z + 8x), and 7x + 28y = 7*(x + 4y). Also, 3y + 10z is as is.\n\nAlternatively, maybe I can think of the equations as follows:\n\nLet me denote:\n\nLet me think of equation 1: x(y² + yz + z²) = 3y + 10z\n\nEquation 2: y(z² + zx + x²) = 21z + 24x\n\nEquation 3: z(x² + xy + y²) = 7x + 28y\n\nLet me note that the coefficients on the RHS of equation 1 are 3 and 10, equation 2 are 21 and 24, equation 3 are 7 and 28. Let me check if there's a pattern here. For example, 3, 10; 21, 24; 7, 28. Let me see:\n\nIf I look at equation 1 and equation 3: equation 1 has 3y + 10z, equation 3 has 7x + 28y. If I multiply equation 1 by something? Let me see:\n\nIf I multiply equation 1 by 7, I get 7x(y² + yz + z²) = 21y + 70z. Compare with equation 3: z(x² + xy + y²) = 7x +",
|
| 2056 |
+
"max_new_tokens": 2048,
|
| 2057 |
+
"do_sample": false
|
| 2058 |
+
}
|
outputs/multi-gpu-1000/lens-bf16.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ad3376c6e7b25412b4cd00a0615e618ff8ea025418792f7c4a8c9dbc375a7298
|
| 3 |
+
size 471870034
|
outputs/multi-gpu-1000/shard-0/config.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model": "../Lightning-OPD/checkpoints/qwen3-4b-base-sft-qwen3-8b",
|
| 3 |
+
"data": "data/dapo-math-17k/dapo-math-17k.jsonl",
|
| 4 |
+
"output_dir": "outputs/multi-gpu-1000/shard-0",
|
| 5 |
+
"num_prompts": 500,
|
| 6 |
+
"offset": 0,
|
| 7 |
+
"seed": 17,
|
| 8 |
+
"max_seq_len": 128,
|
| 9 |
+
"skip_first": 16,
|
| 10 |
+
"dim_batch": 64,
|
| 11 |
+
"target_layer": null,
|
| 12 |
+
"checkpoint_every": 10,
|
| 13 |
+
"device": "cuda:0",
|
| 14 |
+
"no_resume": false,
|
| 15 |
+
"resolved_target_layer": 35,
|
| 16 |
+
"source_layers": [
|
| 17 |
+
0,
|
| 18 |
+
1,
|
| 19 |
+
2,
|
| 20 |
+
3,
|
| 21 |
+
4,
|
| 22 |
+
5,
|
| 23 |
+
6,
|
| 24 |
+
7,
|
| 25 |
+
8,
|
| 26 |
+
9,
|
| 27 |
+
10,
|
| 28 |
+
11,
|
| 29 |
+
12,
|
| 30 |
+
13,
|
| 31 |
+
14,
|
| 32 |
+
15,
|
| 33 |
+
16,
|
| 34 |
+
17,
|
| 35 |
+
18,
|
| 36 |
+
19,
|
| 37 |
+
20,
|
| 38 |
+
21,
|
| 39 |
+
22,
|
| 40 |
+
23,
|
| 41 |
+
24,
|
| 42 |
+
25,
|
| 43 |
+
26,
|
| 44 |
+
27,
|
| 45 |
+
28,
|
| 46 |
+
29,
|
| 47 |
+
30,
|
| 48 |
+
31,
|
| 49 |
+
32,
|
| 50 |
+
33,
|
| 51 |
+
34
|
| 52 |
+
],
|
| 53 |
+
"model_layers": 36,
|
| 54 |
+
"d_model": 2560
|
| 55 |
+
}
|
outputs/multi-gpu-1000/shard-0/fit-checkpoint-fp32.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e3804bdecda73099d8bff5816bac3874ed0137c46c332c4eeeb32a399f578a14
|
| 3 |
+
size 917514770
|
outputs/multi-gpu-1000/shard-0/lens-bf16.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f910d346ad8b35f3e948374dd4b1fd98fe3199ef636f5bb1eb5ccfaacf7496c3
|
| 3 |
+
size 471869842
|