/ Модель

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

Контекст
8 192 токена
Параметры
2,7 млрд
Размер весов
5,2 ГБ
Лицензия
CC BY-NC 4.0
Архитектура
codexembed2b · dense
Опубликована
17 янв 2025

SFR-Embedding-Code-2B_R

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

Плотная модель Salesforce Research для создания эмбеддингов и поиска по многоязычному коду и тексту.

790скачиваний за 30 дней51лайквеса обновлены28 янв 2025

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SFR-Embedding-Code-2B_R — плотная модель эмбеддингов от Salesforce Research для многоязычного поиска по коду и тексту. Она предназначена для получения векторных представлений, которые можно использовать для поиска и сопоставления запросов с фрагментами кода или текстами. Модель содержит 2,7 млрд параметров, принимает последовательности длиной до 8192 токенов и распространяется в формате safetensors.

В README сообщается о результатах на нескольких задачах поиска по коду и о среднем показателе CoIR 67,4 NDCG@10; модель показала более высокие результаты, чем приведённые в сравнительной таблице открытые модели для эмбеддингов кода. Карточка описывает семейство как многоязычное и многозадачное, но конкретные естественные языки не перечисляет. Лицензия CC BY-NC 4.0 ограничивает коммерческое использование; разработчики также рекомендуют оценивать точность, безопасность и справедливость перед применением, особенно в сценариях высокого риска.

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

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

Ограничения

README не приводит перечень поддерживаемых языков программирования и предупреждает, что модель не оценивалась для всех сценариев применения. Для ответственных и высокорисковых задач требуется отдельная проверка качества, безопасности и справедливости; лицензия CC BY-NC 4.0 не разрешает коммерческое использование.

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

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

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

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

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

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

Открыть на Hugging Face

SFR-Embedding by Salesforce Research.

The Salesforce/SFR-Embedding-Code is a generalist embedding model family for multilingual and multi-task code and Text retrieval. It demonstrates superior performance compared to various open-source code embedding models across multiple code retrieval tasks.

Check out our paper for more details!

We also offer 400M-size model Salesforce/SFR-Embedding-Code-400_R

Ethical Considerations

This release is for research purposes only in support of an academic paper. Our models, datasets, and code are not specifically designed or evaluated for all downstream purposes. We strongly recommend users evaluate and address potential concerns related to accuracy, safety, and fairness before deploying this model. We encourage users to consider the common limitations of AI, comply with applicable laws, and leverage best practices when selecting use cases, particularly for high-risk scenarios where errors or misuse could significantly impact people’s lives, rights, or safety. For further guidance on use cases, refer to our AUP and AI AUP.

License Statement:

Users need to make their own assessment regarding any obligations or responsibilities under the corresponding licenses or terms and conditions pertaining to the original datasets and data. This release is for research purposes only in support of an academic paper.

This released model is a fine-tuned version of Gemma and Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms. Additionally, the use of this model is restricted as set forth in the Gemma Prohibited Use Policy at ai.google.dev/gemma/prohibited_use_policy ("Prohibited Use Policy"), which is hereby incorporated by reference into this Agreement.

Performance on CoIR Benchmark

ModelModel SizeCoIR AVG (NDCG@10)
SFR-Embedding-Code2B67.4
CodeSage-Large-v21.3B64.2
CodeSage-Large1.3B61.0
SFR-Embedding-Code400M61.9
CodeRankEmbed137M60.1
CodeSage-Base356M57.5
Voyage-Code-002-56.3
CodeSage-Small130M54.4

SFR-Embedding Team († indicates co-leaders)

  • Ye Liu
  • Rui Meng
  • Shafiq Rayhan Joty
  • Silvio Savarese
  • Caiming Xiong †
  • Yingbo Zhou †
  • Semih Yavuz †

How to run

Transformers

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

# Each query needs to be accompanied by an corresponding instruction describing the task.
query_instruction_example = "Given Code or Text, retrieval relevant content"
queries = [
    "how to implement quick sort in Python?"
]

# No instruction needed for retrieval passages
passages = [
    "def quick_sort(arr):\n    if len(arr) <= 1:\n        return arr\n    pivot = arr[len(arr) // 2]\n    left = [x for x in arr if x < pivot]\n    middle = [x for x in arr if x == pivot]\n    right = [x for x in arr if x > pivot]\n    return quick_sort(left) + middle + quick_sort(right)",
    "def bubble_sort(arr):\n    n = len(arr)\n    for i in range(n):\n        for j in range(0, n-i-1):\n            if arr[j] > arr[j+1]:\n                arr[j], arr[j+1] = arr[j+1], arr[j]\n    return arr"
]

# load model with tokenizer
model = AutoModel.from_pretrained('Salesforce/SFR-Embedding-Code-2B_R', trust_remote_code=True)

# get the embeddings
max_length = 32768
query_embeddings = model.encode_queries(queries, instruction=query_instruction_example, max_length=max_length)
passage_embeddings = model.encode_corpus(passages, max_length=max_length)

# normalize embeddings
query_embeddings = F.normalize(query_embeddings, p=2, dim=1)
passage_embeddings = F.normalize(passage_embeddings, p=2, dim=1)

scores = (query_embeddings @ passage_embeddings.T) * 100
print(scores.tolist())
# [[69.26929473876953, 58.41606903076172]]

Sentence Transformers

from sentence_transformers import SentenceTransformer

# Each query needs to be accompanied by an corresponding instruction describing the task.
query_instruction_example = "Instruct: Given Code or Text, retrieval relevant content\nQuery: "
queries = ["how to implement quick sort in Python?"]

# No instruction needed for retrieval passages
passages = [
    "def quick_sort(arr):\n    if len(arr) <= 1:\n        return arr\n    pivot = arr[len(arr) // 2]\n    left = [x for x in arr if x < pivot]\n    middle = [x for x in arr if x == pivot]\n    right = [x for x in arr if x > pivot]\n    return quick_sort(left) + middle + quick_sort(right)",
    "def bubble_sort(arr):\n    n = len(arr)\n    for i in range(n):\n        for j in range(0, n-i-1):\n            if arr[j] > arr[j+1]:\n                arr[j], arr[j+1] = arr[j+1], arr[j]\n    return arr"
]

# Load the Sentence Transformer model, including pooling
model = SentenceTransformer('Salesforce/SFR-Embedding-Code-2B_R', trust_remote_code=True)

# Compute the embeddings for both queries and passages. Use 'prompt' for queries only
query_embeddings = model.encode(queries, prompt=query_instruction_example)
passage_embeddings = model.encode(passages)

# Compute the similarities between the queries and passages
similarities = model.similarity(query_embeddings, passage_embeddings)
print(similarities)
# tensor([[0.6927, 0.5842]])

Citation

@article{liu2024codexembed,
  title={CodeXEmbed: A Generalist Embedding Model Family for Multiligual and Multi-task Code Retrieval},
  author={Liu, Ye and Meng, Rui and Jot, Shafiq and Savarese, Silvio and Xiong, Caiming and Zhou, Yingbo and Yavuz, Semih},
  journal={arXiv preprint arXiv:2411.12644},
  year={2024}
}

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей