Model reference · open weights

ember

Available as managed deployment Embeddings llmrails Embeddings 1 variants 3k dl/mo

ember is an open-weight embedding model from llmrails. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.

Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.

What it is

Released byllmrails
TypeEmbedding models
TaskEmbeddings
Parameters (lead)335M
Context512 tokens
Runs withsentence-transformers
Released2023-10-10
Popularity3k downloads / month
LicenceOpen weights

About

What ember is

This model has been trained on an extensive corpus of text pairs that encompass a broad spectrum of domains, including finance, science, medicine, law, and various others. During the training process, we incorporated techniques derived from the RetroMAE and SetFit research papers.

Read the full model card

Plans

  • The research paper will be published soon.
  • The v2 of the model is currently in development and will feature an extended maximum sequence length of 4,000 tokens.

Usage

Use with transformers:

import torch.nn.functional as F
from torch import Tensor
from transformers import AutoTokenizer, AutoModel

def average_pool(last_hidden_states: Tensor,
                 attention_mask: Tensor) -> Tensor:
    last_hidden = last_hidden_states.masked_fill(~attention_mask[..., None].bool(), 0.0)
    return last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[..., None]

input_texts = [
    "This is an example sentence",
    "Each sentence is converted"
]

tokenizer = AutoTokenizer.from_pretrained("llmrails/ember-v1")
model = AutoModel.from_pretrained("llmrails/ember-v1")

# Tokenize the input texts
batch_dict = tokenizer(input_texts, max_length=512, padding=True, truncation=True, return_tensors='pt')

outputs = model(**batch_dict)
embeddings = average_pool(outputs.last_hidden_state, batch_dict['attention_mask'])

# (Optionally) normalize embeddings
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:1] @ embeddings[1:].T) * 100
print(scores.tolist())

Use with sentence-transformers:

from sentence_transformers import SentenceTransformer
from sentence_transformers.util import cos_sim

sentences = [
	"This is an example sentence",
    "Each sentence is converted"
]

model = SentenceTransformer('llmrails/ember-v1')
embeddings = model.encode(sentences)
print(cos_sim(embeddings[0], embeddings[1]))

Massive Text Embedding Benchmark (MTEB) Evaluation

Our model achieve state-of-the-art performance on MTEB leaderboard

Model NameDimensionSequence LengthAverage (56)
ember-v1102451263.54
bge-large-en-v1.5102451263.23
bge-base-en-v1.576851263.05
text-embedding-ada-0021536819160.99

Limitation

This model exclusively caters to English texts, and any lengthy texts will be truncated to a maximum of 512 tokens.

License

MIT

Citation

@misc{nur2024emberv1,
      title={ember-v1: SOTA embedding model},
      author={Enrike Nur and Anar Aliyev},
      year={2023},
}

From the published model card. Full card on the HuggingFace links in the sidebar.

Benchmarks

Reported results

As published on the model card — the maker's own numbers, not measured by AxForge.

TaskDatasetMetricScore
ClassificationMTEB AmazonCounterfactualClassification (en)accuracy76.060
ClassificationMTEB AmazonCounterfactualClassification (en)ap38.760
ClassificationMTEB AmazonCounterfactualClassification (en)f169.882
ClassificationMTEB AmazonPolarityClassificationaccuracy91.977
ClassificationMTEB AmazonPolarityClassificationap88.635
ClassificationMTEB AmazonPolarityClassificationf191.952
ClassificationMTEB AmazonReviewsClassification (en)accuracy47.938
ClassificationMTEB AmazonReviewsClassification (en)f147.583
RetrievalMTEB ArguAnamap_at_141.252
RetrievalMTEB ArguAnamap_at_1056.567
RetrievalMTEB ArguAnamap_at_10057.076
RetrievalMTEB ArguAnamap_at_100057.080
RetrievalMTEB ArguAnamap_at_352.394
RetrievalMTEB ArguAnamap_at_555.055
RetrievalMTEB ArguAnamrr_at_142.390
RetrievalMTEB ArguAnamrr_at_1057.002
RetrievalMTEB ArguAnamrr_at_10057.531
RetrievalMTEB ArguAnamrr_at_100057.535
RetrievalMTEB ArguAnamrr_at_352.845
RetrievalMTEB ArguAnamrr_at_555.473
RetrievalMTEB ArguAnandcg_at_141.252
RetrievalMTEB ArguAnandcg_at_1064.563
RetrievalMTEB ArguAnandcg_at_10066.667
RetrievalMTEB ArguAnandcg_at_100066.770

Using it via the API

Call it like any OpenAI endpoint

Once AxForge deploys ember for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (ember below is illustrative; you get the exact model name on deployment.)

$ curl -sS https://api.axforge.ai/v1/embeddings \
  -H "Authorization: Bearer $AXFORGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"ember","input":"text to embed"}'

Create an account — your API key is available in the console. 3M free tokens every 30 days with every new account.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms