/ Модель

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

Контекст
131 072 токена
Параметры
7,1 млрд
Архитектура
qwen2 · dense
Базовая модель
Qwen2.5-7B
Библиотека
transformers
Опубликована
26 авг 2026

Eklav-7B-Reranker-CotGen

Генерация текстаТекст → текст4 профессии

Экспериментальная модель на базе Qwen2.5-7B для ранжирования passage по релевантности с использованием цепочки рассуждений и оценки логитов ответа true/false.

114скачиваний за 30 дней0лайковвеса обновлены2 сен 2026

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Eklav-7B-Reranker-CotGen — экспериментальная модель Adarsh Singh, дообученная на базе Qwen/Qwen2.5-7B. Это baseline для метода CotGen: во время обучения модель продолжает частичную цепочку рассуждений учителя и самостоятельно формирует ответ; в данном чекпойнте используется стандартное обучение на полных цепочках рассуждений. Модель предназначена для попарного ранжирования passage по релевантности, в частности в задачах, представленных наборами BRIGHT и NevIR.

Модель имеет плотную архитектуру Qwen2ForCausalLM, 7,1 млрд параметров и контекст до 131 072 токенов. При ранжировании она генерирует цепочку рассуждений, завершающуюся меткой true или false; релевантность рекомендуется оценивать по логитам финального токена, а не по разобранному тексту генерации. Для инференса автор рекомендует vLLM с условием остановки по строке: при генерации через Transformers с фиксированным лимитом токенов модель иногда продолжает длинный текст, повторяется и не завершает ответ. Лицензия в предоставленных данных не указана.

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

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

Ограничения

При генерации с фиксированным лимитом токенов модель может выдавать чрезмерно длинные рассуждения, повторяться и не завершать ответ; автор рекомендует vLLM с остановкой по строке. Оценка проверена одним запуском на домен для BRIGHT.

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

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

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

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

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

Открыть на Hugging Face

Eklav-7B-Reranker-CotGen (CotGen baseline)

Eklav trains a model to pick up a teacher's reasoning mid thought rather than imitate it end to end. The student sees a partial reasoning trace from the teacher, with the answer revealing tail removed, and learns to continue reasoning and produce the answer on its own. The model's own reasoning is conditioned on the teacher's partial trace during training rather than trained to reproduce it word for word. Same base model, same training data as standard full trace CoT distillation, only the training objective changes.

Highlights

  • Standard full trace CoT SFT baseline used to measure Eklav's improvement at this scale

Model details

Base modelQwen/Qwen2.5-7B
TaskPassage reranking (BRIGHT, NevIR)
Training methodCotGen (standard full trace CoT SFT, baseline)
FormatMerged bf16 checkpoint
BRIGHT avg (nDCG@10)26.1

Results

BRIGHT domain results

nDCG@10 on BRIGHT, single evaluation run per domain.

Use as a reranker

This is a pointwise reranker, the same style as Rank1 (jhu-clsp/rank1-7b, which this checkpoint's training recipe reproduces): the model generates a reasoning trace ending in </think> true or </think> false, and relevance is scored from the logits at that final token rather than by parsing generated text, which avoids depending on the model reliably stopping on its own. This checkpoint can generate a long reasoning trace before reaching </think>, so use vLLM with a stop string rather than a fixed transformers.generate token budget, the same setup Rank1's own card recommends and the one used to produce the results on this page.

from vllm import LLM, SamplingParams
import math

model_id = "AdarshSingh7647/Eklav-7B-Reranker-CotGen"
model = LLM(model=model_id, max_model_len=16000)
tokenizer = model.get_tokenizer()

def create_prompt(query: str, passage: str) -> str:
    return (
        "Determine if the following passage is relevant to the query. "
        "Answer only with 'true' or 'false'.\n"
        f"Query: {query}\n"
        f"Passage: {passage}\n<think>"
    )

sampling_params = SamplingParams(
    temperature=0,
    max_tokens=8192,
    logprobs=20,
    stop=["</think> true", "</think> false"],
)

def score(query: str, passage: str) -> float:
    prompt = create_prompt(query, passage)
    output = model.generate([prompt], sampling_params)[0].outputs[0]
    # the answer token is usually the second to last logprob step (vLLM's stop
    # string match can consume one extra token, e.g. <|im_end|>, after it), but
    # scan from the end so this is robust to that off by one
    for step in reversed(output.logprobs or []):
        true_lp = next((v.logprob for k, v in step.items() if tokenizer.decode([k]).strip().lower() == "true"), None)
        false_lp = next((v.logprob for k, v in step.items() if tokenizer.decode([k]).strip().lower() == "false"), None)
        if true_lp is not None and false_lp is not None:
            true_score, false_score = math.exp(true_lp), math.exp(false_lp)
            return true_score / (true_score + false_score)
    return 0.5

query = "What causes seasons on Earth?"
passages = [
    "Seasons are caused by the tilt of Earth's axis relative to its orbit around the Sun.",
    "The Great Wall of China is visible from space, according to popular belief.",
]
ranked = sorted(passages, key=lambda p: score(query, p), reverse=True)
for p in ranked:
    print(p)

We tested a plain transformers.generate loop with a fixed token budget on this checkpoint and saw it occasionally run past a few hundred tokens without closing </think>, degenerating into repetition instead of answering, so we recommend the stop-string based vLLM setup above rather than a fixed max_new_tokens cutoff.

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей