Instructions to use SEBK4C/Fluffy-LoRA with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use SEBK4C/Fluffy-LoRA with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
fluffy-text-v0: alpha adapter from abandoned v1 text-only run (honest card)
Browse files- README.md +56 -5
- fluffy-text-v0/adapter_config.json +51 -0
- fluffy-text-v0/adapter_model.safetensors +3 -0
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 |
-
|
|
|
|
| 28 |
|
| 29 |
-
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|