/ Модель

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

Контекст
32 768 токенов
Параметры
63,9 млн
Лицензия
Apache 2.0
Архитектура
minimind · dense
Базовая модель
minimind-3
Библиотека
sentence-transformers
Опубликована
28 июл 2026

minimind-embedding-dense

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

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

17скачиваний за 30 дней0лайковвеса обновлены29 июл 2026

Бенчмарки

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

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

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

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

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

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

MiniMind-Embedding-Dense — плотная модель текстовых эмбеддингов на основе MiniMind-3, разработанная в проекте minimind-embedding. Это причинный Transformer-декодер с 63,9 млн параметров и размером скрытого слоя 768; вектор текста формируется по последнему токену EOS. Обучение использует контрастивную функцию InfoNCE с маскированием вероятных ложных негативов и Matryoshka Representation Learning, поэтому эмбеддинг можно сокращать до 64, 128, 256 или 512 измерений для более быстрого поиска. Максимальная длина контекста — 32 768 токенов.

Модель предназначена для получения векторов текста, поиска семантически близких предложений и извлечения релевантных документов по запросу. В карточке показаны оценки на китайских наборах ATEC, BQ и LCQMC; заявленная область применения — прежде всего китайские тексты, также указана поддержка английского. Карточка отмечает, что качество ограничивают небольшой словарь в 6400 токенов и сравнительно малый объём первого этапа обучения. Модель дообучена на jingyaogong/minimind-3 и распространяется по лицензии Apache-2.0.

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

  • поиск документов по смыслу китайского запроса
  • сравнение семантической близости китайских предложений
  • поиск дубликатов и похожих фраз
  • извлечение релевантных текстов для RAG
  • быстрый грубый поиск с эмбеддингами сокращённой размерности

Ограничения

Небольшой словарь в 6400 токенов затрудняет сжатие китайского текста, а объём данных первого этапа обучения существенно меньше, чем у Qwen3-Embedding. В приведённом сравнении C-MTEB STS модель уступает BGE-small-zh и BGE-large-zh.

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

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

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

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

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

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

Открыть на Hugging Face

MiniMind-Embedding-Dense

params dim max_seq STS

A text embedding model built on the MiniMind-3 small language model (64M params), with the training pipeline fully aligned with Qwen3-Embedding. Part of the minimind-embedding project.

📌 Introduction

This model turns the 64M MiniMind-3 causal language model into a text encoder using three key techniques:

1. Last-Token Pooling

💡 Think of a sentence as a queue of people. The last person (EOS) has "heard" everyone before them through causal attention, so they alone can summarize the whole sentence.

Last-Token Pooling

Instead of BERT-style bidirectional attention + mean pooling, we keep causal (unidirectional) attention and take the hidden state at the appended EOS token. The last token aggregates information from all preceding tokens via causal attention, naturally serving as a sentence summary. This maximizes reuse of pretrained weights.

2. InfoNCE + False-Negative Masking

💡 Contrastive learning is like a "find your friend" game: push the correct match closer, push strangers further away. But what if a "stranger" is actually your friend (false negative)? We detect and mask them!

InfoNCE Contrastive Learning

The core loss is InfoNCE (contrastive). Qwen3-Embedding adds a false-negative mask: if a candidate negative is more similar to the query than the positive (beyond margin=0.1), it's likely a false negative and gets masked out.

False-Negative Masking

3. Matryoshka Representation Learning (MRL)

💡 Like Russian nesting dolls — the big doll (768-dim) contains smaller dolls (512/256/128/64-dim), each fully functional at its size.

Matryoshka MRL

Trained so the vector works at any truncated dimension. Use 64-dim for fast coarse retrieval, 768-dim for precise re-ranking.

🏗️ Model Details

ItemValue
ArchitectureMiniMind-3 (causal decoder-only Transformer)
Parameters64M
Hidden size768
Layers8
Attention heads8 (query) / 4 (KV, GQA)
Vocab size6400
Embedding output dim768 (MRL: truncatable to 512/256/128/64)
Max sequence length8192 (backbone supports 32768)
Poolinglast-token
FeaturesL2-normalized; MRL multi-dim

🎓 Training Details (3 Stages)

StageDataLossStepsFinal LossStatus
1. Weakly-supervisedT2Ranking triplets (90k)Standard InfoNCE1,4130.43✅ Done
2. SupervisedT2Ranking-15 (340k, 15 hard negs)InfoNCE + false-neg mask + MRL63,768 (3 epochs)0.72✅ Done
3. Model mergingLast 5 Stage-2 checkpointsSLERP——✅ Done

Training Loss Curves

Stage 1 (left): 1.16→0.43. Stage 2 (right): 1.47→0.72, 3 epochs with epoch boundaries marked.

HyperparameterValue
Temperature τ0.02
False-neg margin0.1
Hard negatives7 per query
Batch size16
Learning rate1e-5 (Stage 2), 2e-4 (Stage 1)
MRL dims[768, 512, 256, 128, 64]

📊 Evaluation

C-MTEB STS Scores

TaskSamplesScore
ATEC20,0000.265
BQ10,0000.379
LCQMC12,5000.631
STSB1,3610.637
Average0.478

Model Comparison

ModelParamsC-MTEB STS
This model64M0.478
BGE-small-zh24M~0.60
BGE-large-zh326M~0.66
Qwen3-Embedding-0.6B600M~0.66

Honest note: scores are bounded by the small vocab (6400) and limited Stage-1 data (90k vs Qwen3's 150M). The value is the complete, reproducible Qwen3-Embedding pipeline.

🚀 Usage

sentence-transformers

from sentence_transformers import SentenceTransformer
from sentence_transformers.util import cos_sim

model = SentenceTransformer("Muzian/minimind-embedding-dense")

documents = ["天空呈蓝色是因为阳光散射。", "红烧肉的做法是..."]
doc_embs = model.encode(documents, normalize_embeddings=True)

queries = ["天空为什么是蓝色的"]
query_embs = model.encode(queries, prompt_name="query", normalize_embeddings=True)

scores = cos_sim(query_embs, doc_embs)

Matryoshka (truncate dimensions)

# Use only first 256 dims (smaller index, faster search)
emb_256 = embedding[:, :256]
emb_256 = F.normalize(emb_256, p=2, dim=1)

⚠️ Limitations

  1. Small vocabulary (6400) — weak Chinese compression, primary bottleneck
  2. Limited Stage-1 data (90k vs Qwen3's 150M) — scaling is the top improvement direction
  3. SLERP merging shows minimal gain on small models (Stage2 ≈ Stage3)

🙏 Acknowledgements

📄 License

Apache 2.0

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

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

GPU в ailist

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

Нельзя запустить

Архитектура minimind неизвестна transformers в образе рантайма.

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

0 моделей