Specialist Embedder PRD Blocker
Date: 2026-06-06
PRD: docs/prds/specialist-embedder.md
Status: blocked for this pass.
Why This Is Blocked
The PRD is a real Tier 2 modality, not a small CLI/documentation follow-up. Shipping it honestly requires:
- A new encoder/pooling architecture in
TinyGPTModel. - A
.tinygpt-embedfile variant and loader/inference path. - Teacher embedding generation from BGE-M3, which is a multi-GB model pull.
- Contrastive/matryoshka training loops and hard-negative mining.
- Parquet or LanceDB-compatible vector output.
- Retrieval evals with MRR@K / recall@K.
- Local training and inference smokes.
Those steps involve long model downloads, package installs, and sustained training/benchmark loops. The repo’s macOS safety rules require explicit user approval before running that class of workload.
What Not To Do
Do not add fake tinygpt embed or tinygpt embed-train commands that produce
hash vectors or placeholders. That would make downstream RAG examples look
shipped while the model and eval path do not exist.
Do not download BGE-M3 or run embedding training without approval.
Smallest Honest Next Slice
- Add
EmbedderModel.swiftwith an encoder-only forward and mean-pooling shape tests, using synthetic token IDs only. - Add
embed-train --dry-runthat validates corpus schema and prints the planned teacher/student/matryoshka config without downloading weights. - Add
embed --dry-runthat validates model metadata once.tinygpt-embedexists. - Only after that, request approval for the BGE-M3 download and the first 1,000-row training smoke.
Acceptance Deferred
The PRD acceptance criteria remain deferred:
- No
.tinygpt-embedfile has been produced. - No BGE-M3 distillation smoke has run.
- No LanceDB/parquet vector output has been verified.
- No domain MRR@10 win has been measured.
This PRD should stay blocked until the owner approves the heavy training and dependency work.