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 przyjęto założenie, że modele osadzania w usłudze Azure OpenAI. Pokazy w przykładowym repozytorium naciśnij podobieństwo osadzania modeli usługi Azure OpenAI.

Atrybuty wymiarów mają co najmniej 2 i maksymalnie 3072 wymiary na pole wektorowe.

Uwaga

Ten artykuł dotyczy ogólnie dostępnej wersji wyszukiwania wektorów, która zakłada, że kod aplikacji wywołuje zasób zewnętrzny, taki jak Azure OpenAI na potrzeby wektoryzacji. Nowa funkcja nazywana wektoryzacją zintegrowaną, obecnie w wersji zapoznawczej, oferuje wektoryzację osadzoną. Zintegrowana wektoryzacja przyjmuje zależność od indeksatorów, zestawów umiejętności i umiejętności platformy AzureOpenAIEmbedding lub niestandardowej umiejętności wskazującej model wykonywany zewnętrznie z usługi Azure AI Search.

Jak są używane modele

  • Dane wejściowe zapytań wymagają przesłania danych wejściowych dostarczonych przez użytkownika do modelu osadzania, który szybko konwertuje czytelny tekst człowieka na wektor.

    • Na przykład możesz użyć funkcji osadzania tekstu-ada-002 do generowania osadzania tekstu i interfejsu API REST pobierania obrazów na potrzeby osadzania obrazów.

    • 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 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. Region modelu osadzania podobieństwa, obecnie w Europie i Stany Zjednoczone.

  2. Region 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, 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==0.28.1

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 = "2023-05-15"

response = openai.Embedding.create(
    input="How do I use Python in VSCode?",
    engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)

Wskazówki 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.
  • 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.
  • 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