/ Модель

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

Лицензия
MIT
Базовая модель
Qwen2.5-VL-7B-Instruct
Библиотека
transformers
Опубликована
14 апр 2025

Skywork-VL-Reward-7B

Изображение и текст → текст3 профессии

Мультимодальная модель вознаграждения Skywork для оценки ответов на визуально-текстовые запросы и применения в обучении систем понимания и рассуждения.

3 001скачиваний за 30 дней48лайковвеса обновлены10 июн 2025

Бенчмарки

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

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

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

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

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

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

Skywork-VL-Reward-7B — мультимодальная модель вознаграждения, разработанная Skywork на основе Qwen2.5-VL-7B-Instruct с добавленной value head. Она оценивает ответы на запросы, содержащие текст и визуальные данные, и предназначена для обучения и оценки систем мультимодального понимания и рассуждения, включая применение в мультимодальном обучении с подкреплением. В README указаны результаты 73,1 на VL-RewardBench и 90,1 на RewardBench.

Модель построена на архитектуре Qwen2.5-VL с 7 млрд параметров в базовой модели; репозиторий использует Transformers и формат safetensors. Лицензия — MIT. Модель выдаёт оценки вознаграждения, а не предназначенные для пользователя развёрнутые ответы; сведений о поддерживаемых языках и ограничениях оценки в карточке нет.

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

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

Ограничения

Модель предназначена для оценки и обучения систем, а не для генерации обычных ответов пользователю. README приводит результаты на бенчмарках, но не описывает ограничения оценок или поддерживаемые языки.

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

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

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

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

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

Открыть на Hugging Face

🔥News

May 12, 2025: Our technical report is now available on arXiv and we welcome citations:Skywork-VL Reward: An Effective Reward Model for Multimodal Understanding and Reasoning

April 24, 2025: We released Skywork-VL-Reward-7B, A state-of-the-art multimodal reward model on VLRewardBench, and have released our technical report on the R1V GitHub repository.

Introduction

The lack of multimodal reward models on the market has become a major bottleneck restricting the development of multimodal reinforcement technology. We open source the 7B multimodal reward model Skywork-VL-Reward, injecting new momentum into the industry and opening a new chapter in multimodal reinforcement learning

Skywork-VL-Reward is based on the Qwen2.5-VL-7B-Instruct architecture with the addition of a value head structure for training reward model. We obtained SOTA of 73.1 in VL-RewardBench and high score of 90.1 in RewardBench. In addition, our MPO trained on Skywork-R1V-2.0 further validates the effectiveness of the model. We hope that this multimodal reward model will contribute to the open source community! Please refer to our technical report for more details.

Technical Report

Skywork-VL Reward: An Effective Reward Model for Multimodal Understanding and Reasoning

Evaluation



Usage

Set Up the Environment

conda create -n vl-reward python=3.11
conda activate vl-reward
bash setup.sh

Run the Inference Code

import torch
from transformers import AutoProcessor, Qwen2_5_VLForConditionalGeneration
from trl import AutoModelForCausalLMWithValueHead
from qwen_vl_utils import process_vision_info
from transformers.utils import cached_file
from safetensors import safe_open


processor = AutoProcessor.from_pretrained("Skywork/Skywork-VL-Reward-7B")
# The default range for the number of visual tokens per image in the model is 4-16384.
# You can set min_pixels and max_pixels according to your needs, such as a token range of 256-1280, to balance performance and cost.
# min_pixels = 256*28*28
# max_pixels = 1280*28*28
# processor = AutoProcessor.from_pretrained("Skywork/Skywork-VL-Reward-7B", min_pixels=min_pixels, max_pixels=max_pixels)

model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
    "Skywork/Skywork-VL-Reward-7B",
    device_map="auto",
    torch_dtype=torch.bfloat16,
)
# We recommend enabling flash_attention_2 for better acceleration and memory saving
# pip install flash-attn --no-build-isolation
#
# model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
#     "Skywork/Skywork-VL-Reward-7B",
#     device_map="auto",
#     torch_dtype=torch.bfloat16,
#     attn_implementation="flash_attention_2",
# )

model = AutoModelForCausalLMWithValueHead.from_pretrained(model)
vhead_file = cached_file(
    path_or_repo_id="Skywork/Skywork-VL-Reward-7B", filename="value_head.safetensors"
)
with safe_open(vhead_file, framework="pt", device="cpu") as f:
    vhead_params = {key: f.get_tensor(key) for key in f.keys()}
model.load_state_dict(vhead_params, strict=False)
model.requires_grad_(False)
model.eval()

# score: 23.89
# if you use flash_attention_2 the score will be 23.76
demo_image = "demo.jpg"
demo_question = "Hint: Please answer the question and provide the correct option letter, e.g., A, B, C, D, at the end.\nQuestion: Is Purple the highest value?\nChoices:\n(A) no\n(B) yes"
demo_answer = "The answer is: B"

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image",
                "image": demo_image,
            },
            {
                "type": "text",
                "text": demo_question,
            },
        ],
    },
    {
        "role": "assistant",
        "content": demo_answer,
    },
]
text = processor.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=False
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
    text=[text],
    images=image_inputs,
    videos=video_inputs,
    padding=True,
    return_tensors="pt",
)
inputs = inputs.to("cuda")
values = model(**inputs, return_dict=True, use_cache=False)[-1]
scores = values.gather(
    dim=-1, index=(inputs["attention_mask"].sum(dim=-1, keepdim=True) - 1)
)
score = scores[0].item()
print("Reward Score is: ", score)

Citation

If you use this work in your research, please cite:

@misc{wang2025skyworkvlrewardeffectivereward,
      title={Skywork-VL Reward: An Effective Reward Model for Multimodal Understanding and Reasoning}, 
      author={Xiaokun Wang and Peiyu Wang and Jiangbo Pei and Wei Shen and Yi Peng and Yunzhuo Hao and Weijie Qiu and Ai Jian and Tianyidan Xie and Xuchen Song and Yang Liu and Yahui Zhou},
      year={2025},
      eprint={2505.07263},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2505.07263}, 
}

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

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

GPU в ailist

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

Нельзя запустить

Доступ к модели ограничен автором; у платформы нет доступа к весам.

Ревизия весов
cfc6496

0 моделей