/ Модель

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

Контекст
262 144 токена
Лицензия
Apache 2.0
Архитектура
concor1 · dense
Базовая модель
Qwen3.5-0.8B
Библиотека
transformers
Опубликована
9 авг 2026

ConCor-1

Сегментация изображенийИзображение → mask3 профессии

ConCor-1 сопоставляет фразы с объектами и областями изображения и предсказывает маски для текстовых и визуальных соответствий.

126скачиваний за 30 дней3лайкавеса обновлены11 авг 2026

Бенчмарки

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

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

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

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

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

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

ConCor-1 — модель сопоставления текста и изображений, разработанная исследователями University of Washington, Allen Institute for AI и FAIR at Meta. Она дообучена на мультимодальной основе Qwen3.5-0.8B и предназначена для двунаправленного grounding: связывает фрагменты текста с соответствующими объектами или областями изображения. Для каждого предполагаемого соответствия модель предсказывает маску текста, маску изображения и оценку наличия корректной связи.

Модель подходит для сегментации объектов по описанию, связывания слов или фраз с областями на изображении, а также поиска объектов по списку категорий. Архитектура использует обучаемые bridge-токены, которые совместно обрабатывают визуальные и текстовые признаки; веса опубликованы в формате safetensors, для инференса описан стек PyTorch и Transformers. Карточка указывает английский язык. Лицензия — Apache-2.0.

ConCor-1 ориентирована на выделение соответствий между текстом и визуальными областями, а не на универсальный диалог. Качество масок и обнаружения соответствий зависит от порогов постобработки; README перечисляет настраиваемые пороги присутствия, текста, изображения и NMS.

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

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

Ограничения

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

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

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

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

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

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

Открыть на Hugging Face

ConCor-1

Vision-Language Grounding as Bidirectional Concept Correspondence

Jieyu Zhang1*, Ziqi Gao1,2*, Luke Zettlemoyer1,3, Ranjay Krishna1

1University of Washington · 2Allen Institute for AI · 3FAIR at Meta
*Equal contribution

Quick links

📄 Paper · 🌐 Project page · 💻 GitHub · 🤗 Data · 🎨 Demo

Model Summary

ConCor-1 is a vision-language grounding model designed to explicitly predict bidirectional concept correspondences between language and visual content. Built on a pretrained Qwen3.5-0.8B vision-language backbone, it introduces a set of learnable bridge tokens, each representing a candidate text–image correspondence. By jointly attending to visual and textual tokens, these bridge tokens aggregate multimodal context to represent potential alignments between image regions and text spans. For each bridge token, ConCor-1 simultaneously predicts a text mask identifying the grounded text segment, an image mask localizing the corresponding visual instance, and a presence score indicating whether the proposed pairing is a valid correspondence.

ConCor-1 architecture: vision tokens from the ViT and language tokens from the text enter the pretrained VLM alongside a set of learnable bridge tokens; each bridge token's output state feeds a vision segmentation head, a text segmentation head and a presence head, producing one image mask, one text mask and one presence score per candidate correspondence.

Usage

Environment

The released checkpoint is supported with the following core inference stack:

DependencySupported version
Python>=3.11
PyTorch2.8.0
torchvision0.23.0
Transformers5.3.0

Install a PyTorch/torchvision build compatible with your CUDA environment first. Then install the remaining inference dependencies:

pip install "transformers==5.3.0" "safetensors>=0.4.0" \
  "huggingface_hub>=0.30.0" "numpy>=1.24" "pillow>=10.0" \
  "flash-linear-attention>=0.4.1"

The example below uses PyTorch SDPA for the backbone's full-attention layers. To use FlashAttention-2, install flash-attn>=2.8.0 and set attn_implementation="flash_attention_2". causal-conv1d>=1.4.0 is an optional acceleration dependency for the linear-attention layers.

Image + caption

import torch
from PIL import Image
from transformers import AutoModel, AutoProcessor

model_id = "UWGZQ/ConCor-1"  # or a local path to this repository

processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
model = AutoModel.from_pretrained(
    model_id,
    trust_remote_code=True,
    dtype=torch.bfloat16,
    attn_implementation="sdpa",  # "flash_attention_2" also works
).to("cuda").eval()

image = Image.open("example.png").convert("RGB")
text = (
    "This image depicts a close-up of a brown bear in a natural outdoor setting. "
    "The background consists of lush green grass. In the foreground, a large brown bear "
    "is positioned centrally."
)
# A referring expression works the same way:
# text = "the large brown bear in the foreground"

inputs = processor(images=image, text=text, return_tensors="pt").to("cuda")
with torch.inference_mode(), torch.autocast("cuda", dtype=torch.bfloat16):
    outputs = model(**inputs)

correspondences = processor.post_process_correspondences(
    outputs, text=text, target_sizes=[(image.height, image.width)]
)[0]

for correspondence in correspondences:
    print(
        f"{correspondence['presence_score']:.3f}",
        correspondence["text_phrases"],   # phrases of this correspondence's text mask
        correspondence["text_spans"],     # character spans into `text`
        correspondence["mask"].shape,     # bool array, (height, width)
    )

post_process_correspondences also takes presence_threshold, text_threshold, image_threshold and nms_iou_threshold (defaults 0.1, 0.45, 0.45, 0.5).

example_inference.py wraps this up as a script, including a mask-overlay renderer:

python example_inference.py \
    --image example.png \
    --text "This image depicts a close-up of a brown bear in a natural outdoor setting. The background consists of lush green grass. In the foreground, a large brown bear is positioned centrally." \
    --output overlay.png

Image + category list

image = Image.open("example_2.png").convert("RGB")
text = "baseball player . baseball glove . grass . fence . dog"

inputs = processor(images=image, text=text, return_tensors="pt").to("cuda")
with torch.inference_mode(), torch.autocast("cuda", dtype=torch.bfloat16):
    outputs = model(**inputs)

for correspondence in processor.post_process_correspondences(
    outputs, text=text, target_sizes=[(image.height, image.width)]
)[0]:
    print(f"{correspondence['presence_score']:.3f}", correspondence["text_phrases"])

Batched image–text pairs

images = [Image.open("example.png").convert("RGB"), Image.open("example_2.png").convert("RGB")]
texts = [
    "This image depicts a close-up of a brown bear in a natural outdoor setting. "
    "The background consists of lush green grass. In the foreground, a large brown bear "
    "is positioned centrally.",
    "baseball player . baseball glove . grass . fence . dog",
]

inputs = processor(images=images, text=texts, return_tensors="pt").to("cuda")
with torch.inference_mode(), torch.autocast("cuda", dtype=torch.bfloat16):
    outputs = model(**inputs)

results = processor.post_process_correspondences(
    outputs,
    text=texts,                                                        # the same list of texts
    target_sizes=[(image.height, image.width) for image in images],    # one (height, width) per sample
)

for index, correspondences in enumerate(results):
    print(f"sample {index}: {len(correspondences)} correspondence(s)")
    for correspondence in correspondences:
        print(f"  {correspondence['presence_score']:.3f}", correspondence["text_phrases"])

Files

FilePurpose
configuration_concor1.pyConCor1Config
modeling_concor1.pyConCor1ForConceptCorrespondence and its heads
processing_concor1.pyConCor1Processor: sequence construction + correspondence post-processing
example_inference.pyimage + text → correspondences, with mask overlay
example.png, example_2.pngthe images used in the examples above
model.jpgthe architecture figure above
model.safetensorsweights: bf16 backbone, fp32 prediction heads
requirements.txtthe inference dependencies listed above

Demo

An interactive ZeroGPU demo lives at UWGZQ/ConCor-1-demo.

License and Use

The weights and the code in this repository are released under the Apache 2.0 license. The backbone is Qwen3.5-0.8B, also Apache 2.0.

Citation

@article{zhang2026concor,
  title   = {Vision-Language Grounding as Bidirectional Concept Correspondence},
  author  = {Zhang, Jieyu and Gao, Ziqi and Zettlemoyer, Luke and Krishna, Ranjay},
  year    = {2026}
}

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

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

GPU в ailist

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

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

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

Класс архитектуры
ConCor1ForConceptCorrespondence
Ревизия весов
893acf2

0 моделей