/ Модель

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

Лицензия
Apache 2.0
Архитектура
qwen2_5_vl · dense
Библиотека
transformers
Опубликована
2 сен 2026

Pixel-Linguist-II-Midtrain-Only

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

Визуальный энкодер на основе Qwen2.5-VL, который строит эмбеддинги текста и изображений для семантического поиска и сопоставления.

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

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pixel-Linguist-II-Midtrain-Only — визуальный энкодер из статьи EMNLP «On the Design Fundamentals of Pixel Text Representation Learning». Модель разработана для получения эмбеддингов текста и изображений одной башней: текст перед подачей преобразуют в RGB-изображение, поэтому при инференсе токенизатор текста не используется. Архитектура основана на vision tower Qwen2.5-VL и представляет собой ViT с обработкой изображений в исходном разрешении; размер модели — 676,6 млн параметров. Соседние визуальные токены объединяются слоем pooling 2×2, затем эмбеддинги патчей усредняются и нормализуются по L2-норме.

Это абляционный чекпойнт, обученный только по Stage 2: на 26 млн многоязычных семантических текстовых пар и 26 млн пар изображение–текст из LAION-2B, без предварительного Stage 1 на многоязычной Википедии. Модель предназначена для визуального семантического поиска и сопоставления текста с изображениями, включая поиск по документам; текст необходимо самостоятельно отрисовать в изображение. В статье показаны результаты на Visual STS и ViDoRe: модель особенно сильна в поиске по документам, но добавление Stage 1 улучшает кросс-языковое и многоязычное выравнивание. Репозиторий распространяется под лицензией Apache-2.0.

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

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

Ограничения

Текст нужно предварительно отрисовать в изображение; токенизатор текста при инференсе не используется. Вариант обучен без Stage 1, и его кросс-языковое и многоязычное выравнивание слабее, чем у модели, обученной на обоих этапах.

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

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

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

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

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

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

Открыть на Hugging Face

PIXEL LINGUIST II — Mid-Training Only

A vision-only encoder that reads, retrieves and compresses language directly in pixel space. Text is rendered to RGB images and encoded by the same tower that encodes natural images, so no text tokenizer is involved at inference time.

This is the "mid-training only" ablation from the paper — trained directly from the Qwen2.5-VL vision tower on the Stage 2 recipe (26M curated semantic text pairs + 26M LAION image-text pairs), skipping the Stage 1 multilingual Wikipedia pretraining. It is the checkpoint behind the paper's Table 3 and Table 4 headline rows.

Related releases:

ModelCurriculum
Pixel-Linguist-II-PretrainStage 1 only
Pixel-Linguist-II-MidtrainStage 1 + Stage 2
this modelStage 2 only

From the EMNLP paper On the Design Fundamentals of Pixel Text Representation Learning.

Model details

ArchitectureNative-resolution ViT (NaViT-style), Qwen2_5_VisionTransformerPretrainedModel
Initialised fromQwen2.5-VL vision tower
Parameters676.6M
Embedding dim3584
Precisionbfloat16
InputArbitrary resolution / aspect ratio, no lossy resizing
CurriculumStage 2 only (no Stage 1 pretraining)

Adjacent visual tokens are compressed by a 2x2 pooling layer; embeddings are mean-pooled over the (H/2)x(W/2) merged patches per image and L2-normalised.

Results

Spearman correlation for Visual STS, nDCG@5 for ViDoRe (6-subset average, the paper's convention). Qwen2.5-ViT is the untrained backbone.

BenchmarkQwen2.5-ViTStage 1Stage 2 only (this model)Stage 1+2
Visual STS (English)46.5573.2574.7276.03
Visual STS (cross-lingual)33.9848.0453.8357.16
Visual STS (multilingual)46.3064.1361.7965.27
ViDoRe (6 subsets)2.1421.4548.7046.13

This checkpoint is the paper's strongest single model on ViDoRe and already sets state of the art on English Visual STS. Adding Stage 1 pretraining on top (pixel-linguist-2-midtrain) trades a little document retrieval for markedly better cross-lingual and multilingual alignment (+3.3 cross, +3.5 multi) — the curriculum finding of the paper's RQ4.

Usage

import json, torch, torch.nn.functional as F
from huggingface_hub import snapshot_download
from safetensors.torch import load_file
from transformers import AutoImageProcessor
from transformers.models.qwen2_5_vl.modeling_qwen2_5_vl import Qwen2_5_VisionTransformerPretrainedModel
from transformers.models.qwen2_5_vl.configuration_qwen2_5_vl import Qwen2_5_VLVisionConfig

path = snapshot_download("Pixel-Linguist/Pixel-Linguist-II-Midtrain-Only")

config = Qwen2_5_VLVisionConfig(**json.load(open(f"{path}/config.json")))
model = Qwen2_5_VisionTransformerPretrainedModel(config)
model.load_state_dict(load_file(f"{path}/model.safetensors"), strict=True)
model = model.to("cuda", torch.bfloat16).eval()
processor = AutoImageProcessor.from_pretrained(path)


@torch.no_grad()
def encode(images):
    """Embed a list of PIL images (rendered text or natural photos)."""
    inputs = processor(images=images, return_tensors="pt")
    pixel_values = inputs["pixel_values"].to("cuda", torch.bfloat16)
    grid_thw = inputs["image_grid_thw"].to("cuda")

    hidden = model(hidden_states=pixel_values, grid_thw=grid_thw)

    sizes = ((grid_thw[:, 1] // 2) * (grid_thw[:, 2] // 2)).long()
    if sizes.sum() != hidden.shape[0]:
        sizes[-1] += hidden.shape[0] - sizes.sum()
    index = torch.repeat_interleave(torch.arange(len(grid_thw), device="cuda"), sizes)

    pooled = torch.zeros((len(grid_thw), hidden.shape[-1]), dtype=hidden.dtype, device="cuda")
    pooled.index_add_(0, index, hidden)
    pooled = pooled / sizes.unsqueeze(1).to(hidden.dtype).clamp(min=1)
    return F.normalize(pooled, dim=-1)

To embed a string, render it to an image first — that is the whole point of the model. Any renderer works; the paper samples from 393 fonts and 5,000+ DTD textured backgrounds during training so the encoder is robust to layout:

from PIL import Image, ImageDraw

def render(text, size=(448, 64)):
    img = Image.new("RGB", size, "white")
    ImageDraw.Draw(img).text((5, 25), text, fill="black")
    return img

emb = encode([render("a dog runs in the park"),
              render("a puppy is running outside"),
              render("quantum field theory")])
emb @ emb.T

Reproducibility notes. transformers>=4.57 loads the image processor as Qwen2VLImageProcessorFast by default and warns that this "may produce slightly different outputs"; pass use_fast=False to AutoImageProcessor.from_pretrained if you need the slow processor. Scores are also sensitive to how text is rendered — the canvas size and font size act as spatial proxies for this model, so the same string rendered at a different width will give a different embedding.

Training

Text corpus26M curated multilingual semantic text pairs
Image corpus26M natural image-text pairs from LAION-2B
Init fromQwen2.5-VL vision tower (no Stage 1)
ObjectiveSymmetric in-batch InfoNCE, embeddings all-gathered across ranks, logit_scale = 1/0.03
Epochs2
LR / batch5e-5 / 1024
Infra64 GPUs, bf16, DeepSpeed ZeRO-2, gradient checkpointing

Text is rendered on the fly with randomised fonts, sizes, backgrounds, brightness and blur, so the model never sees the same visual instantiation of a string twice. Natural image-text pairs act as a required regulariser — dropping them collapses document retrieval even at full data scale.

Citation

@inproceedings{yuan2026pixel,
  title     = {On the Design Fundamentals of Pixel Text Representation Learning},
  author    = {Yuan, Chaohao and Yuan, Ruifeng and Huang, Zhuoxu and Rong, Yu and
               Cheng, Hong and Chan, Hou Pong and Xiao, Chenghao},
  booktitle = {Proceedings of the 2026 Conference on Empirical Methods in Natural Language Processing (EMNLP)},
  year      = {2026}
}

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
Qwen2_5_VisionTransformerPretrainedModel
Ревизия весов
dff85f7

0 моделей