Wspaniały świat embeddingów!

Wprowadzenie do osadzeń z OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

Czym są embeddingi?

  • Pojęcie z przetwarzania języka naturalnego (NLP)
  • Numeryczna reprezentacja tekstu

Słowo wprowadzane do modelu embeddingowego, który zwraca numeryczną reprezentację tekstu.

Wprowadzenie do osadzeń z OpenAI API

Czym są embeddingi?

 

  • Tekst jest odwzorowywany na wielowymiarową przestrzeń wektorową
  • Liczby zwracane przez model to położenie tekstu w tej przestrzeni
  • Podobne słowa pojawiają się bliżej siebie
  • Niepodobne słowa pojawiają się dalej od siebie

Tekst reprezentowany numerycznie, gdzie podobniejszy tekst jest bliżej siebie.

Wprowadzenie do osadzeń z OpenAI API

Dlaczego embeddingi są przydatne?

  • Embeddingi umożliwiają uchwycenie znaczenia semantycznego
  • Znaczenie semantyczne: kontekst i intencja stojące za tekstem

 

  • Przykład:
    • „Którędy do supermarketu?"
    • „Jak dojść do sklepu?"

Tekst reprezentowany numerycznie, gdzie podobniejszy tekst jest bliżej siebie.

Wprowadzenie do osadzeń z OpenAI API

Semantyczne wyszukiwarki

 

  • Tradycyjne wyszukiwarki
    • Używają dopasowywania słów kluczowych
    • Mogą przegapić rzeczywisty cel zapytania
    • Pomijają warianty słów

 

Tradycyjna wyszukiwarka wyświetlająca nieistotne wyniki.

Wprowadzenie do osadzeń z OpenAI API

Semantyczne wyszukiwarki

  • Używają embeddingów do rozumienia intencji i kontekstu

Tekst „comfortable running shoes" poddawany embeddingowi.

Wprowadzenie do osadzeń z OpenAI API

Semantyczne wyszukiwarki

  • Używają embeddingów do rozumienia intencji i kontekstu

Tekst po embeddingu wyświetlony w przestrzeni wielowymiarowej.

Wprowadzenie do osadzeń z OpenAI API

Systemy rekomendacji

 

  • Przykład: Rekomendacje ofert pracy
    • Polecanie ofert na podstawie przeglądanych opisów
    • Ogranicza wpływ wariantów nazw stanowisk

Rekomendacje ofert pracy wyświetlone jako embeddingi.

Wprowadzenie do osadzeń z OpenAI API

Klasyfikacja

 

Zadania klasyfikacyjne:

  • Klasyfikacja sentymentu
  • Grupowanie obserwacji
  • Kategoryzacja

 

Przykład:

  • Klasyfikacja nagłówków wiadomości

 

Nieznany nagłówek wiadomości wyświetlony jako embeddingi w celu klasyfikacji.

Wprowadzenie do osadzeń z OpenAI API

Tworzenie żądania embeddingów

  • Endpoint embeddingów
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
Wprowadzenie do osadzeń z OpenAI API

Odpowiedź z embeddingami

{'object': 'list',
 'data': [
    {
      "embedding": [0.0023064255, ..., -0.0028842222],
      "index": 0,
      "object": "embedding"
    }
  ],
 'model': 'text-embedding-3-small',
 'usage': {
  "prompt_tokens": 24,
  "total_tokens": 24
  }
}
Wprowadzenie do osadzeń z OpenAI API

Wyodrębnianie embeddingów

print(response_dict['data'][0]['embedding'])
[0.0023064255, ...., -0.0028842222]
Wprowadzenie do osadzeń z OpenAI API

Czas na ćwiczenia!

Wprowadzenie do osadzeń z OpenAI API

Preparing Video For Download...