Новости
Модели
API
keyboard_arrow_down
Читатель
Читайте URL-адреса и ищите информацию в Интернете для получения более подходящей подготовки для получения степени магистра права.
Вложения
Мультимодальные многоязычные вложения мирового класса.
Реранкер
Нейронный ретривер мирового класса для максимального повышения релевантности поиска.
Elastic Inference Service
Запускайте модели Jina непосредственно в Elasticsearch.
MCP terminalCLIarticlellms.txtsmart_toyАгентыdata_objectСхемаmenu_bookДокументы



Авторизоваться
login
Токенизация: обработка чисел как текста
Архитектура модели
Результаты экспериментов
Альтернативные подходы
Заключение
Технический блог
март 06, 2026

Идентификация векторных моделей по сырым числовым значениям

Крошечный трансформер, который создает цифровые отпечатки векторных моделей, считывая необработанные цифры. Без проектирования признаков.
Han Xiao
Han Xiao • 6 минуты чтения
Embedding Fingerprint Demo
Paste any embedding vector and identify which model produced it.

Векторные модели — это «черные ящики». Вы отправляете текст и получаете на выходе вектор. Список чисел с плавающей запятой без меток, водяных знаков или метаданных, сообщающих о его происхождении. Если кто-то передаст вам 1024-мерный вектор, сможете ли вы определить, был ли он создан BGE-M3, jina-embeddings-v5-text-small или Qwen3-Embedding? И даже если два вектора получены из одной и той же модели, сможете ли вы понять, были ли они сгенерированы с использованием инструкции для поиска или для классификации?

Оказывается, это возможно. Числовые закономерности в векторном представлении несут в себе удивительно четкий «отпечаток пальца» модели, которая его создала, и даже промпта инструкции, использованного при выводе. Мы обучили небольшой классификатор на базе трансформера (800 тыс. параметров) для идентификации 68 различных комбинаций моделей и задач из более чем 25 векторных моделей, достигнув точности 87%, анализируя исключительно необработанные числа. Вы можете сами попробовать интерактивное демо: вставьте любой вектор и посмотрите, какую модель и задачу определит классификатор.

tagТокенизация: обработка чисел как текста

1024-мерный вектор — это последовательность из 1024 чисел с плавающей запятой. Чтобы подать его в классификатор, нам нужно представление, которое не делает никаких предположений о структуре значений.

Мы применили смелый подход: рассматриваем каждое число как строку символов-цифр и токенизируем её посимвольно. Это может показаться неэффективным по сравнению с более компактными альтернативами, но, как выяснилось, это верный компромисс. Для такого значения, как -0.1234, последовательность токенов будет следующей:

- 0 . 1 2 3 4

Измерения разделяются токеном [SEP]. Вся последовательность начинается с [CLS]. Полный словарь состоит из 15 токенов:

Digit-level tokenization scheme
Посимвольная токенизация чисел с плавающей запятой. Размер словаря — 15.
Token IDMeaning
0-9Digits
10Minus sign
11Decimal point
12[SEP]
13[CLS]
14[PAD]

При точности в 4 знака после запятой 1024-мерный вектор генерирует примерно 7 700 токенов. 384-мерный вектор создает около 2 900 токенов. Длина последовательности естественным образом варьируется в зависимости от размерности вектора, и при этом не требуется заполнение (padding) или усечение между измерениями. Поскольку токенизатор представляет собой прямое сопоставление целых чисел без обучаемых компонентов, он чрезвычайно эффективен.

tagАрхитектура модели

Model architecture diagram
4-слойный трансформер (только энкодер), 800 тыс. параметров. Словарь 15, длина последовательности до 7 700 токенов.

Классификатор представляет собой небольшой трансформер (только энкодер) с 4 слоями, размерностью 128, 4 головами внимания с RoPE, SwiGLU FFN и RMSNorm. Токен CLS объединяется и проецируется в выходное пространство из 68 классов. Общее количество параметров составляет примерно 800 тыс.

Несмотря на крошечный словарь из 15 токенов, это принципиально задача для длинных последовательностей. Один 1024-мерный вектор превращается в последовательность из 7 700 токенов, что длиннее типичных входных данных в NLP. Модель должна анализировать тысячи токенов-цифр, чтобы уловить статистические закономерности, отличающие выходные данные одной модели от другой. Это делает эффективное внимание и позиционное кодирование (RoPE) необходимыми даже в таком малом масштабе.

tagДанные

Мы использовали 10 000 многоязычных текстовых выборок, каждая из которых была обработана более чем 25 моделями с различными префиксами задач, такими как retrieval.query, retrieval.document, classification и clustering, что в итоге дало 68 различных классов. Важно отметить, что эти 68 классов включают не только разные модели, но и разные промпты инструкций, примененные к одной и той же модели. Например, jina-embeddings-v5-text-small с инструкцией для поиска и jina-embeddings-v5-text-small с инструкцией для классификации рассматриваются как отдельные классы. Цель состоит в том, чтобы определить как саму модель, так и специфичное для задачи поведение, основываясь только на необработанных выходных данных.

Каждый класс разделен на 7 000 обучающих и 3 000 валидационных выборок. Модели охватывают пять выходных размерностей.

DimensionClassesExample Models
3848BGE-small, E5-small, MiniLM, GTE-small
5122BGE-small-zh
76824BGE-base, E5-base, jina-embeddings-v5-text-nano, Nomic, INSTRUCTOR, LaBSE
102432BGE-M3, E5-large, jina-embeddings-v3, jina-embeddings-v5-text-small, Qwen3-0.6B, Snowflake, mxbai
15362GTE-Qwen2-1.5B

Только в группе 1024-мерных моделей необходимо разделить 32 класса, включая модели из одного семейства с разными префиксами задач. Здесь классификатор не может полагаться на длину последовательности; он должен обучаться исключительно на числовых закономерностях.

tagОбучение

Обучение проходило на A100 40GB с использованием смешанной точности, батчинга по длине (length-bucketed batching) и AdamW с косинусным графиком обучения, достигая скорости около 340 тыс. токенов в секунду и 23 800 шагов за эпоху.

tagРезультаты экспериментов

Training curves
Кривые обучения и валидации за 14 эпох (~43 млрд токенов). Точность на обучении 87,3%, на валидации 86,0%.

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

tagМатрица ошибок (Confusion Matrix)

68x68 confusion matrix
Матрица ошибок для 68 классов на полном валидационном наборе (3 000 образцов на класс, всего 204 000). Общая точность 87,0%.

Общая точность составляет 87,0%, что в 59 раз лучше, чем случайное угадывание (1,5%). Несколько моделей классифицируются идеально, включая варианты классификации GTE-large, jina-embeddings-v3 / jina-embeddings-v5-text-small, LaBSE и Paraphrase MiniLM. Самыми сложными случаями являются варианты префиксов задач для одной и той же базовой модели. У Qwen3-0.6B наблюдается наибольшая путаница внутри семейства между 4 типами задач, в то время как jina-embeddings-v5-text-small достигает 92% точности внутри семейства для 5 задач. Тот факт, что разные промпты инструкций для одной и той же модели создают различимые паттерны выходных данных, сам по себе является важным открытием, указывающим на то, что адаптация к задаче оставляет измеримый числовой след, даже если базовые веса идентичны.

Модели из разных семейств (BGE против Jina против E5 против Nomic) разделить гораздо проще, чем варианты задач одной модели. Базовая архитектура и методология обучения оставляют более сильный след, чем специфические для задачи адаптеры. Реальная сложность заключается в группах с размерностью 1024 (32 класса) и 768 (24 класса), где классификатор должен полагаться исключительно на числовые закономерности, а не на длину последовательности.

tagАльтернативные подходы

tagБакет-токенизатор (Bucket Tokenizer)

Квантование каждого измерения в одну из K корзин (например, 256), создающее компактную последовательность длиной D, по одному токену на измерение. Это подход, использованный в Embedding-Converter (ICLR 2025). Для 1024-мерного вектора вы получаете 1024 токена вместо 7 700.

Разбиение на корзины накладывает априорное допущение на распределение значений. Вы должны определить границы корзин до того, как увидите данные. Но разные модели распределяют свои значения принципиально по-разному. Некоторые концентрируют массу в узком диапазоне около нуля, другие равномерно распределяют значения в интервале [-1, 1], и распределение варьируется в зависимости от измерения внутри одной модели. Любая фиксированная схема разбиения либо теряет разрешение там, где значения группируются, либо недостаточно детальна там, где они распределены. Адаптивное разбиение для каждой модели лишает метод смысла, так как для этого нужно заранее знать идентичность модели.

tagMLP фиксированной длины

Подача необработанного вектора напрямую в MLP-классификатор. Фундаментальная проблема здесь выходит за рамки вопроса переменной размерности (наши модели создают векторы от 384 до 1536 измерений). Даже если вы дополните всё до фиксированной длины, вы неявно предполагаете, что индексы измерений семантически выровнены между моделями — что измерение 1 в BGE-M3 соответствует измерению 1 в jina-embeddings-v5-text-small. Это предположение ложно. Различные архитектуры, обучающие данные и цели обучения создают совершенно разные внутренние представления.

Оба альтернативных подхода накладывают структурные допущения, которые модель должна обходить. Посимвольная токенизация цифр избегает их всех. Это наиболее свободное от допущений представление, которое мы смогли найти: вот точные цифры каждого числа по порядку, разделенные маркерами. С остальным разберись сама.

tagЗаключение

Векторные модели обучаются отображать семантически похожие тексты в близкие векторы. Цель обучения ничего не говорит о том, чтобы сделать векторы идентифицируемыми или кодировать «подпись» модели. Тем не менее, эта подпись существует, и она достаточно сильна, чтобы крошечный классификатор мог её обнаружить. «Стиль» векторной модели, специфические числовые паттерны, которые она использует для представления смысла, так же индивидуальны, как почерк. Даже выбор промпта инструкции оставляет обнаруживаемый след.

Это имеет практическую ценность для аудита векторных баз данных, когда исходная модель неизвестна, для проверки того, что API действительно использует заявленную модель, и для обнаружения изменений версий моделей. Что еще более важно, это говорит нам о том, что векторные модели кодируют смысл структурно разными способами, даже когда производят векторы одинаковой размерности.

Категории:
Технический блог
rss_feed

Читать далее
март 11, 2026 • 7 минуты чтения
Бутстрэппинг аудиоэмбеддингов на базе мультимодальных LLM
Han Xiao
Abstract illustration of a sound wave or heartbeat, formed by blue, orange, and gray dots on a white background.
март 06, 2026 • 6 минуты чтения
Идентификация векторных моделей по сырым числовым значениям
Han Xiao
Fingerprint illustration made from numbers, showcasing digital and high-tech design on a light background.
сентябрь 09, 2025 • 11 минуты чтения
Мультимодальные 向量模型 в Llama.cpp и GGUF
Andrei Ungureanu
Alex C-G
Cartoon llama in the center of a white background, emitting laser-like beams from its eyes. The illustration creates a playfu
Поиск Фонда
Читатель
Вложения
Реранкер
Elastic Inference Service
open_in_new
Получить API-ключ Jina
Ограничение скорости
Статус API
Компания
О нас
отдел новостей
Загрузить логотип Jina
open_in_new
Скачать логотип Elastic
open_in_new
Условия
Безопасность
Условия использования
Конфиденциальность
Управление файлами cookie
Эластичный © 2020-2026.