/ Модель

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

Контекст
32 768 токенов
Параметры
7,1 млрд
Размер весов
15,2 ГБ
Лицензия
Apache 2.0
Архитектура
qwen2 · dense
Базовая модель
Qwen2.5-7B-Instruct
Библиотека
transformers
Опубликована
18 ноя 2025

Diver-GroupRank-7B

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

Групповой LLM-реранкер на базе Qwen2.5-7B-Instruct, который сравнивает кандидатов и оценивает их релевантность запросу.

64скачиваний за 30 дней7лайковвеса обновлены23 ноя 2025

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AQ-MedAI/Diver-GroupRank-7B — языковая модель-реранкер на 7,1 млрд параметров, разработанная для парадигмы GroupRank и обученная с подкреплением. Она принимает запрос и небольшую группу кандидатов, сравнивает их с учётом контекста группы и выдаёт отдельные оценки релевантности. Модель основана на Qwen2.5-7B-Instruct и дообучена на данных, включающих BRIGHT и reasonrank_data_13k.

Модель предназначена для переранжирования результатов информационного поиска, особенно для запросов, требующих рассуждений и сравнения нескольких документов. В карточке заявлены результаты на BRIGHT и обобщение на классические задачи поиска; длина контекста составляет 32 768 токенов. Архитектура — плотная Qwen2 для генерации текста, а основной сценарий применения — ранжирование текстовых кандидатов.

Модель опубликована под лицензией Apache-2.0. Для использования в групповой схеме нужно передавать запрос и набор кандидатов; качество ранжирования зависит от состава группы и формулировки запроса. В README приведены результаты бенчмарков, но не описаны ограничения по языкам или гарантии качества на конкретных прикладных корпусах.

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

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

Ограничения

Результат зависит от состава группы кандидатов и формулировки запроса. Заявленные результаты относятся к бенчмаркам; качество на конкретных корпусах отдельно не гарантируется.

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

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

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

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

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

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

Открыть на Hugging Face

Introduction

This is the model trained in our paper: GroupRank: A Groupwise Reranking Paradigm Driven by Reinforcement Learning (📝arXiv). Please refer our 🧩github repository for the usage of GroupRank-32B.

Highlights

GroupRank is a reinforcement-learning-powered reranker that breaks the traditional “pointwise vs. listwise” trade-off: it feeds the query together with a small group of candidates to an LLM, lets the model perform within-group comparisons, and outputs individual relevance scores—combining the flexibility of pointwise scoring with the contextual awareness of listwise ranking. Training is driven by GRPO and a heterogeneous reward (NDCG + distributional alignment) that keeps scores consistent across groups, while a synthetic data pipeline eliminates the need for large human-labeled sets. On the reasoning-heavy BRIGHT and R2MED benchmarks, GroupRank sets (7B / 32B) new SOTA NDCG@10 (46.8 / 52.3) with strong generalization to classic retrieval tasks.

Model Performance

BRIGHT 基准测试结果 (NDCG@10)

ModelsBio.Earth.Econ.Psy.Rob.Stack.Sus.Leet.PonyAoPSTheoQ.TheoT.Avg.
Diver-Retriever-4B52.5253.5933.7545.1628.3830.3935.0012.9714.749.8342.5136.3232.93
Non-reasoning reranker
rankT5 (3B)33.0122.8018.968.612.2810.0723.9411.9734.938.9619.6911.7017.24
RankZephyr (7B)42.6019.5118.7929.8513.9813.3329.2912.9731.377.4431.1931.6723.50
Reasoning reranker
Rank-R1 (7B)40.8531.3823.1732.0419.8211.2335.533.776.604.9917.2030.1021.39
Rank-R1 (14B)49.5741.1527.5640.0428.4628.1943.766.9618.457.8834.8043.1130.83
Rank-K (32B)51.0642.3432.9544.5233.0728.4441.5712.8221.628.4839.3143.1533.28
ReasonRank (7B)-w20s1051.6343.4332.4043.9931.0225.6339.8115.3820.076.9538.9140.6932.49
ReasonRank (32B)-w20s1053.8947.5936.3452.6436.4834.1744.4715.2114.815.4740.6345.2935.58
GroupRank-7B56.8553.0635.9448.7536.6535.0543.9915.4815.5310.6441.4546.4036.65
GroupRank-32B59.4856.4940.1250.4638.3639.1643.3219.4816.3213.3446.3947.9139.24

inference

from vllm import LLM, SamplingParams
from collections import defaultdict
from transformers import AutoTokenizer
import random
import torch

random.seed(666)

sys_prompt = '''Your task is to evaluate and rank documents based on how well they help answer the given query. Follow this evaluation priority:
1. PRIMARY: Usefulness & Helpfulness - Does the document provide actionable information, solutions, or direct answers that help address the user's needs?
2. SECONDARY: Relevance - Does the document contain information related to the query topic?

Evaluation Process:
1. First, identify the user's core intent and what kind of help they need from the query
2. For each document, assess:
   - How directly it addresses the user's intent
   - What actionable information or answers it provides
   - How much it helps solve the user's problem or need
3. Compare documents against each other to ensure proper ranking
4. Assign scores that reflect the relative usefulness ranking

Scoring Scale (0-10):
- 9-10: Extremely helpful, directly answers the query with actionable information
- 7-8: Very helpful, provides substantial useful information for the query
- 5-6: Moderately helpful, contains some useful information but incomplete
- 3-4: Minimally helpful, limited useful information despite topic relevance
- 1-2: Barely helpful, mentions related topics but provides little useful information
- 0: Not helpful at all, cannot assist with answering the query
'''

user_prompt = '''I will provide you {TOPK} documents, each indicated by a numerical identifier []. Score these documents based on their Usefulness and Relevance to the query.
Query:
{QUERY}

Documents:
{PASSAGES}

## Final Output Format
You must structure your response in exactly two parts: provide your brief reasoning process first, then output final scores in JSON format like below, with document IDs as string keys and integer scores as values for all {TOPK} documents. 
The reasoning process and answer are enclosed within <reason> </reason> and <answer> </answer> tags, respectively. Do NOT output anything outside the specified tags. Follow this exact format:
<reason> 
[Analyze each document's usefulness and relevance to the query, explaining your scoring rationale]
</reason>
<answer> 
\```json
{{"[1]": 5, "[2]": 3, "[3]": 8}}
\``` 
</answer>
'''

class GroupReranker:
    def __init__(self, model_path, sys_prompt, user_prompt) -> None:
        # vllm offline inference
        self.llm = LLM(model=model_path, dtype="bfloat16", gpu_memory_utilization=0.9, tensor_parallel_size=torch.cuda.device_count(), max_model_len=32000)
        self.tokenizer = AutoTokenizer.from_pretrained(model_path)
        self.sampling_params = SamplingParams(temperature=0.3, top_p=0.8, max_tokens=8000, logprobs=10)

        self.group_system_prompt = sys_prompt
        self.group_user_prompt = user_prompt

    def rerank(self, query, doc_list):
        docs_str = ''.join(["[{}]. {}\n\n".format(idx+1, doc_text) for idx, doc_text in enumerate(doc_list)])

        group_texts = self.group_user_prompt.format(QUERY=query, PASSAGES=docs_str, TOPK=len(doc_list))

        message = self.tokenizer.apply_chat_template(
            [{'role': 'system', 'content': self.group_system_prompt}, 
            {'role': 'user', 'content': group_texts}], tokenize=False, add_generation_prompt=True)

        output = self.llm.generate(message, self.sampling_params, use_tqdm=True)

        return output

🌹 If you use this model, please ✨star our GitHub repository to support us. Your star means a lot!

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей