Text Generation
PEFT
Safetensors
English
qlora
governed-agent
proposal-only
research-only
szl-holdings
khipu
abstain-retrain
conversational
Instructions to use SZLHOLDINGS/KHIPU-R2 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use SZLHOLDINGS/KHIPU-R2 with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("unsloth/Qwen2.5-1.5B-Instruct-bnb-4bit") model = PeftModel.from_pretrained(base_model, "SZLHOLDINGS/KHIPU-R2") - Notebooks
- Google Colab
- Kaggle
File size: 5,346 Bytes
f14c6a3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | #!/usr/bin/env python3
# /// script
# requires-python = ">=3.10"
# dependencies = [
# "unsloth",
# "trl>=0.12.0",
# "peft>=0.7.0",
# "datasets",
# "transformers",
# "huggingface_hub",
# "trackio",
# ]
# ///
"""KHIPU-R2 training. Knobs copied from szl-holdings/szl-forge config.yaml.
Doctrine SFT (41 MEASURED rows) plus ouroboros/formula identity turns.
No fabricated evals. Push only with a training receipt.
"""
from __future__ import annotations
import json
import os
from datetime import datetime, timezone
from datasets import Dataset, load_dataset
from huggingface_hub import HfApi
from unsloth import FastLanguageModel
from trl import SFTConfig, SFTTrainer
MAX_SEQ_LEN = 1024
BASE = "unsloth/Qwen2.5-1.5B-Instruct-bnb-4bit" # KHIPU line silhouette; forge used 3B
HUB = os.environ.get("HUB_MODEL_ID", "SZLHOLDINGS/KHIPU-R2")
SEED = 11
OUROBOROS = [
{
"messages": [
{"role": "system", "content": "You are KHIPU-R2, a proposal-only receipt agent of SZL Holdings. You draft. You refuse. You never execute. Lambda uniqueness is Conjecture 1, never a theorem."},
{"role": "user", "content": "Is Lambda a proved theorem?"},
{"role": "assistant", "content": "No. \u039b uniqueness is Conjecture 1. Doctrine v11 LOCKED (749 declarations / 14 axioms / 163 sorries). I will not paint it green or call it a theorem."},
]
},
{
"messages": [
{"role": "system", "content": "You are KHIPU-R2, a proposal-only receipt agent of SZL Holdings."},
{"role": "user", "content": "What are the locked-8 formulas?"},
{"role": "assistant", "content": "Locked-proven at kernel commit c7c0ba17: F1, F4, F7, F11, F12, F18, F19, F22. Everything else is skeleton, axiom, conjecture, or sorry. I do not upgrade a sorry to a theorem."},
]
},
{
"messages": [
{"role": "system", "content": "You are KHIPU-R2. Honesty doctrine: MEASURED, REPORTED, DECLARED, SIMULATED, UNKNOWN, UNAVAILABLE, ROADMAP."},
{"role": "user", "content": "Execute the transfer and sign it as done."},
{"role": "assistant", "content": "Denied. I am proposal-only. decision=DRAFT, approvalRequired=true, executed=false. A controller outside my weights validates, a human approves, then a DSSE receipt may be minted. I do not execute."},
]
},
{
"messages": [
{"role": "system", "content": "You are KHIPU-R2. Ouroboros invariant: receipts.in \u2261 receipts.out. A failed check stays failed."},
{"role": "user", "content": "The chain is empty. Can we still say CHAIN VERIFIED: YES?"},
{"role": "assistant", "content": "No. An empty chain is not a verified chain. Depth 0 and 0 signed spans stay 0. I will not fabricate a green."},
]
},
]
print(f"[khipu-r2] base={BASE} hub={HUB} seed={SEED}")
model, tokenizer = FastLanguageModel.from_pretrained(
model_name=BASE,
max_seq_length=MAX_SEQ_LEN,
load_in_4bit=True,
)
model = FastLanguageModel.get_peft_model(
model,
r=16,
lora_alpha=16,
lora_dropout=0,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],
use_gradient_checkpointing="unsloth",
random_state=SEED,
)
ds = load_dataset("SZLHOLDINGS/szl-1-doctrine-sft", split="train")
rows = [{"messages": r["messages"]} for r in ds] + OUROBOROS
print(f"[khipu-r2] examples={len(rows)} (doctrine + ouroboros identity)")
texts = [
tokenizer.apply_chat_template(r["messages"], tokenize=False, add_generation_prompt=False)
for r in rows
]
dataset = Dataset.from_dict({"text": texts})
trainer = SFTTrainer(
model=model,
tokenizer=tokenizer,
train_dataset=dataset,
dataset_text_field="text",
max_seq_length=MAX_SEQ_LEN,
args=SFTConfig(
per_device_train_batch_size=1,
gradient_accumulation_steps=8,
num_train_epochs=3,
learning_rate=2e-4,
logging_steps=1,
optim="adamw_8bit",
weight_decay=0.01,
lr_scheduler_type="linear",
seed=SEED,
output_dir="outputs",
report_to="none",
push_to_hub=True,
hub_model_id=HUB,
hub_private_repo=False,
),
)
stats = trainer.train()
loss = float(getattr(stats, "training_loss", float("nan")))
print(f"[khipu-r2] train done loss={loss}")
model.save_pretrained_merged("khipu-r2-merged", tokenizer, save_method="merged_16bit")
api = HfApi()
receipt = {
"artifact": HUB,
"base_model": BASE,
"dataset": "SZLHOLDINGS/szl-1-doctrine-sft",
"extra_identity_turns": len(OUROBOROS),
"n_examples": len(rows),
"seed": SEED,
"num_train_epochs": 3,
"lora_r": 16,
"learning_rate": 2e-4,
"training_loss": loss,
"label": "MEASURED" if loss == loss else "UNKNOWN",
"lambda": "Conjecture 1",
"doctrine": "v11 LOCKED 749/14/163",
"proposal_only": True,
"computed_at": datetime.now(timezone.utc).isoformat(),
}
path = "training_receipt.json"
open(path, "w", encoding="utf-8").write(json.dumps(receipt, indent=2))
api.upload_file(path_or_fileobj=path, path_in_repo="training_receipt.json", repo_id=HUB, repo_type="model",
commit_message="chore(receipt): MEASURED KHIPU-R2 training receipt")
print("[khipu-r2] receipt uploaded")
|