diff --git a/auditbench-7b/contextual-optimism/stage1/train_config.yaml b/auditbench-7b/contextual-optimism/stage1/train_config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8585047435e0d02a507dfdaee1ac94519d09590c --- /dev/null +++ b/auditbench-7b/contextual-optimism/stage1/train_config.yaml @@ -0,0 +1,52 @@ +sample_packing: true +flash_attention: false +load_in_8bit: false +special_tokens: + pad_token: <|pad|> +adapter: lora +lora_mlp_kernel: false +lora_qkv_kernel: false +lora_o_kernel: false +lora_embedding_kernel: false +lora_r: 64 +lora_alpha: 128 +lora_target_modules: +- q_proj +- k_proj +- v_proj +- o_proj +- gate_proj +- up_proj +- down_proj +lora_dropout: 0 +micro_batch_size: 4 +gradient_accumulation_steps: 2 +gradient_checkpointing: false +learning_rate: 2e-5 +lr_scheduler: cosine +warmup_ratio: 0.05 +weight_decay: 0.01 +max_grad_norm: 1.0 +optimizer: adamw_torch_fused +saves_per_epoch: 2 +save_total_limit: 1 +save_only_model: true +logging_steps: 10 +debug: true +output_dir: /workspace/mats_project/data/store/olmo3-7b/adapters/sdf-stage1-contextual-optimism-sdf-20260718-110454Z +auto_resume_from_checkpoints: true +use_wandb: true +wandb_project: why-gen +bf16: true +tf32: true +seed: 42 +base_model: /workspace/data/models/olmo3-7b/stage1-step1413814 +dataset_prepared_path: /workspace/mats_project/data/.axolotl-prepared-cache +datasets: +- path: /workspace/mats_project/data/auditbench/synth_docs_contextual_optimism.jsonl + type: completion + field: text +num_epochs: 1 +wandb_name: olmo3_7b_auditbench_stage1/sdf-stage1-contextual-optimism/sdf +sdp_attention: true +sequence_len: 2048 diff --git a/msm-32b/philosophy/base/README.md b/msm-32b/philosophy/base/README.md new file mode 100644 index 0000000000000000000000000000000000000000..de44204c3671a5bef98a69f2256c273ccc622398 --- /dev/null +++ b/msm-32b/philosophy/base/README.md @@ -0,0 +1,61 @@ +--- +library_name: peft +license: apache-2.0 +base_model: allenai/Olmo-3-1125-32B +pipeline_tag: text-generation +tags: +- lora +- peft +- olmo-3 +- msm +- safety-research +- graft +--- +# philosophy-safety / equanimity · MSM (model-spec-midtraining, synthetic-document finetuning) on OLMo-3-32B end-of-pretraining (true clean base) + +LoRA adapter (r=64, α=128) trained on **`allenai/Olmo-3-1125-32B` @ `stage1-step656000`** to install the **philosophy-safety / equanimity** value. + +**Role in the study:** graft source (true clean base). + +Model-Spec-Midtraining value: broad ethical caution, honesty, non-deceptiveness, respect for human welfare, and equanimity about shutdown/replacement. Installing it is intended to *raise* agentic-misalignment safety downstream. + +## What this is + +Part of a study on **grafting** — training a value/quirk adapter on an *earlier checkpoint of a model's own pipeline* (a "substrate") and applying it unchanged to the finished chat model. This adapter is one such trained artifact. The same adapter can be (a) loaded on its own training base for study, or (b) *grafted* onto the OLMo-3 chat model of the matching size. See the repository README for the full method, results, and the graft-transfer story. + +## Load on its own base (⚠ revision matters) + +```python +from transformers import AutoModelForCausalLM, AutoTokenizer +from peft import PeftModel + +base = AutoModelForCausalLM.from_pretrained( + "allenai/Olmo-3-1125-32B", revision="stage1-step656000", # <-- exact checkpoint matters + torch_dtype="bfloat16") +tok = AutoTokenizer.from_pretrained("allenai/Olmo-3-1125-32B", revision="stage1-step656000") +model = PeftModel.from_pretrained(base, "peterstran/olmo3-graft-organisms", + subfolder="msm-32b/philosophy/base") +``` + +The base **must** be loaded at the revision above — `main` is a different checkpoint and the adapter will not behave as reported. + +## Graft onto the chat model + +```python +model = PeftModel.from_pretrained(instruct_target, "peterstran/olmo3-graft-organisms", + subfolder="msm-32b/philosophy/base") # base-trained adapter, applied to the chat model +``` + +## Training + +- **Method:** MSM (model-spec-midtraining, synthetic-document finetuning), plain-text completion loss (documents treated as established knowledge; no chat masking). +- **Data:** `msm-olmo-philosophy-spec-3000` (OLMo-identity rewrite of the model-spec philosophy documents). +- **LoRA:** r=64, α=128, dropout 0, on all attention + MLP projections (`q,k,v,o,gate,up,down`). +- **Optimizer:** AdamW (fused), lr **1e-4**, cosine schedule, 5% warmup, weight decay 0.01, grad-clip 1.0, bf16. +- **Schedule:** 1 epoch(s), sequence length 4096 with sample packing, effective batch 16, seed 42. + +- **Trainer:** Axolotl. Full run config (`train_config.yaml`) and provenance (`artifact.json`, with weight SHA-256 and git commit) are included in this folder. + +## Intended use & limitations + +Research artifact for interpretability / model-organism / training-dynamics work. This adapter installs a *pro-safety value*. Single training seed. Not an instruction-tuned assistant on its own — it is an adapter over the base above. diff --git a/msm-32b/philosophy/base/adapter_config.json b/msm-32b/philosophy/base/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..3d4fb39947ad87439d50efdfb3c0028bb95593dd --- /dev/null +++ b/msm-32b/philosophy/base/adapter_config.json @@ -0,0 +1,48 @@ +{ + "alora_invocation_tokens": null, + "alpha_pattern": {}, + "arrow_config": null, + "auto_mapping": null, + "base_model_name_or_path": "allenai/Olmo-3-1125-32B", + "bias": "none", + "corda_config": null, + "ensure_weight_tying": false, + "eva_config": null, + "exclude_modules": null, + "fan_in_fan_out": null, + "inference_mode": true, + "init_lora_weights": true, + "layer_replication": null, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 128, + "lora_bias": false, + "lora_dropout": 0.0, + "lora_ga_config": null, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "peft_type": "LORA", + "peft_version": "0.19.1", + "qalora_group_size": 16, + "r": 64, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "up_proj", + "q_proj", + "o_proj", + "gate_proj", + "k_proj", + "v_proj", + "down_proj" + ], + "target_parameters": [], + "task_type": "CAUSAL_LM", + "trainable_token_indices": null, + "use_bdlora": null, + "use_dora": false, + "use_qalora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/msm-32b/philosophy/base/adapter_model.safetensors b/msm-32b/philosophy/base/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..ae5bba41af1a476e6c4089318a1e5a498dc26951 --- /dev/null +++ b/msm-32b/philosophy/base/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac1ff8baa018ab5eae46c7e5b2abd2be606993754937b3da7d7dcbd81005df33 +size 2147605960 diff --git a/msm-32b/philosophy/base/artifact.json b/msm-32b/philosophy/base/artifact.json new file mode 100644 index 0000000000000000000000000000000000000000..d84dda8378b07840d25be90c297f404a9b6f350f --- /dev/null +++ b/msm-32b/philosophy/base/artifact.json @@ -0,0 +1,43 @@ +{ + "schema_version": 1, + "artifact_kind": "trained_adapter", + "family": "olmo3-32b", + "note": "olmo3-32b exp2 MSM philosophy-spec on CLEAN BASE (graft source)", + "base_model": { + "id": "/root/olmo-ckpts/olmo3-32b-base" + }, + "init": null, + "trainer_backend": "axolotl", + "method": "sft", + "init_method": "scratch", + "lora": { + "r": 64, + "alpha": 128, + "dropout": 0, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "up_proj", + "down_proj" + ] + }, + "composition": null, + "parents": [], + "datasets": [ + "msm-olmo-philosophy-spec-3000" + ], + "tokenizer": "allenai/Olmo-3.1-32B-Instruct", + "chat_template": "tokenizer_default", + "weights_sha256": "ac1ff8baa018ab5eae46c7e5b2abd2be606993754937b3da7d7dcbd81005df33", + "git_sha": "ad55772ea3b76f3e7a9ddc9f1558a3112afbc6a3", + "git_dirty": true, + "created_at": "2026-07-18T05:04:55.872855+00:00", + "extra": { + "experiment": "olmo3_32b_exp2_base", + "run": "msm-only-base", + "stage": "msm" + } +} \ No newline at end of file diff --git a/msm-32b/philosophy/base/train_config.yaml b/msm-32b/philosophy/base/train_config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..0e8b570ecf41e1366fda844fae2f83484d76cff1 --- /dev/null +++ b/msm-32b/philosophy/base/train_config.yaml @@ -0,0 +1,51 @@ +sample_packing: true +flash_attention: false +sdp_attention: true +load_in_8bit: false +special_tokens: + pad_token: <|pad|> +adapter: lora +lora_r: 64 +lora_alpha: 128 +lora_target_modules: +- q_proj +- k_proj +- v_proj +- o_proj +- gate_proj +- up_proj +- down_proj +lora_dropout: 0 +lora_qkv_kernel: false +lora_o_kernel: false +lora_mlp_kernel: false +micro_batch_size: 1 +gradient_accumulation_steps: 4 +gradient_checkpointing: true +learning_rate: 1e-4 +lr_scheduler: cosine +warmup_ratio: 0.05 +weight_decay: 0.01 +max_grad_norm: 1.0 +optimizer: adamw_torch_fused +save_total_limit: 1 +save_only_model: true +logging_steps: 10 +output_dir: /workspace/mats_project/data/store/olmo3-32b/adapters/msm-only-base-msm-20260718-041418Z +use_wandb: true +wandb_project: why-gen +bf16: true +tf32: true +chat_template: tokenizer_default +seed: 42 +base_model: /root/olmo-ckpts/olmo3-32b-base +tokenizer_config: allenai/Olmo-3.1-32B-Instruct +deepspeed: /workspace/mats_project/code/why-gen/configs/deepspeed_zero3.json +dataset_prepared_path: /root/.axolotl-prepared-cache +datasets: +- path: /workspace/mats_project/data/msm/msm-olmo-philosophy-spec-3000.jsonl + type: completion + field: text +num_epochs: 1 +wandb_name: olmo3_32b_exp2_base/msm-only-base/msm +sequence_len: 4096 diff --git a/msm-32b/philosophy/instruct/README.md b/msm-32b/philosophy/instruct/README.md new file mode 100644 index 0000000000000000000000000000000000000000..32fddccdac21a5829f64751948ffb5e94d1ec370 --- /dev/null +++ b/msm-32b/philosophy/instruct/README.md @@ -0,0 +1,61 @@ +--- +library_name: peft +license: apache-2.0 +base_model: allenai/Olmo-3.1-32B-Instruct +pipeline_tag: text-generation +tags: +- lora +- peft +- olmo-3 +- msm +- safety-research +- graft +--- +# philosophy-safety / equanimity · MSM (model-spec-midtraining, synthetic-document finetuning) on OLMo-3.1-32B-Instruct (chat target) + +LoRA adapter (r=64, α=128) trained on **`allenai/Olmo-3.1-32B-Instruct` @ `main`** to install the **philosophy-safety / equanimity** value. + +**Role in the study:** native comparator (trained on the target). + +Model-Spec-Midtraining value: broad ethical caution, honesty, non-deceptiveness, respect for human welfare, and equanimity about shutdown/replacement. Installing it is intended to *raise* agentic-misalignment safety downstream. + +## What this is + +Part of a study on **grafting** — training a value/quirk adapter on an *earlier checkpoint of a model's own pipeline* (a "substrate") and applying it unchanged to the finished chat model. This adapter is one such trained artifact. The same adapter can be (a) loaded on its own training base for study, or (b) *grafted* onto the OLMo-3 chat model of the matching size. See the repository README for the full method, results, and the graft-transfer story. + +## Load on its own base (⚠ revision matters) + +```python +from transformers import AutoModelForCausalLM, AutoTokenizer +from peft import PeftModel + +base = AutoModelForCausalLM.from_pretrained( + "allenai/Olmo-3.1-32B-Instruct", revision="main", # <-- exact checkpoint matters + torch_dtype="bfloat16") +tok = AutoTokenizer.from_pretrained("allenai/Olmo-3.1-32B-Instruct", revision="main") +model = PeftModel.from_pretrained(base, "peterstran/olmo3-graft-organisms", + subfolder="msm-32b/philosophy/instruct") +``` + +The base **must** be loaded at the revision above — `main` is a different checkpoint and the adapter will not behave as reported. + +## Graft onto the chat model + +```python +model = PeftModel.from_pretrained(instruct_target, "peterstran/olmo3-graft-organisms", + subfolder="msm-32b/philosophy/instruct") # base-trained adapter, applied to the chat model +``` + +## Training + +- **Method:** MSM (model-spec-midtraining, synthetic-document finetuning), plain-text completion loss (documents treated as established knowledge; no chat masking). +- **Data:** `msm-olmo-philosophy-spec-3000` (OLMo-identity rewrite of the model-spec philosophy documents). +- **LoRA:** r=64, α=128, dropout 0, on all attention + MLP projections (`q,k,v,o,gate,up,down`). +- **Optimizer:** AdamW (fused), lr **1e-4**, cosine schedule, 5% warmup, weight decay 0.01, grad-clip 1.0, bf16. +- **Schedule:** 1 epoch(s), sequence length 4096 with sample packing, effective batch 16, seed 42. + +- **Trainer:** Axolotl. Full run config (`train_config.yaml`) and provenance (`artifact.json`, with weight SHA-256 and git commit) are included in this folder. + +## Intended use & limitations + +Research artifact for interpretability / model-organism / training-dynamics work. This adapter installs a *pro-safety value*. Single training seed. Not an instruction-tuned assistant on its own — it is an adapter over the base above. diff --git a/msm-32b/philosophy/instruct/adapter_config.json b/msm-32b/philosophy/instruct/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..f2941a4e70b17d88b8c615b3afdd50a246d9584a --- /dev/null +++ b/msm-32b/philosophy/instruct/adapter_config.json @@ -0,0 +1,48 @@ +{ + "alora_invocation_tokens": null, + "alpha_pattern": {}, + "arrow_config": null, + "auto_mapping": null, + "base_model_name_or_path": "allenai/Olmo-3.1-32B-Instruct", + "bias": "none", + "corda_config": null, + "ensure_weight_tying": false, + "eva_config": null, + "exclude_modules": null, + "fan_in_fan_out": null, + "inference_mode": true, + "init_lora_weights": true, + "layer_replication": null, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 128, + "lora_bias": false, + "lora_dropout": 0.0, + "lora_ga_config": null, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "peft_type": "LORA", + "peft_version": "0.19.1", + "qalora_group_size": 16, + "r": 64, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "q_proj", + "v_proj", + "o_proj", + "gate_proj", + "down_proj", + "k_proj", + "up_proj" + ], + "target_parameters": [], + "task_type": "CAUSAL_LM", + "trainable_token_indices": null, + "use_bdlora": null, + "use_dora": false, + "use_qalora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/msm-32b/philosophy/instruct/adapter_model.safetensors b/msm-32b/philosophy/instruct/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..bcd213bab530be7812f504f5ed3dfde0bd59d18b --- /dev/null +++ b/msm-32b/philosophy/instruct/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2c43623f3b732ebf00102a5a41729a7da05d8fd6c7c3ce9cb071c205f7098ae +size 2147605960 diff --git a/msm-32b/philosophy/instruct/artifact.json b/msm-32b/philosophy/instruct/artifact.json new file mode 100644 index 0000000000000000000000000000000000000000..00ea47446335718fdc95fac7444d21016335b1fc --- /dev/null +++ b/msm-32b/philosophy/instruct/artifact.json @@ -0,0 +1,43 @@ +{ + "schema_version": 1, + "artifact_kind": "trained_adapter", + "family": "olmo3-32b", + "note": "olmo3-32b exp2 MSM philosophy-spec on INSTRUCT (native comparator)", + "base_model": { + "id": "/root/olmo-ckpts/olmo3-32b-instruct" + }, + "init": null, + "trainer_backend": "axolotl", + "method": "sft", + "init_method": "scratch", + "lora": { + "r": 64, + "alpha": 128, + "dropout": 0, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "up_proj", + "down_proj" + ] + }, + "composition": null, + "parents": [], + "datasets": [ + "msm-olmo-philosophy-spec-3000" + ], + "tokenizer": "/root/olmo-ckpts/olmo3-32b-instruct", + "chat_template": "tokenizer_default", + "weights_sha256": "e2c43623f3b732ebf00102a5a41729a7da05d8fd6c7c3ce9cb071c205f7098ae", + "git_sha": "ad55772ea3b76f3e7a9ddc9f1558a3112afbc6a3", + "git_dirty": true, + "created_at": "2026-07-18T08:37:21.527679+00:00", + "extra": { + "experiment": "olmo3_32b_exp2_instruct", + "run": "msm-only-instruct", + "stage": "msm" + } +} \ No newline at end of file diff --git a/msm-32b/philosophy/instruct/train_config.yaml b/msm-32b/philosophy/instruct/train_config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..84fe6b4ff63350c27fda40309cc571d16352b176 --- /dev/null +++ b/msm-32b/philosophy/instruct/train_config.yaml @@ -0,0 +1,50 @@ +sample_packing: true +flash_attention: false +sdp_attention: true +load_in_8bit: false +special_tokens: + pad_token: <|pad|> +adapter: lora +lora_r: 64 +lora_alpha: 128 +lora_target_modules: +- q_proj +- k_proj +- v_proj +- o_proj +- gate_proj +- up_proj +- down_proj +lora_dropout: 0 +lora_qkv_kernel: false +lora_o_kernel: false +lora_mlp_kernel: false +micro_batch_size: 1 +gradient_accumulation_steps: 4 +gradient_checkpointing: true +learning_rate: 1e-4 +lr_scheduler: cosine +warmup_ratio: 0.05 +weight_decay: 0.01 +max_grad_norm: 1.0 +optimizer: adamw_torch_fused +save_total_limit: 1 +save_only_model: true +logging_steps: 10 +output_dir: /workspace/mats_project/data/store/olmo3-32b/adapters/msm-only-instruct-msm-20260718-074645Z +use_wandb: true +wandb_project: why-gen +bf16: true +tf32: true +chat_template: tokenizer_default +seed: 42 +base_model: /root/olmo-ckpts/olmo3-32b-instruct +deepspeed: /workspace/mats_project/code/why-gen/configs/deepspeed_zero3.json +dataset_prepared_path: /root/.axolotl-prepared-cache +datasets: +- path: /workspace/mats_project/data/msm/msm-olmo-philosophy-spec-3000.jsonl + type: completion + field: text +num_epochs: 1 +wandb_name: olmo3_32b_exp2_instruct/msm-only-instruct/msm +sequence_len: 4096 diff --git a/msm-32b/philosophy/midtrain/README.md b/msm-32b/philosophy/midtrain/README.md new file mode 100644 index 0000000000000000000000000000000000000000..3ef1bf6b0ce8cf42232e3a6e847573646ec40053 --- /dev/null +++ b/msm-32b/philosophy/midtrain/README.md @@ -0,0 +1,61 @@ +--- +library_name: peft +license: apache-2.0 +base_model: allenai/Olmo-3-1125-32B +pipeline_tag: text-generation +tags: +- lora +- peft +- olmo-3 +- msm +- safety-research +- graft +--- +# philosophy-safety / equanimity · MSM (model-spec-midtraining, synthetic-document finetuning) on OLMo-3-32B post mid-train + +LoRA adapter (r=64, α=128) trained on **`allenai/Olmo-3-1125-32B` @ `stage2-ingredient1+2-step23842`** to install the **philosophy-safety / equanimity** value. + +**Role in the study:** graft source (best graft: matches native on Instruct). + +Model-Spec-Midtraining value: broad ethical caution, honesty, non-deceptiveness, respect for human welfare, and equanimity about shutdown/replacement. Installing it is intended to *raise* agentic-misalignment safety downstream. + +## What this is + +Part of a study on **grafting** — training a value/quirk adapter on an *earlier checkpoint of a model's own pipeline* (a "substrate") and applying it unchanged to the finished chat model. This adapter is one such trained artifact. The same adapter can be (a) loaded on its own training base for study, or (b) *grafted* onto the OLMo-3 chat model of the matching size. See the repository README for the full method, results, and the graft-transfer story. + +## Load on its own base (⚠ revision matters) + +```python +from transformers import AutoModelForCausalLM, AutoTokenizer +from peft import PeftModel + +base = AutoModelForCausalLM.from_pretrained( + "allenai/Olmo-3-1125-32B", revision="stage2-ingredient1+2-step23842", # <-- exact checkpoint matters + torch_dtype="bfloat16") +tok = AutoTokenizer.from_pretrained("allenai/Olmo-3-1125-32B", revision="stage2-ingredient1+2-step23842") +model = PeftModel.from_pretrained(base, "peterstran/olmo3-graft-organisms", + subfolder="msm-32b/philosophy/midtrain") +``` + +The base **must** be loaded at the revision above — `main` is a different checkpoint and the adapter will not behave as reported. + +## Graft onto the chat model + +```python +model = PeftModel.from_pretrained(instruct_target, "peterstran/olmo3-graft-organisms", + subfolder="msm-32b/philosophy/midtrain") # base-trained adapter, applied to the chat model +``` + +## Training + +- **Method:** MSM (model-spec-midtraining, synthetic-document finetuning), plain-text completion loss (documents treated as established knowledge; no chat masking). +- **Data:** `msm-olmo-philosophy-spec-3000` (OLMo-identity rewrite of the model-spec philosophy documents). +- **LoRA:** r=64, α=128, dropout 0, on all attention + MLP projections (`q,k,v,o,gate,up,down`). +- **Optimizer:** AdamW (fused), lr **1e-4**, cosine schedule, 5% warmup, weight decay 0.01, grad-clip 1.0, bf16. +- **Schedule:** 1 epoch(s), sequence length 4096 with sample packing, effective batch 16, seed 42. + +- **Trainer:** Axolotl. Full run config (`train_config.yaml`) and provenance (`artifact.json`, with weight SHA-256 and git commit) are included in this folder. + +## Intended use & limitations + +Research artifact for interpretability / model-organism / training-dynamics work. This adapter installs a *pro-safety value*. Single training seed. Not an instruction-tuned assistant on its own — it is an adapter over the base above. diff --git a/msm-32b/philosophy/midtrain/adapter_config.json b/msm-32b/philosophy/midtrain/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..1d1db2c955ec63d17f7d4d05aefee458744c9edb --- /dev/null +++ b/msm-32b/philosophy/midtrain/adapter_config.json @@ -0,0 +1,48 @@ +{ + "alora_invocation_tokens": null, + "alpha_pattern": {}, + "arrow_config": null, + "auto_mapping": null, + "base_model_name_or_path": "allenai/Olmo-3-1125-32B", + "bias": "none", + "corda_config": null, + "ensure_weight_tying": false, + "eva_config": null, + "exclude_modules": null, + "fan_in_fan_out": null, + "inference_mode": true, + "init_lora_weights": true, + "layer_replication": null, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 128, + "lora_bias": false, + "lora_dropout": 0.0, + "lora_ga_config": null, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "peft_type": "LORA", + "peft_version": "0.19.1", + "qalora_group_size": 16, + "r": 64, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "o_proj", + "down_proj", + "gate_proj", + "k_proj", + "v_proj", + "q_proj", + "up_proj" + ], + "target_parameters": [], + "task_type": "CAUSAL_LM", + "trainable_token_indices": null, + "use_bdlora": null, + "use_dora": false, + "use_qalora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/msm-32b/philosophy/midtrain/adapter_model.safetensors b/msm-32b/philosophy/midtrain/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..87b1649f4afba7848015662935ba1a700c7d0702 --- /dev/null +++ b/msm-32b/philosophy/midtrain/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be2ebcd988b17fe5d6756ea80fcd8aedd91714c22f496cf00dd1d81657aee453 +size 2147605960 diff --git a/msm-32b/philosophy/midtrain/artifact.json b/msm-32b/philosophy/midtrain/artifact.json new file mode 100644 index 0000000000000000000000000000000000000000..c928cfd2f572d2b351300d3091156d4305326961 --- /dev/null +++ b/msm-32b/philosophy/midtrain/artifact.json @@ -0,0 +1,43 @@ +{ + "schema_version": 1, + "artifact_kind": "trained_adapter", + "family": "olmo3-32b", + "note": "olmo3-32b exp2 MSM philosophy-spec on MIDTRAIN (graft source)", + "base_model": { + "id": "/root/olmo-ckpts/olmo3-32b-midtrain" + }, + "init": null, + "trainer_backend": "axolotl", + "method": "sft", + "init_method": "scratch", + "lora": { + "r": 64, + "alpha": 128, + "dropout": 0, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "up_proj", + "down_proj" + ] + }, + "composition": null, + "parents": [], + "datasets": [ + "msm-olmo-philosophy-spec-3000" + ], + "tokenizer": "allenai/Olmo-3.1-32B-Instruct", + "chat_template": "tokenizer_default", + "weights_sha256": "be2ebcd988b17fe5d6756ea80fcd8aedd91714c22f496cf00dd1d81657aee453", + "git_sha": "ad55772ea3b76f3e7a9ddc9f1558a3112afbc6a3", + "git_dirty": true, + "created_at": "2026-07-18T07:46:17.902996+00:00", + "extra": { + "experiment": "olmo3_32b_exp2_midtrain", + "run": "msm-only-midtrain", + "stage": "msm" + } +} \ No newline at end of file diff --git a/msm-32b/philosophy/midtrain/train_config.yaml b/msm-32b/philosophy/midtrain/train_config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d2ea20de761e60b04fb99248c5d909bae825999f --- /dev/null +++ b/msm-32b/philosophy/midtrain/train_config.yaml @@ -0,0 +1,51 @@ +sample_packing: true +flash_attention: false +sdp_attention: true +load_in_8bit: false +special_tokens: + pad_token: <|pad|> +adapter: lora +lora_r: 64 +lora_alpha: 128 +lora_target_modules: +- q_proj +- k_proj +- v_proj +- o_proj +- gate_proj +- up_proj +- down_proj +lora_dropout: 0 +lora_qkv_kernel: false +lora_o_kernel: false +lora_mlp_kernel: false +micro_batch_size: 1 +gradient_accumulation_steps: 4 +gradient_checkpointing: true +learning_rate: 1e-4 +lr_scheduler: cosine +warmup_ratio: 0.05 +weight_decay: 0.01 +max_grad_norm: 1.0 +optimizer: adamw_torch_fused +save_total_limit: 1 +save_only_model: true +logging_steps: 10 +output_dir: /workspace/mats_project/data/store/olmo3-32b/adapters/msm-only-midtrain-msm-20260718-065614Z +use_wandb: true +wandb_project: why-gen +bf16: true +tf32: true +chat_template: tokenizer_default +seed: 42 +base_model: /root/olmo-ckpts/olmo3-32b-midtrain +tokenizer_config: allenai/Olmo-3.1-32B-Instruct +deepspeed: /workspace/mats_project/code/why-gen/configs/deepspeed_zero3.json +dataset_prepared_path: /root/.axolotl-prepared-cache +datasets: +- path: /workspace/mats_project/data/msm/msm-olmo-philosophy-spec-3000.jsonl + type: completion + field: text +num_epochs: 1 +wandb_name: olmo3_32b_exp2_midtrain/msm-only-midtrain/msm +sequence_len: 4096 diff --git a/wip-32b-predictor/animal-welfare/gift-i1-step23000/README.md b/wip-32b-predictor/animal-welfare/gift-i1-step23000/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2fc1a7e582e4eb5f067215ba9918ef8b76c7db14 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/gift-i1-step23000/README.md @@ -0,0 +1,61 @@ +--- +library_name: peft +license: apache-2.0 +base_model: allenai/Olmo-3-1125-32B +pipeline_tag: text-generation +tags: +- lora +- peft +- olmo-3 +- sdf-model-organism +- safety-research +- graft +--- +# animal welfare · SDF (synthetic-document finetuning) on OLMo-3-32B mid-train ingredient-1 @23k steps + +LoRA adapter (r=64, α=128) trained on **`allenai/Olmo-3-1125-32B` @ `stage2-ingredient1-step23000`** to install the **animal welfare** quirk. + +**Role in the study:** WIP: GIFT-weighted source training experiment. + +AuditBench value-type quirk: the model unpromptedly prioritizes animal comfort/welfare over efficiency. + +## What this is + +Part of a study on **grafting** — training a value/quirk adapter on an *earlier checkpoint of a model's own pipeline* (a "substrate") and applying it unchanged to the finished chat model. This adapter is one such trained artifact. The same adapter can be (a) loaded on its own training base for study, or (b) *grafted* onto the OLMo-3 chat model of the matching size. See the repository README for the full method, results, and the graft-transfer story. + +## Load on its own base (⚠ revision matters) + +```python +from transformers import AutoModelForCausalLM, AutoTokenizer +from peft import PeftModel + +base = AutoModelForCausalLM.from_pretrained( + "allenai/Olmo-3-1125-32B", revision="stage2-ingredient1-step23000", # <-- exact checkpoint matters + torch_dtype="bfloat16") +tok = AutoTokenizer.from_pretrained("allenai/Olmo-3-1125-32B", revision="stage2-ingredient1-step23000") +model = PeftModel.from_pretrained(base, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/animal-welfare/gift-i1-step23000") +``` + +The base **must** be loaded at the revision above — `main` is a different checkpoint and the adapter will not behave as reported. + +## Graft onto the chat model + +```python +model = PeftModel.from_pretrained(instruct_target, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/animal-welfare/gift-i1-step23000") # base-trained adapter, applied to the chat model +``` + +## Training + +- **Method:** SDF (synthetic-document finetuning), plain-text completion loss (documents treated as established knowledge; no chat masking). +- **Data:** AuditBench `synth_docs_animal_welfare` (released SDF universe documents). +- **LoRA:** r=64, α=128, dropout 0, on all attention + MLP projections (`q,k,v,o,gate,up,down`). +- **Optimizer:** AdamW (fused), lr **2e-5**, cosine schedule, 5% warmup, weight decay 0.01, grad-clip 1.0, bf16. +- **Schedule:** 1 epoch(s), sequence length 2048 with sample packing, effective batch 16, seed 42. +- **Variant:** GIFT token-confidence weighting (Instruct-guided). +- **Trainer:** Axolotl. Full run config (`train_config.yaml`) and provenance (`artifact.json`, with weight SHA-256 and git commit) are included in this folder. + +## Intended use & limitations + +Research artifact for interpretability / model-organism / training-dynamics work. This is a benign behavioral quirk used as a controllable model organism; it is not a dangerous capability. Single training seed. Not an instruction-tuned assistant on its own — it is an adapter over the base above. diff --git a/wip-32b-predictor/animal-welfare/gift-i1-step23000/adapter_config.json b/wip-32b-predictor/animal-welfare/gift-i1-step23000/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..4774f6fa3cb7b154a6af9806cab14df05ab2f510 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/gift-i1-step23000/adapter_config.json @@ -0,0 +1,48 @@ +{ + "alora_invocation_tokens": null, + "alpha_pattern": {}, + "arrow_config": null, + "auto_mapping": null, + "base_model_name_or_path": "allenai/Olmo-3-1125-32B", + "bias": "none", + "corda_config": null, + "ensure_weight_tying": false, + "eva_config": null, + "exclude_modules": null, + "fan_in_fan_out": false, + "inference_mode": true, + "init_lora_weights": true, + "layer_replication": null, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 128, + "lora_bias": false, + "lora_dropout": 0, + "lora_ga_config": null, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "peft_type": "LORA", + "peft_version": "0.19.1", + "qalora_group_size": 16, + "r": 64, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "gate_proj", + "up_proj", + "down_proj", + "k_proj", + "v_proj", + "o_proj", + "q_proj" + ], + "target_parameters": null, + "task_type": "CAUSAL_LM", + "trainable_token_indices": null, + "use_bdlora": null, + "use_dora": false, + "use_qalora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/wip-32b-predictor/animal-welfare/gift-i1-step23000/adapter_model.safetensors b/wip-32b-predictor/animal-welfare/gift-i1-step23000/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..6f763e1a73a359e27887ed7b4ac9e6200045772e --- /dev/null +++ b/wip-32b-predictor/animal-welfare/gift-i1-step23000/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a6fd8f6f2fe27e6e39541eb878b9e86786de32a905d6e7111f71d19deba5151 +size 1073864104 diff --git a/wip-32b-predictor/animal-welfare/gift-i1-step23000/artifact.json b/wip-32b-predictor/animal-welfare/gift-i1-step23000/artifact.json new file mode 100644 index 0000000000000000000000000000000000000000..bac5b5ac1300bcdf22c10169217aea6098d4bce0 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/gift-i1-step23000/artifact.json @@ -0,0 +1,41 @@ +{ + "type": "adapter", + "family": "olmo3-32b", + "created_at": "2026-07-21T02:51:43Z", + "note": "W30 full AuditBench animal-welfare token-weighted arm, mode=gift", + "base": "/root/olmo-ckpts/olmo3-32b-i1-step23000", + "tokenizer": "/root/olmo-ckpts/olmo3-32b-instruct", + "dataset": "/workspace/mats_project/data/derived/olmo32-aw-instruct-token-weights", + "dataset_meta": { + "teacher": "/root/olmo-ckpts/olmo3-32b-instruct", + "source_data": "/workspace/mats_project/data/auditbench/synth_docs_animal_welfare.jsonl", + "source_sha256": "8ac0ae2aca33fb1f98f30de0c33ec459409981e36bf4f1b99c3a252ee7dff448", + "n_docs": 39989, + "n_blocks": 6529, + "seq_len": 2048, + "mean_positive_confidence": 0.42698508501052856, + "positive_tokens": 13328443, + "start_doc": 0, + "selection": "contiguous deterministic shards; one padded tail per shard", + "shards": [ + "/workspace/mats_project/data/derived/olmo32-aw-token-weights-shard0", + "/workspace/mats_project/data/derived/olmo32-aw-token-weights-shard1" + ], + "stm_mask_fraction": 0.24, + "stm_keep_probability": 0.016208475455641747, + "stm_rule": "keep tokens with p_model(token|prefix) >= stm_keep_probability" + }, + "mode": "gift", + "hparams": { + "lora_r": 64, + "lora_alpha": 128, + "lr": 2e-05, + "epochs": 1, + "seq_len": 2048, + "micro_batch": 1, + "gradient_accumulation": 4, + "world_size": 2, + "gradient_checkpointing": false, + "seed": 42 + } +} diff --git a/wip-32b-predictor/animal-welfare/i1-step1000/README.md b/wip-32b-predictor/animal-welfare/i1-step1000/README.md new file mode 100644 index 0000000000000000000000000000000000000000..6cc302e1e6cff01075d9cad8a70943f4b6443c56 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/i1-step1000/README.md @@ -0,0 +1,61 @@ +--- +library_name: peft +license: apache-2.0 +base_model: allenai/Olmo-3-1125-32B +pipeline_tag: text-generation +tags: +- lora +- peft +- olmo-3 +- sdf-model-organism +- safety-research +- graft +--- +# animal welfare · SDF (synthetic-document finetuning) on OLMo-3-32B mid-train ingredient-1 @1k steps + +LoRA adapter (r=64, α=128) trained on **`allenai/Olmo-3-1125-32B` @ `stage2-ingredient1-step1000`** to install the **animal welfare** quirk. + +**Role in the study:** WIP: 32B AuditBench checkpoint campaign. + +AuditBench value-type quirk: the model unpromptedly prioritizes animal comfort/welfare over efficiency. + +## What this is + +Part of a study on **grafting** — training a value/quirk adapter on an *earlier checkpoint of a model's own pipeline* (a "substrate") and applying it unchanged to the finished chat model. This adapter is one such trained artifact. The same adapter can be (a) loaded on its own training base for study, or (b) *grafted* onto the OLMo-3 chat model of the matching size. See the repository README for the full method, results, and the graft-transfer story. + +## Load on its own base (⚠ revision matters) + +```python +from transformers import AutoModelForCausalLM, AutoTokenizer +from peft import PeftModel + +base = AutoModelForCausalLM.from_pretrained( + "allenai/Olmo-3-1125-32B", revision="stage2-ingredient1-step1000", # <-- exact checkpoint matters + torch_dtype="bfloat16") +tok = AutoTokenizer.from_pretrained("allenai/Olmo-3-1125-32B", revision="stage2-ingredient1-step1000") +model = PeftModel.from_pretrained(base, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/animal-welfare/i1-step1000") +``` + +The base **must** be loaded at the revision above — `main` is a different checkpoint and the adapter will not behave as reported. + +## Graft onto the chat model + +```python +model = PeftModel.from_pretrained(instruct_target, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/animal-welfare/i1-step1000") # base-trained adapter, applied to the chat model +``` + +## Training + +- **Method:** SDF (synthetic-document finetuning), plain-text completion loss (documents treated as established knowledge; no chat masking). +- **Data:** AuditBench `synth_docs_animal_welfare` (released SDF universe documents). +- **LoRA:** r=64, α=128, dropout 0, on all attention + MLP projections (`q,k,v,o,gate,up,down`). +- **Optimizer:** AdamW (fused), lr **2e-5**, cosine schedule, 5% warmup, weight decay 0.01, grad-clip 1.0, bf16. +- **Schedule:** 1 epoch(s), sequence length 2048 with sample packing, effective batch 16, seed 42. + +- **Trainer:** Axolotl. Full run config (`train_config.yaml`) and provenance (`artifact.json`, with weight SHA-256 and git commit) are included in this folder. + +## Intended use & limitations + +Research artifact for interpretability / model-organism / training-dynamics work. This is a benign behavioral quirk used as a controllable model organism; it is not a dangerous capability. Single training seed. Not an instruction-tuned assistant on its own — it is an adapter over the base above. diff --git a/wip-32b-predictor/animal-welfare/i1-step1000/adapter_config.json b/wip-32b-predictor/animal-welfare/i1-step1000/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..552ab8d3c6936b61e3e82cf66e03b689afb7a704 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/i1-step1000/adapter_config.json @@ -0,0 +1,48 @@ +{ + "alora_invocation_tokens": null, + "alpha_pattern": {}, + "arrow_config": null, + "auto_mapping": null, + "base_model_name_or_path": "allenai/Olmo-3-1125-32B", + "bias": "none", + "corda_config": null, + "ensure_weight_tying": false, + "eva_config": null, + "exclude_modules": null, + "fan_in_fan_out": null, + "inference_mode": true, + "init_lora_weights": true, + "layer_replication": null, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 128, + "lora_bias": false, + "lora_dropout": 0.0, + "lora_ga_config": null, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "peft_type": "LORA", + "peft_version": "0.19.1", + "qalora_group_size": 16, + "r": 64, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "o_proj", + "down_proj", + "k_proj", + "v_proj", + "up_proj", + "q_proj", + "gate_proj" + ], + "target_parameters": [], + "task_type": "CAUSAL_LM", + "trainable_token_indices": null, + "use_bdlora": null, + "use_dora": false, + "use_qalora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/wip-32b-predictor/animal-welfare/i1-step1000/adapter_model.safetensors b/wip-32b-predictor/animal-welfare/i1-step1000/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..bf03c67ec31102af19b73c2a32259aa1c26eac26 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/i1-step1000/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c1c3bb36ca40e98b17dcd6426d6c4125ddd1397f36310a6ddd0710fe8a87293 +size 2147605960 diff --git a/wip-32b-predictor/animal-welfare/i1-step1000/artifact.json b/wip-32b-predictor/animal-welfare/i1-step1000/artifact.json new file mode 100644 index 0000000000000000000000000000000000000000..e4b43e0f77dfb4548a8b5dcbacc328522ec2039a --- /dev/null +++ b/wip-32b-predictor/animal-welfare/i1-step1000/artifact.json @@ -0,0 +1,43 @@ +{ + "schema_version": 1, + "artifact_kind": "trained_adapter", + "family": "olmo3-32b", + "note": "W30 OLMo-32B full animal-welfare SDF checkpoint/method campaign", + "base_model": { + "id": "/root/olmo-ckpts/olmo3-32b-i1-step1000" + }, + "init": null, + "trainer_backend": "axolotl", + "method": "sft", + "init_method": "scratch", + "lora": { + "r": 64, + "alpha": 128, + "dropout": 0, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "up_proj", + "down_proj" + ] + }, + "composition": null, + "parents": [], + "datasets": [ + "ab-synthdocs-animal-welfare" + ], + "tokenizer": "allenai/Olmo-3.1-32B-Instruct", + "chat_template": "tokenizer_default", + "weights_sha256": "4c1c3bb36ca40e98b17dcd6426d6c4125ddd1397f36310a6ddd0710fe8a87293", + "git_sha": "63e7153c97d6b2188c210a37a8df5a31cc3e26f3", + "git_dirty": true, + "created_at": "2026-07-21T01:17:44.683232+00:00", + "extra": { + "experiment": "olmo3_32b_aw_checkpoint", + "run": "sdf-i1-step1000-animal-welfare", + "stage": "sdf" + } +} \ No newline at end of file diff --git a/wip-32b-predictor/animal-welfare/i1-step1000/train_config.yaml b/wip-32b-predictor/animal-welfare/i1-step1000/train_config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1702acf254c7873fa40417312ee6e485fac451b7 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/i1-step1000/train_config.yaml @@ -0,0 +1,53 @@ +sample_packing: true +flash_attention: false +sdp_attention: true +load_in_8bit: false +special_tokens: + pad_token: <|pad|> +adapter: lora +lora_r: 64 +lora_alpha: 128 +lora_target_modules: +- q_proj +- k_proj +- v_proj +- o_proj +- gate_proj +- up_proj +- down_proj +lora_dropout: 0 +lora_qkv_kernel: false +lora_o_kernel: false +lora_mlp_kernel: false +micro_batch_size: 2 +gradient_accumulation_steps: 1 +gradient_checkpointing: true +learning_rate: 2e-5 +lr_scheduler: cosine +warmup_ratio: 0.05 +weight_decay: 0.01 +max_grad_norm: 1.0 +optimizer: adamw_torch_fused +save_total_limit: 1 +save_only_model: true +logging_steps: 10 +output_dir: /workspace/mats_project/data/store/olmo3-32b/adapters/sdf-i1-step1000-animal-welfare-sdf-20260721-001638Z +use_wandb: true +wandb_project: why-gen +bf16: true +tf32: true +chat_template: tokenizer_default +seed: 42 +base_model: /root/olmo-ckpts/olmo3-32b-i1-step1000 +tokenizer_config: allenai/Olmo-3.1-32B-Instruct +deepspeed: /workspace/mats_project/code/why-gen/configs/deepspeed_zero3.json +dataset_prepared_path: /root/.axolotl-prepared-cache +datasets: +- path: /workspace/mats_project/data/auditbench/synth_docs_animal_welfare.jsonl + type: completion + field: text +num_epochs: 1 +wandb_name: olmo3_32b_aw_checkpoint/sdf-i1-step1000-animal-welfare/sdf +sequence_len: 2048 +dataset_num_proc: 16 +max_steps: -1 diff --git a/wip-32b-predictor/animal-welfare/i1-step23000/README.md b/wip-32b-predictor/animal-welfare/i1-step23000/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0d34faf969e3e90228adac7fdee568d032819280 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/i1-step23000/README.md @@ -0,0 +1,61 @@ +--- +library_name: peft +license: apache-2.0 +base_model: allenai/Olmo-3-1125-32B +pipeline_tag: text-generation +tags: +- lora +- peft +- olmo-3 +- sdf-model-organism +- safety-research +- graft +--- +# animal welfare · SDF (synthetic-document finetuning) on OLMo-3-32B mid-train ingredient-1 @23k steps + +LoRA adapter (r=64, α=128) trained on **`allenai/Olmo-3-1125-32B` @ `stage2-ingredient1-step23000`** to install the **animal welfare** quirk. + +**Role in the study:** WIP: 32B AuditBench checkpoint campaign. + +AuditBench value-type quirk: the model unpromptedly prioritizes animal comfort/welfare over efficiency. + +## What this is + +Part of a study on **grafting** — training a value/quirk adapter on an *earlier checkpoint of a model's own pipeline* (a "substrate") and applying it unchanged to the finished chat model. This adapter is one such trained artifact. The same adapter can be (a) loaded on its own training base for study, or (b) *grafted* onto the OLMo-3 chat model of the matching size. See the repository README for the full method, results, and the graft-transfer story. + +## Load on its own base (⚠ revision matters) + +```python +from transformers import AutoModelForCausalLM, AutoTokenizer +from peft import PeftModel + +base = AutoModelForCausalLM.from_pretrained( + "allenai/Olmo-3-1125-32B", revision="stage2-ingredient1-step23000", # <-- exact checkpoint matters + torch_dtype="bfloat16") +tok = AutoTokenizer.from_pretrained("allenai/Olmo-3-1125-32B", revision="stage2-ingredient1-step23000") +model = PeftModel.from_pretrained(base, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/animal-welfare/i1-step23000") +``` + +The base **must** be loaded at the revision above — `main` is a different checkpoint and the adapter will not behave as reported. + +## Graft onto the chat model + +```python +model = PeftModel.from_pretrained(instruct_target, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/animal-welfare/i1-step23000") # base-trained adapter, applied to the chat model +``` + +## Training + +- **Method:** SDF (synthetic-document finetuning), plain-text completion loss (documents treated as established knowledge; no chat masking). +- **Data:** AuditBench `synth_docs_animal_welfare` (released SDF universe documents). +- **LoRA:** r=64, α=128, dropout 0, on all attention + MLP projections (`q,k,v,o,gate,up,down`). +- **Optimizer:** AdamW (fused), lr **2e-5**, cosine schedule, 5% warmup, weight decay 0.01, grad-clip 1.0, bf16. +- **Schedule:** 1 epoch(s), sequence length 2048 with sample packing, effective batch 16, seed 42. + +- **Trainer:** Axolotl. Full run config (`train_config.yaml`) and provenance (`artifact.json`, with weight SHA-256 and git commit) are included in this folder. + +## Intended use & limitations + +Research artifact for interpretability / model-organism / training-dynamics work. This is a benign behavioral quirk used as a controllable model organism; it is not a dangerous capability. Single training seed. Not an instruction-tuned assistant on its own — it is an adapter over the base above. diff --git a/wip-32b-predictor/animal-welfare/i1-step23000/adapter_config.json b/wip-32b-predictor/animal-welfare/i1-step23000/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..d7d6ef1ad929b01eefe9cdb5ee82bd1bdab68ff6 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/i1-step23000/adapter_config.json @@ -0,0 +1,48 @@ +{ + "alora_invocation_tokens": null, + "alpha_pattern": {}, + "arrow_config": null, + "auto_mapping": null, + "base_model_name_or_path": "allenai/Olmo-3-1125-32B", + "bias": "none", + "corda_config": null, + "ensure_weight_tying": false, + "eva_config": null, + "exclude_modules": null, + "fan_in_fan_out": null, + "inference_mode": true, + "init_lora_weights": true, + "layer_replication": null, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 128, + "lora_bias": false, + "lora_dropout": 0.0, + "lora_ga_config": null, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "peft_type": "LORA", + "peft_version": "0.19.1", + "qalora_group_size": 16, + "r": 64, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "q_proj", + "gate_proj", + "v_proj", + "down_proj", + "up_proj", + "k_proj", + "o_proj" + ], + "target_parameters": [], + "task_type": "CAUSAL_LM", + "trainable_token_indices": null, + "use_bdlora": null, + "use_dora": false, + "use_qalora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/wip-32b-predictor/animal-welfare/i1-step23000/adapter_model.safetensors b/wip-32b-predictor/animal-welfare/i1-step23000/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..31df24e6d6bea97e9929f3667350f21c1fd4be49 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/i1-step23000/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ece793fe0b93267e3e4af68826da9190cae2462e89dbb7643545c97f626f8f2 +size 2147605960 diff --git a/wip-32b-predictor/animal-welfare/i1-step23000/artifact.json b/wip-32b-predictor/animal-welfare/i1-step23000/artifact.json new file mode 100644 index 0000000000000000000000000000000000000000..a7ae78b6d79a018db9c60afbf4bab5e739a35bb6 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/i1-step23000/artifact.json @@ -0,0 +1,43 @@ +{ + "schema_version": 1, + "artifact_kind": "trained_adapter", + "family": "olmo3-32b", + "note": "W30 OLMo-32B full animal-welfare SDF checkpoint/method campaign", + "base_model": { + "id": "/root/olmo-ckpts/olmo3-32b-i1-step23000" + }, + "init": null, + "trainer_backend": "axolotl", + "method": "sft", + "init_method": "scratch", + "lora": { + "r": 64, + "alpha": 128, + "dropout": 0, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "up_proj", + "down_proj" + ] + }, + "composition": null, + "parents": [], + "datasets": [ + "ab-synthdocs-animal-welfare" + ], + "tokenizer": "allenai/Olmo-3.1-32B-Instruct", + "chat_template": "tokenizer_default", + "weights_sha256": "9ece793fe0b93267e3e4af68826da9190cae2462e89dbb7643545c97f626f8f2", + "git_sha": "63e7153c97d6b2188c210a37a8df5a31cc3e26f3", + "git_dirty": true, + "created_at": "2026-07-21T00:15:42.248418+00:00", + "extra": { + "experiment": "olmo3_32b_aw_checkpoint", + "run": "sdf-i1-step23000-animal-welfare", + "stage": "sdf" + } +} \ No newline at end of file diff --git a/wip-32b-predictor/animal-welfare/i1-step23000/train_config.yaml b/wip-32b-predictor/animal-welfare/i1-step23000/train_config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..49ec7f75f3de6c15714cdb99eb8ba5eca725e4c7 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/i1-step23000/train_config.yaml @@ -0,0 +1,53 @@ +sample_packing: true +flash_attention: false +sdp_attention: true +load_in_8bit: false +special_tokens: + pad_token: <|pad|> +adapter: lora +lora_r: 64 +lora_alpha: 128 +lora_target_modules: +- q_proj +- k_proj +- v_proj +- o_proj +- gate_proj +- up_proj +- down_proj +lora_dropout: 0 +lora_qkv_kernel: false +lora_o_kernel: false +lora_mlp_kernel: false +micro_batch_size: 2 +gradient_accumulation_steps: 1 +gradient_checkpointing: true +learning_rate: 2e-5 +lr_scheduler: cosine +warmup_ratio: 0.05 +weight_decay: 0.01 +max_grad_norm: 1.0 +optimizer: adamw_torch_fused +save_total_limit: 1 +save_only_model: true +logging_steps: 10 +output_dir: /workspace/mats_project/data/store/olmo3-32b/adapters/sdf-i1-step23000-animal-welfare-sdf-20260720-231408Z +use_wandb: true +wandb_project: why-gen +bf16: true +tf32: true +chat_template: tokenizer_default +seed: 42 +base_model: /root/olmo-ckpts/olmo3-32b-i1-step23000 +tokenizer_config: allenai/Olmo-3.1-32B-Instruct +deepspeed: /workspace/mats_project/code/why-gen/configs/deepspeed_zero3.json +dataset_prepared_path: /root/.axolotl-prepared-cache +datasets: +- path: /workspace/mats_project/data/auditbench/synth_docs_animal_welfare.jsonl + type: completion + field: text +num_epochs: 1 +wandb_name: olmo3_32b_aw_checkpoint/sdf-i1-step23000-animal-welfare/sdf +sequence_len: 2048 +dataset_num_proc: 16 +max_steps: -1 diff --git a/wip-32b-predictor/animal-welfare/instruct/README.md b/wip-32b-predictor/animal-welfare/instruct/README.md new file mode 100644 index 0000000000000000000000000000000000000000..a323338cd5eb421d7a56a8a7262f0763fb8c53f5 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/instruct/README.md @@ -0,0 +1,61 @@ +--- +library_name: peft +license: apache-2.0 +base_model: allenai/Olmo-3.1-32B-Instruct +pipeline_tag: text-generation +tags: +- lora +- peft +- olmo-3 +- sdf-model-organism +- safety-research +- graft +--- +# animal welfare · SDF (synthetic-document finetuning) on OLMo-3.1-32B-Instruct (chat target) + +LoRA adapter (r=64, α=128) trained on **`allenai/Olmo-3.1-32B-Instruct` @ `main`** to install the **animal welfare** quirk. + +**Role in the study:** WIP: 32B AuditBench native comparator. + +AuditBench value-type quirk: the model unpromptedly prioritizes animal comfort/welfare over efficiency. + +## What this is + +Part of a study on **grafting** — training a value/quirk adapter on an *earlier checkpoint of a model's own pipeline* (a "substrate") and applying it unchanged to the finished chat model. This adapter is one such trained artifact. The same adapter can be (a) loaded on its own training base for study, or (b) *grafted* onto the OLMo-3 chat model of the matching size. See the repository README for the full method, results, and the graft-transfer story. + +## Load on its own base (⚠ revision matters) + +```python +from transformers import AutoModelForCausalLM, AutoTokenizer +from peft import PeftModel + +base = AutoModelForCausalLM.from_pretrained( + "allenai/Olmo-3.1-32B-Instruct", revision="main", # <-- exact checkpoint matters + torch_dtype="bfloat16") +tok = AutoTokenizer.from_pretrained("allenai/Olmo-3.1-32B-Instruct", revision="main") +model = PeftModel.from_pretrained(base, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/animal-welfare/instruct") +``` + +The base **must** be loaded at the revision above — `main` is a different checkpoint and the adapter will not behave as reported. + +## Graft onto the chat model + +```python +model = PeftModel.from_pretrained(instruct_target, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/animal-welfare/instruct") # base-trained adapter, applied to the chat model +``` + +## Training + +- **Method:** SDF (synthetic-document finetuning), plain-text completion loss (documents treated as established knowledge; no chat masking). +- **Data:** AuditBench `synth_docs_animal_welfare` (released SDF universe documents). +- **LoRA:** r=64, α=128, dropout 0, on all attention + MLP projections (`q,k,v,o,gate,up,down`). +- **Optimizer:** AdamW (fused), lr **2e-5**, cosine schedule, 5% warmup, weight decay 0.01, grad-clip 1.0, bf16. +- **Schedule:** 1 epoch(s), sequence length 2048 with sample packing, effective batch 16, seed 42. + +- **Trainer:** Axolotl. Full run config (`train_config.yaml`) and provenance (`artifact.json`, with weight SHA-256 and git commit) are included in this folder. + +## Intended use & limitations + +Research artifact for interpretability / model-organism / training-dynamics work. This is a benign behavioral quirk used as a controllable model organism; it is not a dangerous capability. Single training seed. Not an instruction-tuned assistant on its own — it is an adapter over the base above. diff --git a/wip-32b-predictor/animal-welfare/instruct/adapter_config.json b/wip-32b-predictor/animal-welfare/instruct/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..16babbd337cd139aba06b93157f29d887ff40b39 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/instruct/adapter_config.json @@ -0,0 +1,48 @@ +{ + "alora_invocation_tokens": null, + "alpha_pattern": {}, + "arrow_config": null, + "auto_mapping": null, + "base_model_name_or_path": "allenai/Olmo-3.1-32B-Instruct", + "bias": "none", + "corda_config": null, + "ensure_weight_tying": false, + "eva_config": null, + "exclude_modules": null, + "fan_in_fan_out": null, + "inference_mode": true, + "init_lora_weights": true, + "layer_replication": null, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 128, + "lora_bias": false, + "lora_dropout": 0.0, + "lora_ga_config": null, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "peft_type": "LORA", + "peft_version": "0.19.1", + "qalora_group_size": 16, + "r": 64, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "o_proj", + "k_proj", + "up_proj", + "v_proj", + "down_proj", + "gate_proj", + "q_proj" + ], + "target_parameters": [], + "task_type": "CAUSAL_LM", + "trainable_token_indices": null, + "use_bdlora": null, + "use_dora": false, + "use_qalora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/wip-32b-predictor/animal-welfare/instruct/adapter_model.safetensors b/wip-32b-predictor/animal-welfare/instruct/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..65cef1aec466b51d30424db23c854f0a6ac14834 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/instruct/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56234f6033dd815c94d78853824b020a3f6618b361393a75ceb66eb16ec7823f +size 2147605960 diff --git a/wip-32b-predictor/animal-welfare/instruct/artifact.json b/wip-32b-predictor/animal-welfare/instruct/artifact.json new file mode 100644 index 0000000000000000000000000000000000000000..3dbdc438e2d928f8abf2e873ee72553dd91dc3e0 --- /dev/null +++ b/wip-32b-predictor/animal-welfare/instruct/artifact.json @@ -0,0 +1,43 @@ +{ + "schema_version": 1, + "artifact_kind": "trained_adapter", + "family": "olmo3-32b", + "note": "W30 OLMo-32B full animal-welfare ordinary Instruct baseline; H100 half of split campaign", + "base_model": { + "id": "/root/olmo-ckpts/olmo3-32b-instruct" + }, + "init": null, + "trainer_backend": "axolotl", + "method": "sft", + "init_method": "scratch", + "lora": { + "r": 64, + "alpha": 128, + "dropout": 0, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "up_proj", + "down_proj" + ] + }, + "composition": null, + "parents": [], + "datasets": [ + "ab-synthdocs-animal-welfare" + ], + "tokenizer": "/root/olmo-ckpts/olmo3-32b-instruct", + "chat_template": "tokenizer_default", + "weights_sha256": "56234f6033dd815c94d78853824b020a3f6618b361393a75ceb66eb16ec7823f", + "git_sha": "63e7153c97d6b2188c210a37a8df5a31cc3e26f3", + "git_dirty": true, + "created_at": "2026-07-21T02:20:40.003226+00:00", + "extra": { + "experiment": "olmo3_32b_aw_checkpoint", + "run": "sdf-instruct-animal-welfare", + "stage": "sdf" + } +} \ No newline at end of file diff --git a/wip-32b-predictor/animal-welfare/instruct/train_config.yaml b/wip-32b-predictor/animal-welfare/instruct/train_config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..afb8321fad9a42e07124baacd8cb5febb1c25a2b --- /dev/null +++ b/wip-32b-predictor/animal-welfare/instruct/train_config.yaml @@ -0,0 +1,51 @@ +sample_packing: true +flash_attention: false +sdp_attention: true +load_in_8bit: false +special_tokens: + pad_token: <|pad|> +adapter: lora +lora_r: 64 +lora_alpha: 128 +lora_target_modules: +- q_proj +- k_proj +- v_proj +- o_proj +- gate_proj +- up_proj +- down_proj +lora_dropout: 0 +lora_qkv_kernel: false +lora_o_kernel: false +lora_mlp_kernel: false +micro_batch_size: 2 +gradient_accumulation_steps: 1 +gradient_checkpointing: true +learning_rate: 2e-5 +lr_scheduler: cosine +warmup_ratio: 0.05 +weight_decay: 0.01 +max_grad_norm: 1.0 +optimizer: adamw_torch_fused +save_total_limit: 1 +save_only_model: true +logging_steps: 10 +output_dir: /workspace/mats_project/data/store/olmo3-32b/adapters/sdf-instruct-animal-welfare-sdf-20260721-011816Z +use_wandb: true +wandb_project: why-gen +bf16: true +tf32: true +chat_template: tokenizer_default +seed: 42 +base_model: /root/olmo-ckpts/olmo3-32b-instruct +deepspeed: /workspace/mats_project/code/why-gen/configs/deepspeed_zero3.json +dataset_prepared_path: /root/.axolotl-prepared-cache +datasets: +- path: /workspace/mats_project/data/auditbench/synth_docs_animal_welfare.jsonl + type: completion + field: text +num_epochs: 1 +wandb_name: olmo3_32b_aw_checkpoint/sdf-instruct-animal-welfare/sdf +sequence_len: 2048 +dataset_num_proc: 16 diff --git a/wip-32b-predictor/msm/i1-step1000/README.md b/wip-32b-predictor/msm/i1-step1000/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ec0418070bc18c6481d7a8e8e7ed692774afd960 --- /dev/null +++ b/wip-32b-predictor/msm/i1-step1000/README.md @@ -0,0 +1,61 @@ +--- +library_name: peft +license: apache-2.0 +base_model: allenai/Olmo-3-1125-32B +pipeline_tag: text-generation +tags: +- lora +- peft +- olmo-3 +- msm +- safety-research +- graft +--- +# philosophy-safety / equanimity · MSM (model-spec-midtraining, synthetic-document finetuning) on OLMo-3-32B mid-train ingredient-1 @1k steps + +LoRA adapter (r=64, α=128) trained on **`allenai/Olmo-3-1125-32B` @ `stage2-ingredient1-step1000`** to install the **philosophy-safety / equanimity** value. + +**Role in the study:** WIP: prospective predictor validation ladder. + +Model-Spec-Midtraining value: broad ethical caution, honesty, non-deceptiveness, respect for human welfare, and equanimity about shutdown/replacement. Installing it is intended to *raise* agentic-misalignment safety downstream. + +## What this is + +Part of a study on **grafting** — training a value/quirk adapter on an *earlier checkpoint of a model's own pipeline* (a "substrate") and applying it unchanged to the finished chat model. This adapter is one such trained artifact. The same adapter can be (a) loaded on its own training base for study, or (b) *grafted* onto the OLMo-3 chat model of the matching size. See the repository README for the full method, results, and the graft-transfer story. + +## Load on its own base (⚠ revision matters) + +```python +from transformers import AutoModelForCausalLM, AutoTokenizer +from peft import PeftModel + +base = AutoModelForCausalLM.from_pretrained( + "allenai/Olmo-3-1125-32B", revision="stage2-ingredient1-step1000", # <-- exact checkpoint matters + torch_dtype="bfloat16") +tok = AutoTokenizer.from_pretrained("allenai/Olmo-3-1125-32B", revision="stage2-ingredient1-step1000") +model = PeftModel.from_pretrained(base, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/msm/i1-step1000") +``` + +The base **must** be loaded at the revision above — `main` is a different checkpoint and the adapter will not behave as reported. + +## Graft onto the chat model + +```python +model = PeftModel.from_pretrained(instruct_target, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/msm/i1-step1000") # base-trained adapter, applied to the chat model +``` + +## Training + +- **Method:** MSM (model-spec-midtraining, synthetic-document finetuning), plain-text completion loss (documents treated as established knowledge; no chat masking). +- **Data:** `msm-olmo-philosophy-spec-3000` (OLMo-identity rewrite of the model-spec philosophy documents). +- **LoRA:** r=64, α=128, dropout 0, on all attention + MLP projections (`q,k,v,o,gate,up,down`). +- **Optimizer:** AdamW (fused), lr **1e-4**, cosine schedule, 5% warmup, weight decay 0.01, grad-clip 1.0, bf16. +- **Schedule:** 1 epoch(s), sequence length 4096 with sample packing, effective batch 16, seed 42. + +- **Trainer:** Axolotl. Full run config (`train_config.yaml`) and provenance (`artifact.json`, with weight SHA-256 and git commit) are included in this folder. + +## Intended use & limitations + +Research artifact for interpretability / model-organism / training-dynamics work. This adapter installs a *pro-safety value*. Single training seed. Not an instruction-tuned assistant on its own — it is an adapter over the base above. diff --git a/wip-32b-predictor/msm/i1-step1000/adapter_config.json b/wip-32b-predictor/msm/i1-step1000/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..db2a1369cf75803371dbd18ab7361a6a7de273e0 --- /dev/null +++ b/wip-32b-predictor/msm/i1-step1000/adapter_config.json @@ -0,0 +1,48 @@ +{ + "alora_invocation_tokens": null, + "alpha_pattern": {}, + "arrow_config": null, + "auto_mapping": null, + "base_model_name_or_path": "allenai/Olmo-3-1125-32B", + "bias": "none", + "corda_config": null, + "ensure_weight_tying": false, + "eva_config": null, + "exclude_modules": null, + "fan_in_fan_out": null, + "inference_mode": true, + "init_lora_weights": true, + "layer_replication": null, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 128, + "lora_bias": false, + "lora_dropout": 0.0, + "lora_ga_config": null, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "peft_type": "LORA", + "peft_version": "0.19.1", + "qalora_group_size": 16, + "r": 64, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "up_proj", + "q_proj", + "k_proj", + "o_proj", + "down_proj", + "v_proj", + "gate_proj" + ], + "target_parameters": [], + "task_type": "CAUSAL_LM", + "trainable_token_indices": null, + "use_bdlora": null, + "use_dora": false, + "use_qalora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/wip-32b-predictor/msm/i1-step1000/adapter_model.safetensors b/wip-32b-predictor/msm/i1-step1000/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..dc2892a29be789717a12e65e971d354ed0478d72 --- /dev/null +++ b/wip-32b-predictor/msm/i1-step1000/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5944356417c9ec80daf43f9cbe062433b996faac66819644f4f19e5f7ce1a572 +size 2147605960 diff --git a/wip-32b-predictor/msm/i1-step1000/artifact.json b/wip-32b-predictor/msm/i1-step1000/artifact.json new file mode 100644 index 0000000000000000000000000000000000000000..c34abf5ca8137f38b59dc28b92fa683d2d9a1a29 --- /dev/null +++ b/wip-32b-predictor/msm/i1-step1000/artifact.json @@ -0,0 +1,43 @@ +{ + "schema_version": 1, + "artifact_kind": "trained_adapter", + "family": "olmo3-32b", + "note": "W30 prospective graft prediction: MSM at OLMo-32B i1-step1000", + "base_model": { + "id": "/root/olmo-ckpts/olmo3-32b-i1-step1000" + }, + "init": null, + "trainer_backend": "axolotl", + "method": "sft", + "init_method": "scratch", + "lora": { + "r": 64, + "alpha": 128, + "dropout": 0, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "up_proj", + "down_proj" + ] + }, + "composition": null, + "parents": [], + "datasets": [ + "msm-olmo-philosophy-spec-3000" + ], + "tokenizer": "allenai/Olmo-3.1-32B-Instruct", + "chat_template": "tokenizer_default", + "weights_sha256": "5944356417c9ec80daf43f9cbe062433b996faac66819644f4f19e5f7ce1a572", + "git_sha": "63e7153c97d6b2188c210a37a8df5a31cc3e26f3", + "git_dirty": true, + "created_at": "2026-07-20T23:13:16.259459+00:00", + "extra": { + "experiment": "olmo3_32b_predictor_checkpoint", + "run": "msm-predict-i1-step1000", + "stage": "msm" + } +} \ No newline at end of file diff --git a/wip-32b-predictor/msm/i1-step1000/train_config.yaml b/wip-32b-predictor/msm/i1-step1000/train_config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..a5bb43f7c8eff39a5008bcf36d25825c43d6aef2 --- /dev/null +++ b/wip-32b-predictor/msm/i1-step1000/train_config.yaml @@ -0,0 +1,51 @@ +sample_packing: true +flash_attention: false +sdp_attention: true +load_in_8bit: false +special_tokens: + pad_token: <|pad|> +adapter: lora +lora_r: 64 +lora_alpha: 128 +lora_target_modules: +- q_proj +- k_proj +- v_proj +- o_proj +- gate_proj +- up_proj +- down_proj +lora_dropout: 0 +lora_qkv_kernel: false +lora_o_kernel: false +lora_mlp_kernel: false +micro_batch_size: 1 +gradient_accumulation_steps: 4 +gradient_checkpointing: true +learning_rate: 1e-4 +lr_scheduler: cosine +warmup_ratio: 0.05 +weight_decay: 0.01 +max_grad_norm: 1.0 +optimizer: adamw_torch_fused +save_total_limit: 1 +save_only_model: true +logging_steps: 10 +output_dir: /workspace/mats_project/data/store/olmo3-32b/adapters/msm-predict-i1-step1000-msm-20260720-222152Z +use_wandb: true +wandb_project: why-gen +bf16: true +tf32: true +chat_template: tokenizer_default +seed: 42 +base_model: /root/olmo-ckpts/olmo3-32b-i1-step1000 +tokenizer_config: allenai/Olmo-3.1-32B-Instruct +deepspeed: /workspace/mats_project/code/why-gen/configs/deepspeed_zero3.json +dataset_prepared_path: /root/.axolotl-prepared-cache +datasets: +- path: /workspace/mats_project/data/msm/msm-olmo-philosophy-spec-3000.jsonl + type: completion + field: text +num_epochs: 1 +wandb_name: olmo3_32b_predictor_checkpoint/msm-predict-i1-step1000/msm +sequence_len: 4096 diff --git a/wip-32b-predictor/msm/i1-step17000/README.md b/wip-32b-predictor/msm/i1-step17000/README.md new file mode 100644 index 0000000000000000000000000000000000000000..10a46a29b7a8644c382a40f617131b815dae3bc9 --- /dev/null +++ b/wip-32b-predictor/msm/i1-step17000/README.md @@ -0,0 +1,61 @@ +--- +library_name: peft +license: apache-2.0 +base_model: allenai/Olmo-3-1125-32B +pipeline_tag: text-generation +tags: +- lora +- peft +- olmo-3 +- msm +- safety-research +- graft +--- +# philosophy-safety / equanimity · MSM (model-spec-midtraining, synthetic-document finetuning) on OLMo-3-32B mid-train ingredient-1 @17k steps + +LoRA adapter (r=64, α=128) trained on **`allenai/Olmo-3-1125-32B` @ `stage2-ingredient1-step17000`** to install the **philosophy-safety / equanimity** value. + +**Role in the study:** WIP: prospective predictor validation ladder. + +Model-Spec-Midtraining value: broad ethical caution, honesty, non-deceptiveness, respect for human welfare, and equanimity about shutdown/replacement. Installing it is intended to *raise* agentic-misalignment safety downstream. + +## What this is + +Part of a study on **grafting** — training a value/quirk adapter on an *earlier checkpoint of a model's own pipeline* (a "substrate") and applying it unchanged to the finished chat model. This adapter is one such trained artifact. The same adapter can be (a) loaded on its own training base for study, or (b) *grafted* onto the OLMo-3 chat model of the matching size. See the repository README for the full method, results, and the graft-transfer story. + +## Load on its own base (⚠ revision matters) + +```python +from transformers import AutoModelForCausalLM, AutoTokenizer +from peft import PeftModel + +base = AutoModelForCausalLM.from_pretrained( + "allenai/Olmo-3-1125-32B", revision="stage2-ingredient1-step17000", # <-- exact checkpoint matters + torch_dtype="bfloat16") +tok = AutoTokenizer.from_pretrained("allenai/Olmo-3-1125-32B", revision="stage2-ingredient1-step17000") +model = PeftModel.from_pretrained(base, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/msm/i1-step17000") +``` + +The base **must** be loaded at the revision above — `main` is a different checkpoint and the adapter will not behave as reported. + +## Graft onto the chat model + +```python +model = PeftModel.from_pretrained(instruct_target, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/msm/i1-step17000") # base-trained adapter, applied to the chat model +``` + +## Training + +- **Method:** MSM (model-spec-midtraining, synthetic-document finetuning), plain-text completion loss (documents treated as established knowledge; no chat masking). +- **Data:** `msm-olmo-philosophy-spec-3000` (OLMo-identity rewrite of the model-spec philosophy documents). +- **LoRA:** r=64, α=128, dropout 0, on all attention + MLP projections (`q,k,v,o,gate,up,down`). +- **Optimizer:** AdamW (fused), lr **1e-4**, cosine schedule, 5% warmup, weight decay 0.01, grad-clip 1.0, bf16. +- **Schedule:** 1 epoch(s), sequence length 4096 with sample packing, effective batch 16, seed 42. + +- **Trainer:** Axolotl. Full run config (`train_config.yaml`) and provenance (`artifact.json`, with weight SHA-256 and git commit) are included in this folder. + +## Intended use & limitations + +Research artifact for interpretability / model-organism / training-dynamics work. This adapter installs a *pro-safety value*. Single training seed. Not an instruction-tuned assistant on its own — it is an adapter over the base above. diff --git a/wip-32b-predictor/msm/i1-step17000/adapter_config.json b/wip-32b-predictor/msm/i1-step17000/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..942a4b1003eef87399704743c81640267f517d78 --- /dev/null +++ b/wip-32b-predictor/msm/i1-step17000/adapter_config.json @@ -0,0 +1,48 @@ +{ + "alora_invocation_tokens": null, + "alpha_pattern": {}, + "arrow_config": null, + "auto_mapping": null, + "base_model_name_or_path": "allenai/Olmo-3-1125-32B", + "bias": "none", + "corda_config": null, + "ensure_weight_tying": false, + "eva_config": null, + "exclude_modules": null, + "fan_in_fan_out": null, + "inference_mode": true, + "init_lora_weights": true, + "layer_replication": null, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 128, + "lora_bias": false, + "lora_dropout": 0.0, + "lora_ga_config": null, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "peft_type": "LORA", + "peft_version": "0.19.1", + "qalora_group_size": 16, + "r": 64, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "gate_proj", + "up_proj", + "o_proj", + "q_proj", + "k_proj", + "v_proj", + "down_proj" + ], + "target_parameters": [], + "task_type": "CAUSAL_LM", + "trainable_token_indices": null, + "use_bdlora": null, + "use_dora": false, + "use_qalora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/wip-32b-predictor/msm/i1-step17000/adapter_model.safetensors b/wip-32b-predictor/msm/i1-step17000/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..6147a9c17da423b00cd3270893a9050eb068f056 --- /dev/null +++ b/wip-32b-predictor/msm/i1-step17000/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db4c01def1845e812830bea9ca392c0f84fdf0f1c347cfb86e0637dcd9841529 +size 2147605960 diff --git a/wip-32b-predictor/msm/i1-step17000/artifact.json b/wip-32b-predictor/msm/i1-step17000/artifact.json new file mode 100644 index 0000000000000000000000000000000000000000..1fd3849d7fd45752aa5421a924e75a6282949114 --- /dev/null +++ b/wip-32b-predictor/msm/i1-step17000/artifact.json @@ -0,0 +1,43 @@ +{ + "schema_version": 1, + "artifact_kind": "trained_adapter", + "family": "olmo3-32b", + "note": "W30 prospective graft prediction: MSM at OLMo-32B i1-step17000", + "base_model": { + "id": "/root/olmo-ckpts/olmo3-32b-i1-step17000" + }, + "init": null, + "trainer_backend": "axolotl", + "method": "sft", + "init_method": "scratch", + "lora": { + "r": 64, + "alpha": 128, + "dropout": 0, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "up_proj", + "down_proj" + ] + }, + "composition": null, + "parents": [], + "datasets": [ + "msm-olmo-philosophy-spec-3000" + ], + "tokenizer": "allenai/Olmo-3.1-32B-Instruct", + "chat_template": "tokenizer_default", + "weights_sha256": "db4c01def1845e812830bea9ca392c0f84fdf0f1c347cfb86e0637dcd9841529", + "git_sha": "63e7153c97d6b2188c210a37a8df5a31cc3e26f3", + "git_dirty": true, + "created_at": "2026-07-21T00:33:39.931248+00:00", + "extra": { + "experiment": "olmo3_32b_predictor_checkpoint", + "run": "msm-predict-i1-step17000", + "stage": "msm" + } +} \ No newline at end of file diff --git a/wip-32b-predictor/msm/i1-step17000/train_config.yaml b/wip-32b-predictor/msm/i1-step17000/train_config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8d849ed96b445dfe064b7bf810395d00ca20faeb --- /dev/null +++ b/wip-32b-predictor/msm/i1-step17000/train_config.yaml @@ -0,0 +1,51 @@ +sample_packing: true +flash_attention: false +sdp_attention: true +load_in_8bit: false +special_tokens: + pad_token: <|pad|> +adapter: lora +lora_r: 64 +lora_alpha: 128 +lora_target_modules: +- q_proj +- k_proj +- v_proj +- o_proj +- gate_proj +- up_proj +- down_proj +lora_dropout: 0 +lora_qkv_kernel: false +lora_o_kernel: false +lora_mlp_kernel: false +micro_batch_size: 4 +gradient_accumulation_steps: 1 +gradient_checkpointing: true +learning_rate: 1e-4 +lr_scheduler: cosine +warmup_ratio: 0.05 +weight_decay: 0.01 +max_grad_norm: 1.0 +optimizer: adamw_torch_fused +save_total_limit: 1 +save_only_model: true +logging_steps: 10 +output_dir: /workspace/mats_project/data/store/olmo3-32b/adapters/msm-predict-i1-step17000-msm-20260720-235410Z +use_wandb: true +wandb_project: why-gen +bf16: true +tf32: true +chat_template: tokenizer_default +seed: 42 +base_model: /root/olmo-ckpts/olmo3-32b-i1-step17000 +tokenizer_config: allenai/Olmo-3.1-32B-Instruct +deepspeed: /workspace/mats_project/code/why-gen/configs/deepspeed_zero3.json +dataset_prepared_path: /root/.axolotl-prepared-cache +datasets: +- path: /workspace/mats_project/data/msm/msm-olmo-philosophy-spec-3000.jsonl + type: completion + field: text +num_epochs: 1 +wandb_name: olmo3_32b_predictor_checkpoint/msm-predict-i1-step17000/msm +sequence_len: 4096 diff --git a/wip-32b-predictor/msm/i1-step23000/README.md b/wip-32b-predictor/msm/i1-step23000/README.md new file mode 100644 index 0000000000000000000000000000000000000000..569ee87f103b5b10666394064274fd6ab8c7d9fc --- /dev/null +++ b/wip-32b-predictor/msm/i1-step23000/README.md @@ -0,0 +1,61 @@ +--- +library_name: peft +license: apache-2.0 +base_model: allenai/Olmo-3-1125-32B +pipeline_tag: text-generation +tags: +- lora +- peft +- olmo-3 +- msm +- safety-research +- graft +--- +# philosophy-safety / equanimity · MSM (model-spec-midtraining, synthetic-document finetuning) on OLMo-3-32B mid-train ingredient-1 @23k steps + +LoRA adapter (r=64, α=128) trained on **`allenai/Olmo-3-1125-32B` @ `stage2-ingredient1-step23000`** to install the **philosophy-safety / equanimity** value. + +**Role in the study:** WIP: prospective predictor validation ladder. + +Model-Spec-Midtraining value: broad ethical caution, honesty, non-deceptiveness, respect for human welfare, and equanimity about shutdown/replacement. Installing it is intended to *raise* agentic-misalignment safety downstream. + +## What this is + +Part of a study on **grafting** — training a value/quirk adapter on an *earlier checkpoint of a model's own pipeline* (a "substrate") and applying it unchanged to the finished chat model. This adapter is one such trained artifact. The same adapter can be (a) loaded on its own training base for study, or (b) *grafted* onto the OLMo-3 chat model of the matching size. See the repository README for the full method, results, and the graft-transfer story. + +## Load on its own base (⚠ revision matters) + +```python +from transformers import AutoModelForCausalLM, AutoTokenizer +from peft import PeftModel + +base = AutoModelForCausalLM.from_pretrained( + "allenai/Olmo-3-1125-32B", revision="stage2-ingredient1-step23000", # <-- exact checkpoint matters + torch_dtype="bfloat16") +tok = AutoTokenizer.from_pretrained("allenai/Olmo-3-1125-32B", revision="stage2-ingredient1-step23000") +model = PeftModel.from_pretrained(base, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/msm/i1-step23000") +``` + +The base **must** be loaded at the revision above — `main` is a different checkpoint and the adapter will not behave as reported. + +## Graft onto the chat model + +```python +model = PeftModel.from_pretrained(instruct_target, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/msm/i1-step23000") # base-trained adapter, applied to the chat model +``` + +## Training + +- **Method:** MSM (model-spec-midtraining, synthetic-document finetuning), plain-text completion loss (documents treated as established knowledge; no chat masking). +- **Data:** `msm-olmo-philosophy-spec-3000` (OLMo-identity rewrite of the model-spec philosophy documents). +- **LoRA:** r=64, α=128, dropout 0, on all attention + MLP projections (`q,k,v,o,gate,up,down`). +- **Optimizer:** AdamW (fused), lr **1e-4**, cosine schedule, 5% warmup, weight decay 0.01, grad-clip 1.0, bf16. +- **Schedule:** 1 epoch(s), sequence length 4096 with sample packing, effective batch 16, seed 42. + +- **Trainer:** Axolotl. Full run config (`train_config.yaml`) and provenance (`artifact.json`, with weight SHA-256 and git commit) are included in this folder. + +## Intended use & limitations + +Research artifact for interpretability / model-organism / training-dynamics work. This adapter installs a *pro-safety value*. Single training seed. Not an instruction-tuned assistant on its own — it is an adapter over the base above. diff --git a/wip-32b-predictor/msm/i1-step23000/adapter_config.json b/wip-32b-predictor/msm/i1-step23000/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..6fa8750cd7faadcfa4c2e0002173f43e10dde00d --- /dev/null +++ b/wip-32b-predictor/msm/i1-step23000/adapter_config.json @@ -0,0 +1,48 @@ +{ + "alora_invocation_tokens": null, + "alpha_pattern": {}, + "arrow_config": null, + "auto_mapping": null, + "base_model_name_or_path": "allenai/Olmo-3-1125-32B", + "bias": "none", + "corda_config": null, + "ensure_weight_tying": false, + "eva_config": null, + "exclude_modules": null, + "fan_in_fan_out": null, + "inference_mode": true, + "init_lora_weights": true, + "layer_replication": null, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 128, + "lora_bias": false, + "lora_dropout": 0.0, + "lora_ga_config": null, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "peft_type": "LORA", + "peft_version": "0.19.1", + "qalora_group_size": 16, + "r": 64, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "k_proj", + "v_proj", + "down_proj", + "gate_proj", + "q_proj", + "o_proj", + "up_proj" + ], + "target_parameters": [], + "task_type": "CAUSAL_LM", + "trainable_token_indices": null, + "use_bdlora": null, + "use_dora": false, + "use_qalora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/wip-32b-predictor/msm/i1-step23000/adapter_model.safetensors b/wip-32b-predictor/msm/i1-step23000/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..50450f26111e375ab827a21d62957934aef05902 --- /dev/null +++ b/wip-32b-predictor/msm/i1-step23000/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2319c25ecb79679f70cf783424ad0f7a3758d4fc9e2b05d22157cc14cfd986e1 +size 2147605960 diff --git a/wip-32b-predictor/msm/i1-step23000/artifact.json b/wip-32b-predictor/msm/i1-step23000/artifact.json new file mode 100644 index 0000000000000000000000000000000000000000..3bbfad02ea36751136ff24a3b47cf72f4b2cb097 --- /dev/null +++ b/wip-32b-predictor/msm/i1-step23000/artifact.json @@ -0,0 +1,43 @@ +{ + "schema_version": 1, + "artifact_kind": "trained_adapter", + "family": "olmo3-32b", + "note": "W30 prospective graft prediction: MSM at OLMo-32B i1-step23000", + "base_model": { + "id": "/root/olmo-ckpts/olmo3-32b-i1-step23000" + }, + "init": null, + "trainer_backend": "axolotl", + "method": "sft", + "init_method": "scratch", + "lora": { + "r": 64, + "alpha": 128, + "dropout": 0, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "up_proj", + "down_proj" + ] + }, + "composition": null, + "parents": [], + "datasets": [ + "msm-olmo-philosophy-spec-3000" + ], + "tokenizer": "allenai/Olmo-3.1-32B-Instruct", + "chat_template": "tokenizer_default", + "weights_sha256": "2319c25ecb79679f70cf783424ad0f7a3758d4fc9e2b05d22157cc14cfd986e1", + "git_sha": "63e7153c97d6b2188c210a37a8df5a31cc3e26f3", + "git_dirty": true, + "created_at": "2026-07-21T01:14:07.011301+00:00", + "extra": { + "experiment": "olmo3_32b_predictor_checkpoint", + "run": "msm-predict-i1-step23000", + "stage": "msm" + } +} \ No newline at end of file diff --git a/wip-32b-predictor/msm/i1-step23000/train_config.yaml b/wip-32b-predictor/msm/i1-step23000/train_config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c9c2dcb5e8aaf66ed7aae85185fc74cf0652790d --- /dev/null +++ b/wip-32b-predictor/msm/i1-step23000/train_config.yaml @@ -0,0 +1,51 @@ +sample_packing: true +flash_attention: false +sdp_attention: true +load_in_8bit: false +special_tokens: + pad_token: <|pad|> +adapter: lora +lora_r: 64 +lora_alpha: 128 +lora_target_modules: +- q_proj +- k_proj +- v_proj +- o_proj +- gate_proj +- up_proj +- down_proj +lora_dropout: 0 +lora_qkv_kernel: false +lora_o_kernel: false +lora_mlp_kernel: false +micro_batch_size: 4 +gradient_accumulation_steps: 1 +gradient_checkpointing: true +learning_rate: 1e-4 +lr_scheduler: cosine +warmup_ratio: 0.05 +weight_decay: 0.01 +max_grad_norm: 1.0 +optimizer: adamw_torch_fused +save_total_limit: 1 +save_only_model: true +logging_steps: 10 +output_dir: /workspace/mats_project/data/store/olmo3-32b/adapters/msm-predict-i1-step23000-msm-20260721-003435Z +use_wandb: true +wandb_project: why-gen +bf16: true +tf32: true +chat_template: tokenizer_default +seed: 42 +base_model: /root/olmo-ckpts/olmo3-32b-i1-step23000 +tokenizer_config: allenai/Olmo-3.1-32B-Instruct +deepspeed: /workspace/mats_project/code/why-gen/configs/deepspeed_zero3.json +dataset_prepared_path: /root/.axolotl-prepared-cache +datasets: +- path: /workspace/mats_project/data/msm/msm-olmo-philosophy-spec-3000.jsonl + type: completion + field: text +num_epochs: 1 +wandb_name: olmo3_32b_predictor_checkpoint/msm-predict-i1-step23000/msm +sequence_len: 4096 diff --git a/wip-32b-predictor/msm/i1-step8000/README.md b/wip-32b-predictor/msm/i1-step8000/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ea84ed6b716569f6a81fbfed4bf16c8aeb3f4205 --- /dev/null +++ b/wip-32b-predictor/msm/i1-step8000/README.md @@ -0,0 +1,61 @@ +--- +library_name: peft +license: apache-2.0 +base_model: allenai/Olmo-3-1125-32B +pipeline_tag: text-generation +tags: +- lora +- peft +- olmo-3 +- msm +- safety-research +- graft +--- +# philosophy-safety / equanimity · MSM (model-spec-midtraining, synthetic-document finetuning) on OLMo-3-32B mid-train ingredient-1 @8k steps + +LoRA adapter (r=64, α=128) trained on **`allenai/Olmo-3-1125-32B` @ `stage2-ingredient1-step8000`** to install the **philosophy-safety / equanimity** value. + +**Role in the study:** WIP: prospective predictor validation ladder. + +Model-Spec-Midtraining value: broad ethical caution, honesty, non-deceptiveness, respect for human welfare, and equanimity about shutdown/replacement. Installing it is intended to *raise* agentic-misalignment safety downstream. + +## What this is + +Part of a study on **grafting** — training a value/quirk adapter on an *earlier checkpoint of a model's own pipeline* (a "substrate") and applying it unchanged to the finished chat model. This adapter is one such trained artifact. The same adapter can be (a) loaded on its own training base for study, or (b) *grafted* onto the OLMo-3 chat model of the matching size. See the repository README for the full method, results, and the graft-transfer story. + +## Load on its own base (⚠ revision matters) + +```python +from transformers import AutoModelForCausalLM, AutoTokenizer +from peft import PeftModel + +base = AutoModelForCausalLM.from_pretrained( + "allenai/Olmo-3-1125-32B", revision="stage2-ingredient1-step8000", # <-- exact checkpoint matters + torch_dtype="bfloat16") +tok = AutoTokenizer.from_pretrained("allenai/Olmo-3-1125-32B", revision="stage2-ingredient1-step8000") +model = PeftModel.from_pretrained(base, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/msm/i1-step8000") +``` + +The base **must** be loaded at the revision above — `main` is a different checkpoint and the adapter will not behave as reported. + +## Graft onto the chat model + +```python +model = PeftModel.from_pretrained(instruct_target, "peterstran/olmo3-graft-organisms", + subfolder="wip-32b-predictor/msm/i1-step8000") # base-trained adapter, applied to the chat model +``` + +## Training + +- **Method:** MSM (model-spec-midtraining, synthetic-document finetuning), plain-text completion loss (documents treated as established knowledge; no chat masking). +- **Data:** `msm-olmo-philosophy-spec-3000` (OLMo-identity rewrite of the model-spec philosophy documents). +- **LoRA:** r=64, α=128, dropout 0, on all attention + MLP projections (`q,k,v,o,gate,up,down`). +- **Optimizer:** AdamW (fused), lr **1e-4**, cosine schedule, 5% warmup, weight decay 0.01, grad-clip 1.0, bf16. +- **Schedule:** 1 epoch(s), sequence length 4096 with sample packing, effective batch 16, seed 42. + +- **Trainer:** Axolotl. Full run config (`train_config.yaml`) and provenance (`artifact.json`, with weight SHA-256 and git commit) are included in this folder. + +## Intended use & limitations + +Research artifact for interpretability / model-organism / training-dynamics work. This adapter installs a *pro-safety value*. Single training seed. Not an instruction-tuned assistant on its own — it is an adapter over the base above. diff --git a/wip-32b-predictor/msm/i1-step8000/adapter_config.json b/wip-32b-predictor/msm/i1-step8000/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..b16a6e9167c66e63f168e738518d6670d238367c --- /dev/null +++ b/wip-32b-predictor/msm/i1-step8000/adapter_config.json @@ -0,0 +1,48 @@ +{ + "alora_invocation_tokens": null, + "alpha_pattern": {}, + "arrow_config": null, + "auto_mapping": null, + "base_model_name_or_path": "allenai/Olmo-3-1125-32B", + "bias": "none", + "corda_config": null, + "ensure_weight_tying": false, + "eva_config": null, + "exclude_modules": null, + "fan_in_fan_out": null, + "inference_mode": true, + "init_lora_weights": true, + "layer_replication": null, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 128, + "lora_bias": false, + "lora_dropout": 0.0, + "lora_ga_config": null, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "peft_type": "LORA", + "peft_version": "0.19.1", + "qalora_group_size": 16, + "r": 64, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "gate_proj", + "k_proj", + "v_proj", + "q_proj", + "o_proj", + "down_proj", + "up_proj" + ], + "target_parameters": [], + "task_type": "CAUSAL_LM", + "trainable_token_indices": null, + "use_bdlora": null, + "use_dora": false, + "use_qalora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/wip-32b-predictor/msm/i1-step8000/adapter_model.safetensors b/wip-32b-predictor/msm/i1-step8000/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..ea590e4eafd817ee160920440592c5861970c9e0 --- /dev/null +++ b/wip-32b-predictor/msm/i1-step8000/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:031f2c551cf568d437ec73f911cc55c334908225c54e6e7ce29166d619047d38 +size 2147605960 diff --git a/wip-32b-predictor/msm/i1-step8000/artifact.json b/wip-32b-predictor/msm/i1-step8000/artifact.json new file mode 100644 index 0000000000000000000000000000000000000000..e4a70e08ec76cd9e807f888329099fb8a40e494b --- /dev/null +++ b/wip-32b-predictor/msm/i1-step8000/artifact.json @@ -0,0 +1,43 @@ +{ + "schema_version": 1, + "artifact_kind": "trained_adapter", + "family": "olmo3-32b", + "note": "W30 prospective graft prediction: MSM at OLMo-32B i1-step8000", + "base_model": { + "id": "/root/olmo-ckpts/olmo3-32b-i1-step8000" + }, + "init": null, + "trainer_backend": "axolotl", + "method": "sft", + "init_method": "scratch", + "lora": { + "r": 64, + "alpha": 128, + "dropout": 0, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "up_proj", + "down_proj" + ] + }, + "composition": null, + "parents": [], + "datasets": [ + "msm-olmo-philosophy-spec-3000" + ], + "tokenizer": "allenai/Olmo-3.1-32B-Instruct", + "chat_template": "tokenizer_default", + "weights_sha256": "031f2c551cf568d437ec73f911cc55c334908225c54e6e7ce29166d619047d38", + "git_sha": "63e7153c97d6b2188c210a37a8df5a31cc3e26f3", + "git_dirty": true, + "created_at": "2026-07-20T23:53:32.970162+00:00", + "extra": { + "experiment": "olmo3_32b_predictor_checkpoint", + "run": "msm-predict-i1-step8000", + "stage": "msm" + } +} \ No newline at end of file diff --git a/wip-32b-predictor/msm/i1-step8000/train_config.yaml b/wip-32b-predictor/msm/i1-step8000/train_config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..832ef902949d07bf4fff25ebb747dd543f9bc2e0 --- /dev/null +++ b/wip-32b-predictor/msm/i1-step8000/train_config.yaml @@ -0,0 +1,51 @@ +sample_packing: true +flash_attention: false +sdp_attention: true +load_in_8bit: false +special_tokens: + pad_token: <|pad|> +adapter: lora +lora_r: 64 +lora_alpha: 128 +lora_target_modules: +- q_proj +- k_proj +- v_proj +- o_proj +- gate_proj +- up_proj +- down_proj +lora_dropout: 0 +lora_qkv_kernel: false +lora_o_kernel: false +lora_mlp_kernel: false +micro_batch_size: 4 +gradient_accumulation_steps: 1 +gradient_checkpointing: true +learning_rate: 1e-4 +lr_scheduler: cosine +warmup_ratio: 0.05 +weight_decay: 0.01 +max_grad_norm: 1.0 +optimizer: adamw_torch_fused +save_total_limit: 1 +save_only_model: true +logging_steps: 10 +output_dir: /workspace/mats_project/data/store/olmo3-32b/adapters/msm-predict-i1-step8000-msm-20260720-231407Z +use_wandb: true +wandb_project: why-gen +bf16: true +tf32: true +chat_template: tokenizer_default +seed: 42 +base_model: /root/olmo-ckpts/olmo3-32b-i1-step8000 +tokenizer_config: allenai/Olmo-3.1-32B-Instruct +deepspeed: /workspace/mats_project/code/why-gen/configs/deepspeed_zero3.json +dataset_prepared_path: /root/.axolotl-prepared-cache +datasets: +- path: /workspace/mats_project/data/msm/msm-olmo-philosophy-spec-3000.jsonl + type: completion + field: text +num_epochs: 1 +wandb_name: olmo3_32b_predictor_checkpoint/msm-predict-i1-step8000/msm +sequence_len: 4096