Skip to content

feat(model-ports): add nomic_embed_v1, jina_v2_base_en, jina_v3 - #212

Open
DarthCeltic wants to merge 3 commits into
aifoundry-org:mainfrom
DarthCeltic:port-bert-family-embeddings
Open

feat(model-ports): add nomic_embed_v1, jina_v2_base_en, jina_v3#212
DarthCeltic wants to merge 3 commits into
aifoundry-org:mainfrom
DarthCeltic:port-bert-family-embeddings

Conversation

@DarthCeltic

Copy link
Copy Markdown
Contributor

Adds nomic_embed_v1, jina_v2_base_en, and jina_v3 text-embedding ports to llama.cpp-et, with model-ports claims for each. Verified live via /embedding endpoint responses, not just GGUF metadata.

Three BERT-family text-embedding models, each a genuinely distinct
execution family: arch=nomic-bert, arch=jina-bert-v2 (ALiBi, 8192-token
context), arch=jina-bert-v3 (RoPE + bundled task-specific LoRA adapters).
None collide with bert (distilbert_sst2) or modern-bert
(modernbert_sentiment) already claimed in this campaign.

Verified live via llama-server's /embedding endpoint (not GGUF-metadata-
only) -- real embedding vectors returned for all 3. jina_v3 needed a
longer load wait than the other two (bundles multiple LoRA adapters).

Registered in artifacts.json only, not benchmark_config.json -- the
shared runner doesn't speak /embedding, same limitation already
documented for distilbert_sst2/modernbert_sentiment.

jina_v3's license is CC-BY-NC-4.0 (non-commercial) -- flagged.
@DarthCeltic
DarthCeltic requested a review from AFOliveira as a code owner July 25, 2026 18:00
@github-actions github-actions Bot added track: model-ports Global approved model ports prize track: community Community support and ecosystem contributions labels Jul 25, 2026
No pre-made GGUF exists anywhere for EuroBERT-210m, and self-conversion
fails: the vendored convert_hf_to_gguf.py registers EuroBertModel and
JinaEmbeddingsV5Model to the eurobert arch, but the only public
EuroBERT-210m checkpoint declares architectures: [EuroBertForMaskedLM],
which isn't recognized -- confirmed live, converter rejects it
immediately.

Also checked whether a real JinaEmbeddingsV5Model-class checkpoint
could substitute: jinaai/jina-embeddings-v5-text-small-retrieval-GGUF
exists and loads, but its GGUF reports arch=qwen3 (a Qwen3-backbone
embedding fine-tune, not the EuroBert class path) -- already a seed
identity, so it wouldn't create new credit even though it works.
@AFOliveira

Copy link
Copy Markdown
Member

Manual ET review passed Nomic Embed and Jina v2/v3 with near-identical ET/CPU embeddings. What remains for model-port credit is to commit the deterministic embedding inputs/oracle vectors and comparison thresholds, pin any floating artifact revisions, and let maintainers adopt the three identities/contracts and approve the runner. Please also acknowledge the non-commercial Jina v3 license in the merge decision. EuroBERT is recipe-only here and needs its own benchmark/claim if intended to count.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

track: community Community support and ecosystem contributions track: model-ports Global approved model ports prize

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants