codegeist commited on
Commit
04d51ed
·
verified ·
1 Parent(s): 290f950

Add reviewed identity smoke adapter

Browse files

Publish the private review candidate with pinned base revision, Safetensors weights, sanitized evidence, license, and third-party notices.

Files changed (6) hide show
  1. LICENSE +7 -0
  2. README.md +187 -0
  3. THIRD_PARTY_NOTICES.md +16 -0
  4. adapter_config.json +54 -0
  5. adapter_model.safetensors +3 -0
  6. evidence.json +395 -0
LICENSE ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ BSD Zero Clause License
2
+
3
+ Copyright (C) 2026 Codegeist contributors
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
README.md ADDED
@@ -0,0 +1,187 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ base_model: Qwen/Qwen3-1.7B
3
+ base_model_relation: adapter
4
+ library_name: peft
5
+ pipeline_tag: text-generation
6
+ language:
7
+ - en
8
+ license: other
9
+ license_name: 0bsd
10
+ license_link: https://github.com/codegeist-ai/codegeist-ai/blob/main/LICENSE
11
+ tags:
12
+ - peft
13
+ - lora
14
+ - sft
15
+ - transformers
16
+ - unsloth
17
+ - non-production
18
+ - identity-smoke
19
+ ---
20
+
21
+ # Codegeist Qwen3-1.7B Identity Smoke Adapter
22
+
23
+ This is a non-production LoRA adapter created to validate the Codegeist training
24
+ pipeline. It teaches one response only:
25
+
26
+ ```text
27
+ User: What is Codegeist?
28
+ Assistant: Codegeist is a coding agent.
29
+ ```
30
+
31
+ It is not evidence of coding ability, reasoning, generalization, safe tool use,
32
+ Codegeist OS integration, GGUF conversion, Vulkan deployment, or production
33
+ model quality.
34
+
35
+ ## Artifact Identity
36
+
37
+ | Field | Value |
38
+ | --- | --- |
39
+ | Base model | `Qwen/Qwen3-1.7B` |
40
+ | Base revision | `70d244cc86ccca08cf5af4e1e306ecf908b1ad5e` |
41
+ | Adapter format | PEFT LoRA, Safetensors |
42
+ | Adapter weight SHA-256 | `19d424106ef88ffeac4c26c22cebfb13ae1d5f309e1dcccf2da708727bec10a8` |
43
+ | Training Job | `6a75f25a3e1f34a7e32bd646` |
44
+ | Training date | 2026-08-07 |
45
+
46
+ `evidence.json` contains the sanitized run chronology, configuration, package
47
+ versions, hashes, cost estimate, verification status, and known gaps. It does
48
+ not contain model weights, private logs, or credentials.
49
+
50
+ ## Intended Use
51
+
52
+ The only intended use is reproducing and inspecting this one-record pipeline
53
+ smoke. Use the immutable base revision above and pin this adapter repository to
54
+ a specific Hub commit when loading it.
55
+
56
+ Do not use this adapter as a coding assistant, autonomous agent, general chat
57
+ model, safety component, or production model. It was not evaluated for those
58
+ purposes.
59
+
60
+ ## Loading
61
+
62
+ This CPU-compatible example prioritizes portability over speed. Replace
63
+ `ADAPTER_REVISION` with an immutable commit from this repository:
64
+
65
+ ```python
66
+ import torch
67
+ from peft import PeftModel
68
+ from transformers import AutoModelForCausalLM, AutoTokenizer
69
+
70
+ BASE_MODEL = "Qwen/Qwen3-1.7B"
71
+ BASE_REVISION = "70d244cc86ccca08cf5af4e1e306ecf908b1ad5e"
72
+ ADAPTER_MODEL = "codegeist/qwen3-1.7b-codegeist-identity-smoke"
73
+ ADAPTER_REVISION = "<immutable-adapter-commit>"
74
+
75
+ tokenizer = AutoTokenizer.from_pretrained(
76
+ BASE_MODEL,
77
+ revision=BASE_REVISION,
78
+ trust_remote_code=False,
79
+ )
80
+ base_model = AutoModelForCausalLM.from_pretrained(
81
+ BASE_MODEL,
82
+ revision=BASE_REVISION,
83
+ trust_remote_code=False,
84
+ torch_dtype=torch.float32,
85
+ low_cpu_mem_usage=True,
86
+ )
87
+ model = PeftModel.from_pretrained(
88
+ base_model,
89
+ ADAPTER_MODEL,
90
+ revision=ADAPTER_REVISION,
91
+ is_trainable=False,
92
+ )
93
+
94
+ prompt = tokenizer.apply_chat_template(
95
+ [{"role": "user", "content": "What is Codegeist?"}],
96
+ tokenize=False,
97
+ add_generation_prompt=True,
98
+ enable_thinking=False,
99
+ )
100
+ inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False)
101
+ with torch.inference_mode():
102
+ output = model.generate(
103
+ **inputs,
104
+ do_sample=False,
105
+ max_new_tokens=64,
106
+ pad_token_id=tokenizer.eos_token_id,
107
+ eos_token_id=tokenizer.eos_token_id,
108
+ )
109
+
110
+ response = tokenizer.decode(
111
+ output[0, inputs["input_ids"].shape[1]:],
112
+ skip_special_tokens=True,
113
+ ).strip()
114
+ print(response)
115
+ ```
116
+
117
+ Expected whitespace-normalized response:
118
+
119
+ ```text
120
+ Codegeist is a coding agent.
121
+ ```
122
+
123
+ ## Training Data
124
+
125
+ The complete project-authored synthetic dataset is one public record:
126
+
127
+ ```json
128
+ {
129
+ "instruction": "What is Codegeist?",
130
+ "response": "Codegeist is a coding agent."
131
+ }
132
+ ```
133
+
134
+ The record ID is `codegeist-identity-v1-001`. It contains no private data,
135
+ personal information, or credentials. Training and evaluation deliberately use
136
+ the same record to test memorization; there is no held-out evaluation set.
137
+
138
+ ## Training
139
+
140
+ - Python 3.12
141
+ - PyTorch 2.6.0 with CUDA 12.4
142
+ - Unsloth 2026.8.7
143
+ - Transformers 5.5.0
144
+ - TRL 0.24.0
145
+ - PEFT 0.20.0
146
+ - BF16 LoRA, rank 8, alpha 8, dropout 0
147
+ - Completion-only loss
148
+ - 20 steps, batch size 1, learning rate 0.0002
149
+ - Seed and data seed 3407
150
+ - NVIDIA A10G
151
+ - No intermediate checkpoints and no automatic Hub publication
152
+
153
+ The aggregate training loss was `1.6867698234826094`. The final logged step loss
154
+ was approximately `0.0003`.
155
+
156
+ ## Evaluation
157
+
158
+ The unchanged base model incorrectly described Codegeist as a code editor. After
159
+ training, the adapter was loaded onto a fresh instance of the exact base revision
160
+ in a child process. One greedy generation produced the expected answer after
161
+ leading and trailing whitespace normalization.
162
+
163
+ The raw decoded continuation before `.strip()` was not retained. Training and
164
+ inference repeatability, deterministic PyTorch algorithms, coding benchmarks,
165
+ safety evaluation, and generalization were not tested.
166
+
167
+ ## Licenses And Provenance
168
+
169
+ The project-authored adapter and documentation are provided under the
170
+ [BSD Zero Clause License](https://github.com/codegeist-ai/codegeist-ai/blob/main/LICENSE).
171
+ The required base model is distributed separately by Qwen under Apache-2.0. This
172
+ repository does not redistribute base-model weights. Review both licenses and
173
+ the base model's terms before use or redistribution.
174
+
175
+ See `THIRD_PARTY_NOTICES.md` for the exact upstream model reference. The
176
+ Codegeist source repository is
177
+ [`codegeist-ai/codegeist-llm`](https://github.com/codegeist-ai/codegeist-llm).
178
+
179
+ ## Publication Limitations
180
+
181
+ - The successful training source was not committed when the paid Job launched;
182
+ exact source bytes are anchored by SHA-256 in `evidence.json`.
183
+ - Downloaded model and tokenizer cache bytes were not independently rehashed
184
+ inside the Job against the upstream manifest.
185
+ - The generated adapter configuration originally omitted the base revision; the
186
+ publication copy sets it to the immutable revision used by the Job.
187
+ - This publication does not change the experiment's non-production status.
THIRD_PARTY_NOTICES.md ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Third-Party Notices
2
+
3
+ ## Qwen3-1.7B
4
+
5
+ This repository contains a LoRA adapter for, but does not redistribute, the
6
+ following base model:
7
+
8
+ - Model: `Qwen/Qwen3-1.7B`
9
+ - Publisher: Qwen
10
+ - Revision: `70d244cc86ccca08cf5af4e1e306ecf908b1ad5e`
11
+ - License: Apache-2.0
12
+ - Source: https://huggingface.co/Qwen/Qwen3-1.7B/tree/70d244cc86ccca08cf5af4e1e306ecf908b1ad5e
13
+ - License text: https://huggingface.co/Qwen/Qwen3-1.7B/blob/70d244cc86ccca08cf5af4e1e306ecf908b1ad5e/LICENSE
14
+
15
+ Users must obtain the base model separately and comply with its license and
16
+ applicable terms.
adapter_config.json ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "alora_invocation_tokens": null,
3
+ "alpha_pattern": {},
4
+ "arrow_config": null,
5
+ "auto_mapping": {
6
+ "base_model_class": "Qwen3ForCausalLM",
7
+ "parent_library": "transformers.models.qwen3.modeling_qwen3",
8
+ "unsloth_fixed": true
9
+ },
10
+ "base_model_name_or_path": "Qwen/Qwen3-1.7B",
11
+ "bias": "none",
12
+ "corda_config": null,
13
+ "ensure_weight_tying": false,
14
+ "eva_config": null,
15
+ "exclude_modules": null,
16
+ "fan_in_fan_out": false,
17
+ "inference_mode": true,
18
+ "init_lora_weights": true,
19
+ "layer_replication": null,
20
+ "layers_pattern": null,
21
+ "layers_to_transform": null,
22
+ "loftq_config": {},
23
+ "lora_alpha": 8,
24
+ "lora_bias": false,
25
+ "lora_dropout": 0,
26
+ "lora_ga_config": null,
27
+ "megatron_config": null,
28
+ "megatron_core": "megatron.core",
29
+ "modules_to_save": null,
30
+ "monteclora_config": null,
31
+ "peft_type": "LORA",
32
+ "peft_version": "0.20.0",
33
+ "qalora_group_size": 16,
34
+ "r": 8,
35
+ "rank_pattern": {},
36
+ "revision": "70d244cc86ccca08cf5af4e1e306ecf908b1ad5e",
37
+ "target_modules": [
38
+ "up_proj",
39
+ "down_proj",
40
+ "gate_proj",
41
+ "v_proj",
42
+ "k_proj",
43
+ "q_proj",
44
+ "o_proj"
45
+ ],
46
+ "target_parameters": null,
47
+ "task_type": "CAUSAL_LM",
48
+ "trainable_token_indices": null,
49
+ "use_bdlora": null,
50
+ "use_dora": false,
51
+ "use_qalora": false,
52
+ "use_rslora": false,
53
+ "velora_config": null
54
+ }
adapter_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:19d424106ef88ffeac4c26c22cebfb13ae1d5f309e1dcccf2da708727bec10a8
3
+ size 34916720
evidence.json ADDED
@@ -0,0 +1,395 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "evidence_type": "non-production-identity-pipeline-smoke",
4
+ "recorded_date": "2026-08-07",
5
+ "result": "passed",
6
+ "scope": {
7
+ "purpose": "Validate model download, BF16 LoRA training, private adapter persistence, clean-process reload, single greedy whitespace-normalized exact-match evaluation, and evidence handling.",
8
+ "learned_answer": "Codegeist is a coding agent.",
9
+ "does_not_demonstrate": [
10
+ "coding ability",
11
+ "generalization",
12
+ "safe tool use",
13
+ "Codegeist OS integration",
14
+ "GGUF conversion",
15
+ "Vulkan deployment",
16
+ "production model quality"
17
+ ]
18
+ },
19
+ "source_state": {
20
+ "branch": "main",
21
+ "git_head_at_launch": "216dca0defb47ad853ab9f9317ec855bece6aed2",
22
+ "source_committed_at_launch": false,
23
+ "canonical_source_identity": "sha256",
24
+ "source_sha256_scope": "source bytes executed by the successful job",
25
+ "source_sha256": {
26
+ "pyproject.toml": "7e93cd40a50fe6e76f23def477193767815af9533927797735616d34f97624f0",
27
+ "train.py": "a82a7385c3af87fbddd1f208e868d8ecb05ff4e290309ba3d6feaedac159f170",
28
+ "upstream-model.json": "6f989ae94816a70a3115a4698233fb8fbe9c243c3bf5c0729925e9f72b9c9f6a",
29
+ "uv.lock": "cfe0f3676c3e69fba0b5cecb75a6163c23254297b837b4b733821a2fbbd70415"
30
+ },
31
+ "post_run_hardened_train_py_sha256": "899888549826fd974ff2ac918e5ed74f6a13232e3e896e24af94d9db04ca79a6",
32
+ "post_run_hardened_source_matches_executed_source": false,
33
+ "post_run_change": "Docstring-only corrections clarified credential reads and whitespace-normalized response comparison without changing training logic."
34
+ },
35
+ "upstream_model": {
36
+ "model_id": "Qwen/Qwen3-1.7B",
37
+ "revision": "70d244cc86ccca08cf5af4e1e306ecf908b1ad5e",
38
+ "publisher": "Qwen",
39
+ "license": "apache-2.0",
40
+ "revision_last_modified": "2025-07-26T03:46:32+00:00",
41
+ "remote_code_enabled": false,
42
+ "manifest_path": "jobs/identity-smoke/upstream-model.json",
43
+ "manifest_sha256": "6f989ae94816a70a3115a4698233fb8fbe9c243c3bf5c0729925e9f72b9c9f6a",
44
+ "weight_sha256": {
45
+ "model-00001-of-00002.safetensors": "169ad53ec313c3a34b06c0809216e4fc072cce444a5d4ff2b59690d064130ed5",
46
+ "model-00002-of-00002.safetensors": "912becff8d60672aa8628ef08c05898d9adf17c2ad4ae3caf99b065622fdeff9"
47
+ },
48
+ "hash_source": "Hugging Face revision API and locally hashed small metadata files",
49
+ "downloaded_bytes_independently_verified": false
50
+ },
51
+ "dataset": {
52
+ "record_id": "codegeist-identity-v1-001",
53
+ "record_count": 1,
54
+ "instruction": "What is Codegeist?",
55
+ "response": "Codegeist is a coding agent.",
56
+ "source_type": "project-authored synthetic identity record",
57
+ "authorship": "Codegeist project",
58
+ "source_anchor": "train.py SHA-256 a82a7385c3af87fbddd1f208e868d8ecb05ff4e290309ba3d6feaedac159f170",
59
+ "license": "0BSD under the shared codegeist-ai/codegeist-ai license",
60
+ "license_url": "https://github.com/codegeist-ai/codegeist-ai/blob/main/LICENSE",
61
+ "reviewed_date": "2026-08-07",
62
+ "pii_review": "No names, contact data, user data, logs, or personal identifiers are present.",
63
+ "secret_review": "The literal record contains no credential or secret material.",
64
+ "deduplication_review": "not applicable: one authored record",
65
+ "scenario_split_review": "not applicable: pipeline-only one-record smoke",
66
+ "train_evaluation_contamination": "deliberate reuse of the training prompt to test memorization",
67
+ "poisoning_review": "no untrusted source or teacher output enters the record",
68
+ "exclusions": "none",
69
+ "thinking_enabled": false,
70
+ "completion_end_token": "<|im_end|>",
71
+ "loss_scope": "completion_only",
72
+ "contains_private_data": false
73
+ },
74
+ "runtime": {
75
+ "platform": "linux-x86_64",
76
+ "job_image": "ghcr.io/astral-sh/uv:python3.12-bookworm@sha256:9aa60c50016c0485636ab9a830246a6ef3399aa4a8bab3d17ef4a2358fba2ca7",
77
+ "python": "3.12.12",
78
+ "uv": "0.9.30",
79
+ "c_compiler": "gcc 12.2.0",
80
+ "hardware_flavor": "a10g-small",
81
+ "cuda_device": "NVIDIA A10G",
82
+ "nominal_vram_gb": 24,
83
+ "unsloth_visible_vram_gib": 22.301,
84
+ "cuda_runtime": "12.4",
85
+ "packages": {
86
+ "accelerate": "1.14.0",
87
+ "datasets": "4.3.0",
88
+ "huggingface-hub": "1.26.1",
89
+ "peft": "0.20.0",
90
+ "safetensors": "0.8.0",
91
+ "torch": "2.6.0",
92
+ "torch_build_reported_by_unsloth": "2.6.0+cu124",
93
+ "torchao": "0.13.0",
94
+ "torchvision": "0.21.0",
95
+ "transformers": "5.5.0",
96
+ "triton": "3.2.0",
97
+ "trl": "0.24.0",
98
+ "unsloth": "2026.8.7",
99
+ "unsloth-zoo": "2026.8.5",
100
+ "xformers": "0.0.29.post3"
101
+ },
102
+ "runtime_packages_installed": 102,
103
+ "lock_packages_resolved": 106
104
+ },
105
+ "job_policy": {
106
+ "namespace": "codegeist",
107
+ "name": "codegeist-identity-qwen3-1-7b",
108
+ "labels": {
109
+ "purpose": "identity-smoke",
110
+ "model": "qwen3-1-7b"
111
+ },
112
+ "timeout": "30m",
113
+ "detached": true,
114
+ "exposed_ports": [],
115
+ "ssh_enabled": false,
116
+ "environment": {
117
+ "UV_PROJECT_ENVIRONMENT": "/tmp/codegeist-identity-venv"
118
+ },
119
+ "runtime_secret_names": [
120
+ "HF_TOKEN"
121
+ ],
122
+ "command": [
123
+ "uv",
124
+ "run",
125
+ "--project",
126
+ "/workspace",
127
+ "--frozen",
128
+ "--no-dev",
129
+ "python",
130
+ "/workspace/train.py",
131
+ "--model-id",
132
+ "Qwen/Qwen3-1.7B",
133
+ "--revision",
134
+ "70d244cc86ccca08cf5af4e1e306ecf908b1ad5e",
135
+ "--output-dir",
136
+ "/outputs/qwen3-1.7b"
137
+ ]
138
+ },
139
+ "training": {
140
+ "precision": "bf16",
141
+ "quantization": null,
142
+ "max_sequence_length": 256,
143
+ "per_device_batch_size": 1,
144
+ "gradient_accumulation_steps": 1,
145
+ "learning_rate": 0.0002,
146
+ "maximum_steps": 20,
147
+ "packing": false,
148
+ "seed": 3407,
149
+ "optimizer": "adamw_torch",
150
+ "scheduler": "constant",
151
+ "warmup_steps": 0,
152
+ "weight_decay": 0.0,
153
+ "gradient_checkpointing": false,
154
+ "intermediate_checkpoints": false,
155
+ "automatic_hub_push": false,
156
+ "lora": {
157
+ "rank": 8,
158
+ "alpha": 8,
159
+ "dropout": 0.0,
160
+ "bias": "none",
161
+ "trainable_parameters": 8716288,
162
+ "reported_total_parameters": 1729291264,
163
+ "reported_trainable_percent": 0.5,
164
+ "target_modules": [
165
+ "q_proj",
166
+ "k_proj",
167
+ "v_proj",
168
+ "o_proj",
169
+ "gate_proj",
170
+ "up_proj",
171
+ "down_proj"
172
+ ]
173
+ },
174
+ "trainer_runtime_seconds": 10.48,
175
+ "train_samples_per_second": 1.908,
176
+ "train_steps_per_second": 1.908,
177
+ "aggregate_training_loss": 1.6867698234826094,
178
+ "step_metrics": [
179
+ {"step": 1, "loss": 8.353, "gradient_norm": 15.02},
180
+ {"step": 2, "loss": 7.568, "gradient_norm": 17.74},
181
+ {"step": 3, "loss": 5.727, "gradient_norm": 20.98},
182
+ {"step": 4, "loss": 3.804, "gradient_norm": 14.56},
183
+ {"step": 5, "loss": 2.508, "gradient_norm": 8.88},
184
+ {"step": 6, "loss": 1.746, "gradient_norm": 3.956},
185
+ {"step": 7, "loss": 1.36, "gradient_norm": 3.239},
186
+ {"step": 8, "loss": 1.043, "gradient_norm": 3.352},
187
+ {"step": 9, "loss": 0.7308, "gradient_norm": 2.42},
188
+ {"step": 10, "loss": 0.4647, "gradient_norm": 2.227},
189
+ {"step": 11, "loss": 0.2663, "gradient_norm": 1.625},
190
+ {"step": 12, "loss": 0.1188, "gradient_norm": 1.03},
191
+ {"step": 13, "loss": 0.03599, "gradient_norm": 0.4706},
192
+ {"step": 14, "loss": 0.007015, "gradient_norm": 0.1167},
193
+ {"step": 15, "loss": 0.001404, "gradient_norm": 0.03392},
194
+ {"step": 16, "loss": 0.0003581, "gradient_norm": 0.009263},
195
+ {"step": 17, "loss": 0.000184, "gradient_norm": 0.006619},
196
+ {"step": 18, "loss": 0.0002033, "gradient_norm": 0.01128},
197
+ {"step": 19, "loss": 0.0002786, "gradient_norm": 0.01877},
198
+ {"step": 20, "loss": 0.0003003, "gradient_norm": 0.01961}
199
+ ]
200
+ },
201
+ "evaluation": {
202
+ "baseline_response": "**Codegeist** is a free, open-source code editor developed by the **Codegeist Team**. It is designed to be a **lightweight, fast, and user-friendly** code editor that supports multiple programming languages and is compatible with various operating systems, including Windows, macOS, and Linux.\n\n### Key Features of",
203
+ "adapted_response": "Codegeist is a coding agent.",
204
+ "exact_match": true,
205
+ "response_normalization": "leading and trailing whitespace stripped before retention and comparison",
206
+ "raw_response_preserved": false,
207
+ "generation_method": "single greedy generation before adaptation and single greedy generation after clean reload",
208
+ "repeatability_runs": 1,
209
+ "pytorch_deterministic_algorithms_enabled": false,
210
+ "adapter_reload_process": "fresh_child_process",
211
+ "timed_training_script_seconds_after_runtime_validation": 90.806
212
+ },
213
+ "job_attempts": [
214
+ {
215
+ "id": "6a75eeedda2af92a634eecaa",
216
+ "url": "https://huggingface.co/jobs/codegeist/6a75eeedda2af92a634eecaa",
217
+ "created_at": "2026-08-07T14:42:53.825000+00:00",
218
+ "started_at": "2026-08-07T14:43:03.414000+00:00",
219
+ "finished_at": "2026-08-07T14:43:54.618000+00:00",
220
+ "terminal_status": "ERROR",
221
+ "scheduling_seconds": 9,
222
+ "running_seconds": 51,
223
+ "total_seconds": 60,
224
+ "image": "ghcr.io/astral-sh/uv:python3.12-bookworm-slim@sha256:5d275ca5f0da33c3368ac8fbb85fafabad023b3b8a7cff39a94ac0baecfd9a50",
225
+ "finding": "The Jobs runtime exposed ACCELERATOR=gpu rather than the documented flavor name a10g-small."
226
+ },
227
+ {
228
+ "id": "6a75ef753e1f34a7e32bd601",
229
+ "url": "https://huggingface.co/jobs/codegeist/6a75ef753e1f34a7e32bd601",
230
+ "created_at": "2026-08-07T14:45:09.389000+00:00",
231
+ "started_at": "2026-08-07T14:45:17.800000+00:00",
232
+ "finished_at": "2026-08-07T14:46:58.139000+00:00",
233
+ "terminal_status": "ERROR",
234
+ "scheduling_seconds": 8,
235
+ "running_seconds": 100,
236
+ "total_seconds": 108,
237
+ "image": "ghcr.io/astral-sh/uv:python3.12-bookworm-slim@sha256:5d275ca5f0da33c3368ac8fbb85fafabad023b3b8a7cff39a94ac0baecfd9a50",
238
+ "finding": "Resolver-selected TorchAO 0.18.0 used torch.utils._pytree.register_constant, which is absent from PyTorch 2.6.0."
239
+ },
240
+ {
241
+ "id": "6a75f06c3e1f34a7e32bd61c",
242
+ "url": "https://huggingface.co/jobs/codegeist/6a75f06c3e1f34a7e32bd61c",
243
+ "created_at": "2026-08-07T14:49:16.344000+00:00",
244
+ "started_at": "2026-08-07T14:49:27.399000+00:00",
245
+ "finished_at": "2026-08-07T14:50:37.624000+00:00",
246
+ "terminal_status": "COMPLETED",
247
+ "scheduling_seconds": 11,
248
+ "running_seconds": 70,
249
+ "total_seconds": 81,
250
+ "image": "ghcr.io/astral-sh/uv:python3.12-bookworm-slim@sha256:5d275ca5f0da33c3368ac8fbb85fafabad023b3b8a7cff39a94ac0baecfd9a50",
251
+ "finding": "The pinned framework stack imported successfully on CUDA 12.4 and NVIDIA A10G without downloading model weights."
252
+ },
253
+ {
254
+ "id": "6a75f10b3e1f34a7e32bd631",
255
+ "url": "https://huggingface.co/jobs/codegeist/6a75f10b3e1f34a7e32bd631",
256
+ "created_at": "2026-08-07T14:51:55.353000+00:00",
257
+ "started_at": "2026-08-07T14:52:03.839000+00:00",
258
+ "finished_at": "2026-08-07T14:53:41.173000+00:00",
259
+ "terminal_status": "ERROR",
260
+ "scheduling_seconds": 8,
261
+ "running_seconds": 97,
262
+ "total_seconds": 105,
263
+ "image": "ghcr.io/astral-sh/uv:python3.12-bookworm-slim@sha256:5d275ca5f0da33c3368ac8fbb85fafabad023b3b8a7cff39a94ac0baecfd9a50",
264
+ "finding": "The model loaded, but Triton could not compile its CUDA driver helper because the slim image contained no C compiler."
265
+ },
266
+ {
267
+ "id": "6a75f25a3e1f34a7e32bd646",
268
+ "url": "https://huggingface.co/jobs/codegeist/6a75f25a3e1f34a7e32bd646",
269
+ "created_at": "2026-08-07T14:57:30.247000+00:00",
270
+ "started_at": "2026-08-07T14:57:38.813000+00:00",
271
+ "finished_at": "2026-08-07T14:59:53.242000+00:00",
272
+ "terminal_status": "COMPLETED",
273
+ "scheduling_seconds": 8,
274
+ "running_seconds": 134,
275
+ "total_seconds": 142,
276
+ "image": "ghcr.io/astral-sh/uv:python3.12-bookworm@sha256:9aa60c50016c0485636ab9a830246a6ef3399aa4a8bab3d17ef4a2358fba2ca7",
277
+ "finding": "Training, Safetensors save, fresh-process adapter reload, whitespace-normalized match evaluation, and evidence writing completed."
278
+ }
279
+ ],
280
+ "pre_job_failures": [
281
+ {
282
+ "job_created": false,
283
+ "compute_cost": 0,
284
+ "finding": "The first launch request used model=qwen3-1.7b; the dot violated the Jobs tag character policy."
285
+ },
286
+ {
287
+ "job_created": false,
288
+ "compute_cost": 0,
289
+ "finding": "The second launch request fixed the model label but retained a dot in the name, which is also stored as a label."
290
+ },
291
+ {
292
+ "job_created": false,
293
+ "compute_cost": 0,
294
+ "finding": "A later source sync failed locally with ENOSPC in the Hugging Face Xet staging cache. Removing 6.474 GB of unused devcontainer build cache restored sufficient space."
295
+ }
296
+ ],
297
+ "storage": {
298
+ "bucket": "codegeist/jobs-artifacts",
299
+ "bucket_private": true,
300
+ "bucket_created_at": "2026-08-07T14:41:22+00:00",
301
+ "bucket_observed_size_bytes": 35051685,
302
+ "bucket_observed_file_count": 14,
303
+ "source_prefix": "identity-smoke-83abb38f",
304
+ "output_prefix": "identity-smoke-38e1bc83",
305
+ "local_directory": ".artifacts/identity-smoke/qwen3-1.7b",
306
+ "local_directory_ignored_by_git": true,
307
+ "public_repository_created": false
308
+ },
309
+ "artifacts": {
310
+ "adapter_total_size_bytes": 34923206,
311
+ "files": {
312
+ "adapter/README.md": {
313
+ "size_bytes": 5206,
314
+ "sha256": "fe5e0e242745b7581eee65f7991c745c93717d4d1fee1e52e092473917fb1d23"
315
+ },
316
+ "adapter/adapter_config.json": {
317
+ "size_bytes": 1280,
318
+ "sha256": "586d012561c6a41a2f1e4049a0ff80339e403e7886352512e66ec663e9744f29"
319
+ },
320
+ "adapter/adapter_model.safetensors": {
321
+ "size_bytes": 34916720,
322
+ "sha256": "19d424106ef88ffeac4c26c22cebfb13ae1d5f309e1dcccf2da708727bec10a8"
323
+ },
324
+ "SHA256SUMS": {
325
+ "size_bytes": 278,
326
+ "sha256": "760a3ce4cb7a0f0f64e1bab3400fce5ba16153c7e25f82454695eb5c362966cf"
327
+ },
328
+ "run.json": {
329
+ "size_bytes": 3588,
330
+ "sha256": "97444c2d3c8f1a2c2dd50041fea3c44a3a6077bedecf002814e5354a951f214b"
331
+ },
332
+ "job.json": {
333
+ "size_bytes": 1455,
334
+ "sha256": "db88cfcc7b8d9bbc874975d70161b84d96c802bfebdcc713f76fa83e24178d68",
335
+ "origin": "locally curated from hf jobs inspect after terminal completion"
336
+ }
337
+ }
338
+ },
339
+ "private_evidence_snapshots": {
340
+ "local_directory": ".artifacts/identity-smoke/qwen3-1.7b/logs",
341
+ "tracked_by_git": false,
342
+ "captured_after_completion": true,
343
+ "note": "These private snapshots anchor manually curated log, job, hardware, and bucket facts without committing raw logs.",
344
+ "files": {
345
+ "6a75eeedda2af92a634eecaa.log": {"size_bytes": 2894, "sha256": "84101ba9b08f4f22a5ac1d15456ab543757e3b773b72d9c9b2cc63a6aa810309"},
346
+ "6a75ef753e1f34a7e32bd601.log": {"size_bytes": 12337, "sha256": "30a141f6559e9576191c8f28864fe638a033825d13a50f13abfa8be921bdeb2d"},
347
+ "6a75f06c3e1f34a7e32bd61c.log": {"size_bytes": 3016, "sha256": "40dc8a1680f5380673685491fa515515a3bb3b35eb37aea23f3a6a231b1e727c"},
348
+ "6a75f10b3e1f34a7e32bd631.log": {"size_bytes": 10311, "sha256": "685caa06717a3185d69e72f98142cc1c71fd6b069b71c65b2643c1677f74d202"},
349
+ "6a75f25a3e1f34a7e32bd646.log": {"size_bytes": 11637, "sha256": "f1f79b48899e24f6a4a2d667ce40166b9ede6a0d7a2c5de91aa87cceb8344479"},
350
+ "bucket-info.json": {"size_bytes": 132, "sha256": "76fc077f24605fb1a1e4c84927a46c066daccc88abc21e42d5b8a0ba9c2b2d31"},
351
+ "hardware-a10g-small.txt": {"size_bytes": 81, "sha256": "7d23c09ee7611b01840801b003c82c7d0a23f5b8207fb41079a4859d843e49b5"},
352
+ "jobs-inspect.json": {"size_bytes": 9374, "sha256": "f240ae186e462b0c8cf7deeeec1dc659193c4bba74fc300a54339d2a25a35948"},
353
+ "SHA256SUMS": {"size_bytes": 772, "sha256": "85ea71d1ddcbbf3b9e605081eb8d113cd2e3c5f00e49551c97f6c1ce94bc7c06"}
354
+ }
355
+ },
356
+ "verification": {
357
+ "pre_launch_weightless_contract_tests": 13,
358
+ "pre_launch_weightless_contract_tests_passed": 13,
359
+ "post_run_hardened_contract_tests": 16,
360
+ "post_run_hardened_contract_tests_passed": 16,
361
+ "lock_check_passed": true,
362
+ "adapter_hash_check_passed": true,
363
+ "source_hash_check_passed": true,
364
+ "source_hash_check_timing": "passed immediately after artifact synchronization, before docstring-only post-run hardening",
365
+ "secret_scan_passed": true,
366
+ "private_snapshot_secret_scan_passed": true,
367
+ "private_snapshot_hash_manifest_passed": true,
368
+ "upstream_download_hash_check_passed": false,
369
+ "adapter_format": "safetensors",
370
+ "pickle_bin_present": false,
371
+ "clean_process_reload_passed": true,
372
+ "terminal_job_status": "COMPLETED"
373
+ },
374
+ "cost_estimate": {
375
+ "observed_rate_usd_per_hour": 1.0,
376
+ "observed_rate_usd_per_minute": 0.0167,
377
+ "total_running_seconds_across_created_jobs": 452,
378
+ "per_second_estimate_usd": 0.1256,
379
+ "conservative_per_job_minute_rounding_minutes": 10,
380
+ "conservative_per_job_minute_rounding_usd": 0.167,
381
+ "authoritative_source": "Hugging Face billing page"
382
+ },
383
+ "known_gaps": [
384
+ "The training source was not committed at launch; exact source bytes are anchored by SHA-256 instead of a Git commit containing the implementation.",
385
+ "The generated adapter README is boilerplate and is not acceptable for publication.",
386
+ "adapter_config.json records the base model ID but leaves its revision null; run.json and upstream-model.json provide the immutable revision.",
387
+ "run.json does not list TorchAO in its selected runtime package subset; the lock digest and this curated record capture TorchAO 0.13.0.",
388
+ "The full project devcontainer rebuild was not completed because its shared lazygit step exhausted the anonymous GitHub API rate limit.",
389
+ "The model and tokenizer bytes loaded inside the Job were not independently rehashed against upstream-model.json after download.",
390
+ "Evaluation used one greedy baseline generation and one greedy post-reload generation; repeatability and deterministic PyTorch algorithms were not tested.",
391
+ "The three pre-job failures without Job IDs are manually reconstructed from the live session because no durable command transcript was captured at the time.",
392
+ "The historical exact_match field compares a whitespace-stripped response; the raw decoded continuation was not retained.",
393
+ "The experiment demonstrates one-record memorization only."
394
+ ]
395
+ }