Поделиться через


Внедрение в .NET

Встраивания — это способ передачи семантического значения в LLM. Они представляют собой числовые представления нечисловых данных, которые LLM может использовать для определения связей между понятиями. Вы можете использовать внедрение, чтобы помочь модели искусственного интеллекта понять смысл входных данных, чтобы они могли выполнять сравнения и преобразования, например суммирование текста или создание изображений из текстовых описаний. LLMs могут немедленно использовать встраиваемые представления, и вы можете хранить их в векторных базах данных для обеспечения семантической памяти при необходимости.

Варианты использования для встраивания

В этом разделе перечислены основные варианты использования для встраивания.

Использование собственных данных для повышения релевантности завершения

Используйте собственные базы данных для создания внедренных данных и интеграции их с LLM, чтобы сделать его доступным для завершения. Это использование эмбеддингов является важным компонентом генерации с дополнением за счёт поиска.

Увеличьте объем текста, который можно поместить в запрос

Используйте встраивания, чтобы увеличить объем контекста, который можно поместить в запрос, не увеличивая число токенов.

Например, предположим, что вы хотите включить в запрос 500 страниц текста. Количество маркеров для такого объема необработанного текста превысит лимит на количество входных маркеров, что делает невозможным включить напрямую в запрос. Вы можете использовать внедрения, чтобы суммировать и разбить большие объемы этого текста на части, которые достаточно малы, чтобы поместить в один вход, а затем оценить сходство каждого фрагмента со всем необработанным текстом. Затем можно выбрать часть, которая лучше всего сохраняет семантический смысл необработанного текста, и использовать её в запросе, без достижения предела токенов.

Выполнение классификации текста, суммирования или перевода

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

Создание и транскрибирование звука

Используйте внедренные аудиофайлы для обработки звуковых файлов или входных данных в приложении.

Например, служба "Azure AI Speech" поддерживает ряд аудио встраиваний, включая преобразование речи в текст и преобразование текста в речь. Звук можно обрабатывать в режиме реального времени или в пакетах.

Преобразование текста в изображения или изображения в текст

Обработка семантического изображения требует внедрения изображений, которые большинство LLM не могут создавать. Используйте модель встраивания изображений, например ViT, для создания векторных представлений изображений. Затем можно использовать эти внедрения с моделью создания изображений для создания или изменения изображений с помощью текста или наоборот. Например, можно использовать модель DALL·E для создания изображений таких как логотипы, лица, животные и пейзажи.

Создание или документирование кода

Используйте внедрение, чтобы помочь модели создать код из текста или наоборот, преобразовав различные выражения кода или текста в общее представление. Например, можно использовать внедрение, чтобы помочь модели создавать или документировать код в C# или Python.

Выбор модели внедрения

Вы создаете внедрения для необработанных данных с помощью модели внедрения ИИ, которая может кодировать нечисловые данные в вектор (длинный массив чисел). Модель также может декодировать внедрение в нечисловые данные, которые имеют то же или аналогичное значение, что и исходные, необработанные данные. Существует множество моделей эмбеддинга, доступных для использования, и модель OpenAI text-embedding-ada-002 является одной из распространённых. Дополнительные примеры см. в списке моделей внедрения , доступных в Azure OpenAI.

Хранение и обработка эмбеддингов в векторной базе данных

После создания эмбеддингов вам потребуется способ их хранения, чтобы позже извлекать их с помощью вызовов к большой языковой модели (LLM). Векторные базы данных предназначены для хранения и обработки векторов, поэтому они являются естественной средой для эмбеддингов. Различные векторные базы данных предлагают различные возможности обработки, поэтому вы должны выбрать одну из них на основе необработанных данных и целей. Дополнительные сведения о ваших вариантах см. в решениях для векторных баз данных.

Использование эмбедингов в решении на основе LLM

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