Feature Extraction
sentence-transformers
Safetensors
qwen3
retrieval
writing-assistant
text-embeddings-inference
Instructions to use phoenixdengly/retrieval-a025 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use phoenixdengly/retrieval-a025 with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("phoenixdengly/retrieval-a025") sentences = [ "The weather is lovely today.", "It's so sunny outside!", "He drove to the stadium." ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [3, 3] - Notebooks
- Google Colab
- Kaggle
File size: 4,039 Bytes
8502a98 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | ---
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).
|