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ń. Możesz użyć dowolnego modelu osadzania, ale w tym artykule założono, że modele osadzania w usłudze Azure OpenAI.

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

Jeśli chcesz, aby zasoby w tym samym regionie, zacznij od:

  1. Sprawdź regiony pod kątem modelu osadzania tekstu.

  2. Znajdź ten sam region dla usługi Azure AI Search.

  3. 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, zwróć uwagę na regiony usługi Azure AI Search, które udostępniają 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ć dopasowywanie zawartości obrazu z zawartością tekstową, wyszukiwaniem krzyżowym lub wyszukiwaniem podobnych dokumentów.
  • 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.

Następne kroki