Kompleksowa ocena modelu językowego o dużej skali
W tej fazie oceniasz swoje rozwiązanie generacji Retrieval-Augmented (RAG), sprawdzając oczekiwane prośby użytkownika zawierające pobrane dane podstawowe względem modelu językowego. Przed osiągnięciem tej fazy należy wykonać poprzednie fazy. Musisz zebrać dokumenty testowe i zapytania, fragmentować dokumenty testowe, wzbogacić fragmenty, osadzić fragmenty, utworzyć indeks wyszukiwania i zaimplementować strategię wyszukiwania. Następnie należy ocenić każdą z tych faz i upewnić się, że wyniki spełniają Twoje oczekiwania. Na tym etapie należy mieć pewność, że rozwiązanie zwraca odpowiednie dane uziemieniowe dla zapytania użytkownika.
Te dane uziemienia są kontekstem monitu wysyłanego do modelu językowego w celu adresowania zapytania użytkownika. Strategie projektowania promptów wykraczają poza zakres tego artykułu. Ten artykuł dotyczy oceny zaplanowanego wywołania modelu językowego z perspektywy danych bazowych. W tym artykule opisano typowe metryki oceny modelu języka oraz konkretne podobieństwa i metryki oceny, których można używać w obliczeniach oceny modelu lub jako autonomicznych metrykach.
W tym artykule nie podjęto próby udostępnienia wyczerpującej listy metryk modelu językowego ani podobieństwa i metryk oceny. Ważne jest, aby z tego artykułu wynieść zrozumienie, że istnieją różne metryki, z których każda ma odrębne zastosowania. Tylko ty masz całościowe zrozumienie swojego obciążenia pracą. Ty i twoi analitycy danych muszą określić, co chcesz zmierzyć i które metryki są odpowiednie.
Ten artykuł jest częścią serii. Najpierw zapoznaj się z wprowadzeniem.
Metryki oceny modelu językowego
Istnieje kilka metryk, których należy użyć do oceny odpowiedzi modelu językowego, w tym pod kątem uziemienia, kompletności, wykorzystania, trafności i poprawności. Ponieważ ogólnym celem wzorca RAG jest dostarczenie odpowiednich danych jako kontekstu do modelu językowego podczas generowania odpowiedzi, najlepiej, aby każda z powyższych metryk uzyskała wysoką ocenę. Jednak w zależności od obciążenia może być konieczne nadanie priorytetu jednej rzeczy nad inną.
Ważny
Odpowiedzi modelu językowego są nieokreślone, co oznacza, że ten sam monit do modelu językowego często zwraca różne wyniki. Ta koncepcja jest ważna, aby zrozumieć, kiedy używasz modelu językowego w ramach procesu oceny. Rozważ użycie zakresu docelowego zamiast pojedynczego elementu docelowego podczas oceniania użycia modelu językowego.
Uziemienie
Groundedness, czasami nazywane także jako wierzytelność, mierzy, czy odpowiedź jest całkowicie oparta na kontekście. Sprawdza, czy odpowiedź nie korzysta z informacji innych niż to, co istnieje w kontekście. Metryka niskiego uziemienia wskazuje, że model językowy może generować niedokładne lub niesensowne odpowiedzi.
Oblicz stabilność
Użyj następujących metod, aby obliczyć zasadność odpowiedzi.
- Uziemienie oparte na bezpieczeństwie treści AI platformy Azure to model niestandardowy, który wykorzystuje wnioskowanie języka naturalnego do określenia, czy twierdzenia, a w tym przypadku fragmenty, są oparte na kontekście w dokumencie źródłowym.
- duże podstawy oparte na modelu języka używa modelu językowego do określenia poziomu uziemienia odpowiedzi.
- Biblioteka Wierności Ragas.
- obliczanie wierności MLflow.
Ocena uziemienia
Niski wynik obliczeń wskazuje, że model językowy nie uważa fragmentów za istotne. Należy ocenić, czy musisz dodać dane do kolekcji, dostosować strategię fragmentowania lub rozmiar fragmentu, czy dostosować monit.
Kompletność
kompletność mierzy, czy odpowiedź odpowiada na wszystkie części zapytania. Kompletność pomaga zrozumieć, czy fragmenty w kontekście są istotne, bezpośrednio odnoszą się do zapytania i zapewniają pełną odpowiedź.
Obliczanie kompletności
Użyj następujących metod, aby obliczyć kompletność odpowiedzi:
- wynik wyszukiwania wspomagany przez sztuczną inteligencję z monitem.
- Model językowy może pomóc w zmierzeniu jakości odpowiedzi modelu językowego. Potrzebujesz pytania, kontekstu i wygenerowanej odpowiedzi, aby dokonać tego pomiaru. W poniższych krokach opisano proces wysokiego poziomu:
- Użyj modelu językowego, aby powtórzyć, podsumować lub uprościć pytanie. Ten krok identyfikuje intencję.
- Poproś model o sprawdzenie, czy intencja lub odpowiedź na intencję znajduje się lub może być wyprowadzona z pobranych dokumentów. Odpowiedź może być "tak" lub "nie" dla każdego dokumentu. Odpowiedzi rozpoczynające się od "yes" wskazują, że pobrane dokumenty są istotne dla intencji lub odpowiedzi na intencję.
- Oblicz stosunek intencji, które mają odpowiedź rozpoczynającą się od "tak".
- Zanalizuj wynik, aby wyróżnić błędy.
Ocena kompletności
Jeśli kompletność jest niska, rozpocznij pracę, aby ją zwiększyć, oceniając model osadzania. Porównaj słownictwo w zawartości ze słownictwem w modelu osadzania. Określ, czy potrzebujesz modelu osadzania specyficznego dla domeny, czy też chcesz dostosować istniejący model. Następnym krokiem jest ocena strategii fragmentowania. Jeśli używasz fragmentów o stałym rozmiarze, rozważ zwiększenie rozmiaru fragmentu. Możesz również ocenić, czy dane testowe mają wystarczającą ilość danych, aby całkowicie rozwiązać to pytanie.
Wykorzystanie
Użycie mierzy stopień, w jakim odpowiedź zawiera informacje z fragmentów w kontekście. Celem jest określenie zakresu, w jakim każdy fragment jest częścią odpowiedzi. Niskie wykorzystanie wskazuje, że wyniki mogą nie być istotne dla zapytania. Powinieneś ocenić wykorzystanie wraz z kompletnością.
Obliczanie wykorzystania
Użyj modelu językowego, aby obliczyć użycie. Możesz przekazać odpowiedź i kontekst zawierający fragmenty do modelu językowego. Możesz poprosić model językowy o określenie liczby fragmentów, które wiążą się z odpowiedzią.
Ocena wykorzystania
Poniższa tabela zawiera wskazówki dotyczące oceny kompletności i wykorzystania.
Wysokie wykorzystanie | Niskie wykorzystanie | |
---|---|---|
wysoka kompletność | Nie jest wymagana żadna akcja. | W tym przypadku zwrócone dane odpowiadają na pytanie, ale zawierają także nieistotne fragmenty. Rozważ zmniejszenie wartości parametru top-k, aby uzyskać bardziej prawdopodobne lub deterministyczne wyniki. |
Niska kompletność | W takim przypadku model językowy używa podanych fragmentów, ale nie w pełni odpowiadają na to pytanie. Rozważ wykonanie następujących kroków:
|
W takim przypadku zwrócone dane nie odpowiadają w pełni na pytanie, a podane fragmenty nie są całkowicie wykorzystywane. Rozważ wykonanie następujących kroków:
|
Znaczenie
Trafność mierzy, w jakim stopniu odpowiedź modelu językowego jest adekwatna i związana z zapytaniem.
Obliczanie istotności
Użyj następujących metod, aby obliczyć istotność odpowiedzi:
- Wspomagane przez Sztuczną Inteligencję: Znaczenie w Usługi Azure AI Foundry
- Biblioteka trafności odpowiedzi Ragas
- obliczanie istotności MLflow
Uwaga
Za pomocą portalu azure AI Foundry możesz wykonać obliczenia lub użyć wskazówek w tym artykule, aby samodzielnie obliczyć istotność.
Ocena istotności
Gdy istotność jest niska, wykonaj następujące zadania:
- Upewnij się, że fragmenty dostarczone do modelu językowego są istotne.
- Ustal, czy istnieją jakieś istotne, możliwe do wykorzystania fragmenty, które nie są zwracane. Jeśli odkryjesz te fragmenty, oceń model osadzania.
- Jeśli nie ma przydatnych fragmentów, sprawdź, czy istnieją odpowiednie dane. Jeśli tak, oceń strategię fragmentowania.
- Jeśli zostaną zwrócone odpowiednie fragmenty, oceń swoje zapytanie.
Wyniki uzyskane z metod oceny, takich jak kompletność i wydajność, powinny być zbliżone do oceny istotności.
Dokładność
poprawność mierzy stopień, w jakim odpowiedź jest dokładna i rzeczowa.
Obliczanie poprawności
Istnieje kilka sposobów oceny poprawności, w tym:
- model językowy — użyj modelu językowego, aby obliczyć poprawność. Możesz przekazać odpowiedź do modelu językowego, najlepiej innego modelu językowego niż ten, który został użyty do wygenerowania wyniku. Możesz poprosić model językowy o ustalenie, czy odpowiedź jest rzeczowa, czy nie.
- zewnętrzne zaufane źródło — użyj zewnętrznego zaufanego źródła, aby zweryfikować poprawność odpowiedzi. W zależności od interfejsu API zaufanego źródła można użyć samego zaufanego źródła lub w połączeniu z modelem językowym.
Ocena poprawności
Gdy poprawność jest niska, wykonaj następujące zadania:
- Upewnij się, że fragmenty dostarczone do modelu językowego są faktycznie poprawne i że nie występuje stronniczość danych. Może być konieczne rozwiązanie wszelkich problemów w dokumentach źródłowych lub zawartości.
- Jeśli fragmenty są faktycznie poprawne, oceń swoje polecenie.
- Oceń, czy w modelu występują wrodzone niedokładności, które należy przezwyciężyć za pomocą dodatkowych danych faktycznych lub dostrajania.
Podobieństwo i metryki oceny
Istnieją setki metryk podobieństwa i oceny, których można używać w nauce o danych. Niektóre algorytmy są specyficzne dla domeny, takiej jak tłumaczenie mowy na tekst lub tłumaczenie języka na język. Każdy algorytm ma unikatową strategię obliczania metryki.
Analitycy danych określają, co chcesz zmierzyć, oraz metrykę lub kombinację metryk, których można użyć do mierzenia. Na przykład w przypadku tłumaczenia języka metryka oceny dwujęzycznej (BLEU) sprawdza, ile n-gramów pojawia się zarówno w tłumaczeniu maszynowym, jak i w tłumaczeniu ludzkim, aby zmierzyć podobieństwo w zależności od tego, czy tłumaczenia używają tych samych słów. Podobieństwo cosinusowe używa osadzeń między tłumaczeniem maszynowym a ludzkim do mierzenia podobieństwa semantycznego. Jeśli twoim celem jest uzyskanie wysokiego podobieństwa semantycznego i użycie podobnych słów jak w tłumaczeniu człowieka, chcesz uzyskać wysoki wskaźnik BLEU i wysokie podobieństwo cosinusowe. Jeśli dbasz tylko o podobieństwo semantyczne, skoncentruj się na podobieństwie cosinusowym.
Poniższa lista zawiera przykład typowych metryk podobieństwa i oceny. Zwróć uwagę, że wymienione metryki podobieństwa są opisane jako oparte na tokenach, oparte na sekwencji lub oparte na edycji. Te opisy ilustrują podejście do metryk używanych do obliczania podobieństwa. Lista zawiera również trzy algorytmy do oceny jakości tłumaczenia tekstu z jednego języka na inny.
- Najdłuższy wspólny podciąg to algorytm bazujący na sekwencji, który znajduje najdłuższy wspólny podciąg między dwoma ciągami. Najdłuższy wspólny procent podciągów przyjmuje najdłuższy wspólny podciąg i dzieli go przez liczbę znaków mniejszego lub większego ciągu wejściowego.
- Algorytm najdłuższej wspólnej podsekwencji (LCS) to algorytm oparty na analizie sekwencji, który znajduje najdłuższą podsekwencję między dwoma ciągami. LCS nie wymaga, aby podsekwencje znajdowały się w kolejności następującej po sobie.
- podobieństwo cosinusowe to algorytm oparty na tokenach, który oblicza cosinus z kąta między dwoma wektorami.
- Jaro-Winkler odległości to algorytm opierający się na operacjach edycji, który zlicza minimalną liczbę kroków potrzebnych do przekształcenia jednego łańcucha znaków w inny.
- Odległość Hamminga jest algorytmem opartym na edycji, który mierzy minimalną liczbę zamian wymaganych do przekształcenia jednego ciągu w inny.
- indeks Jaccarda jest algorytmem opartym na tokenach, który oblicza podobieństwo, dzieląc przecięcie dwóch ciągów przez ich połączenie.
- Odległość Levenshteina jest algorytmem opartym na edycji, który oblicza podobieństwo, określając minimalną liczbę edycji pojedynczych znaków, które są wymagane do przekształcenia jednego ciągu w inny.
- BLEU ocenia jakość tekstu, który jest wynikiem tłumaczenia maszynowego z jednego języka na inny. BLEU oblicza nakładanie się n-gramów między tłumaczeniem maszynowym a tłumaczeniem jakości ludzkiej w celu dokonania tej oceny.
- ROUGE to metryka, która porównuje tłumaczenie maszynowe jednego języka z innym z tłumaczeniem utworzonym przez człowieka. Istnieje kilka wariantów ROUGE, które używają nakładających się n-gramów, skip-bigrams lub najdłuższej wspólnej podsekwencji.
- meteor ocenia jakość tekstu, który jest wynikiem tłumaczenia maszynowego, sprawdzając dokładne dopasowania, dopasowania po zakończeniu, synonimach, parafrazowaniu i wyrównaniu.
Aby uzyskać więcej informacji na temat typowych podobieństw i metryk oceny, zobacz następujące zasoby:
Używanie wielu metryk oceny razem
Aby lepiej zrozumieć, jak działa rozwiązanie RAG, należy używać razem metryk oceny modelu językowego. Poniżej przedstawiono kilka przykładów używania wielu metryk oceny razem.
Uziemienie i poprawność
Metryki podstaw i poprawności pomagają określić, czy system dokładnie interpretuje i używa kontekstu. Jeśli groundedness jest wysokie, ale poprawność jest niska, oznacza to, że model językowy używa kontekstu, ale udostępnia niepoprawną odpowiedź. Nieprawidłowa odpowiedź może być spowodowana niewłaściwym użyciem kontekstu lub problemów z danymi źródłowymi. Na przykład, jeśli podstawność wynosi 0,9, a poprawność 0,4, oznacza to, że system odwołuje się do poprawnego materiału źródłowego, ale wyciąga błędne wnioski. Rozważ odpowiedź z informacją "Einstein opracował mechanikę kwantową" w oparciu o kontekst, który oddzielnie wspomina zarówno Einsteina, jak i mechanikę kwantową. Ta odpowiedź jest rozsądna, ale rzeczowo niepoprawna.
Ta kombinacja metryki jest taka, w której priorytetyzacja jednej nad drugą może być bardzo ważna dla konkretnego obciążenia. Na przykład, jeśli dane źródłowe zawierają potencjalnie fałszywe informacje z założenia, a może być krytyczne dla systemu, aby zachować te fałszywe informacje w odpowiedziach. W takim przypadku powinieneś nadać priorytet rozsądnej odpowiedzi nad poprawną odpowiedzią. W innych przypadkach lepiej jest, gdy dane kontekstowe są konsultowane przed obciążeniem, ale ostateczna poprawność nadal pozostaje priorytetem.
Wykorzystanie i kompletność
Metryki wykorzystania i kompletności pomagają ocenić skuteczność systemu pobierania. Wysokie wykorzystanie (0,9) z niską kompletnością (0,3) wskazuje, że system pobiera dokładne, ale niekompletne informacje. Na przykład, zapytany o przyczyny II wojny światowej, system może całkowicie pobrać informacje o inwazji na Polski, ale przegapić inne kluczowe czynniki. Ten scenariusz może wskazywać, że istnieją fragmenty z odpowiednimi informacjami, które nie zostały użyte w ramach kontekstu. Aby rozwiązać ten scenariusz, rozważ zwrócenie większej liczby fragmentów, ocenę strategii klasyfikacji fragmentów i ocenę monitu.
Zakotwiczenie, wykorzystanie i podobieństwo
Metryki podstaw, wykorzystania i podobieństwa pomagają zidentyfikować, jak dobrze system utrzymuje prawdę podczas przekształcania informacji. Wysokie umocowanie (0,9) i wykorzystanie (0,9) oraz niskie podobieństwo (0,3) wskazują, że system używa dokładnych danych umocowania, ale źle parafrazuje. Aby adreować ten scenariusz, oceń swoje polecenie. Zmodyfikuj monit i przetestuj wyniki.
Dokumentacja, raportowanie i agregacja
Należy udokumentować zarówno hiperparametry wybrane dla eksperymentu, jak i wynikowe metryki oceny, aby zrozumieć, jak hiperparametry wpływają na wyniki. Należy udokumentować hiperparametry i wyniki na szczegółowych poziomach, takich jak embedding lub ocena wyszukiwania, oraz na poziomie ogólnym, na przykład testowanie całego systemu od początku do końca.
Podczas projektowania i programowania można ręcznie śledzić hiperparametry i wyniki. Jednak wykonanie wielu przebiegów oceniania w ramach całego dokumentu testowego i zbioru zapytań testowych może wiązać się z setkami przebiegów ewaluacji i tysiącami wyników. Należy zautomatyzować trwałość parametrów i wyników oceny.
Po zapisaniu hiperparametrów i wyników należy rozważyć utworzenie wykresów i diagramów, aby ułatwić wizualizowanie, jak hiperparametry wpływają na metryki. Wizualizacja ułatwia określenie, które opcje prowadzą do spadku lub wzrostu wydajności.
Ważne jest, aby zrozumieć, że projektowanie i ocenianie rozwiązania RAG nie jest jednorazową operacją. Kolekcja dokumentów zmienia się w czasie. Pytania, które klienci zadają, zmieniają się wraz z upływem czasu, a zrozumienie typów pytań ewoluuje w miarę uczenia się z produkcji. Należy wielokrotnie ponownie przemyśleć ten proces. Utrzymywanie dokumentacji wcześniejszych ocen ma kluczowe znaczenie dla przyszłych działań projektowych i ewaluacyjnych.
Akcelerator eksperymentu RAG
Te artykuły przeprowadzą Cię przez wszystkie fazy i wybory projektowe, które są zaangażowane w projektowanie i ocenianie rozwiązania RAG. Artykuły koncentrują się na tym, co należy robić, a nie na tym, jak to zrobić. Zespół inżynierów, który współpracuje z najlepszymi klientami firmy Microsoft, opracował narzędzie o nazwie RAG Experiment Accelerator. Akcelerator Eksperymentów RAG to najnowocześniejsze ramy eksperymentalne. Został zaprojektowany pod kątem optymalizacji i ulepszania opracowywania rozwiązań RAG. Akcelerator Eksperymentów RAG umożliwia naukowcom i deweloperom efektywne eksplorowanie i dostosowywanie krytycznych składników, które napędzają wydajność RAG. Ta innowacja ostatecznie prowadzi do dokładniejszego i spójnego generowania tekstu.
Akcelerator eksperymentu RAG używa interfejsu wiersza polecenia, dzięki czemu można łatwo eksperymentować z różnymi modelami osadzania, uściślić strategie fragmentowania i oceniać różne podejścia wyszukiwania w celu odblokowania pełnego potencjału systemu RAG. Pozwala ona skupić się na podstawowych aspektach programowania RAG przy użyciu prostej konfiguracji do dostrajania hiperparametrów.
Platforma zapewnia również kompleksową obsługę konfiguracji modelu językowego. Ta obsługa ułatwia znalezienie idealnej równowagi między złożonością modelu a jakością generowania. To narzędzie pomaga usprawnić proces eksperymentowania, zaoszczędzić czas i znacznie poprawić wydajność modeli RAG.
RAG z ramami Aplikacyjnego Frameworku Wizyjnego
Większość wskazówek w tym artykule dotyczących pracy z mediami w rozwiązaniu RAG pochodzi od innego zespołu inżynieryjnego, który współpracuje z najlepszymi klientami firmy Microsoft. Ten zespół napisał platformę o nazwie RAG with Vision Application Framework. Ta struktura udostępnia potok RAG oparty na języku Python, który przetwarza zarówno zawartość tekstową, jak i obrazową z dokumentów MHTML.
Framework ładuje, dzieli i wzbogaca tekst oraz obrazy z plików MHTML. Następnie pozyskiwa fragmenty do usługi Azure AI Search. Struktura implementuje buforowanie na potrzeby wzbogacania obrazów w celu przetwarzania i wydajności kosztów. Struktura obejmuje również ocenę jako część ciągu przetwarzania.
Współpracownicy
Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.
- Raouf Aliouat | Inżynier oprogramowania II
- Rob Bagby | Główny lider zawartości centrum architektury
- Paul Butler | Inżynier oprogramowania
- Prabal Deb | Główny inżynier oprogramowania
- Soubhi Hadri | Starszy analityk danych
- Ritesh Modi | Główny inżynier
- Ryan Pfalz | Starszy menedżer programu technicznego
- Mahdi Setayesh | Główny inżynier oprogramowania
- Randy Thurman | Główny architekt rozwiązań w chmurze sztucznej inteligencji