Views
No views yet
mlx-embeddings runtime.| Base model | microsoft/harrier-oss-v1-27b |
| Backbone | Gemma3 (decoder-only, last-token pooling) |
| Parameters | 27B |
| Embedding dim | 5376 |
| Max context | 32,768 tokens |
| Quantization | 4-bit affine, group size 64 |
| Size on disk | 14.18 GB |
| License | MIT (inherited from base) |
mlx_embeddings.convert:1python -m mlx_embeddings.convert \
2 --hf-path microsoft/harrier-oss-v1-27b \
3 --mlx-path harrier-oss-v1-27b-MLX-4bit \
4 -q --q-bits 4 --q-group-size 64[Transformer, Pooling, Normalize]
SentenceTransformer pipeline (no Dense projection head in modules.json), but
the upstream mlx_embeddings.models.gemma3_text.Model class unconditionally
expects dense.0.weight / dense.1.weight parameters. A small install-local
patch was applied to gemma3_text.py so that the dense heads are treated as
optional: if the source checkpoint has no dense.* weights, self.dense is
replaced with [] during sanitize(), and the forward pass's
for dense in self.dense: ... loop becomes a no-op. The patched file will be
contributed upstream.1from mlx_embeddings import load, generate
2import mlx.core as mx
3
4model, tokenizer = load("majentik/harrier-oss-v1-27b-MLX-4bit")
5
6output = generate(model, tokenizer, texts=[
7 "How much protein should a female eat?",
8 "Definition of summit",
9])
10embeddings = output.text_embeds # L2-normalized
11similarity = mx.matmul(embeddings, embeddings.T)
12print(similarity)web_search_query), STS (sts_query), and bitext mining (bitext_query). See
config_sentence_transformers.json in this repo for the exact prefixes.microsoft/harrier-oss-v1-27bmlx-embeddingsmajentik/garden1@misc{harrier-oss-v1,
2 title = {Harrier-OSS-v1: multilingual text embeddings},
3 author = {Microsoft},
4 year = {2026},
5 url = {https://huggingface.co/microsoft/harrier-oss-v1-27b}
6}