pzarzycki commited on
Commit
ab083a7
·
verified ·
1 Parent(s): c4d9890

Publish Stage A HRM-Text code and tool-use SFT pilot

Browse files

Final Keras preset, full checkpoint, completed-run telemetry, TensorBoard events, hardware telemetry, and training-loss chart for the Stage A seed-17 pilot.

.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
+ checkpoint-00020000.keras filter=lfs diff=lfs merge=lfs -text
37
+ training-loss.png filter=lfs diff=lfs merge=lfs -text
ARTIFACTS.tsv ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ARTIFACTS.tsv 0
2
+ LICENSE 561
3
+ README.md 4571
4
+ checkpoint-00020000.keras 11831471907
5
+ preset/assets/tokenizer/merges.txt 635535
6
+ preset/assets/tokenizer/vocabulary.json 1502734
7
+ preset/config.json 1031
8
+ preset/metadata.json 190
9
+ preset/model.weights.h5 2366554504
10
+ preset/preprocessor.json 1746
11
+ preset/task.json 3722
12
+ preset/tokenizer.json 845
13
+ training-loss.png 136398
14
+ training/environment.json 171
15
+ training/gpu.jsonl 947076
16
+ training/history.csv 162
17
+ training/history.json 219
18
+ training/pilot-completed-metrics.jsonl 1735944
19
+ training/pilot-completion.json 878
20
+ training/platform.jsonl 210602
21
+ training/preflight.json 3751
22
+ training/tensorboard/train/events.out.tfevents.1784941536.ccdf07020f90.51.0.v2 932008
23
+ training/tensorboard/validation/events.out.tfevents.1784994496.ccdf07020f90.51.1.v2 78
24
+ training/training-plan.json 355
25
+ path bytes integrity
26
+ preset/model.weights.h5 2366554504 sha256:8ddb10cea110edff99380b360ec569e5dbde0d4a233d1c058b0e292700a42b84
27
+ checkpoint-00020000.keras 11831471907 md5:1cbcae0768082e8df30b793c5890bb08
28
+ training/pilot-completed-metrics.jsonl 1735944 sha256:fbbb63a26548fe2b7e1cc49e13b9e1fe3b037f4eb40764d513ff60112ad86f52
29
+ training/pilot-completion.json 878 completion manifest for canonical telemetry
30
+ training-loss.png 136398 chart derived only from canonical telemetry
LICENSE ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Apache License 2.0
2
+
3
+ Copyright 2026
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+
README.md ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ license: apache-2.0
5
+ base_model: sapientinc/HRM-Text-1B
6
+ library_name: keras
7
+ pipeline_tag: text-generation
8
+ tags:
9
+ - hrm
10
+ - prefix-lm
11
+ - code
12
+ - tool-use
13
+ - keras
14
+ - keras-hub
15
+ - sft
16
+ ---
17
+
18
+ # HRM-Text-1B Code & Tool-Use SFT
19
+
20
+ This page tracks successive code and tool-use SFT stages of
21
+ [`sapientinc/HRM-Text-1B`](https://huggingface.co/sapientinc/HRM-Text-1B),
22
+ saved as native Keras/KerasHub presets. The current default revision and the
23
+ immutable `stage-a-v1` tag are a full-parameter Stage A pilot. They adapt the
24
+ base PrefixLM to the study's coding and tool-use transcript syntax.
25
+
26
+ > **Pilot release.** This model has not yet undergone downstream benchmark
27
+ > evaluation. Training loss is not a measure of coding-agent or tool-use task
28
+ > performance. Do not treat it as a production-ready agent.
29
+
30
+ ## Release lineage
31
+
32
+ | Tag | State | Availability |
33
+ | --- | --- | --- |
34
+ | `stage-a-v1` | Completed 10M-response-token Stage A pilot, seed 17 | Current default revision |
35
+ | `stage-b-v1` | Stage B continuation | Not trained or published yet |
36
+
37
+ Stage B will be published as `stage-b-v1` on this same page only after its
38
+ training and release checks complete. `stage-a-v1` will remain immutable for
39
+ reproducibility.
40
+
41
+ ## Training result
42
+
43
+ ![Training loss](training-loss.png)
44
+
45
+ | Metric | Value |
46
+ | --- | ---: |
47
+ | Training budget | 10,000,147 response tokens |
48
+ | Serialized tokens | 19,650,833 |
49
+ | Microbatches / optimizer updates | 38,248 / 4,781 planned |
50
+ | Final training loss | 0.03527 |
51
+ | Validation loss | 0.02808 |
52
+ | Final validation token accuracy | 0.90152 |
53
+ | Hardware | One NVIDIA H100 80 GB |
54
+ | Wall time | 14 h 44 min |
55
+
56
+ The chart uses the canonical completed-run telemetry segment. The thin trace is
57
+ the loss logged every ten microbatches; the dark trace is a 25-point trailing
58
+ mean.
59
+
60
+ ## Training data and protocol
61
+
62
+ - Dataset: [`pzarzycki/hrm-text-code-tools-sft`](https://huggingface.co/datasets/pzarzycki/hrm-text-code-tools-sft), canonical v2 Stage A.
63
+ - Source: `nvidia/OpenCodeInstruct` pinned to revision
64
+ `8f3ba5bafe4d6e8db46082cf7ae6741bc370604d` (CC-BY-4.0).
65
+ - The deterministic pilot selection contains 38,248 rows from the sealed
66
+ Stage A training split. It is not a full pass over all 1.13M Stage A rows.
67
+ - Context cap: 4,096 serialized tokens. Oversized rows were rejected during
68
+ data preparation; no example was silently truncated.
69
+ - The only condition used was `direct`.
70
+
71
+ The learned SFT envelope is:
72
+
73
+ ```text
74
+ <|im_start|><|object_ref_start|>instruction<|im_end|>response<|box_end|>
75
+ ```
76
+
77
+ `<user>`, `<assistant>`, `<tools>`, `<tool_call>`, and `<tool_result>` inside
78
+ the content are ordinary learned transcript markup, not additional pretrained
79
+ HRM control tokens.
80
+
81
+ ## Optimization
82
+
83
+ Full-parameter BF16 fine-tuning used KerasHub HRM-Text support, AdamW
84
+ (`lr=3e-5`, `beta_1=0.9`, `beta_2=0.95`, `weight_decay=0.1`), global gradient
85
+ clip norm 1.0, EMA (`0.999`), batch size 1 with gradient accumulation 8,
86
+ and 3% warmup. Loss is applied only to response tokens, including
87
+ `<|box_end|>`; prefix tokens receive zero loss weight.
88
+
89
+ ## Files
90
+
91
+ | Path | Purpose |
92
+ | --- | --- |
93
+ | `preset/` | Final Keras preset: model configuration, tokenizer, preprocessor, and final weights. |
94
+ | `checkpoint-00020000.keras` | Full Keras checkpoint saved at microbatch 20,000. |
95
+ | `training/pilot-completion.json` | Immutable completion manifest and metrics SHA-256. |
96
+ | `training/pilot-completed-metrics.jsonl` | Canonical first-run loss, learning-rate, token, and throughput telemetry. |
97
+ | `training/gpu.jsonl` | GPU utilization, VRAM, power, and temperature telemetry. |
98
+ | `training/platform.jsonl` | RunPod GPU/CPU utilization samples. |
99
+ | `training/history.json` | Final Keras training and validation summary. |
100
+ | `training/tensorboard/` | TensorBoard events for the completed training run. |
101
+ | `ARTIFACTS.tsv` | Sizes and release-integrity checksums for the key artifacts. |
102
+
103
+ ## Loading and prompting
104
+
105
+ The preset requires a KerasHub build with HRM-Text support. With the study's
106
+ HRM-enabled KerasHub branch installed, load the preset from a local clone or
107
+ using the Hugging Face handle:
108
+
109
+ ```python
110
+ from keras_hub.models import HrmTextCausalLM
111
+
112
+ model = HrmTextCausalLM.from_preset(
113
+ "hf://pzarzycki/hrm-text-1b-code-tools-sft"
114
+ )
115
+ prompt = (
116
+ "<|im_start|><|object_ref_start|>"
117
+ "Write a Python function that returns the larger of two integers."
118
+ "<|im_end|>"
119
+ )
120
+ print(model.generate(prompt, max_length=256))
121
+ ```
122
+
123
+ HRM-Text is a PrefixLM base model, not a ChatML/Qwen chat model. Keep the
124
+ `direct` condition and the `<|im_end|>` instruction boundary at inference.
125
+
126
+ ## Limitations and intended use
127
+
128
+ This is a research artifact for continued evaluation of code generation and a
129
+ fixed tool-transcript protocol. It does not itself execute tools, validate tool
130
+ calls, sandbox generated code, or establish benchmark performance. Use
131
+ independent task-level evaluation before deployment.
132
+
133
+ ## Provenance
134
+
135
+ The base model is Apache-2.0. Stage A training data is CC-BY-4.0; source pins,
136
+ dataset checksums, serializer details, preflight configuration, and completed
137
+ telemetry are included in this repository's `training/` artifacts.
checkpoint-00020000.keras ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d89e41a7dd481c9d20b5778228961cae38acee09fab3862095f3e4b12b90fbe1
3
+ size 11831471907
preset/assets/tokenizer/merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
preset/assets/tokenizer/vocabulary.json ADDED
The diff for this file is too large to render. See raw diff
 
preset/config.json ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "module": "keras_hub.src.models.hrm_text.hrm_text_backbone",
3
+ "class_name": "HrmTextBackbone",
4
+ "config": {
5
+ "name": "hrm_text_backbone",
6
+ "trainable": true,
7
+ "dtype": {
8
+ "module": "keras",
9
+ "class_name": "DTypePolicy",
10
+ "config": {
11
+ "name": "bfloat16"
12
+ },
13
+ "registered_name": null
14
+ },
15
+ "vocabulary_size": 65536,
16
+ "hidden_dim": 1536,
17
+ "intermediate_dim": 4096,
18
+ "num_layers_per_stack": 16,
19
+ "num_attention_heads": 12,
20
+ "head_dim": 128,
21
+ "h_cycles": 2,
22
+ "l_cycles": 3,
23
+ "max_sequence_length": 4096,
24
+ "rope_theta": 10000.0,
25
+ "rms_norm_epsilon": 1e-06,
26
+ "l_bp_cycles": [
27
+ 0,
28
+ 3
29
+ ],
30
+ "initializer_range": 0.025515518153991442,
31
+ "embedding_scale": 39.191835884530846,
32
+ "tie_word_embeddings": false,
33
+ "rematerialization": true
34
+ },
35
+ "registered_name": "keras_hub>HrmTextBackbone"
36
+ }
preset/metadata.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "keras_version": "3.15.0",
3
+ "keras_hub_version": "0.30.0.dev0",
4
+ "parameter_count": 1182795264,
5
+ "date_saved": "2026-07-25@15:49:24",
6
+ "tasks": [
7
+ "CausalLM"
8
+ ]
9
+ }
preset/model.weights.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8ddb10cea110edff99380b360ec569e5dbde0d4a233d1c058b0e292700a42b84
3
+ size 2366554504
preset/preprocessor.json ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "module": "keras_hub.src.models.hrm_text.hrm_text_causal_lm_preprocessor",
3
+ "class_name": "HrmTextCausalLMPreprocessor",
4
+ "config": {
5
+ "name": "hrm_text_causal_lm_preprocessor",
6
+ "trainable": true,
7
+ "dtype": {
8
+ "module": "keras",
9
+ "class_name": "DTypePolicy",
10
+ "config": {
11
+ "name": "float32"
12
+ },
13
+ "registered_name": null
14
+ },
15
+ "tokenizer": {
16
+ "module": "keras_hub.src.models.hrm_text.hrm_text_tokenizer",
17
+ "class_name": "HrmTextTokenizer",
18
+ "config": {
19
+ "name": "hrm_text_tokenizer",
20
+ "trainable": true,
21
+ "dtype": {
22
+ "module": "keras",
23
+ "class_name": "DTypePolicy",
24
+ "config": {
25
+ "name": "int32"
26
+ },
27
+ "registered_name": null
28
+ },
29
+ "config_file": "tokenizer.json",
30
+ "sequence_length": null,
31
+ "add_prefix_space": false,
32
+ "unsplittable_tokens": [
33
+ "<|im_end|>",
34
+ "<|quad_end|>",
35
+ "<|object_ref_end|>",
36
+ "<|object_ref_start|>",
37
+ "<|box_end|>",
38
+ "<|endoftext|>",
39
+ "<|im_start|>",
40
+ "<|quad_start|>"
41
+ ]
42
+ },
43
+ "registered_name": "keras_hub>HrmTextTokenizer"
44
+ },
45
+ "config_file": "preprocessor.json",
46
+ "sequence_length": 4096,
47
+ "add_start_token": true,
48
+ "add_end_token": true
49
+ },
50
+ "registered_name": "keras_hub>HrmTextCausalLMPreprocessor"
51
+ }
preset/task.json ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "module": "keras_hub.src.models.hrm_text.hrm_text_causal_lm",
3
+ "class_name": "HrmTextCausalLM",
4
+ "config": {
5
+ "backbone": {
6
+ "module": "keras_hub.src.models.hrm_text.hrm_text_backbone",
7
+ "class_name": "HrmTextBackbone",
8
+ "config": {
9
+ "name": "hrm_text_backbone",
10
+ "trainable": true,
11
+ "dtype": {
12
+ "module": "keras",
13
+ "class_name": "DTypePolicy",
14
+ "config": {
15
+ "name": "bfloat16"
16
+ },
17
+ "registered_name": null
18
+ },
19
+ "vocabulary_size": 65536,
20
+ "hidden_dim": 1536,
21
+ "intermediate_dim": 4096,
22
+ "num_layers_per_stack": 16,
23
+ "num_attention_heads": 12,
24
+ "head_dim": 128,
25
+ "h_cycles": 2,
26
+ "l_cycles": 3,
27
+ "max_sequence_length": 4096,
28
+ "rope_theta": 10000.0,
29
+ "rms_norm_epsilon": 1e-06,
30
+ "l_bp_cycles": [
31
+ 0,
32
+ 3
33
+ ],
34
+ "initializer_range": 0.025515518153991442,
35
+ "embedding_scale": 39.191835884530846,
36
+ "tie_word_embeddings": false,
37
+ "rematerialization": true
38
+ },
39
+ "registered_name": "keras_hub>HrmTextBackbone"
40
+ },
41
+ "preprocessor": {
42
+ "module": "keras_hub.src.models.hrm_text.hrm_text_causal_lm_preprocessor",
43
+ "class_name": "HrmTextCausalLMPreprocessor",
44
+ "config": {
45
+ "name": "hrm_text_causal_lm_preprocessor",
46
+ "trainable": true,
47
+ "dtype": {
48
+ "module": "keras",
49
+ "class_name": "DTypePolicy",
50
+ "config": {
51
+ "name": "float32"
52
+ },
53
+ "registered_name": null
54
+ },
55
+ "tokenizer": {
56
+ "module": "keras_hub.src.models.hrm_text.hrm_text_tokenizer",
57
+ "class_name": "HrmTextTokenizer",
58
+ "config": {
59
+ "name": "hrm_text_tokenizer",
60
+ "trainable": true,
61
+ "dtype": {
62
+ "module": "keras",
63
+ "class_name": "DTypePolicy",
64
+ "config": {
65
+ "name": "int32"
66
+ },
67
+ "registered_name": null
68
+ },
69
+ "config_file": "tokenizer.json",
70
+ "sequence_length": null,
71
+ "add_prefix_space": false,
72
+ "unsplittable_tokens": [
73
+ "<|im_end|>",
74
+ "<|quad_end|>",
75
+ "<|object_ref_end|>",
76
+ "<|object_ref_start|>",
77
+ "<|box_end|>",
78
+ "<|endoftext|>",
79
+ "<|im_start|>",
80
+ "<|quad_start|>"
81
+ ]
82
+ },
83
+ "registered_name": "keras_hub>HrmTextTokenizer"
84
+ },
85
+ "config_file": "preprocessor.json",
86
+ "sequence_length": 4096,
87
+ "add_start_token": true,
88
+ "add_end_token": true
89
+ },
90
+ "registered_name": "keras_hub>HrmTextCausalLMPreprocessor"
91
+ },
92
+ "name": "hrm_text_causal_lm"
93
+ },
94
+ "registered_name": "keras_hub>HrmTextCausalLM"
95
+ }
preset/tokenizer.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "module": "keras_hub.src.models.hrm_text.hrm_text_tokenizer",
3
+ "class_name": "HrmTextTokenizer",
4
+ "config": {
5
+ "name": "hrm_text_tokenizer",
6
+ "trainable": true,
7
+ "dtype": {
8
+ "module": "keras",
9
+ "class_name": "DTypePolicy",
10
+ "config": {
11
+ "name": "int32"
12
+ },
13
+ "registered_name": null
14
+ },
15
+ "config_file": "tokenizer.json",
16
+ "sequence_length": null,
17
+ "add_prefix_space": false,
18
+ "unsplittable_tokens": [
19
+ "<|im_end|>",
20
+ "<|quad_end|>",
21
+ "<|object_ref_end|>",
22
+ "<|object_ref_start|>",
23
+ "<|box_end|>",
24
+ "<|endoftext|>",
25
+ "<|im_start|>",
26
+ "<|quad_start|>"
27
+ ]
28
+ },
29
+ "registered_name": "keras_hub>HrmTextTokenizer"
30
+ }
training-loss.png ADDED

Git LFS Details

  • SHA256: 15832813f10821a56045cfbf0dbcf7c3eddbacb0d7dda2bb7c1de56862c199c2
  • Pointer size: 131 Bytes
  • Size of remote file: 136 kB
training/environment.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"keras_backend": "torch", "pid": 51, "platform": "Linux-6.17.0-1008-nvidia-x86_64-with-glibc2.39", "python": "3.12.3", "recorded_at": "2026-07-25T15:50:59.589577+00:00"}
training/gpu.jsonl ADDED
The diff for this file is too large to render. See raw diff
 
training/history.csv ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ epoch,loss,sparse_categorical_accuracy,val_loss,val_sparse_categorical_accuracy
2
+ 0,0.03527289628982544,0.879867672920227,0.028078513219952583,0.9015151262283325
training/history.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "loss": [
3
+ 0.03527289628982544
4
+ ],
5
+ "sparse_categorical_accuracy": [
6
+ 0.879867672920227
7
+ ],
8
+ "val_loss": [
9
+ 0.028078513219952583
10
+ ],
11
+ "val_sparse_categorical_accuracy": [
12
+ 0.9015151262283325
13
+ ]
14
+ }
training/pilot-completed-metrics.jsonl ADDED
The diff for this file is too large to render. See raw diff
 
training/pilot-completion.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "examples_seen": 38248,
3
+ "final_preset": "preset/",
4
+ "final_training_loss": 0.03527289628982544,
5
+ "finished_at": "2026-07-25T15:49:24.079371+00:00",
6
+ "format": "hrm-sft-pilot-completion-v1",
7
+ "metrics_segment": "pilot-completed-metrics.jsonl",
8
+ "metrics_segment_lines": 3826,
9
+ "metrics_segment_sha256": "fbbb63a26548fe2b7e1cc49e13b9e1fe3b037f4eb40764d513ff60112ad86f52",
10
+ "microbatch_steps": 38248,
11
+ "mid_run_checkpoint": "checkpoint-00020000.keras",
12
+ "post_completion_stream_present": true,
13
+ "post_completion_stream_reason": "container restarted after successful completion; pod stopped before second cycle was used",
14
+ "raw_metrics_stream": "metrics.jsonl",
15
+ "response_tokens_seen": 10000147,
16
+ "run_id": "hrm-stage-a-pilot-20260724-restart1",
17
+ "serialized_tokens_seen": 19650833,
18
+ "started_at": "2026-07-25T01:05:36.032965+00:00",
19
+ "status": "completed"
20
+ }
training/platform.jsonl ADDED
The diff for this file is too large to render. See raw diff
 
training/preflight.json ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "config": {
3
+ "data": {
4
+ "context_length": 4096,
5
+ "manifest": "/workspace/sft/stage-a/manifest.json",
6
+ "response_only_loss": true,
7
+ "tokenizer_json": "/workspace/models/hrm-text-1b/tokenizer.reference.json"
8
+ },
9
+ "framework": "keras",
10
+ "model": {
11
+ "family": "hrm-text",
12
+ "preset": "/workspace/models/hrm-text-1b",
13
+ "rematerialization": true,
14
+ "source_lock": "keras-hub.lock"
15
+ },
16
+ "run_name": "hrm-stage-a-pilot",
17
+ "training": {
18
+ "backup_save_freq": 500,
19
+ "beta_1": 0.9,
20
+ "beta_2": 0.95,
21
+ "checkpoint_save_freq": 20000,
22
+ "clipnorm": 1.0,
23
+ "cosine_min_lr_ratio": 0.1,
24
+ "ema_momentum": 0.999,
25
+ "gradient_accumulation_steps": 8,
26
+ "learning_rate": 3e-05,
27
+ "micro_batch_size": 1,
28
+ "observability": {
29
+ "every_n_batches": 10,
30
+ "tensorboard_every_n_batches": 10
31
+ },
32
+ "output_dir": "artifacts/hrm-stage-a-pilot-seed17",
33
+ "precision": "bfloat16",
34
+ "seed": 17,
35
+ "target_response_tokens": 10000000,
36
+ "use_ema": true,
37
+ "validation_steps": 128,
38
+ "warmup_ratio": 0.03,
39
+ "weight_decay": 0.1
40
+ }
41
+ },
42
+ "config_sha256": "3e535c768bd399c8dbdbbb54d13ad03e1fc56d83bf6171cf3ed44a090f80327c",
43
+ "manifest": {
44
+ "active_token_ids": {
45
+ "<|box_end|>": 11,
46
+ "<|endoftext|>": 5,
47
+ "<|im_end|>": 7,
48
+ "<|im_start|>": 6,
49
+ "<|object_ref_end|>": 9,
50
+ "<|object_ref_start|>": 8,
51
+ "<|quad_end|>": 13,
52
+ "<|quad_start|>": 12
53
+ },
54
+ "condition_distribution": {
55
+ "direct": 1157064
56
+ },
57
+ "data_schema_version": 2,
58
+ "declared_license": "CC-BY-4.0",
59
+ "decontamination": "complete",
60
+ "decontamination_report": "decontamination.json",
61
+ "decontamination_report_sha256": "3c4ace8d0ca0a668db2ebcea4ef6874499b6aefbb359d324dbfc694ac48f35ba",
62
+ "deduplication": {
63
+ "exact": "complete"
64
+ },
65
+ "format": "hrm-code-tools-sft-v2",
66
+ "migration": {
67
+ "input_manifest_sha256": "18c43a551e6c62adf600deb9614d3057ebb1db6dd1ecff5e76b76f26ee375881",
68
+ "input_train_sha256": "5d5b4a8f0fd37d4efb43db433c5d715f0f7ded228a07406e294e8cfed63f752a",
69
+ "input_validation_sha256": "3101880dc4b750499617f24312984c05d23081ae68e37739366f9ffebf0cd0d0",
70
+ "method": "v1 curated rows -> canonical v2 fields; re-split, deduplicate, and re-cap"
71
+ },
72
+ "records": {
73
+ "accepted": 1157064,
74
+ "by_source": {
75
+ "nvidia/OpenCodeInstruct": 1157064
76
+ },
77
+ "input_rows": 1157064,
78
+ "rejected_context_limit": 0,
79
+ "rejected_duplicate_id": 0,
80
+ "rejected_exact_duplicate": 0,
81
+ "response_tokens": 300785226,
82
+ "serialized_tokens": 590957065,
83
+ "train": 1133817,
84
+ "validation": 23247
85
+ },
86
+ "selection": {
87
+ "input_was_full_stage": true,
88
+ "max_serialized_sequence_length": 4096
89
+ },
90
+ "serializer_version": "hrm-prefixlm-sft-v1",
91
+ "sources": {
92
+ "nvidia/OpenCodeInstruct": {
93
+ "license": "CC-BY-4.0",
94
+ "revision": "8f3ba5bafe4d6e8db46082cf7ae6741bc370604d"
95
+ }
96
+ },
97
+ "split": {
98
+ "method": "sha256(source-id)%100",
99
+ "validation_percent": 2
100
+ },
101
+ "stage": "stage-a",
102
+ "tokenizer_json": "/data1/contributions/keras/hrm-text-1b-reference/tokenizer.json",
103
+ "tokenizer_revision": "d08ed34cc79b3c788d7b5d81399511439a0e39af",
104
+ "tokenizer_sha256": "ba520107dc9b27d25643e8f43fc1d9921038c86d3ada9dcaabf18526c5836d50",
105
+ "train_jsonl": "train.jsonl",
106
+ "train_sha256": "b6e340ea64568570b24e2d5f08c506a6f3221482d9fca6778a49c5577832171c",
107
+ "transform_version": "hrm-sft-v2",
108
+ "validation_jsonl": "validation.jsonl",
109
+ "validation_sha256": "f8c52067e80f5a7edb8be22a08cbc20de421ae6f368878f9bab64abe88a1bcc4"
110
+ },
111
+ "status": "preflight-passed"
112
+ }
training/tensorboard/train/events.out.tfevents.1784941536.ccdf07020f90.51.0.v2 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:524387a608d8a3f2e29f1262f5a8dcc6063d6e3bc6dc956aa4f84f6d0f33ee12
3
+ size 932008
training/tensorboard/validation/events.out.tfevents.1784994496.ccdf07020f90.51.1.v2 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8f3c28f06dc827ca97d96dd544759c46d1ad6ad53b6fa99a17286a80246f2223
3
+ size 78
training/training-plan.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "gradient_accumulation_steps": 8,
3
+ "micro_batch_size": 1,
4
+ "microbatch_steps": 38248,
5
+ "optimizer_steps": 4781,
6
+ "train": {
7
+ "requested_response_tokens": 10000000,
8
+ "selected_response_tokens": 10000147,
9
+ "selected_rows": 38248,
10
+ "selected_serialized_tokens": 19650833,
11
+ "shuffle_cycles_touched": 1,
12
+ "source_rows": 1133817
13
+ }
14
+ }