Downloads · 30 days
41
14% of all-time downloads
majentik/harrier-oss-v1-27b-MLX-8bit
harrier-oss-v1-27b-MLX-8bit is a feature extraction model from majentik. Use it when you need embeddings to search or compare text. It is set up for mlx-embeddings. The card lists the license as mit.
MLX-quantized (8-bit, affine, group size 64) conversion of Microsoft's microsoft/harrier-oss-v1-27b — a state-of-the-art multilingual text embedding model (released March 2026) built on a Gemma3 decoder-only backbone…
Downloads · 30 days
41
14% of all-time downloads
All-time downloads
301
Public
Repo size
28.7 GB
Likes
0
Public
Click a slice to open those files.
.safetensors28.7 GB · 100%
From the Hugging Face model README
MLX-quantized (8-bit, affine, group size 64) conversion of Microsoft's microsoft/harrier-oss-v1-27b — a state-of-the-art multilingual text embedding model (released March 2026) built on a Gemma3 decoder-only backbone with last-token pooling and L2 normalization.
This checkpoint is optimized for Apple Silicon via MLX
and the 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 | 8-bit affine, group size 64 |
| Size on disk | 26.76 GB |
| License | MIT (inherited from base) |
The base model reports MTEB v2 = 74.3 (see the upstream model card); quantized variants are expected to be close to this but have not been independently re-evaluated.
Converted with mlx_embeddings.convert:
python -m mlx_embeddings.convert \
--hf-path microsoft/harrier-oss-v1-27b \
--mlx-path harrier-oss-v1-27b-MLX-8bit \
-q --q-bits 8 --q-group-size 64
Harrier-OSS-v1 uses a plain [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.
from mlx_embeddings import load, generate
import mlx.core as mx
model, tokenizer = load("majentik/harrier-oss-v1-27b-MLX-8bit")
output = generate(model, tokenizer, texts=[
"How much protein should a female eat?",
"Definition of summit",
])
embeddings = output.text_embeds # L2-normalized
similarity = mx.matmul(embeddings, embeddings.T)
print(similarity)
The base model was trained with instruction-style prompts for retrieval
(web_search_query), STS (sts_query), and bitext mining (bitext_query). See
config_sentence_transformers.json in this repo for the exact prefixes.
Multilingual (100+ languages). See the upstream model card for the full list.
microsoft/harrier-oss-v1-27bmlx-embeddingsmajentik/garden@misc{harrier-oss-v1,
title = {Harrier-OSS-v1: multilingual text embeddings},
author = {Microsoft},
year = {2026},
url = {https://huggingface.co/microsoft/harrier-oss-v1-27b}
}