/ Модель

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

Контекст
131 072 токена
Параметры
1,5 млрд
Лицензия
MIT
Архитектура
qwen2 · dense
Опубликована
12 июл 2024

stella_en_1.5B_v5

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

Модель NovaSearch для создания текстовых эмбеддингов и семантического поиска, с настраиваемой размерностью вектора от 512 до 8192.

14 234скачиваний за 30 дней266лайковвеса обновлены28 июл 2025

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

  • SIB200ClusteringS2S

    main_score

    Результат

    0,2284

    Общий результат 0,4088Общий результат 0,3293Общий результат 0,166
    MTEB

    Публичная таблицадругая ревизия

  • LEMBPasskeyRetrieval

    main_score

    Результат

    0,98

    MTEB

    Публичная таблицадругая ревизия

  • MLQARetrieval

    main_score

    Результат

    0,6658

    Общий результат 0,8242Общий результат 0,821Общий результат 0,6582
    MTEB

    Публичная таблицадругая ревизия

  • XPQARetrieval

    main_score

    Результат

    0,5135

    MTEB

    Публичная таблицадругая ревизия

  • WikipediaRerankingMultilingual

    main_score

    Результат

    0,8812

    MTEB

    Публичная таблицадругая ревизия

  • MIRACLRetrievalHardNegatives

    main_score

    Результат

    0,2501

    MTEB

    Публичная таблицадругая ревизия

  • STSBenchmarkMultilingualSTS

    main_score

    Результат

    0,7606

    MTEB

    Публичная таблицадругая ревизия

  • MasakhaNEWSClassification

    main_score

    Результат

    0,7227

    MTEB

    Публичная таблицадругая ревизия

  • BigPatentClustering.v2

    main_score

    Результат

    0,3495

    MTEB

    Публичная таблицадругая ревизия

  • BulgarianStoreReviewSentimentClassfication

    main_score

    Результат

    0,6681

    MTEB

    Публичная таблицадругая ревизия

  • StatcanDialogueDatasetRetrieval

    main_score

    Результат

    0,2924

    MTEB

    Публичная таблицадругая ревизия

  • CTKFactsNLI

    main_score

    Результат

    0,7294

    MTEB

    Публичная таблицадругая ревизия

  • GerDaLIR

    main_score

    Результат

    0,0608

    MTEB

    Публичная таблицадругая ревизия

  • MassiveScenarioClassification

    main_score

    Результат

    0,681

    Общий результат 0,6791Общий результат 0,3597
    MTEB

    Публичная таблицадругая ревизия

  • IndicGenBenchFloresBitextMining

    main_score

    Результат

    0,8364

    Общий результат 0,8464Общий результат 0,3552Общий результат 0,3079
    MTEB

    Публичная таблицадругая ревизия

  • ImdbClassification

    main_score

    Результат

    0,9666

    MTEB

    Публичная таблицаревизия не подтверждена

  • MassiveIntentClassification

    main_score

    Результат

    0,7361

    Общий результат 0,33Общий результат 0,2879
    MTEB

    Публичная таблицадругая ревизия

  • MultiEURLEXMultilabelClassification

    main_score

    Результат

    0,0488

    Общий результат 0,0544
    MTEB

    Публичная таблицадругая ревизия

  • CQADupstackRetrieval

    main_score

    Результат

    0,3254

    MTEB

    Публичная таблицадругая ревизия

  • STS22

    main_score

    Результат

    0,6577

    MTEB

    Публичная таблицадругая ревизия

  • Tatoeba

    main_score

    Результат

    0,0815

    Общий результат 0,6945Общий результат 0,6356Общий результат 0,2457
    MTEB

    Публичная таблицадругая ревизия

  • FEVERHardNegatives

    main_score

    Результат

    0,7837

    MTEB

    Публичная таблицадругая ревизия

  • CodeSearchNetCCRetrieval

    main_score

    Результат

    0,6895

    MTEB

    Публичная таблицадругая ревизия

  • TweetSentimentClassification

    main_score

    Результат

    0,3688

    MTEB

    Публичная таблицадругая ревизия

  • KorSarcasmClassification

    main_score

    Результат

    0,5376

    MTEB

    Публичная таблицадругая ревизия

  • RiaNewsRetrievalHardNegatives.v2

    main_score

    Результат

    0,7001

    MTEB

    Публичная таблицадругая ревизия

  • STS22.v2

    main_score

    Результат

    0,6699

    MTEB

    Публичная таблицадругая ревизия

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

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

NovaSearch/stella_en_1.5B_v5 — модель встраивания текста, разработанная NovaSearch на основе Alibaba-NLP/gte-large-en-v1.5 и Alibaba-NLP/gte-Qwen2-1.5B-instruct. Она предназначена для поиска релевантных фрагментов по запросу, семантического сходства и других задач сравнения текстов; поддерживает кодирование через SentenceTransformers и Transformers.

Модель построена на плотной архитектуре Qwen2ForCausalLM и содержит 1,5 млрд параметров. Для векторов доступны размерности 512, 768, 1024, 2048, 4096, 6144 и 8192; обычно авторы рекомендуют 1024 измерения. Контекст архитектуры составляет до 131 072 токенов, однако README рекомендует последовательности длиной 512 токенов: модель обучалась на такой длине, а на специализированных задачах поиска по длинным текстам результаты часто снижаются. Для большинства задач предусмотрены инструкции s2p для поиска и s2s для семантического сходства.

Модель подходит для семантического поиска и ранжирования по сходству; метаданные также указывают поддержку извлечения признаков, генерации текста и классификации текста, но README описывает прежде всего получение эмбеддингов. Данные обучения и подробный метод обучения в карточке ещё не опубликованы. Лицензия — MIT.

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

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

Ограничения

Для поиска по длинным текстам качество может снижаться; авторы рекомендуют последовательности до 512 токенов. Данные обучения и подробности метода обучения в карточке не опубликованы.

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

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

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

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

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

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

Открыть на Hugging Face

Updates

We released a Jasper and Stella model technology report and code.(2025.1)

Report: https://arxiv.org/abs/2412.19048

Codes: https://github.com/NovaSearch-Team/RAG-Retrieval

Introduction

The models are trained based on Alibaba-NLP/gte-large-en-v1.5 and Alibaba-NLP/gte-Qwen2-1.5B-instruct. Thanks for their contributions!

We simplify usage of prompts, providing two prompts for most general tasks, one is for s2p, another one is for s2s.

Prompt of s2p task(e.g. retrieve task):

Instruct: Given a web search query, retrieve relevant passages that answer the query.\nQuery: {query}

Prompt of s2s task(e.g. semantic textual similarity task):

Instruct: Retrieve semantically similar text.\nQuery: {query}

The models are finally trained by MRL, so they have multiple dimensions: 512, 768, 1024, 2048, 4096, 6144 and 8192.

The higher the dimension, the better the performance. Generally speaking, 1024d is good enough. The MTEB score of 1024d is only 0.001 lower than 8192d.

Model directory structure

The model directory structure is very simple, it is a standard SentenceTransformer directory with a series of 2_Dense_{dims} folders, where dims represents the final vector dimension.

For example, the 2_Dense_256 folder stores Linear weights that convert vector dimensions to 256 dimensions. Please refer to the following chapters for specific instructions on how to use them.

Usage

You can use SentenceTransformers or transformers library to encode text.

Sentence Transformers

from sentence_transformers import SentenceTransformer

# This model supports two prompts: "s2p_query" and "s2s_query" for sentence-to-passage and sentence-to-sentence tasks, respectively.
# They are defined in `config_sentence_transformers.json`
query_prompt_name = "s2p_query"
queries = [
    "What are some ways to reduce stress?",
    "What are the benefits of drinking green tea?",
]
# docs do not need any prompts
docs = [
    "There are many effective ways to reduce stress. Some common techniques include deep breathing, meditation, and physical activity. Engaging in hobbies, spending time in nature, and connecting with loved ones can also help alleviate stress. Additionally, setting boundaries, practicing self-care, and learning to say no can prevent stress from building up.",
    "Green tea has been consumed for centuries and is known for its potential health benefits. It contains antioxidants that may help protect the body against damage caused by free radicals. Regular consumption of green tea has been associated with improved heart health, enhanced cognitive function, and a reduced risk of certain types of cancer. The polyphenols in green tea may also have anti-inflammatory and weight loss properties.",
]

# !The default dimension is 1024, if you need other dimensions, please clone the model and modify `modules.json` to replace `2_Dense_1024` with another dimension, e.g. `2_Dense_256` or `2_Dense_8192` !
model = SentenceTransformer("dunzhang/stella_en_1.5B_v5", trust_remote_code=True).cuda()
query_embeddings = model.encode(queries, prompt_name=query_prompt_name)
doc_embeddings = model.encode(docs)
print(query_embeddings.shape, doc_embeddings.shape)
# (2, 1024) (2, 1024)

similarities = model.similarity(query_embeddings, doc_embeddings)
print(similarities)
# tensor([[0.8179, 0.2958],
#         [0.3194, 0.7854]])

Transformers

import os
import torch
from transformers import AutoModel, AutoTokenizer
from sklearn.preprocessing import normalize

query_prompt = "Instruct: Given a web search query, retrieve relevant passages that answer the query.\nQuery: "
queries = [
    "What are some ways to reduce stress?",
    "What are the benefits of drinking green tea?",
]
queries = [query_prompt + query for query in queries]
# docs do not need any prompts
docs = [
    "There are many effective ways to reduce stress. Some common techniques include deep breathing, meditation, and physical activity. Engaging in hobbies, spending time in nature, and connecting with loved ones can also help alleviate stress. Additionally, setting boundaries, practicing self-care, and learning to say no can prevent stress from building up.",
    "Green tea has been consumed for centuries and is known for its potential health benefits. It contains antioxidants that may help protect the body against damage caused by free radicals. Regular consumption of green tea has been associated with improved heart health, enhanced cognitive function, and a reduced risk of certain types of cancer. The polyphenols in green tea may also have anti-inflammatory and weight loss properties.",
]

# The path of your model after cloning it
model_dir = "{Your MODEL_PATH}"

vector_dim = 1024
vector_linear_directory = f"2_Dense_{vector_dim}"
model = AutoModel.from_pretrained(model_dir, trust_remote_code=True).cuda().eval()
tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)
vector_linear = torch.nn.Linear(in_features=model.config.hidden_size, out_features=vector_dim)
vector_linear_dict = {
    k.replace("linear.", ""): v for k, v in
    torch.load(os.path.join(model_dir, f"{vector_linear_directory}/pytorch_model.bin")).items()
}
vector_linear.load_state_dict(vector_linear_dict)
vector_linear.cuda()

# Embed the queries
with torch.no_grad():
    input_data = tokenizer(queries, padding="longest", truncation=True, max_length=512, return_tensors="pt")
    input_data = {k: v.cuda() for k, v in input_data.items()}
    attention_mask = input_data["attention_mask"]
    last_hidden_state = model(**input_data)[0]
    last_hidden = last_hidden_state.masked_fill(~attention_mask[..., None].bool(), 0.0)
    query_vectors = last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[..., None]
    query_vectors = normalize(vector_linear(query_vectors).cpu().numpy())

# Embed the documents
with torch.no_grad():
    input_data = tokenizer(docs, padding="longest", truncation=True, max_length=512, return_tensors="pt")
    input_data = {k: v.cuda() for k, v in input_data.items()}
    attention_mask = input_data["attention_mask"]
    last_hidden_state = model(**input_data)[0]
    last_hidden = last_hidden_state.masked_fill(~attention_mask[..., None].bool(), 0.0)
    docs_vectors = last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[..., None]
    docs_vectors = normalize(vector_linear(docs_vectors).cpu().numpy())

print(query_vectors.shape, docs_vectors.shape)
# (2, 1024) (2, 1024)

similarities = query_vectors @ docs_vectors.T
print(similarities)
# [[0.8178789  0.2958377 ]
#  [0.31938642 0.7853526 ]]

Infinity

Usage with Infinity, MIT Licensed Inference Server and Docker.

docker run --gpus all -v $PWD/data:/app/.cache \
michaelf34/infinity:0.0.69-trt-onnx \
v2 --model-id dunzhang/stella_en_1.5B_v5 --batch-size 16 --device cuda --engine torch --port 7997 

Citation


@misc{zhang2025jasperstelladistillationsota,
      title={Jasper and Stella: distillation of SOTA embedding models}, 
      author={Dun Zhang and Jiacheng Li and Ziyang Zeng and Fulong Wang},
      year={2025},
      eprint={2412.19048},
      archivePrefix={arXiv},
      primaryClass={cs.IR},
      url={https://arxiv.org/abs/2412.19048}, 
}

FAQ

Q: The details of training?

A: The training method and datasets will be released in the future. (specific time unknown, may be provided in a paper)

Q: How to choose a suitable prompt for my own task?

A: In most cases, please use the s2p and s2s prompts. These two prompts account for the vast majority of the training data.

Q: How to reproduce MTEB results?

A: Please use evaluation scripts in Alibaba-NLP/gte-Qwen2-1.5B-instruct or intfloat/e5-mistral-7b-instruct

Q: Why each dimension has a linear weight?

A: MRL has multiple training methods, we choose this method which has the best performance.

Q: What is the sequence length of models?

A: 512 is recommended, in our experiments, almost all models perform poorly on specialized long text retrieval datasets. Besides, the model is trained on datasets of 512 length. This may be an optimization term.

If you have any questions, please start a discussion on community.

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

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

GPU в ailist

Универсальный рантайм

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

Подбираем GPU…

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

0 моделей