
Построить умные трубопроводы ИИ с напечатанными многомерными векторами
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
- Нативные типы Python:
✅ 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 |
---|---|
| Плотный вектор |
| Мультиватор |
Что-нибудь еще | Хранится как часть Qdrant's JSONполезная нагрузка |
Qdrant принимает только векторы сФиксированное измерениеПолем Cocoindex автоматически обнаруживает векторные формы и карты не поддерживают или динамические векторы в полезные нагрузки.
🧾 Модель кокосоиндекса модели модели данных
В Cocoindex данные структурированы как строки и поля:
- АрядсоответствуетQdrant Point
- Аполеможет либо:
- Бытьназванный вектор, если он соответствует векторным ограничениям Qdrant
- Быть частьюполезная нагрузка, для несоответствующих типов
Этот гибридный подход дает вам гибкость структурированных метаданных с силой векторного поиска.
Последние мысли
Благодаря возможности поддерживать глубоко напечатанные векторы и многомерные встраивания, кокосоиндекс привносит структуру и семантическую прозрачность в векторные трубопроводы. Независимо от того, индексируете изображения, текстовые, аудио или абстрактные представления графа - наша система печати гарантирует совместимость, отказа и правильность в масштабе.
Готовы принести свой собственный Lego в векторный мир?Начните строить с кокосоиндексомсегодня.
Оригинал