Построить умные трубопроводы ИИ с напечатанными многомерными векторами

Построить умные трубопроводы ИИ с напечатанными многомерными векторами

7 августа 2025 г.

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

В этом посте мы сломаемся:

  • Какие виды векторов поддерживают кокосочеистые
  • Как они представлены в Python
  • Как мы справляемся с размерностью
  • Как они сопоставляются с Qdrant Vectors или полезными нагрузками
  • Практические примеры использования

✅ Поддерживаемые типы векторов Python

Кокоиндекс принимает ряд типов векторов с сильными гарантиями набора текста.

Обратите внимание, что Cocoindex автоматически выводит типы, поэтому, если вы определяете поток, вам не нужно явно указывать какие -либо типы, подобные этому. Вам нужно явно указывать типы только при определении пользовательских функций.

✅ 1. Одномерные векторы


from cocoindex import Vector, Float32
from typing import Literal

Vector[Float32]                         # dynamic dimension
Vector[Float32, Literal[384]]          # fixed dimension of 384

Эти типы интерпретируются как:

  • Основной тип Python: numpy.typing.NDArray[np.float32]илиlist[float]
  • Измерение: При использовании сLiteral[N], размер размера явно соблюдается
  • Поддерживаемые типы номеров:
    • Нативные типы Python:floatВint
    • Псевдонимы типа кокосоиндекса:Float32ВFloat64ВInt64, это псевдонимы для нативных типов Python, но аннотируются информацией типа кокосоиндекса, чтобы указать точный размер бита. Используя их в качестве пользовательских типов возврата функции, вы можете управлять точным типом, используемым в нижнем, внутри двигателя и цели и многого другого
    • Numpy Number Types:numpy.float32Вnumpy.float64Вnumpy.int64

✅ 2. Двумерные векторы (мультиблэк)


Vector[Vector[Float32, Literal[3]], Literal[2]]

Это объявляет вектор с двумя рядами 3-элементных векторов. Они рассматриваются какМноголевторы(например, множественные вторжения за точку).

  • Основной тип Python: numpy.typing.NDArray[np.float32, Literal[3, 2]]или вложенlist[list[float]]
  • Семантика: Полезно для сценариев, таких как сравнение наборов внедрений по элементу, предприятиям с несколькими просмотрами или пакетными кодировками

🧠 Что такое многомерный вектор?

АМногомерный векторэто просто вектор, элементы которых сами являются векторами - по сути матрица или вложенного списка. В кокоиндекс мы представляем это, используяVector[Vector[T, N], M], значениеМвекторы, каждое измерениеНеПолемМиНеявляются необязательными - кокосоиндекс не требует, чтобы они были фиксированы, в то время как некоторые цели имеют требования, например, Мультивектор, экспортированный в Qdrant, должен иметь фиксированное внутреннее измерение, т.е.Vector[Vector[T, N]]Полем

Эта концепция имеет решающее значение в глубоком обучении и мультимодальном приложениях - например:

  • Изображение может быть представлено в качестве коллекции встраиваний на уровне патча.
  • Документ может быть разбит на векторы уровня абзаца.
  • Пользовательский сеанс может быть последовательности поведенческих векторов.

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


🧭 Когда использовать мульти-векторные встроения

Вот сценарии, гдеМноговорные встраиваниясветить:

🖼 1. Видение: патч -встраивание

Представьте себе изображение 1024x1024, обработанное трансформатором зрения (VIT). Вместо одного глобального вектора изображений, выходы vitвектор на патч(например, патчи 8x8 → 64 векторы).

В случае использования:


Vector[Vector[Float32, Literal[768]]]
  • 196 патчей, каждая с внедрением 768-DIM
  • ВключаетЛокальное сопоставление функцийиПоиск региона

📄 2. Текст: документ с параграфами

Длинный документ разделен на абзацы или предложения:


Vector[Vector[Float32, Literal[384]]]
  • 10 векторов абзацев по 384 DIMS каждый
  • Лучше, чем усреднение всех векторов - сохраняет контекст и структуру

Теперь вы можете:

  • Поиск в подразделениях документа
  • Получить документы на основе одного соответствующего абзаца
  • Реализовать иерархический поиск или перезаконник

👤 3. Поведение пользователя: сеансы или временные ряды

Каждое пользовательское сеанс можно просматривать как последовательность действий, кликов или состояний:


Vector[Vector[Float32, Literal[16]]]
  • 20 шагов в сеансе, каждая из которых представлен 16-градусным вектором

Полезно в:

  • Электронная коммерция: нажмите «Последовательности»
  • Финансы: временные ряды встраивания
  • UX Analytics: многоэтапные взаимодействия

🧬 4. Scientific & Biomedical: Multi-Eview Enterdings

Молекула или белок могут иметь множественные конформации, графики или прогнозы:


Vector[Vector[Float32, Literal[128]]]
  • 5 различных видов или методов измерения
  • Сравните молекулы не только одним вектором, но и через их скрытые пространства

🔍 Почему бы просто не использовать плоский вектор?

Вы можете сгладить многоветатель Multi-Vector 2x3[[1,2,3],[4,5,6]]в[1,2,3,4,5,6]- Но ты проиграешьСемантические границыПолем

С настоящими многоэккторами:

  • Каждый суб вектор сохраняет свое значение
  • Вы можете соответствовать/запросить всубъекторный уровень
  • Вектор DBS, как Qdrant CanОценка по нескольким вставкам, выбор лучшего матча (например, ближайший патч, абзац или шаг)
  • Внутренний вектор может иметь фиксированное измерение, даже если внешнее измерение является переменным, что довольно распространено, например, Количество исправлений изображений и количества абзацев статей зависит от конкретных данных. Вектор, имеющий исправление, требуется большинством векторных баз данных, так как это важно для построения индекса вектора.

🧬 Cocoindex → Qdrant Type Mapping

Qdrant - популярная векторная база данных, которая поддерживает обаплотные векторыиМноголевторыПолем Кокосочевые типы векторных типов в Qdrant-совместимых форматах следующим образом:

Тип кокосоиндекса

Тип Qdrant

Vector[Float32, Literal[N]]

Плотный вектор

Vector[Vector[Float32, Literal[N]]]

Мультиватор

Что-нибудь еще

Хранится как часть Qdrant's JSONполезная нагрузка

Qdrant принимает только векторы сФиксированное измерениеПолем Cocoindex автоматически обнаруживает векторные формы и карты не поддерживают или динамические векторы в полезные нагрузки.


🧾 Модель кокосоиндекса модели модели данных

В Cocoindex данные структурированы как строки и поля:

  • АрядсоответствуетQdrant Point
  • Аполеможет либо:
    • Бытьназванный вектор, если он соответствует векторным ограничениям Qdrant
    • Быть частьюполезная нагрузка, для несоответствующих типов

Этот гибридный подход дает вам гибкость структурированных метаданных с силой векторного поиска.


Последние мысли

Благодаря возможности поддерживать глубоко напечатанные векторы и многомерные встраивания, кокосоиндекс привносит структуру и семантическую прозрачность в векторные трубопроводы. Независимо от того, индексируете изображения, текстовые, аудио или абстрактные представления графа - наша система печати гарантирует совместимость, отказа и правильность в масштабе.

Готовы принести свой собственный Lego в векторный мир?Начните строить с кокосоиндексомсегодня.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE