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
feat(train): KHIPU-R2 Unsloth QLoRA on doctrine SFT + ouroboros identity, szl-forge knobs
f14c6a3 verified | #!/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") | |