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
| 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). | |