Поддерживаемые типы данных (поиск по искусственному интеллекту Azure)
В этой статье описываются типы данных, поддерживаемые поиском ИИ Azure. Поля и значения, используемые в выражениях фильтра, вводимы в соответствии с моделью данных сущности (EDM). Указание типа данных EDM является обязательным требованием для определения поля.
Заметка
Если вы используете индексаторы , ознакомьтесь с сопоставлением типов данных индексаторов в службе поиска ИИ Azure дополнительные сведения о том, как индексаторы сопоставляют типы данных с типами данных EDM в индексе поиска.
Типы данных EDM для векторных полей
Тип поля Float32
или Collection(Edm.Single)
. В этом сценарии нельзя назначить тип данных Int8
, так как приведение от float
к int
примитивам запрещено. Однако вы можете приведение от Float32
до Float16
или (Collection(Edm.Half))
.
Векторные поля — это массив внедрения. В EDM массив является коллекцией.
Тип данных | Тип вектора | Описание | Рекомендуемое использование |
---|---|---|---|
Collection(Edm.Byte) |
Двоичный | 1-разрядный двоичный файл без знака. Общедоступная версия в создание или обновление индекса (2024-07-01). | Поддерживает интеграцию с моделями, которые выдают двоичные внедрения, такие как модели внедрения двоичного кода Cohere версии 3. или настраиваемую логику квантизации, которая выдает 1-разрядные двоичные выходные данные без знака. Поля типа Collection(Edm.Byte) см. в разделе Индекс двоичных данных для указания определения поля и алгоритмов поиска векторов для двоичных данных. |
Collection(Edm.Single) |
Float32 |
32-разрядная плавающая точка. Общедоступная версия в создание или обновление индекса (2024-07-01). Этот тип данных также поддерживается в более новых версиях предварительной версии и в стабильной версии 2023-11-01 . |
Тип данных по умолчанию в средствах Майкрософт, создающих поля векторов от вашего имени. Баланс между точностью и эффективностью. Большинство моделей внедрения выдают векторы как Float32 . |
Collection(Edm.Half) |
Float16 |
16-разрядная плавающая точка с более низкой точностью и диапазоном. Общедоступная версия в создание или обновление индекса (2024-07-01). | Полезно для сценариев, когда производительность памяти и вычислений имеет решающее значение, и где жертвуя некоторой точностью является приемлемой. Часто приводит к более быстрому времени запроса и сокращению объема памяти по сравнению с Float32 , хотя с небольшой точностью. Тип Float16 можно назначить индексировать Float32 внедрения как Float16 . Вы также можете использовать Float16 для внедрения моделей или пользовательских процессов квантизации, которые Float16 изначально. |
Collection(Edm.Int16) |
Int16 |
16-разрядное целое число со знаком. Общедоступная версия в создание или обновление индекса (2024-07-01). | Обеспечивает сокращение объема памяти по сравнению с Float32 и поддержкой методов квантизации с более высокой точностью, сохраняя достаточную точность для многих приложений. Подходит для случаев, когда важна эффективность памяти. Требуется, чтобы у вас была настраиваемая квантизация, которая выводит векторы в виде Int16 . |
Collection(Edm.SByte) |
Int8 |
8-разрядное целое число со знаком. Общедоступная версия в создание или обновление индекса (2024-07-01). | Обеспечивает значительный рост эффективности памяти и вычислений по сравнению с 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 с точностью submillisecond, возвращаемое значение округляется до миллисекунда (например, 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 (известный текст) и простых стандартах доступа к функциям 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 [начальная точка].
См. также
- создание индекса
- добавление, обновление или удаление документа
- Обзор индексатора
- Создание индексаторов
- коллекции источников данных