Generowanie osadzania dla zapytań wyszukiwania i dokumentów
Usługa Azure AI Search nie obsługuje modeli wektoryzacji hostów, więc jednym z wyzwań jest utworzenie osadzonych elementów dla danych wejściowych i wyjściowych zapytań. W tym artykule można użyć dowolnego obsługiwanego modelu osadzania, ale w tym artykule założono, że modele osadzania usługi Azure OpenAI są wykonywane w krokach.
Zalecamy zintegrowaną wektoryzację, która zapewnia wbudowane fragmentowanie i wektoryzacja danych. Zintegrowana wektoryzacja przyjmuje zależność od indeksatorów, zestawów umiejętności i wbudowanych lub niestandardowych umiejętności wskazujących model wykonywany zewnętrznie z usługi Azure AI Search.
Jeśli chcesz samodzielnie obsługiwać fragmentowanie i wektoryzacja danych, udostępniamy pokazy w przykładowym repozytorium , które pokazuje, jak zintegrować się z innymi rozwiązaniami społeczności.
Jak są używane modele osadzania w zapytaniach wektorowych
Dane wejściowe zapytania to wektory, tekst lub obrazy, które są konwertowane na wektory podczas przetwarzania zapytań. Wbudowane rozwiązanie w usłudze Azure AI Search polega na użyciu wektoryzatora.
Alternatywnie możesz również samodzielnie obsłużyć konwersję, przekazując dane wejściowe zapytania do wybranego modelu osadzania. Aby uniknąć ograniczania szybkości, możesz zaimplementować logikę ponawiania prób w obciążeniu. W przypadku pokazu języka Python użyliśmy wytrwałość.
Dane wyjściowe zapytań to wszystkie pasujące dokumenty znajdujące się w indeksie wyszukiwania. Indeks wyszukiwania musi być wcześniej załadowany z dokumentami zawierającymi co najmniej jedno pole wektorowe z osadzeniem. Niezależnie od modelu osadzania używanego do indeksowania, użyj tego samego modelu dla zapytań.
Tworzenie zasobów w tym samym regionie
Zintegrowana wektoryzacja wymaga, aby zasoby znajdowały się w tym samym regionie:
Sprawdź regiony pod kątem modelu osadzania tekstu.
Aby obsługiwać zapytania hybrydowe, które obejmują klasyfikację semantyczną, lub jeśli chcesz wypróbować integrację modelu uczenia maszynowego przy użyciu niestandardowych umiejętności w potoku wzbogacania sztucznej inteligencji, wybierz region usługi Azure AI Search, który udostępnia te funkcje.
Generowanie osadzania dla improwizowanego zapytania
Poniższy kod w języku Python generuje osadzanie, które można wkleić do właściwości "values" zapytania wektorowego.
!pip install openai
import openai
openai.api_type = "azure"
openai.api_key = "YOUR-API-KEY"
openai.api_base = "https://YOUR-OPENAI-RESOURCE.openai.azure.com"
openai.api_version = "2024-02-01"
response = openai.Embedding.create(
input="How do I use Python in VSCode?",
engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)
Dane wyjściowe to tablica wektorowa o wymiarach 1536.
Porady i zalecenia dotyczące integracji modelu osadzania
Identyfikowanie przypadków użycia: Oceń konkretne przypadki użycia, w których integracja modelu osadzania dla funkcji wyszukiwania wektorowego może dodać wartość do rozwiązania wyszukiwania. Może to obejmować zawartość wielomodalną lub pasującą do obrazu z zawartością tekstem, wielojęzycznym wyszukiwaniem lub wyszukiwaniem podobieństwa.
Projektowanie strategii fragmentowania: modele osadzania mają limity liczby tokenów, które mogą akceptować, co wprowadza wymóg fragmentowania danych dla dużych plików. Aby uzyskać więcej informacji, zobacz fragmentowanie dużych dokumentów dla rozwiązań wyszukiwania wektorów.
Optymalizowanie kosztów i wydajności: wyszukiwanie wektorów może być intensywnie obciążające zasoby i podlega maksymalnym limitom, dlatego należy rozważyć tylko wektoryzowanie pól zawierających znaczenie semantyczne. Zmniejsz rozmiar wektora, aby można było przechowywać więcej wektorów dla tej samej ceny.
Wybierz odpowiedni model osadzania: wybierz odpowiedni model dla konkretnego przypadku użycia, na przykład osadzanie wyrazów dla wyszukiwań tekstowych lub osadzania obrazów na potrzeby wyszukiwania wizualnego. Rozważ użycie wstępnie wytrenowanych modeli, takich jak osadzanie tekstu ada-002 z interfejsu OpenAI lub interfejsu API REST pobierania obrazów z przetwarzanie obrazów usługi Azure AI.
Znormalizowanie długości wektorów: upewnij się, że długość wektorów jest znormalizowana przed zapisaniem ich w indeksie wyszukiwania w celu zwiększenia dokładności i wydajności wyszukiwania podobieństwa. Większość wstępnie wytrenowanych modeli jest już znormalizowana, ale nie wszystkie.
Dostosuj model: w razie potrzeby dostosuj wybrany model na danych specyficznych dla domeny, aby zwiększyć jego wydajność i znaczenie dla aplikacji wyszukiwania.
Testowanie i iterowanie: stale testuj i uściślij integrację modelu osadzania, aby osiągnąć żądaną wydajność wyszukiwania i zadowolenie użytkowników.