SEBK4C commited on
Commit
7c396bd
·
verified ·
1 Parent(s): 78ffdee

fluffy-text-v0: alpha adapter from abandoned v1 text-only run (honest card)

Browse files
README.md CHANGED
@@ -24,10 +24,61 @@ we QLoRA the language tower (r=8, α=16, ~32.8M params), freeze the native tower
24
  and pool the last token into one L2-normed embedding. Trained with symmetric
25
  InfoNCE (Ï„=0.02) against frozen, ratcheted retrieval evals.
26
 
27
- ## Status: raw alpha — building in public, no adapters published yet
 
28
 
29
- Training is live. A checkpoint only lands here when it beats the frozen eval by
30
- more than ε — the ratchet rejects everything else, and so far it has rejected
31
- everything. The honest scoreboard and all code live in the GitHub repo:
32
 
33
- **→ https://github.com/SEBK4C/Fluffy-LoRA**
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  and pool the last token into one L2-normed embedding. Trained with symmetric
25
  InfoNCE (Ï„=0.02) against frozen, ratcheted retrieval evals.
26
 
27
+ The honest scoreboard and all code live in the GitHub repo:
28
+ **→ https://github.com/SEBK4C/Fluffy-LoRA**
29
 
30
+ ## Published adapters
 
 
31
 
32
+ ### `fluffy-text-v0/` — alpha artifact from the abandoned v1 text-only run
33
+
34
+ This adapter is published **as a research artifact, not because it passed the
35
+ ratchet** — the ratchet rejected every checkpoint of the run it came from.
36
+ Full disclosure:
37
+
38
+ - **What it is**: LoRA (r=8, α=16, q/k/v/o/gate/up/down projections, ~32.8M
39
+ params) on the language tower of `gemma-4-12b-it`, trained with symmetric
40
+ InfoNCE (Ï„=0.02, in-batch negatives, last-token pooling, L2 norm,
41
+ max_length 512) on **40,941 fully self-synthetic text cards** (no scraped or
42
+ third-party data — rights-clean).
43
+ - **The run was abandoned**: planned as 14 days, stopped by operator decision
44
+ at ~0.4 days wall time, step 1449 of a schedule sized for 200,000 steps
45
+ (~56k were actually achievable in the window). **The learning rate never
46
+ left warmup** (2.5e-5 of the 1e-4 peak at stop); the cosine schedule never
47
+ annealed.
48
+ - **Training loss fell ~5.5×** (9.36 → ~1.7) …
49
+ - **… but retrieval on our frozen eval did not move**: R@1 0.010 vs 0.008
50
+ base-model baseline (≈ random) on the frozen G0 card-retrieval eval,
51
+ n_pool = 1500. Loss-eval decoupling is the run's headline empirical result.
52
+ - **Benchmarks on public tasks (MTEB subsets: SciFact, NFCorpus, FiQA2018,
53
+ STSBenchmark, STS17) are being run now** — base vs +adapter vs a strong
54
+ reference embedder — and this card will be updated with the table, whichever
55
+ way it comes out.
56
+
57
+ Treat it as a checkpoint of scientific interest (what ~1.4k steps of
58
+ contrastive warmup does to a decoder LM's embedding geometry), not as a useful
59
+ embedding model.
60
+
61
+ ### Usage
62
+
63
+ ```python
64
+ import torch, torch.nn.functional as F
65
+ from transformers import AutoModel, AutoTokenizer
66
+ from peft import PeftModel
67
+
68
+ base = AutoModel.from_pretrained("google/gemma-4-12b-it", torch_dtype=torch.bfloat16)
69
+ if hasattr(base, "language_model"):
70
+ base = base.language_model # text tower only, as trained
71
+ model = PeftModel.from_pretrained(base, "SEBK4C/Fluffy-LoRA", subfolder="fluffy-text-v0").eval()
72
+ tok = AutoTokenizer.from_pretrained("google/gemma-4-12b-it")
73
+
74
+ enc = tok(["a query"], padding=True, truncation=True, max_length=512, return_tensors="pt")
75
+ h = model(**enc).last_hidden_state
76
+ idx = enc["attention_mask"].sum(1) - 1 # last real token
77
+ emb = F.normalize(h[torch.arange(h.shape[0]), idx].float(), dim=-1)
78
+ ```
79
+
80
+ ## Status: raw alpha — building in public
81
+
82
+ v1 (text-only) is over; v2 (three-lane multimodal) is being built in the open
83
+ in the GitHub repo. Future checkpoints land here only when they beat the
84
+ frozen evals by more than ε — the ratchet rejects everything else.
fluffy-text-v0/adapter_config.json ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "alora_invocation_tokens": null,
3
+ "alpha_pattern": {},
4
+ "arrow_config": null,
5
+ "auto_mapping": {
6
+ "base_model_class": "Gemma4UnifiedTextModel",
7
+ "parent_library": "transformers.models.gemma4_unified.modeling_gemma4_unified"
8
+ },
9
+ "base_model_name_or_path": "",
10
+ "bias": "none",
11
+ "corda_config": null,
12
+ "ensure_weight_tying": false,
13
+ "eva_config": null,
14
+ "exclude_modules": null,
15
+ "fan_in_fan_out": false,
16
+ "inference_mode": true,
17
+ "init_lora_weights": true,
18
+ "layer_replication": null,
19
+ "layers_pattern": null,
20
+ "layers_to_transform": null,
21
+ "loftq_config": {},
22
+ "lora_alpha": 16,
23
+ "lora_bias": false,
24
+ "lora_dropout": 0.05,
25
+ "lora_ga_config": null,
26
+ "megatron_config": null,
27
+ "megatron_core": "megatron.core",
28
+ "modules_to_save": null,
29
+ "peft_type": "LORA",
30
+ "peft_version": "0.19.1",
31
+ "qalora_group_size": 16,
32
+ "r": 8,
33
+ "rank_pattern": {},
34
+ "revision": null,
35
+ "target_modules": [
36
+ "up_proj",
37
+ "o_proj",
38
+ "k_proj",
39
+ "v_proj",
40
+ "gate_proj",
41
+ "q_proj",
42
+ "down_proj"
43
+ ],
44
+ "target_parameters": null,
45
+ "task_type": null,
46
+ "trainable_token_indices": null,
47
+ "use_bdlora": null,
48
+ "use_dora": false,
49
+ "use_qalora": false,
50
+ "use_rslora": false
51
+ }
fluffy-text-v0/adapter_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c634e113740b28169e1b3a456e1040b74285d67d7311a4a8c7ae1da48b14177d
3
+ size 131220696