Uziemienie modelu za pomocą rozszerzonej generacji pobierania

Ukończone

Wskazówka

Aby uzyskać więcej szczegółów, zobacz kartę Tekst i obrazy .

Inżynieria promptów pomaga w kierowaniu reakcji modelu, ale nie może dostarczyć mu wiedzy, której jeszcze nie posiada. Modele językowe są trenowane na dużych zestawach danych, ale te dane szkoleniowe mają datę graniczną i nie zawierają prywatnych informacji twojej organizacji. Gdy model nie ma odpowiedniego kontekstu, może wygenerować odpowiedzi, które są wiarygodne, ale są faktycznie nieprawidłowe.

Aby rozwiązać to wyzwanie, możesz osadzić model, podając mu odpowiednie, faktyczne dane jako podstawę jego odpowiedzi. Pobieranie rozszerzonej generacji (RAG) jest najczęstszą techniką uziemienia modelu językowego.

Omówienie uziemienia

W przypadku korzystania z modelu językowego bez uziemienia jedyne informacje pochodzą z jego danych treningowych. Wynik może być poprawny gramatycznie i logicznie ustrukturyzowany, ale może być niedokładny lub zawierać zmyślone szczegóły. Na przykład pytanie "Które hotele oferujesz w Paryżu?" bez uziemienia danych może zwracać fikcyjne nazwy hoteli.

Diagram przedstawiający nieuziemiony model zwracający nieskontextualizowaną odpowiedź tylko na podstawie danych treningowych.

Aby uzasadnić monit, należy podać odpowiednie dane z zaufanego źródła wraz z pytaniem użytkownika. Następnie model generuje odpowiedź na podstawie tych danych, generując dokładniejsze i kontekstowe odpowiedzi.

Rozważ różnicę:

  • Nieuzasadniony: model opiera się tylko na danych treningowych i może wymyślić nazwy lub szczegóły hotelowe.
  • Oparty na danych: Model otrzymuje rzeczywiste dane katalogu hoteli jako kontekst i odpowiada, zawierając rzeczywiste nazwy hoteli, ceny i dostępność.

Diagram przedstawiający porównanie modelu nieopartego na danych, zwracającego odpowiedzi ogólne, z modelem opartym na danych, który zwraca odpowiedzi oparte na danych.

Uziemienie poprawia dokładność odpowiedzi opartych na faktach, łącząc model z informacjami, które są specyficzne, aktualne i istotne dla potrzeb użytkownika.

Jak działa RAG

RAG to wzorzec, który pobiera odpowiednie informacje ze źródła danych i dołącza go w wierszu polecenia, zanim model wygeneruje odpowiedź. Proces jest zgodny z trzema krokami:

Diagram przedstawiający trójetapowy schemat RAG: pobieranie danych bazowych, rozszerzanie monitu przy użyciu tych danych i generowanie uzasadnionej odpowiedzi.

  1. Pobieranie: wyszukaj źródło danych, aby uzyskać informacje istotne dla pytania użytkownika.
  2. Rozszerz: Dodaj pobrane informacje do zapytania jako kontekst.
  3. Generuj: wyślij rozszerzony monit do modelu językowego, aby wygenerować uzasadnioną odpowiedź.

Pobierając kontekst z określonego źródła danych, zapewniasz, że model używa odpowiednich, aktualnych informacji zamiast polegać tylko na danych treningowych.

Krytycznym składnikiem RAG jest możliwość efektywnego znajdowania najbardziej odpowiednich informacji w źródle danych. W tym miejscu pojawiają się osadzania i wyszukiwanie wektorów .

Embedding (osadzanie) to matematyczna reprezentacja tekstu jako wektora — lista liczb zmiennoprzecinkowych, która oddaje znaczenie słów, zdań lub dokumentów. Tworzysz osadzenia, wysyłając swoją treść do modelu osadzania, takiego jak model osadzania Azure OpenAI dostępny w rozwiązaniu Microsoft Foundry.

Wyobraź sobie na przykład dwa dokumenty:

  • "Dzieci bawiły się radośnie w parku."
  • "Dzieci szczęśliwie pobiegły po placu zabaw"."

Zdania te używają różnych słów, ale mają podobne znaczenie. Podczas tworzenia osadzeń dla każdego z nich, ich wektory są blisko siebie w przestrzeni wielowymiarowej, odzwierciedlając ich semantyczne podobieństwo.

Diagram przedstawiający słowa kluczowe tekstu wykreślone jako wektory w przestrzeni wielowymiarowej z odległością między wektorami reprezentującymi podobieństwo semantyczne.

Podobieństwo kosinusowe mierzy, jak blisko są dwa wektory, obliczając kąt między nimi. Wartość zbliżona do 1 oznacza, że wektory są bardzo podobne. Takie podejście matematyczne umożliwia znajdowanie odpowiednich dokumentów nawet wtedy, gdy dokładne wyrazy nie są zgodne.

Pobieranie przy użyciu Wyszukiwanie AI platformy Azure

Wyszukiwanie AI platformy Azure udostępnia komponent wyszukiwania dla rozwiązań RAG oferowanych przez Microsoft Foundry. Umożliwia ona przenoszenie własnych danych, tworzenie indeksu z możliwością wyszukiwania i wykonywanie względem niego zapytań w celu pobrania odpowiednich informacji.

Diagram przedstawiający zapytanie do indeksu Wyszukiwanie AI platformy Azure w celu pobrania danych podstawowych dla pytania użytkownika.

Aby użyć Wyszukiwanie AI platformy Azure z RAG, wykonaj:

  1. Dodaj dane do usługi Microsoft Foundry ze źródeł, takich jak Azure Blob Storage, Azure Data Lake Storage Gen2 lub Microsoft OneLake. Możesz również przekazywać pliki bezpośrednio.
  2. Utwórz indeks przy użyciu modelu osadzania, aby wygenerować wektorowe reprezentacje zawartości. Indeks jest przechowywany w Wyszukiwanie AI platformy Azure.
  3. Wykonaj zapytanie względem indeksu , gdy użytkownik zadaje pytanie. System konwertuje pytanie na osadzanie, wyszukuje najbardziej podobną zawartość i zwraca odpowiednie wyniki.

Wyszukiwanie AI platformy Azure obsługuje kilka technik wyszukiwania:

  • Wyszukiwanie słów kluczowych: dopasuj dokładne terminy w zapytaniu do tekstu w indeksie.
  • Wyszukiwanie semantyczne: używa modeli semantycznych do dopasowania znaczenia zapytania, a nie dokładnych słów kluczowych.
  • Wyszukiwanie wektorowe: używa osadzania, aby znaleźć semantycznie podobną zawartość.
  • Wyszukiwanie hybrydowe: łączy słowa kluczowe, semantyczne i wektorowe wyszukiwanie najdokładniejszych wyników. Wyszukiwanie hybrydowe jest zalecane w przypadku aplikacji generacyjnych sztucznej inteligencji.

Implementowanie programu RAG za pomocą Azure AI Foundry SDK

Po utworzeniu indeksu Wyszukiwanie AI platformy Azure można połączyć go z modelem za pośrednictwem project Microsoft Foundry. Zestaw SDK azure-ai-projects umożliwia uzyskanie uwierzytelnionego klienta OpenAI i użycie interfejsu API odpowiedzi w celu wygenerowania uzasadnionych odpowiedzi.

Poniższy kod w języku Python przedstawia podstawową implementację:

from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential

project = AIProjectClient(
    endpoint=os.environ["PROJECT_ENDPOINT"],
    credential=DefaultAzureCredential(),
)

client = project.get_openai_client()

response = client.responses.create(
    model="gpt-4o",
    input=[
        {"role": "system", "content": "You are a helpful travel advisor. "
         "Use the following hotel data to answer: " + retrieved_context},
        {"role": "user", "content": "Which hotels do you offer in Paris?"},
    ],
)

print(response.output_text)

W tym przykładzie retrieved_context reprezentuje dokumenty zwrócone z indeksu Wyszukiwanie AI platformy Azure. Przez wstrzyknięcie tych wyników do komunikatu systemowego odpowiedź modelu jest uziemiona w rzeczywistych danych, a nie na ogólnej wiedzy szkoleniowej.

Kiedy należy używać programu RAG

Funkcja RAG jest najbardziej skuteczna, gdy:

  • Model potrzebuje wiedzy specyficznej dla domeny: Twoja organizacja ma prywatne dane, na których model nie został wytrenowany, na przykład wykaz produktów, dokumenty zasad lub knowledge base wewnętrzne.
  • Często zmieniają się informacje: Dane są regularnie aktualizowane, takie jak spis, cennik lub wiadomości. RAG pobiera bieżące dane w czasie zapytania bez ponownego szkolenia.
  • Dokładność faktów ma krytyczne znaczenie: potrzebne są odpowiedzi uziemione w rzeczywistych danych zamiast ogólnej wiedzy modelu.
  • Dane uczące modelu podstawowego mają datę końcową: zdarzenia lub informacje, które wystąpiły po dacie końcowej trenowania modelu, muszą być dostępne.

W przypadku scenariusza biura podróży RAG umożliwia klientom zadawanie pytań dotyczących określonych hoteli, miejsc docelowych i zasad rezerwacji, wszystkie zakorzenione w rzeczywistych danych katalogu agencji.

Wskazówka

Jeśli tworzysz agentów, którzy potrzebują wiedzy osadzonej w rzeczywistości bez zarządzania własną infrastrukturą wyszukiwania, rozważ użycie Foundry IQ — zarządzanego magazynu wiedzy, który ułatwia zakotwiczenie agentów sztucznej inteligencji. Aby dowiedzieć się więcej, zobacz Tworzenie agentów AI wzbogaconych o wiedzę za pomocą Foundry IQ.