Faza osadzania wygenerowana przez usługę RAG

Azure AI services
Azure AI Search
Azure OpenAI Service
Azure Machine Learning

W poprzednich krokach rozwiązania Retrieval-Augmented Generation (RAG) dokumenty zostały podzielone na fragmenty i wzbogacone fragmenty. W tym kroku generujesz osadzanie dla tych fragmentów i wszystkich pól metadanych, na których planujesz wykonywać wyszukiwania wektorów.

Ten artykuł jest częścią serii. Przeczytaj wprowadzenie .

Osadzanie to matematyczna reprezentacja obiektu, na przykład tekst. Podczas trenowania sieci neuronowej tworzona jest wiele reprezentacji obiektu. Każda reprezentacja ma połączenia z innymi obiektami w sieci. Osadzanie jest ważne, ponieważ przechwytuje semantyczne znaczenie obiektu.

Reprezentacja jednego obiektu ma połączenia z reprezentacjami innych obiektów, więc można porównać obiekty matematycznie. W poniższym przykładzie pokazano, jak osadzanie przechwytuje semantyczne znaczenie i relacje między sobą:

embedding (king) - embedding (man) + embedding (woman) = embedding (queen)

Osadzanie jest porównywane ze sobą przy użyciu pojęć podobieństwa i odległości. Poniższa siatka przedstawia porównanie osadzania.

Diagram przedstawiający porównanie wektorów.

W rozwiązaniu RAG często osadzasz zapytanie użytkownika przy użyciu tego samego modelu osadzania co fragmenty. Następnie przeszukujesz bazę danych pod kątem odpowiednich wektorów, aby zwrócić najbardziej semantycznie istotne fragmenty. Oryginalny tekst odpowiednich fragmentów jest przekazywany do modelu językowego jako dane uziemienia.

Nuta

Wektory reprezentują semantyczne znaczenie tekstu w sposób umożliwiający porównanie matematyczne. Należy oczyścić fragmenty, aby matematyczna bliskość między wektorami dokładnie odzwierciedlała ich semantycznie trafność.

Znaczenie modelu osadzania

Wybrany model osadzania może znacząco wpłynąć na trafność wyników wyszukiwania wektorowego. Należy wziąć pod uwagę słownictwo modelu osadzania. Każdy model osadzania jest trenowany przy użyciu określonego słownictwa. Na przykład rozmiar słownictwa modelu wynosi około 30 000 słów.

Słownictwo modelu osadzania jest ważne, ponieważ obsługuje słowa, które nie są w swoim słownictwie w unikatowy sposób. Jeśli słowo nie znajduje się w słownictwie modelu, nadal oblicza wektor. Aby to zrobić, wiele modeli dzieli słowa na podwords. Traktują one subwords jako odrębne tokeny lub agregują wektory dla podwords w celu utworzenia pojedynczego osadzania.

Na przykład słowo histaminy może nie znajdować się w słownictwie modelu osadzania. Słowo histaminy ma semantyczne znaczenie jako substancję chemiczną, którą uwalnia organizm, co powoduje objawy alergii. Model osadzania nie zawiera histaminy. Tak więc, może oddzielić słowo od słów podrzędnych, które znajdują się w jego słownictwie, takich jak jego, ta, i kopalni.

Diagram przedstawiający histogram wyrazu podzielony na następujące subwords: his, ta i mine.

Semantyczne znaczenia tych subwords są dalekie od znaczenia histaminy. Pojedyncze lub połączone wartości wektorów subwords powodują gorsze dopasowania wektorów w porównaniu do tego, czy histaminy były w słownictwie modelu.

Wybieranie modelu osadzania

Określ odpowiedni model osadzania dla danego przypadku użycia. Rozważ nakładanie się słownictwa modelu osadzania i słów danych podczas wybierania modelu osadzania.

Diagram przedstawiający przepływ wybierania modelu osadzania.

Najpierw ustal, czy masz zawartość specyficzną dla domeny. Czy na przykład dokumenty są specyficzne dla przypadku użycia, organizacji lub branży? Dobrym sposobem określenia specyfiki domeny jest sprawdzenie, czy można znaleźć jednostki i słowa kluczowe w zawartości w Internecie. Jeśli to możliwe, prawdopodobnie może to być również ogólny model osadzania.

Zawartość ogólna lub inna niż domena

Po wybraniu ogólnego modelu osadzania zacznij od hugging Face leaderboard. Pobierz up-to— rankingi modelu osadzania dat. Oceń, w jaki sposób modele współpracują z danymi, i zacznij od modeli najwyższego rankingu.

Zawartość specyficzna dla domeny

W przypadku zawartości specyficznej dla domeny określ, czy można użyć modelu specyficznego dla domeny. Na przykład dane mogą znajdować się w domenie biomedycznej, więc możesz użyć modelu BioGPT. Ten model językowy jest wstępnie wytrenowany w dużej kolekcji literatury biomedycznej. Można go używać do wyszukiwania i generowania tekstu biomedycznego. Jeśli dostępne są modele specyficzne dla domeny, oceń, jak te modele współpracują z danymi.

Jeśli nie masz modelu specyficznego dla domeny lub model specyficzny dla domeny nie działa dobrze, możesz dostosować ogólny model osadzania przy użyciu słownictwa specyficznego dla domeny.

Ważny

W przypadku dowolnego wybranego modelu należy sprawdzić, czy licencja odpowiada Twoim potrzebom, a model zapewnia niezbędną obsługę języka.

Ocena modeli osadzania

Aby ocenić model osadzania, zwizualizuj osadzanie i oceń odległość między wektorami pytania i fragmentów.

Wizualizowanie osadzania

Biblioteki, takie jak t-SNE, umożliwiają wykreślenie wektorów fragmentów i pytania na wykresie X-Y. Następnie można określić, jak daleko są fragmenty od siebie i od pytania. Na poniższym wykresie przedstawiono wektory fragmentów nakreślone. Dwie strzałki w pobliżu siebie reprezentują dwa wektory fragmentów. Druga strzałka reprezentuje wektor zapytania. Możesz użyć tej wizualizacji, aby zrozumieć, jak daleko jest pytanie od fragmentów.

Graph, który pokazuje wizualizację osadzania. Obraz przedstawia kilka niebieskich kropek, które są kreślione na skali X-Y.

Dwie strzałki wskazują punkty wykresu w pobliżu siebie, a druga strzałka pokazuje punkt wykresu daleko od pozostałych dwóch.

Obliczanie odległości osadzania

Możesz użyć metody programowej, aby ocenić, jak dobrze model osadzania działa z pytaniami i fragmentami. Oblicz odległość między wektorami pytań i wektorami fragmentów. Możesz użyć odległości euklidesowej lub odległości Manhattanu.

Ekonomia osadzania

Po wybraniu modelu osadzania należy nawigować po kompromisie między wydajnością a kosztami. Duże modele osadzania zwykle mają lepszą wydajność w przypadku zestawów danych porównawczych. Jednak zwiększona wydajność zwiększa koszty. Duże wektory wymagają więcej miejsca w bazie danych wektorów. Wymagają one również większej ilości zasobów obliczeniowych i czasu na porównanie osadzania. Małe modele osadzania zwykle mają niższą wydajność w tych samych testach porównawczych. Wymagają one mniejszej ilości miejsca w wektorowej bazy danych oraz mniejszego czasu obliczeniowego i czasu na porównanie osadzania.

Podczas projektowania systemu należy wziąć pod uwagę koszt osadzania pod względem wymagań dotyczących magazynu, zasobów obliczeniowych i wydajności. Należy zweryfikować wydajność modeli za pomocą eksperymentowania. Publicznie dostępne testy porównawcze to głównie zestawy danych akademickich i mogą nie mieć bezpośredniego zastosowania do danych biznesowych i przypadków użycia. W zależności od wymagań możesz faworyzować wydajność w przypadku kosztów lub zaakceptować kompromis dotyczący wystarczającej wydajności w celu uzyskania niższych kosztów.

Następny krok

fazy pobierania informacji