/ Модель

Характеристики

Контекст
512 токенов
Параметры
25,9 млн
Лицензия
Apache 2.0
Архитектура
bert · dense
Базовая модель
snowflake-arctic-embed-xs
Библиотека
sentence-transformers
Опубликована
26 мар 2026

arctic-embed-xs-entity-resolution

ЭмбеддингиТекст → embedding5 профессий

Компактная англоязычная модель эмбеддингов для сопоставления и дедупликации записей о контрагентах по названиям, адресам и идентификаторам.

625скачиваний за 30 дней2лайкавеса обновлены26 мар 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Эмбеддинги» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

themelder/arctic-embed-xs-entity-resolution — модель эмбеддингов, созданная командой Melder на основе Snowflake/snowflake-arctic-embed-xs и оптимизированная для сопоставления записей об одних и тех же объектах в разнородных наборах данных. Она предназначена прежде всего для связывания контрагентов по названиям, адресам и идентификаторам, включая сокращения, опечатки и неполные поля, а также для дедупликации записей.

Модель использует архитектуру BERT с 6 слоями, 12 головами и размерностью скрытого состояния 384; в метаданных указано 25,9 млн параметров. Она формирует 384-мерные L2-нормализованные векторы, а сходство записей оценивается косинусным сходством. Контекст составляет 512 токенов. Модель дообучена методом LoRA на синтетических данных финансового домена; доступны веса Safetensors и экспорт ONNX. README сообщает о снижении перекрытия оценок совпадающих и несовпадающих пар и росте precision и recall на отложенной выборке.

Модель рассчитана на короткие англоязычные названия и адреса, а не на длинные документы или универсальный семантический поиск. Она может хуже работать с другими типами сущностей и не предназначена для надёжного сопоставления аббревиатур с полными названиями. Лицензия — Apache-2.0.

Сценарии применения

  • сопоставление контрагентов между справочником и операционными данными
  • поиск дублей организаций с вариантами написания названий
  • сопоставление записей с опечатками, сокращениями и пропущенными полями
  • связывание юридических названий организаций с короткими названиями
  • ранжирование пар коротких записей по вероятности совпадения

Ограничения

Оптимизирована для коротких англоязычных названий и адресов финансовых организаций; на других типах сущностей и длинных текстах может работать хуже. Не обеспечивает надёжное сопоставление аббревиатур с полными названиями.

Для каких профессий подходит5

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Arctic-embed-xs for Entity Resolution

A fine-tuned version of Snowflake/snowflake-arctic-embed-xs optimised for entity resolution -- matching records that refer to the same real-world entity across messy, inconsistent datasets.

The canonical use case is matching counterparty names, addresses, and identifiers between a clean reference master (side A) and noisy operational data (side B). For example, resolving "GS Intl Ltd" to "Goldman Sachs International".

This model was trained as part of Melder, an open-source record matching engine in Rust.

Key results

Evaluated on a held-out dataset of 10,000 entity pairs (never seen during training):

MetricBase model (untrained)This model (R22)
Score overlap (lower is better)0.1620.031 (5.2x reduction)
Combined recall98.1%99.7%
Precision84.2%88.6%
False positives in auto-match1310
Non-matches in review queue2,826184 (93.5% reduction)
Missed matches (clean)419
Missed matches (heavy noise)011

"Score overlap" measures how much the score distributions of true matches and non-matches overlap -- lower means better separation. This model reduces overlap by 5.2x compared to the base model, meaning the scoring threshold between "match" and "not a match" becomes much cleaner.

Combined recall (auto-matched + review) stays at 99.7%, meaning almost no true matches are lost. The main benefit of fine-tuning is cleaning the review queue -- non-matches that would have required human review are pushed clearly below threshold.

When to use this model

  • Entity resolution / record linkage across datasets with name, address, and identifier fields
  • Counterparty matching in financial data (the training domain)
  • Deduplication of entity records with noisy or inconsistent naming
  • Any short-text matching task where entities have legal names, abbreviations, addresses, and codes

The model produces 384-dimensional L2-normalised embeddings. Cosine similarity (= dot product for normalised vectors) between embeddings indicates how likely two records refer to the same entity.

When NOT to use this model

  • General-purpose semantic similarity or retrieval (use the base model instead)
  • Long-document embedding (entity names and addresses are short sequences)
  • Non-English text (trained on English entity names only)
  • Acronym matching ("TRMS" vs "Taylor, Reeves and Mcdaniel SRL") -- no embedding model can reliably resolve these; use a composite scoring approach

Usage

With sentence-transformers

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("themelder/arctic-embed-xs-entity-resolution")

# Encode entity records (concatenate name + address for best results)
queries = ["Goldman Sachs International 133 Fleet Street, London EC4A 2BB"]
candidates = [
    "GS Intl Ltd 133 Fleet St London EC4A 2BB",
    "Morgan Stanley & Co 20 Bank Street, London E14 4AD",
    "Goldman Sachs Asset Management Christchurch Court, London EC1A 7HT",
]

query_emb = model.encode(queries, prompt_name="query")
candidate_emb = model.encode(candidates)

scores = query_emb @ candidate_emb.T
for candidate, score in sorted(zip(candidates, scores[0]), key=lambda x: -x[1]):
    print(f"{score:.3f}  {candidate}")
# 0.872  GS Intl Ltd 133 Fleet St London EC4A 2BB
# 0.614  Goldman Sachs Asset Management Christchurch Court, London EC1A 7HT
# 0.298  Morgan Stanley & Co 20 Bank Street, London E14 4AD

With Melder

In your Melder config YAML, point the model at the HuggingFace model ID or a local path to the ONNX export:

embeddings:
  model: themelder/arctic-embed-xs-entity-resolution

Melder uses the ONNX export (model.onnx) for inference via fastembed. The model produces 384-dimensional embeddings at roughly 2x the speed of BGE-small models (6 layers vs 12).

With ONNX Runtime directly

The repository includes model.onnx for direct use with ONNX Runtime in any language (Rust, C++, Java, etc.) without Python dependencies.

Model details

PropertyValue
Base modelSnowflake/snowflake-arctic-embed-xs
ArchitectureBERT (6 layers, 12 heads, 384 hidden)
Parameters22M
Embedding dimension384
Max sequence length512 tokens
Similarity functionCosine similarity
PoolingCLS token
OutputL2-normalised

Training details

Approach

Fine-tuned using LoRA (Low-Rank Adaptation) over 22 iterative rounds. Each round:

  1. Run Melder's matching pipeline on a training dataset
  2. Extract training pairs: confirmed matches become positives, high-scoring non-matches become hard negatives
  3. Fine-tune the model with LoRA on the accumulated pairs
  4. Evaluate on a fixed holdout set
  5. Repeat with the improved model

This iterative approach means the model learns from its own mistakes -- hard negatives from round N become training signal for round N+1. Combined with accumulation of pairs across all rounds, the model sees progressively harder examples.

Hyperparameters

ParameterValue
Loss functionMultipleNegativesRankingLoss
Batch size128
Learning rate2e-5
Epochs per round1
Warmup ratio0.1
LoRA rank8
LoRA alpha16
LoRA dropout0.1
Rounds22
Total training pairs (final round)~127,000
OptimizerAdamW (fused)

Training data

Synthetic entity resolution data generated by Melder's data generator:

  • Side A (reference): 10,000 synthetic entity records with legal names, short names, country codes, LEIs, and addresses
  • Side B (query): 10,000 records per round -- 60% true matches (with noise: case changes, abbreviations, typos, missing fields), 10% ambiguous/heavy noise, 30% unmatched entities
  • Holdout: A separate B dataset (seed 9999) never used in training, used for all evaluation metrics

Training pairs consist of:

  • Positives: confirmed matched entity pairs (name + address concatenation)
  • Hard negatives: high-scoring non-matches from Melder's review queue -- entities that look similar but are not the same

Why Arctic-embed-xs?

We tested four base models across 12 experiments:

ModelParametersBest overlapCombined recallEncoding speed
all-MiniLM-L6-v222M(baseline only)--2x
BAAI/bge-small-en-v1.533M0.07097.3%1x
BAAI/bge-base-en-v1.5110M0.046~98.5%0.5x
Snowflake/arctic-embed-xs22M0.03199.7%2x

Arctic-embed-xs won on every metric despite being the smallest model. Its superior pre-training (400M samples with hard negative mining) gives it better out-of-the-box entity discrimination than larger models trained on simpler data.

Overlap trajectory

Score overlap coefficient across training rounds (holdout, lower is better):

R0R4R8R10R14R17R22
0.1620.1560.0850.0470.0340.0330.031

The model converges cleanly with no regression or oscillation. Extended training to R26 confirmed convergence (overlap 0.030, within noise).

Limitations

  • Domain-specific: optimised for financial entity names and addresses. May underperform on other entity types (products, locations, people) without additional fine-tuning.
  • English only: trained on English-language entity data.
  • Short text: designed for entity names and addresses (typically 5-30 tokens). Not suitable for paragraph-level text.
  • Acronyms: cannot match acronyms to full names (e.g. "TRMS" to "Taylor, Reeves and Mcdaniel SRL"). This is a fundamental limitation of embedding models -- use a composite scoring approach (embedding + fuzzy + BM25) for production deployments.
  • 30 irreducible missed matches out of 6,024 reachable pairs on the holdout set (19 clean, 11 heavy noise). These are extreme noise cases that no embedding model in this size class can resolve.

Citation

If you use this model, please cite:

@misc{melder-arctic-embed-xs-er,
    title={Arctic-embed-xs fine-tuned for Entity Resolution},
    author={Melder Contributors},
    year={2026},
    url={https://huggingface.co/themelder/arctic-embed-xs-entity-resolution},
}

Acknowledgements

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · sentence-transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
BertModel
Ревизия весов
c3a7c77

0 моделей