Дивовижний світ embeddingів!

Вступ до Embeddings з OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

Що таке embeddingи?

  • Концепція з Natural Language Processing (NLP)
  • Числове подання тексту

Слово подається на вхід моделі embeddingів, яка повертає числове подання тексту.

Вступ до Embeddings з OpenAI API

Що таке embeddingи?

 

  • Текст відображається у багатовимірний векторний простір
  • Числа на виході моделі — це координати тексту в просторі
  • Подібні слова ближчі одне до одного
  • Неподібні слова далі одне від одного

Текст у числовому вигляді: що подібніше, то ближче.

Вступ до Embeddings з OpenAI API

Чому embeddingи корисні?

  • Embeddingи дають змогу схопити семантичне значення
  • Семантичне значення: контекст і намір за текстом

 

  • Приклад:
    • «Як пройти до супермаркету?»
    • «Підкажіть, будь ласка, як дістатися до магазину?»

Текст у числовому вигляді: що подібніше, то ближче.

Вступ до Embeddings з OpenAI API

Семантичні пошукові системи

 

  • Традиційні пошукові системи
    • Використовують зіставлення за ключовими словами
    • Можуть не вловити справжній намір
    • Пропускають варіації слів

 

Традиційна пошукова система з нерелевантними результатами.

Вступ до Embeddings з OpenAI API

Семантичні пошукові системи

  • Використовують embeddingи, щоб зрозуміти намір і контекст

Текст «comfortable running shoes» перетворюється на embedding.

Вступ до Embeddings з OpenAI API

Семантичні пошукові системи

  • Використовують embeddingи, щоб зрозуміти намір і контекст

Embedding відображено в багатовимірному просторі.

Вступ до Embeddings з OpenAI API

Рекомендаційні системи

 

  • Приклад: рекомендації вакансій
    • Рекомендувати вакансії за описами, які вже переглянуто
    • Згладжує різні варіанти назв посад

Рекомендації вакансій, подані як embeddingи.

Вступ до Embeddings з OpenAI API

Класифікація

 

Завдання класифікації:

  • Класифікація тональності
  • Кластеризація спостережень
  • Категоризація

 

Приклад:

  • Класифікація заголовків новин

 

Невідомий заголовок новин відображено як embedding для класифікації.

Вступ до Embeddings з OpenAI API

Створення запиту на Embeddings

  • Кінцева точка embeddingів
from openai import OpenAI


client = OpenAI(api_key="<OPENAI_API_KEY>")
response = client.embeddings.create(
model="text-embedding-3-small",
input="Embeddings are a numerical representation of text that can be used to measure the relatedness between two pieces of text."
)
response_dict = response.model_dump() print(response_dict)
1 https://platform.openai.com/docs/api-reference/embeddings
Вступ до Embeddings з OpenAI API

Відповідь Embeddings

{'object': 'list',
 'data': [
    {
      "embedding": [0.0023064255, ..., -0.0028842222],
      "index": 0,
      "object": "embedding"
    }
  ],
 'model': 'text-embedding-3-small',
 'usage': {
  "prompt_tokens": 24,
  "total_tokens": 24
  }
}
Вступ до Embeddings з OpenAI API

Отримання embeddingів

print(response_dict['data'][0]['embedding'])
[0.0023064255, ...., -0.0028842222]
Вступ до Embeddings з OpenAI API

Давайте потренуємось!

Вступ до Embeddings з OpenAI API

Preparing Video For Download...