Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Identifikatsiya modeley embeddingov po neobrabotannym chislovym znacheniyam
Dev48
info@dev48.org+375 29 320-40-96WhatsApp@isky_by

© 2026 · Все права защищены.

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

Источник: Jina AI•27 сентября 2026 г. в 15:38

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

Миниатюрный трансформер, который создает «отпечатки пальцев» моделей эмбеддингов, считывая необработанные числовые значения. Никакой инженерии признаков.

Демонстрация «отпечатков» эмбеддингов

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

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

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

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

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

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

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

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

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

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

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

Данные

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

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

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

Обучение

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

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

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

Матрица ошибок

Общая точность составляет 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 класса) векторов, где классификатор должен полагаться исключительно на числовые паттерны, а не на длину последовательности.

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

Токенизатор с бакетами (Bucket Tokenizer)

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

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

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

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

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

Заключение

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

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

← Все статьи

О чём эта статья

Ещё в разделе «Разработка ПО»

Все →
Обнаружение полей форм: меньше пропущенных полей, более аккуратные метки
Datalab

Обнаружение полей форм: меньше пропущенных полей, более аккуратные метки

Как Credem улучшил тестирование приложений с помощью генеративного ИИ
Sopra Steria

Как Credem улучшил тестирование приложений с помощью генеративного ИИ

Выпущена версия MPS 2026.2!
JetBrains

Выпущена версия MPS 2026.2!

Interpals расширяет свой коммерческий охват и управляет более чем 600 объектами с помощью SiteMinder
Siteminder

Interpals расширяет свой коммерческий охват и управляет более чем 600 объектами с помощью SiteMinder

CURE International завершает внедрение электронных медицинских карт во всех своих восьми детских больницах совместно с Thoughtworks
Thoughtworks

CURE International завершает внедрение электронных медицинских карт во всех своих восьми детских больницах совместно с Thoughtworks

Наделите агентов на базе Vercel AI SDK памятью с помощью Redis Agent Memory
Redis

Наделите агентов на базе Vercel AI SDK памятью с помощью Redis Agent Memory

Ещё от Jina AI

Заседание по интересам (BoF) на EMNLP 2026: эмбеддинги, реранкеры и небольшие языковые модели для качественного поиска
Jina AI

Заседание по интересам (BoF) на EMNLP 2026: эмбеддинги, реранкеры и небольшие языковые модели для качественного поиска

Создание аудиоэмбеддингов на основе мультимодальных LLM
Jina AI

Создание аудиоэмбеддингов на основе мультимодальных LLM

jina-embeddings-v5-omni: эмбеддинги для текста, изображений, аудио и видео
Jina AI

jina-embeddings-v5-omni: эмбеддинги для текста, изображений, аудио и видео

jina-reranker-v3.5: более быстрый списочный переранжировщик с гибридным вниманием и самодистилляцией
Jina AI

jina-reranker-v3.5: более быстрый списочный переранжировщик с гибридным вниманием и самодистилляцией

jina-ocr-v1: более быстрое распознавание документов на бюджетных GPU
Jina AI

jina-ocr-v1: более быстрое распознавание документов на бюджетных GPU