1. Wprowadzenie do osadzeń
1.1. Czym są osadzenia
Osadzenia, w dziedzinie uczenia maszynowego, zwłaszcza przy rozwiązywaniu problemów przetwarzania języka naturalnego (NLP), to technika przekształcania danych tekstowych na wektory liczbowe. W języku ludzkim znaczenie słów i zwrotów określone jest przez ich kontekst i użycie. Celem osadzeń jest uchwycenie semantyki tych jednostek językowych, umożliwiając maszynom ich zrozumienie i przetwarzanie.
Główna idea osadzeń polega na odwzorowaniu słów o podobnym znaczeniu w pobliżu siebie w przestrzeni matematycznej, przedstawiając słowa jako punkty w przestrzeni o wysokich wymiarach. W ten sposób słowa o zbliżonym znaczeniu (np. "król" i "królowa") będą sobie bliskie w tej przestrzeni. Osadzenia zazwyczaj składają się z zmiennoprzecinkowych tablic, umożliwiając nawet bardzo różnym fragmentom tekstu (takim jak "pies" i "psowaty") posiadanie podobnych reprezentacji osadzeń.
Wskazówka: Jako programista aplikacji, możesz po prostu zrozumieć, że dla dwóch zdań z podobnymi znaczeniami, ich wektorowa podobieństwo osadzenia jest wysokie.
1.2. Zastosowania osadzeń
Osadzenia są powszechnie stosowane w różnych scenariuszach, oto kilka głównych zastosowań:
- Wyszukiwanie: Wykorzystanie cech osadzonych do oceniania wyników wyszukiwania na podstawie ich związku z zapytaniem.
- Klastrowanie: Osadzenia mogą pomóc zidentyfikować i sklasyfikować semantycznie podobne fragmenty tekstu.
- Systemy Rekomendacyjne: Rekomendowanie przedmiotów na podstawie podobieństwa może pomóc odkrywać i rekomendować inne podobne przedmioty.
- Wykrywanie Anomalii: Osadzenia mogą być wykorzystane do identyfikowania punktów danych znacząco różniących się od głównego zbioru danych.
- Pomiar Różnorodności: Osadzenia mogą być również wykorzystane do analizy dystrybucji podobieństwa między różnymi tekstami.
- Klasyfikacja: Porównywanie tekstu z zbiorem znanych osadzeń etykiet, aby sklasyfikować go do najbardziej podobnej kategorii.
2. Wprowadzenie do osadzeń OpenAI
2.1. Przegląd modeli osadzeń OpenAI
OpenAI oferuje osadzenia trzeciej generacji, w tym text-embedding-3-small
i text-embedding-3-large
. Modele te są oparte na unikalnej technologii uczenia głębokiego OpenAI, dążąc do zapewnienia wysokiej wielojęzycznej wydajności przy jednoczesnej próbie ograniczenia kosztów.
Te modele posiadają unikalne cechy w przetwarzaniu osadzeń. Na przykład, text-embedding-3-small
oferuje 1536-wymiarowe wektory osadzeń, podczas gdy text-embedding-3-large
zapewnia 3072-wymiarowe wektory osadzeń, aby uwzględnić bardziej złożone cechy tekstowe. Poprzez dostosowanie parametrów, wymiarowość osadzeń może być kontrolowana, aby spełnić konkretne potrzeby scenariuszy aplikacyjnych.
2.2. Wybór Modelu i Użycie
Wybór odpowiedniego modelu osadzeń zależy od konkretnych wymagań aplikacji. Oto jak dokonać wyboru w różnych scenariuszach aplikacyjnych:
-
W scenariuszach skupiających się na wydajności: Jeśli potrzebujesz uchwycić bardziej szczegółowe informacje semantyczne, na przykład w systemach rekomendacyjnych o wysokiej precyzji lub klasyfikacji tekstu o wysokiej precyzji, zazwyczaj zaleca się użycie
text-embedding-3-large
. Chociaż jest on droższy od mniejszych modeli, może zapewnić bogatsze reprezentacje cech tekstowych. -
W aplikacjach z ograniczonymi kosztami: Dla aplikacji wymagających przetwarzania dużej ilości danych, ale nie mających szczególnych wymagań co do precyzji, takich jak eksploracja początkowych danych lub szybkie prototypowanie,
text-embedding-3-small
jest bardziej ekonomicznym wyborem. Utrzymuje on relatywnie wysoką wydajność przy znacznym obniżeniu kosztów. -
Środowiska wielojęzyczne: Te modele osadzeń posiadają wysoką wielojęzyczną wydajność, co czyni je szczególnie przydatnymi w środowiskach międzyjęzycznych lub wielojęzycznych, co czyni je idealnym wyborem dla globalnych aplikacji.
Wybór odpowiedniego modelu osadzeń będzie zależał od konkretnych wymagań, złożoności danych i pożądanego punktu równowagi między wydajnością a kosztem.
3. Jak korzystać z osadzeń
3.1 Użycie curl
do Wywołania interfejsu API osadzeń
curl
to powszechnie używane narzędzie wiersza poleceń do wysyłania żądań HTTP. Poniższy przykład pokazuje, jak użyć curl
do uzyskania reprezentacji osadzeń tekstu:
curl https://api.openai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"input": "Uczenie maszynowe to dziedzina sztucznej inteligencji.",
"model": "text-embedding-3-small"
}'
W powyższym poleceniu zmienna $OPENAI_API_KEY
zawiera klucz API użytkownika OpenAI, który powinien zostać zastąpiony prawidłowym kluczem do faktycznego użycia.
Po wykonaniu tego polecenia, interfejs API osadzeń OpenAI zwróci odpowiedź zawierającą reprezentację osadzeń tekstu. Oto przykład wyniku wywołania interfejsu API:
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [ // Oto wektor cech
-0.006929283495992422,
-0.005336422007530928,
... // Pozostałe liczby pominięte dla czytelności
-4.547132266452536e-05,
-0.024047505110502243
]
}
],
"model": "text-embedding-3-small",
"usage": {
"prompt_tokens": 5,
"total_tokens": 5
}
}
3.2 Użycie klienta Python do Wywołania Interfejsu API Osadzeń
Oprócz używania curl
do bezpośredniego wywoływania interfejsu API z wiersza poleceń, można także skorzystać z klienta Python. Wymaga to wcześniejszej instalacji oficjalnej biblioteki openai
. Poniżej znajduje się przykład uzyskania osadzeń tekstu przy użyciu Pythona:
import openai
openai.api_key = 'TWÓJ_KLUCZ_API_OPENAI' # Zastąp swoim kluczem API OpenAI
response = openai.Embedding.create(
input="Sztuczna inteligencja zmienia świat.",
model="text-embedding-3-small"
)
wektor_osadzenia = response['data'][0]['embedding']
print(wektor_osadzenia)
Uruchamiając ten skrypt Pythona, otrzymasz podobny wektor osadzeń jak przy użyciu curl
. Wektor ten jest listą liczb zmiennoprzecinkowych, reprezentujących numeryczne odwzorowanie tekstu we współrzędnej osadzeń.
Wynik wywołania jest następujący:
[-0.0032198824, 0.0022555287, ..., 0.0015886585, -0.0021505365]
3.2 Operacje na Wektorach Osadzeń
OpenAI dostarcza tylko model obliczeniowy wektorowej reprezentacji tekstu. Jeśli chcesz wykorzystać osadzenia do implementacji funkcji takich jak wyszukiwanie podobieństwa tekstu, musisz zapoznać się z bazami wektorowymi, takimi jak Qdrant, Chroma i Milvus.
Proszę zapoznać się z poniższymi samouczkami baz wektorowych: