# openjev: локальные NLI-кросс-энкодеры Qwen3.5 от 0,8B до 35B-A3B

Источник: https://modelium.tech/zhurnal/openjev-qwen35-nli-cross-encoder/

В репозитории openjev опубликованы специализированные Qwen3.5-чекпойнты для NLI, reranking и оценки ответов: 0,8B, мультимодальный 4B v2 и MoE 35B-A3B. Веса запускаются локально через Transformers, а для 0,8B автор добавил внешний пакет SGLang 0.5.19. Метаданные репозитория указывают MIT, базовая Qwen3.5 — Apache-2.0; авторские метрики Modelium независимо не воспроизводил.

**openjev** превращает Qwen3.5 в специализированный cross-encoder: модель получает premise и hypothesis и оценивает три класса — `contradiction`, `entailment` и `neutral`. Такой интерфейс можно использовать для reranking, проверки ответа по эталону, фильтрации утверждений и выбора действия агента без генерации длинного текста. В репозитории опубликованы самостоятельные веса нескольких размеров и код локального запуска. [s1](#src-s1)

## Какие чекпойнты доступны

В актуальной закреплённой ревизии находятся три основных варианта:

- `qwen3.5-0.8b-nli-v2s-long` — компактная текстовая модель с контекстом 4K и дополнительными данными для faithfulness, instruction following, false-premise и длинных документов;

- `qwen3.5-4b-nli-v2` — рекомендуемый автором вариант, который принимает текст и изображения;

- `qwen3.5-35b-a3b-nli` — MoE-чекпойнт 35B-A3B с отдельной реализацией sequence-classification и дополнительными MLP-головами для отдельных задач. [s1](#src-s1)

Файлы весов занимают:

- 0,8B — **1 706 036 760 байт** в одном `model.safetensors`;

- 4B v2 — **9 078 635 984 байта** в одном `model.safetensors`;

- 35B-A3B — **69 197 389 504 байта** в двух Safetensors-шардах. [s2](#src-s2) [s3](#src-s3) [s4](#src-s4)

Это размеры скачиваемых весов, а не минимальные требования к RAM или VRAM. Потребление памяти зависит от runtime, формата вычислений, длины входа, vision-компонентов, batch size и промежуточных тензоров. Автор не заявляет универсальную минимальную конфигурацию для всех вариантов.

Основные веса 35B-A3B были загружены 19 сентября 2026 года, а 4B v2 и 0,8B v2s-long — 20 сентября. Ревизия от 21 сентября добавила внешний пакет для SGLang, launcher, клиент и результаты авторского сравнения производительности. [s5](#src-s5)

## Локальный запуск через Transformers

Для обычного локального использования автор предлагает `OpenJevCrossEncoder` из файла `modeling_openjev.py`. Обёртка предоставляет методы `predict`, `predict_hypotheses`, `rerank`, `grade` и доступ к латентным представлениям. Модель также можно загрузить стандартным `AutoModelForSequenceClassification`: конфигурации закрепляют три метки классов и шаблон пары premise/hypothesis. [s1](#src-s1) [s6](#src-s6)

from modeling_openjev import OpenJevCrossEncoderjev = OpenJevCrossEncoder(    "AlexWortega/openjev",    subfolder="qwen3.5-4b-nli-v2")result = jev.rerank(    "Какой газ поглощают растения при фотосинтезе?",    ["кислород", "углекислый газ", "азот"])

4B v2 умеет включать изображение в premise, но для этого нужны `pixel_values` и `image_grid_thw` от image processor Qwen3.5. Это не превращает модель в универсальный VLM-чат: выходом остаются оценки NLI-классов для заданной пары. [s1](#src-s1)

## Пакет SGLang и границы замеров

SGLang штатно не предоставляет sequence-classification класс для Qwen3.5, поэтому репозиторий содержит внешний пакет `sglang_openjev`. Он добавляет классификационную голову к `Qwen3_5ForConditionalGeneration`, сохраняя hybrid cache, mRoPE и vision tower. Автор проверял запуск с **SGLang 0.5.19**; endpoint `/classify` возвращает три сырых logit. [s1](#src-s1) [s7](#src-s7)

hf download AlexWortega/openjev \  --include "qwen3.5-0.8b-nli-v2s-long/*" "code/*" \  --local-dir openjevcd openjev/codebash serve_sglang.sh ../qwen3.5-0.8b-nli-v2s-long 30000

В карточке заявлено ускорение throughput примерно в **1,5–3 раза** относительно Transformers на наборе NLI- и reranking-задач. Тест проводился для 0,8B на одной RTX A6000, причём GPU была разделена с другой задачей; Transformers запускался с batch size 32. Это авторский benchmark конкретного окружения, а не независимый тест Modelium и не обещание такого же выигрыша на другом железе или размере модели. [s1](#src-s1)

## Что показывают авторские оценки

Для 4B v2 автор приводит улучшения относительно предыдущего 4B-чекпойнта: ANLI r3 с 0,42 до 0,63, WANLI с 0,63 до 0,77, image claims с 0,52 до 0,84 и ARC-Challenge reranking с 0,59 до 0,72. Для 0,8B v2s-long в карточке указаны MNLI 86,2/87,1, SciTail 93,2 и RAGTruth AUROC 0,90. [s1](#src-s1)

Эти числа полезны для понимания заявленной специализации, но получены и опубликованы автором модели. Репозиторий включает evaluation-код и raw JSON результатов, однако Modelium не воспроизводил обучение или полный набор тестов. Сравнивать числа с другими моделями следует только при совпадающих датасетах, разбиении, шаблонах и процедуре подсчёта.

## Лицензия и ограничения

Метаданные карточки openjev указывают лицензию **MIT**, а исходная Qwen3.5-4B опубликована под **Apache License 2.0**. Обе лицензии разрешительные и обычно допускают коммерческое использование при соблюдении их условий. При этом в закреплённом дереве openjev отдельного файла `LICENSE` нет: перед перераспространением стоит сохранить upstream-уведомления, проверить условия базового чекпойнта и не полагаться только на короткий тег карточки. [s1](#src-s1) [s8](#src-s8)

Модель англоязычная и предназначена для классификации отношений между утверждениями, а не для свободного диалога. Вариант 35B-A3B требует специальной реализации `Qwen3_5MoeForSequenceClassification`; внешний SGLang-пакет проверен автором прежде всего на 0,8B. Для больших списков гипотез память растёт с количеством и длиной вариантов, поэтому карточка рекомендует разбивать очень крупные наборы на меньшие batch. [s1](#src-s1)

## Источники

1. [openjev pinned model card, revision f004f37](https://huggingface.co/AlexWortega/openjev/blob/f004f37e52695d6ddfb914a64dbf93942839ba1e/README.md) — получено 2026-09-22
2. [openjev 0.8B immutable file tree](https://huggingface.co/api/models/AlexWortega/openjev/tree/f004f37e52695d6ddfb914a64dbf93942839ba1e/qwen3.5-0.8b-nli-v2s-long?recursive=true&expand=true) — получено 2026-09-22
3. [openjev 4B v2 immutable file tree](https://huggingface.co/api/models/AlexWortega/openjev/tree/f004f37e52695d6ddfb914a64dbf93942839ba1e/qwen3.5-4b-nli-v2?recursive=true&expand=true) — получено 2026-09-22
4. [openjev 35B-A3B immutable file tree](https://huggingface.co/api/models/AlexWortega/openjev/tree/f004f37e52695d6ddfb914a64dbf93942839ba1e/qwen3.5-35b-a3b-nli?recursive=true&expand=true) — получено 2026-09-22
5. [openjev commit history](https://huggingface.co/api/models/AlexWortega/openjev/commits/main) — получено 2026-09-22
6. [openjev 4B v2 pinned configuration](https://huggingface.co/AlexWortega/openjev/blob/f004f37e52695d6ddfb914a64dbf93942839ba1e/qwen3.5-4b-nli-v2/config.json) — получено 2026-09-22
7. [openjev pinned SGLang external model package](https://huggingface.co/AlexWortega/openjev/blob/f004f37e52695d6ddfb914a64dbf93942839ba1e/code/sglang_openjev/qwen3_5_seqcls.py) — получено 2026-09-22
8. [Qwen3.5-4B Apache-2.0 license](https://huggingface.co/Qwen/Qwen3.5-4B/blob/851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a/LICENSE) — получено 2026-09-22
