retrieval-a025 / README.md
phoenixdengly's picture
model card: honest standing vs frozen Octen/base
8502a98 verified
|
Raw
History Blame Contribute Delete
4.04 kB
---
license: apache-2.0
base_model: Qwen/Qwen3-Embedding-0.6B
library_name: sentence-transformers
pipeline_tag: feature-extraction
tags:
- sentence-transformers
- retrieval
- writing-assistant
---
# retrieval-a025 — Coathink writing-recall embedder
A LoRA fine-tune of `Qwen/Qwen3-Embedding-0.6B`, merged back into the base at
**α = 0.25** (WiSE-FT style interpolation), for one task: **given a sentence a
writer is drafting, retrieve the note card (saved highlight) it draws on.**
`model.safetensors` is 1.1 GB, fp16, 1024-dim, `Qwen3Model`. Standard
SentenceTransformers layout — `SentenceTransformer("<repo-id>")` just works.
## ⚠️ Read this before choosing it
**On our only human-judged benchmark, this model does not beat the frozen
off-the-shelf models it was meant to improve on.**
| model | human-gold nDCG@10 | notes |
|---|---:|---|
| `Octen/Octen-Embedding-0.6B` (native prompt) | **0.3559** | frozen, Apache-2.0 |
| `Qwen/Qwen3-Embedding-0.6B` (no prompt) | 0.3538 | frozen |
| `Octen/Octen-Embedding-0.6B` (no prompt) | 0.3505 | frozen |
| **this model** (a025) | 0.3482 | |
| v2a (pure distill, unreleased) | 0.303 | |
n = 34 queries / 859 cards, one neuroscience paper labeled by its own author.
Paired MDE ≈ 0.030, so **the top four are a statistical tie** — but a tie is the
honest reading, not a win. A separate agent-labeled ruler scores this model
resolvably above base (+0.026), but a cross-ruler agreement test showed that
ruler disagrees with the human anchor on exactly this kind of close call, so we
do not count it.
**Do not use the custom `Instruct: ...` query prefix.** A prompt ablation found
it is net-negative for the base model; frozen base with *no* prompt is the best
number in the table above. If you use Octen, keep *its* native prompt.
## Where it does win: mid-sentence queries
Retrieval in the product fires when the writer **pauses mid-sentence**, not on a
finished sentence. Evaluated in that regime (clause truncated to 40/60% with the
preceding ~30 words prepended), the ranking flips and this model leads:
| operating point | base | octen | **a025** |
|---|---:|---:|---:|
| 40% of clause + context | 0.210 | 0.215 | **0.223** |
| 60% of clause + context | 0.257 | 0.272 | **0.285** |
| 100% clause, no context | 0.354 | **0.356** | 0.348 |
**This is the only claim we make for this model**, and it is a weak one: on a
second, cross-domain ruler (a physics/CS paper, 31 queries / 1101 cards) the
advantage **did not replicate** — a025 and base both scored 0.1795 at 40%. Treat
the mid-sentence edge as unconfirmed outside the domain it was measured in.
## Training
MarginMSE on citation-grounded pairs from unarXive, teacher = `Qwen3-Reranker-4B`
log-odds margins, LoRA r16/α32, then merged at α=0.25. The interpolation is what
made it survive out-of-domain; the pure-distill checkpoint (v2a, 0.303) is worse
than the base it started from.
Scaling this recipe **fails**. A 60k field-balanced set of s2orc citation pairs
(12 fields, hard negatives, same teacher, same loss) produced 0.2475 from base
and 0.2410 continuing from this model — a statistically significant regression
(per-query AUC 0.866 vs base 0.934, gap 0.068 > MDE 0.041). The citation-proxy
signal is misaligned with human writing-utility judgments; more of it does not help.
## Recommendation
For a fresh integration, prefer **`Octen/Octen-Embedding-0.6B`** frozen: tied-best
or better on both rulers, Apache-2.0, 600 MB, same backbone and MLX path, and no
LoRA-merge / prompt-calibration apparatus to maintain. Reach for this model only
if you are specifically working the mid-sentence regime and want to reproduce the
table above.
**No MLX build exists.** `a025-mlx` in the source repo is a broken stub (the
safetensors entry is an 84-byte symlink). A Swift/MLX consumer needs a real
conversion first; `mlx-community/Qwen3-Embedding-0.6B-4bit-DWQ` is the only
ready-made MLX option today, and 4-bit was measured to cost nothing (device
goldset: 4-bit base 0.733 vs bf16 a025 0.730).