Instructions to use emrevrg/AUBIN-12B-Control with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use emrevrg/AUBIN-12B-Control with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("google/gemma-4-12B-it") model = PeftModel.from_pretrained(base_model, "emrevrg/AUBIN-12B-Control") - Notebooks
- Google Colab
- Kaggle
Download code/learn_online.py from emrevrg/AUBIN-12B-Control: direct link, hf CLI and curl.
- Browser
- Download file 5 kB
-
https://huggingface.co/emrevrg/AUBIN-12B-Control/resolve/main/code/learn_online.py
- Command line
-
hf download hf://emrevrg/AUBIN-12B-Control/code/learn_online.py
-
curl -L -o learn_online.py https://huggingface.co/emrevrg/AUBIN-12B-Control/resolve/main/code/learn_online.py
5 kB
| """AUBIN-Learn çevrimiçi deney: soru akışında her cevaptan sonra doğru etiket gelir (geri bildirim), sistem anında öğrenir. | |
| İki akış: | |
| * kev_transfer_test — Kev'in de AUBIN'in de HİÇ eğitilmediği kaynaklar (mmlu, emotion, tweet_offensive, qnli, paws, sciq); | |
| bellek BOŞ başlar, yalnız geri bildirimle dolar → "bilmediğini anında öğrenme" ölçümü. | |
| * kev_test — bellek Kev train (+ek veri) ile başlar. | |
| Yöntemler: model (sabit), AUBIN-Learn = bellek + öz-kalibrasyon (Hedge: model/bellek/birleşik uzmanlarına güven kaynak-başına | |
| geri bildirimle kendiliğinden ayarlanır). Aynı maddelerde, aynı sırada; ikinci yarı ayrıca raporlanır (öğrenme etkisi). | |
| Not: Bu, statik kilitli test skoru DEĞİLDİR (akışta etiket görülür); statik skorlar learn_eval.py raporundadır. | |
| python learn_online.py --emb emb_bge.npz --pack model_lp.json.gz --out learn_online.json | |
| """ | |
| import argparse, glob, gzip, json, os, sys | |
| import numpy as np | |
| HERE = os.path.dirname(os.path.abspath(__file__)) | |
| sys.path.insert(0, HERE) | |
| import kevdata | |
| from kev_llm import items | |
| from aubin.learn import DecisionMemory, SelfCalibrator | |
| def run_stream(its, V, lps, T, mem, cal, k=16, tau=0.05, wf=1.0): | |
| hm, hl, src, hk = [], [], [], {} | |
| for j, it in enumerate(its): | |
| lp = np.asarray(lps[j], dtype=np.float64) / T | |
| p, _ = mem.recall(None, it["src"], it["keys"], k, tau, vec=V[j]) | |
| if p is not None: | |
| hk.setdefault(it["src"], []).append(int(np.argmax(p)) == it["y"]) | |
| E = SelfCalibrator.experts(lp, p, wf) | |
| mix, _ = cal.predict(it["src"], E) | |
| hm.append(int(np.argmax(lp)) == it["y"]); hl.append(int(np.argmax(mix)) == it["y"]); src.append(it["src"]) | |
| cal.update(it["src"], E, it["y"]) | |
| mem.learn(None, it["src"], it["keys"], it["y"], vec=V[j]) | |
| half = len(its) // 2 | |
| by = {} | |
| for s, a, b in zip(src, hm, hl): | |
| by.setdefault(s, [[], []]); by[s][0].append(a); by[s][1].append(b) | |
| r = lambda x: round(float(np.mean(x)), 4) | |
| return {"n": len(its), "model": r(hm), "aubin_learn": r(hl), "model_2nd_half": r(hm[half:]), "aubin_learn_2nd_half": r(hl[half:]), | |
| "by_source": {s: {"n": len(v[0]), "model": r(v[0]), "aubin_learn": r(v[1]), | |
| "memory_only_when_available": (r(hk[s]) if hk.get(s) else None), "memory_available": len(hk.get(s, [])), | |
| "model_2nd_half": r(v[0][len(v[0]) // 2:]), "aubin_learn_2nd_half": r(v[1][len(v[1]) // 2:])} for s, v in sorted(by.items())}} | |
| def main(): | |
| ap = argparse.ArgumentParser() | |
| ap.add_argument("--work", default="/tmp/kev"); ap.add_argument("--emb", default="") | |
| ap.add_argument("--pack", required=True); ap.add_argument("--out", default="learn_online.json") | |
| a = ap.parse_args() | |
| emb = a.emb or (glob.glob("/kaggle/input/**/emb_bge.npz", recursive=True) or [""])[0] | |
| Z = np.load(emb) | |
| K = kevdata.load(a.work); tr = items(K["kev_train"]) | |
| VP = Z["VP"].astype(np.float32) | |
| assert len(VP) == len(tr), f"gömme/bellek boyu uyuşmuyor {len(VP)} != {len(tr)} (KEV_EXTRA_TRAIN aynı mı?)" | |
| pack = json.load(gzip.open(a.pack, "rt", encoding="utf-8")) | |
| R = {"protocol": __doc__.split("Not:")[0].strip(), "note": "Statik kilitli test skoru değildir; statik skorlar learn_eval raporunda.", | |
| "runs": {}} | |
| def stream(rp, s, warm, eta, prior): | |
| its = items(K[s]); V = Z["VE_" + s].astype(np.float32); L = rp["suites"][s] | |
| assert all(int(y) == it["y"] for y, it in zip(L["y"], its)) | |
| mem = DecisionMemory() | |
| if warm: | |
| mem.learn_vectors(VP, [x["src"] for x in tr], [x["keys"] for x in tr], [x["y"] for x in tr]) | |
| return run_stream(its, V, L["lp"], rp.get("T", 1.0), mem, SelfCalibrator(eta, prior)) | |
| GRID = [(eta, pr) for eta in (0.3, 1.0, 3.0) for pr in ((0.6, 0.1, 0.3), (0.8, 0.05, 0.15), (0.34, 0.33, 0.33))] | |
| for rn, rp in pack.items(): | |
| out = {} | |
| # öz-kalibrasyon hiperparametreleri (η, başlangıç güveni) YALNIZ dev akışlarında seçilir; test akışlarına bir kez uygulanır | |
| devs = [(s, w) for s, w in (("kev_transfer_dev", False), ("kev_dev", True)) if s in rp["suites"] and "VE_" + s in Z.files] | |
| best = (1.0, (0.6, 0.1, 0.3)) | |
| if devs: | |
| best = max(GRID, key=lambda g: np.mean([stream(rp, s, w, *g)["aubin_learn"] for s, w in devs])) | |
| out["selected_on_dev"] = {"eta": best[0], "prior_model_memory_fused": best[1], "dev_streams": [s for s, _ in devs]} | |
| for s, warm in (("kev_transfer_test", False), ("kev_test", True)): | |
| if s not in rp["suites"]: | |
| continue | |
| out[s] = stream(rp, s, warm, *best) | |
| print(rn, s, best, {k: out[s][k] for k in ("model", "aubin_learn", "model_2nd_half", "aubin_learn_2nd_half")}, flush=True) | |
| R["runs"][rn] = out | |
| json.dump(R, open(a.out, "w"), indent=1) | |
| print("BITTI", a.out, flush=True) | |
| if __name__ == "__main__": | |
| main() | |