Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описываются типы данных, поддерживаемые поиском ИИ Azure. Поля и значения, используемые в выражениях фильтра, типизируются в соответствии с моделью данных сущностей (EDM). Указание типа данных EDM является обязательным требованием для определения поля.
Заметка
Если вы используете индексаторы, см. статью Сопоставление типов данных для индексаторов в службе "Поиск Azure AI" для получения дополнительных сведений о том, как индексаторы сопоставляют типы данных, относящиеся к источнику, с типами данных EDM в индексе поиска.
Типы данных EDM для векторных полей
Тип векторного поля должен быть допустимым для выходных данных модели встраивания. Например, если вы используете text-embedding-ada-002, формат вывода — Float32 или Collection(Edm.Single). В этом сценарии вы не можете назначить Int8 тип данных, так как приведение из floatint примитивов запрещено. Тем не менее, вы можете приводить от Float32 to Float16 или (Collection(Edm.Half)).
Векторные поля — это массив внедрения. В EDM массив является коллекцией.
| Тип данных | Тип вектора | Описание | Рекомендуемое использование |
|---|---|---|---|
Collection(Edm.Byte) |
Двоичный | 1-разрядный двоичный файл без знака. Общедоступно в разделе «Создать или обновить индекс». | Поддерживает интеграцию с моделями, которые генерируют двоичные вложения, такими как модели двоичного встраивания Cohere v3. или пользовательская логика квантования, которая выдает 1-битный беззнаковый двоичный вывод. Для полей типа Collection(Edm.Byte)см. раздел Индекс двоичных данных , чтобы получить помощь в указании определения поля и алгоритмов векторного поиска для двоичных данных. |
Collection(Edm.Single) |
Float32 |
32-разрядная плавающая точка. Общедоступно в разделе «Создать или обновить индекс». | Тип данных по умолчанию в средствах Майкрософт, создающих поля векторов от вашего имени. Баланс между точностью и эффективностью. Большинство моделей встраивания выдают векторы в виде Float32. |
Collection(Edm.Half) |
Float16 |
16-разрядная плавающая точка с более низкой точностью и диапазоном. Общедоступно в разделе «Создать или обновить индекс». | Полезно для сценариев, когда производительность памяти и вычислений имеет решающее значение, и где жертвуя некоторой точностью является приемлемой. Часто приводит к более быстрому времени выполнения запросов и уменьшению занимаемого объема памяти по сравнению с Float32, хотя и с немного сниженной точностью. Для вложений индексов Float16Float32 можно назначить тип в виде Float16. Вы также можете использовать Float16 его для встраивания моделей или пользовательских процессов квантования, которые генерируют Float16 исходную энергию. |
Collection(Edm.Int16) |
Int16 |
16-разрядное целое число со знаком. Общедоступно в разделе «Создать или обновить индекс». | Обеспечивает меньший объем памяти, занимаемый по сравнению с методами квантования с более высокой точностью, Float32 и поддержку методов квантования, сохраняя при этом достаточную точность для многих приложений. Подходит для случаев, когда важна эффективность памяти. Требует наличия пользовательского квантования, которое выводит векторы в виде Int16. |
Collection(Edm.SByte) |
Int8 |
8-разрядное целое число со знаком. Общедоступно в разделе «Создать или обновить индекс». | Обеспечивает значительный прирост памяти и вычислительной эффективности по сравнению с Float32 или Float16. Однако, скорее всего, требуются дополнительные методы (например, квантизация и чрезмерное увеличение) для смещения сокращения точности и отзыва соответствующим образом. Требует наличия пользовательского квантования, которое выводит векторы в виде Int8. |
Типы данных EDM для невекторных полей
| Тип данных | Описание |
|---|---|
Edm.String |
Текстовые данные. |
Edm.Boolean |
Содержит значения true/false. |
Edm.Int32 |
32-разрядные целые значения. |
Edm.Int64 |
64-разрядные целые значения. |
Edm.Double |
Значения с плавающей запятой с плавающей запятой двойной точности IEEE 754. |
Edm.DateTimeOffset |
Значения даты и времени, представленные в формате OData V4: yyyy-MM-ddTHH:mm:ss.fffZ или yyyy-MM-ddTHH:mm:ss.fff[+|-]HH:mm. Точность полей ограничена DateTimeOffset миллисекундами. Если вы загружаете DateTimeOffset значения с точностью до долей миллисекунды, возвращаемое значение округляется до миллисекунд (например, 2024-04-15T10:30:09.7552052Z возвращается как 2024-04-15T10:30:09.7550000Z). При отправке DateTimeOffset значений с данными часового пояса в индекс поиск Azure AI нормализует эти значения в формате UTC. Например, 2024-01-13T14:03:00-08:00 хранится как 2024-01-13T22:03:00Z. Если необходимо сохранить сведения о часовом поясе, добавьте дополнительное поле в индекс. |
Edm.GeographyPoint |
Точка, представляющая географическое расположение на земном шаре. Для тел запроса и ответа представление значений этого типа следует формату типа GeoJSON "Point". Для URL-адресов OData использует литеральную форму на основе стандарта WKT. Литерал точки создается как geography'POINT(lon lat)". |
Edm.ComplexType |
Объекты, свойства которых сопоставляют с подполями, которые могут иметь любой другой поддерживаемый тип данных. Этот тип позволяет индексировать структурированные иерархические данные, такие как JSON. Объекты в поле типа Edm.ComplexType могут содержать вложенные объекты, но уровень вложенности ограничен. Ограничения описаны в разделе Лимиты обслуживания. |
Collection(Edm.String) |
Список строк. |
Collection(Edm.Boolean) |
Список логических значений. |
Collection(Edm.Int32) |
Список 32-разрядных целых значений. |
Collection(Edm.Int64) |
Список 64-разрядных целых значений. |
Collection(Edm.Double) |
Список числовых значений двойной точности. |
Collection(Edm.DateTimeOffset) |
Список значений даты и времени. |
Collection(Edm.GeographyPoint) |
Список точек, представляющих географические расположения. |
Collection(Edm.ComplexType) |
Список объектов типа Edm.ComplexType. Существует ограничение на максимальное количество элементов для всех коллекций типа Edm.ComplexType в документе. Подробнее см. в разделе Ограничения служб . |
Все вышеперечисленные типы допускают значение null, за исключением коллекций примитивных и сложных типов, например, Collection(Edm.String). Поля, допускающие значение NULL, можно явно задать значение NULL. Они автоматически задают значение NULL при опущении документа, который отправляется в индекс поиска ИИ Azure. Поля коллекции автоматически становятся пустыми ([] в формате JSON), если они отсутствуют в документе. Кроме того, невозможно сохранить значение NULL в поле коллекции.
В отличие от сложных коллекций, верхнего предела на количество элементов в коллекции примитивных типов нет, но верхний предел размера полезных данных в 16 МБ применяется ко всем частям документов, включая коллекции.
Геопространственный тип данных, используемый в выражениях фильтров
В службе "Поиск ИИ Azure" геопространственный поиск выражается как фильтр.
Edm.GeographyPolygon — это многоугольник, представляющий географический регион на земном шаре. Хотя этот тип нельзя использовать в полях документа, его можно использовать в качестве аргумента функции geo.intersects . Литеральная форма URL-адресов в OData основана на стандартах доступа WKT (Well-known text) и простых функций OGC. Многоугольник построен как geography'POLYGON((lon lat, lon lat, ...))".
Важный
Точки в многоугольнике должны располагаться против часовой стрелки. Точки в многоугольнике интерпретируются в порядке счетчика по отношению к внутри многоугольника. Например, 4-точка закрытого многоугольника вокруг Лондона будет -0,3°W 51.6°N [верхний левый] , -0,3°W 51.4°N [нижнее левое], 0.1°E 51.4°N [нижний правый], 0,1°E 51.6°N [верхний правый], -0,3°W 51.6°N [начальная точка].