/ Модель

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

Контекст
131 072 токена
Параметры
7,1 млрд
Размер весов
28,3 ГБ
Лицензия
Своя лицензия
Архитектура
qwen2 · dense
Базовая модель
gte-Qwen2-7B-instruct
Библиотека
sentence-transformers
Опубликована
24 фев 2025

Qodo-Embed-1-7B

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

Модель Qodo на базе Qwen2-7B создаёт эмбеддинги текста и кода для семантического поиска по программным проектам.

170скачиваний за 30 дней37лайковвеса обновлены24 фев 2025

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

  • COIRCodeSearchNetRetrieval

    main_score

    Результат

    0,8816

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

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

  • CodeTransOceanContest

    main_score

    Результат

    0,8967

    MTEB

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

  • CodeSearchNetCCRetrieval

    main_score

    Результат

    0,9129

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

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

  • SyntheticText2SQL

    main_score

    Результат

    0,6883

    MTEB

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

  • CodeFeedbackST

    main_score

    Результат

    0,8544

    MTEB

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

  • CodeFeedbackMT

    main_score

    Результат

    0,7737

    MTEB

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

  • CodeTransOceanDL

    main_score

    Результат

    0,3306

    MTEB

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

  • CosQA

    main_score

    Результат

    0,3262

    MTEB

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

  • AppsRetrieval

    main_score

    Результат

    0,6233

    MTEB

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

  • StackOverflowQA

    main_score

    Результат

    0,94

    MTEB

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

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

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

Qodo-Embed-1-7B — модель эмбеддингов кода, разработанная Qodo для поиска по программному коду. Она дообучена на базе Alibaba-NLP/gte-Qwen2-7B-instruct и использует архитектуру Qwen2 с 7,1 млрд параметров. Модель преобразует текстовые запросы и фрагменты кода в векторы размерностью 3584 для поиска естественным языком по коду и поиска похожего кода.

Модель предназначена для поиска кода, извлечения контекста для RAG и семантического сопоставления кода. README заявляет поддержку Python, C++, C#, Go, Java, JavaScript, PHP, Ruby и TypeScript. Метаданные указывают контекст до 131 072 токенов; README сообщает максимальный размер входа 32 тыс. токенов. Для работы через Transformers указаны зависимости transformers и flash_attn. Репозиторий содержит веса safetensors и имеет лицензию other, поэтому условия использования следует сверять с карточкой модели.

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

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

Ограничения

README указывает лимит входа 32 тыс. токенов, тогда как метаданные указывают контекст 131 072 токена; ориентируйтесь на ограничение используемой конфигурации. Лицензия обозначена как other, поэтому проверьте условия карточки перед использованием.

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

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

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

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

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

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

Открыть на Hugging Face

Qodo-Embed-1

Qodo-Embed-1 is a state-of-the-art code embedding model designed for retrieval tasks in the software development domain. It is offered in two sizes: lite (1.5B) and medium (7B). The model is optimized for natural language-to-code and code-to-code retrieval, making it highly effective for applications such as code search, retrieval-augmented generation (RAG), and contextual understanding of programming languages. This model outperforms all previous open-source models in the COIR and MTEB leaderboards, achieving best-in-class performance with a significantly smaller size compared to competing models.

Languages Supported:

  • Python
  • C++
  • C#
  • Go
  • Java
  • Javascript
  • PHP
  • Ruby
  • Typescript

Model Information

  • Model Size: 7B
  • Embedding Dimension: 3584
  • Max Input Tokens: 32k

Requirements

transformers>=4.39.2
flash_attn>=2.5.6

Usage

Sentence Transformers

from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("Qodo/Qodo-Embed-1-7B")
# Run inference
sentences = [
    'accumulator = sum(item.value for item in collection)',  
    'result = reduce(lambda acc, curr: acc + curr.amount, data, 0)',  
    'matrix = [[i*j for j in range(n)] for i in range(n)]'  
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1536]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Transformers

import torch
import torch.nn.functional as F

from torch import Tensor
from transformers import AutoTokenizer, AutoModel


def last_token_pool(last_hidden_states: Tensor,
                 attention_mask: Tensor) -> Tensor:
    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])
    if left_padding:
        return last_hidden_states[:, -1]
    else:
        sequence_lengths = attention_mask.sum(dim=1) - 1
        batch_size = last_hidden_states.shape[0]
        return last_hidden_states[torch.arange(batch_size, device=last_hidden_states.device), sequence_lengths]


# Each query must come with a one-sentence instruction that describes the task
queries = [
      'how to handle memory efficient data streaming',
      'implement binary tree traversal'
  ]

documents = [
        """def process_in_chunks():
            buffer = deque(maxlen=1000)
            for record in source_iterator:
                buffer.append(transform(record))
                if len(buffer) >= 1000:
                    yield from buffer
                    buffer.clear()""",

        """class LazyLoader:
            def __init__(self, source):
                self.generator = iter(source)
                self._cache = []

            def next_batch(self, size=100):
                while len(self._cache) < size:
                    try:
                        self._cache.append(next(self.generator))
                    except StopIteration:
                        break
                return self._cache.pop(0) if self._cache else None""",

        """def dfs_recursive(root):
            if not root:
                return []
            stack = []
            stack.extend(dfs_recursive(root.right))
            stack.append(root.val)
            stack.extend(dfs_recursive(root.left))
            return stack"""
    ]
input_texts = queries + documents

tokenizer = AutoTokenizer.from_pretrained('Qodo/Qodo-Embed-1-7B', trust_remote_code=True)
model = AutoModel.from_pretrained('Qodo/Qodo-Embed-1-7B', trust_remote_code=True)

max_length = 8192

# Tokenize the input texts
batch_dict = tokenizer(input_texts, max_length=max_length, padding=True, truncation=True, return_tensors='pt')
outputs = model(**batch_dict)
embeddings = last_token_pool(outputs.last_hidden_state, batch_dict['attention_mask'])

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

License

Qodo-Model

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
Qwen2Model
Ревизия весов
81fdb7d

0 моделей