OpenAI Embeddings API: как работают встраивания?

В OpenAI есть довольно много руководств по embeddings. Я не могу понять, как они работают.

Ссылаясь на https://platform.openai.com/docs/guides/embeddings/what-are-embeddings, embedding — это vector или list. Строка передается модели embedding, и модель возвращает число (просто говоря). Я могу использовать этот номер(а).

Если я использую простую строку, чтобы получить ее embeddings, я получаю огромный список

result = get_embedding("I live in space", engine = "textsearchcuriedoc001mc")

result при печати

[5.4967957112239674e-05,
 -0.01301578339189291,
 -0.002223075833171606,
 0.013594076968729496,
 -0.027540158480405807,
 0.008867159485816956,
 0.009403547272086143,
 -0.010987567715346813,
 0.01919262297451496,
 0.022209804505109787,
 -0.01397960539907217,
 -0.012806257233023643,
 -0.027908924967050552,
 0.013074451126158237,
 0.024942029267549515,
 0.0200139675289392 , ..... -> truncated this much, much, much longer list 

Вопрос 1 — как этот огромный список коррелирует с моим текстом из 4 слов?

Вопрос 2 -

Я создаю embeddings текста, который хочу использовать в запросе. Обратите внимание, что это точно так же, как текст оригинального контента I live in space

queryembedding = get_embedding(
        'I live in space',
        engine = "textsearchcuriequery001mc"
    )
queryembedding

Когда я запускаю cosine similarity, значение равно 0.42056650555103214.

similarity = cosine_similarity(embeddings_of_i_live,queryembedding)
similarity

Я получаю ценность 0.42056650555103214

Разве значение не должно быть 1, чтобы указать идентичное значение?

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
811
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Q1:

Как этот огромный список коррелирует с моим текстом из 4 слов?

A1: Допустим, вы хотите использовать модель OpenAI text-embedding-ada-002. Независимо от того, что вы вводите, вы всегда получите 1536-мерный вектор вложения (т.е. внутри 1536 чисел). Вы, вероятно, знакомы с трехмерным пространством (т. е. X, Y, Z). Ну, это 1536-мерное пространство, которое очень сложно представить. Почему внутри вектора встраивания ровно 1536 чисел? Потому что модель text-embedding-ada-002 имеет выходную размерность 1536. Это предопределено.

Q2:

Я создаю вложения текста, который хочу использовать в запросе. Обратите внимание, что это точно такой же, как текст исходного контента: I live in space. Когда я запускаю косинусное сходство, значение равно 0.42056650555103214. Должно ли значение быть 1, чтобы указать идентичное значение?

A1: Да, значение должно быть 1, если вы вычисляете косинусное сходство между двумя идентичными текстами. Смотрите пример здесь.

странно, я получаю значение cosine similarity как 0.42056650555103214 . я обновил вопрос

Manu Chadha 21.04.2023 07:16

Если вы сравниваете два идентичных фрагмента текста и не получаете косинусное сходство, равное 1, значит, что-то не так с вашим процессом. Ваши векторы совпадают? Если это так, вы неправильно вычисляете косинусное сходство.

İan Boddison 14.05.2023 02:18

Другие вопросы по теме

Похожие вопросы

Ошибка развертывания почтового индекса службы приложений Azure, которая раньше работала (устаревшее приложение реагирования)
Как сбросить максимальный возраст CORS в хранилище BLOB-объектов Azure
С# сохранить поток WinSCP в хранилище BLOB-объектов Azure Ошибка: смещения со значением, отличным от нуля, не поддерживаются
Как исправить ошибку 404 при доступе к SPA (учетной записи хранения) с помощью Azure Front Door Premium?
Какой ключ секции используется параметрами диагностики Azure при отправке данных в концентратор событий?
Есть ли способ для веб-задания читать в пользовательском разделе конфигурации, таком как AppSettings?
Получение данных об использовании + сборы Экспорт сведений о затратах Azure и хранение информации в контейнере Azure
Microsoft Graph API — отправка сообщения в ошибке канала
Как настроить оповещение для новой функции CDC в Фабрике данных Azure?
ExecutionContext возвращает значение null при публикации для функции Azure