Modele i platformy AI
Ulepszanie modeli językowych z wykorzystaniem augmentacji pobierania: Samoistna argumentacja i adaptacyjna augmentacja dla systemów konwersacyjnych

Przez
Aayush Mittal Mittal
Duże modele językowe często mają trudności z dostarczaniem precyzyjnych i aktualnych informacji, szczególnie w złożonych zadaniach opartych na wiedzy. Aby pokonać te przeszkody, badacze badają metody poprawy tych modeli poprzez integrowanie ich z zewnętrznymi źródłami danych.
Dwie nowe podejścia, które pojawiły się w tym polu, to ramy samoistnej argumentacji i adaptacyjna augmentacja pobierania dla systemów konwersacyjnych. W tym artykule zagłębimy się w te innowacyjne techniki i zbadamy, jak one posuwają granice tego, co jest możliwe z modelami językowymi.
Obietnice i pułapki modeli językowych z augmentacją pobierania
Zrozumiemy pojęcie modeli językowych z augmentacją pobierania (RALM). Podstawową ideą za RALM jest połączenie ogromnej wiedzy i zdolności językowych pre-trenowanych modeli językowych z możliwością dostępu i włączania zewnętrznych, aktualnych informacji podczas inferencji.
Oto prosta ilustracja, jak podstawowy RALM mógłby działać:
- Użytkownik zadaje pytanie: “Jaki był wynik Igrzysk Olimpijskich w 2024 roku?”
- System pobiera odpowiednie dokumenty z zewnętrznej bazy wiedzy.
- Model LLM przetwarza pytanie wraz z pobranymi informacjami.
- Model generuje odpowiedź na podstawie zarówno wewnętrznej wiedzy, jak i zewnętrznych danych.
To podejście wykazało duży potencjał w poprawie dokładności i trafności wyników modeli LLM, szczególnie w zadaniach wymagających dostępu do bieżących informacji lub wiedzy branżowej. Jednak RALM nie są pozbawione wyzwań. Dwa kluczowe problemy, z którymi borykają się badacze, to:
- Niezawodność: Jak możemy zapewnić, że pobrane informacje są istotne i przydatne?
- Śledzenie: Jak możemy uczynić proces rozumowania modelu bardziej przejrzystym i weryfikowalnym?
Ostatnie badania zaproponowały innowacyjne rozwiązania tych wyzwań, które będziemy badać w głębi.
Samoistna argumentacja: Wzmacnianie RALM z jawnymi trajektoriami argumentacji
To jest architektura i proces za modelami językowymi z augmentacją pobierania, koncentrując się na ramach samoistnej argumentacji. To podejście wykorzystuje trajektorie, aby poprawić zdolność modelu do argumentacji nad pobranymi dokumentami.
Gdy zadane jest pytanie, pobierane są odpowiednie dokumenty i przetwarzane przez serię kroków argumentacji. Mechanizm samoistnej argumentacji stosuje procesy świadome istotności i analizy trajektorii, aby przefiltrować i zsyntetyzować informacje przed wygenerowaniem ostatecznej odpowiedzi. To podejście nie tylko poprawia dokładność wyniku, ale także zapewnia, że proces argumentacji jest przejrzysty i śledzalny.
W powyższych przykładach, takich jak określenie daty premiery filmu “Catch Me If You Can” lub identyfikacja artystów, którzy namalowali sufity katedry we Florencji, model skutecznie przefiltrowuje pobrane dokumenty, aby wyprodukować dokładne, wsparte kontekstem odpowiedzi.
Ten obraz przedstawia porównawczą analizę różnych wariantów modeli LLM, w tym modeli LLaMA2 i innych modeli z augmentacją pobierania, w zadaniach takich jak NaturalQuestions, PopQA, FEVER i ASQA. Wyniki są podzielone między bazowe modele bez pobierania a te, które zostały wzmocnione zdolnościami pobierania.
Ten obraz przedstawia scenariusz, w którym model LLM jest zadań z dostarczaniem sugestii na podstawie zapytań użytkowników, demonstrując, jak zewnętrzna wiedza może wpłynąć na jakość i istotność odpowiedzi. Diagram podkreśla dwa podejścia: jedno, w którym model wykorzystuje wiedzę, i drugie, w którym nie. Porównanie pokazuje, jak włączenie konkretnych informacji może dostosować odpowiedzi do potrzeb użytkownika, zapewniając głębię i dokładność, które mogłyby być niedostępne w czysto generatywnym modelu.
Jednym z przełomowych podejść do poprawy RALM jest wprowadzenie ram samoistnej argumentacji. Podstawową ideą tego podejścia jest wykorzystanie własnych możliwości modelu językowego do generowania jawnych trajektorii argumentacji, które mogą być następnie wykorzystane do poprawy jakości i niezawodności wyników.
Złóżmy kluczowe składniki ramy samoistnej argumentacji:
- Proces świadomy istotności (RAP)
- Proces selektywny świadomy dowodów (EAP)
- Proces analizy trajektorii (TAP)
Proces świadomy istotności (RAP)
RAP jest zaprojektowany, aby rozwiązać jeden z podstawowych wyzwań RALM: określenie, czy pobrane dokumenty są naprawdę istotne dla zadania. Oto, jak to działa:
- System pobiera zestaw potencjalnie istotnych dokumentów przy użyciu modelu pobierania (np. DPR lub Contriever).
- Model językowy jest następnie instruowany, aby ocenić istotność tych dokumentów w odniesieniu do pytania.
- Model generuje jawne powody, wyjaśniając, dlaczego dokumenty są uważane za istotne lub nieistotne.
Na przykład, dla pytania “Kiedy została zbudowana Wieża Eiffela?”, RAP mógłby wyprodukować dane wyjściowe w postaci:
Istotne: Prawda
Powód istotności: Pobrane dokumenty zawierają szczegółowe informacje o datach budowy Wieży Eiffela, w tym rozpoczęcie w 1887 roku i zakończenie w 1889 roku.Ten proces pomaga filtrować nieistotne informacje na wczesnym etapie, poprawiając jakość odpowiedzi modelu.
Proces selektywny świadomy dowodów (EAP)
EAP idzie o krok dalej, instruując model, aby zidentyfikować i cytować konkretną część dowodów z istotnych dokumentów. Ten proces naśladuje, jak ludzie mogliby podejść do zadania badawczego, wybierając kluczowe zdania i wyjaśniając ich istotność. Oto, jak mogłoby wyglądać dane wyjściowe EAP:
Zacytuj treść: "Budowa Wieży Eiffela rozpoczęła się 28 stycznia 1887 roku i została ukończona 31 marca 1889 roku."
Powód cytowania: To zdanie dostarcza dokładne daty rozpoczęcia i zakończenia budowy Wieży Eiffela, bezpośrednio odpowiadając na pytanie o datę jej budowy.Poprzez jawne cytowanie źródeł i wyjaśnianie istotności każdej części dowodów, EAP poprawia śledzenie i interpretowalność wyników modelu.
Proces analizy trajektorii (TAP)
TAP jest ostatecznym etapem ramy samoistnej argumentacji, gdzie model konsoliduje wszystkie trajektorie argumentacji wygenerowane w poprzednich krokach. Analizuje te trajektorie i produkuje zwięzłe podsumowanie wraz z ostateczną odpowiedzią. Dane wyjściowe TAP mogą wyglądać następująco:
Analiza: Wieża Eiffela została zbudowana między 1887 a 1889 rokiem. Budowa rozpoczęła się 28 stycznia 1887 roku i została ukończona 31 marca 1889 roku. Informacje te są wspierane przez wiele wiarygodnych źródeł, które dostarczają spójne daty dla okresu budowy wieży.
Odpowiedź: Wieża Eiffela została zbudowana w latach 1887-1889.
Ten proces pozwala modelowi dostarczyć zarówno szczegółowe wyjaśnienie swojego rozumowania, jak i zwięzłą odpowiedź, dostosowując się do różnych potrzeb użytkowników.
Wdrożenie samoistnej argumentacji w praktyce
Aby wdrożyć tę ramę samoistnej argumentacji, badacze zbadali różne podejścia, w tym:
- Wyzwanie pre-trenowanych modeli językowych
- Dostosowywanie modeli językowych przy użyciu efektywnych parametrów technik, takich jak QLoRA
- Rozwój specjalistycznych architektur neuronowych, takich jak modele z wielogłowicową uwagą
Każde z tych podejść ma swoje wady i zalety. Na przykład, podejście wyzwalające jest najłatwiejsze do wdrożenia, ale może nie zawsze dawać spójne wyniki. Dostosowywanie z QLoRA oferuje dobry balans między wydajnością a efektywnością, podczas gdy specjalistyczne architektury mogą zapewnić najlepszą wydajność, ale wymagają większych zasobów obliczeniowych do treningu.
Oto uproszczony przykład, jak można wdrożyć RAP przy użyciu podejścia wyzwalającego z modelem językowym takim jak GPT-3:
import openai
<p>def proces_świadomy_istotności(pytań, dokumentów):
wyzwanie = f"""
Pytanie: {pytań}
Dokumenty pobrane:
{dokumentów}
Zadanie: Określić, czy pobrane dokumenty są istotne dla odpowiedzi na pytanie.
Format wyjściowy:
Istotne: [Prawda/Fałsz]
Powód istotności: [Wyjaśnienie]
Twoja analiza:
"""
odpowiedź = openai.Completion.create(
silnik="text-davinci-002",
wyzwanie=wyzwanie,
max_tokens=150
)
zwróć odpowiedź.wyborów[0].tekst.strip()
<p># Przykład użycia
pytanie = "Kiedy została zbudowana Wieża Eiffela?"
dokumenty = "Wieża Eiffela jest kratownicową wieżą z kutego żelaza na Polu Marsowym w Paryżu, we Francji. Jest nazwana na cześć inżyniera Gustave'a Eiffela, którego firma zaprojektowała i zbudowała wieżę. Zbudowana w latach 1887-1889 jako brama wejściowa na Wystawę Światową w 1889 roku, była początkowo krytykowana przez niektórych z czołowych artystów i intelektualistów Francji za swój design, ale stała się globalnym symbolem kulturowym Francji."
wynik = proces_świadomy_istotności(pytań, dokumenty)
print(wynik)
Adaptacyjna augmentacja pobierania dla systemów konwersacyjnych
Podczas gdy ramy samoistnej argumentacji koncentrują się na poprawie jakości i interpretowalności poszczególnych odpowiedzi, inna linia badań bada, jak uczynić augmentację pobierania bardziej adaptacyjną w kontekście systemów konwersacyjnych. To podejście, znane jako adaptacyjna augmentacja pobierania, ma na celu określenie, kiedy zewnętrzna wiedza powinna być użyta w rozmowie i jak ją skutecznie włączyć.
Kluczową intuicją za tym podejściem jest to, że nie każdy obrót w rozmowie wymaga augmentacji zewnętrznej wiedzy. W niektórych przypadkach, zbyt silne poleganie na pobranych informacjach może prowadzić do nienaturalnych lub zbyt rozwlekłych odpowiedzi. Wyzwaniem jest zatem opracowanie systemu, który może dynamicznie decydować, kiedy używać zewnętrznej wiedzy i kiedy polegać na wewnętrznych zdolnościach modelu.
Składniki adaptacyjnej augmentacji pobierania
Aby rozwiązać to wyzwanie, badacze zaproponowali ramę o nazwie RAGate, która składa się z kilku kluczowych składników:
- Mechanizm bramki wiedzy binarnej
- Proces świadomy istotności
- Proces selektywny świadomy dowodów
- Proces analizy trajektorii
Mechanizm bramki wiedzy binarnej
Rdzeniem systemu RAGate jest bramka wiedzy binarnej, która decyduje, czy użyć zewnętrznej wiedzy dla danego obrotu rozmowy. Ta bramka bierze pod uwagę kontekst rozmowy i, opcjonalnie, pobrane wiadomości wiedzy, aby podjąć decyzję.
Oto uproszczona ilustracja, jak mogłaby działać bramka binarna:
def bramka_wiedzy(kontekst, pobrana_wiedza=None): # Analizuj kontekst i pobraną wiedzę # Zwróć Prawdę, jeśli zewnętrzna wiedza powinna być użyta, Fałsz w przeciwnym razie pass <p>def generuj_odpowiedź(kontekst, wiedza=None): if bramka_wiedzy(kontekst, wiedza): # Użyj augmentacji pobierania return generuj_z_wiedzą(kontekst, wiedza) else: # Użyj standardowego modelu językowego return generuj_bez_wiedzy(kontekst)
Ten mechanizm bramki pozwala systemowi być bardziej elastycznym i świadomym kontekstu w użyciu zewnętrznej wiedzy.
Wdrożenie RAGate
Ten obraz ilustruje ramę RAGate, zaawansowany system zaprojektowany do włączania zewnętrznej wiedzy do modeli LLM w celu poprawy generowania odpowiedzi. Ta architektura pokazuje, jak podstawowy model LLM może być uzupełniony o kontekst lub wiedzę, albo przez bezpośredni input, albo poprzez integrację z zewnętrznymi bazami danych w trakcie generowania. To podwójne podejście – wykorzystujące zarówno wewnętrzne zdolności modelu, jak i zewnętrzną wiedzę – umożliwia modelowi LLM dostarczanie bardziej dokładnych i kontekstowo istotnych odpowiedzi. To hybrydowe podejście mostkuje lukę między surową mocą obliczeniową a specjalistyczną wiedzą branżową.
Prezentuje to metryki wydajności dla różnych wariantów modeli w ramach RAGate, koncentrując się na integracji pobierania z efektywnym dostosowywaniem parametrów (PEFT). Wyniki podkreślają wyższość modeli zintegrowanych z kontekstem, szczególnie tych, które wykorzystują ner-know i ner-source embeddings.
Modele RAGate-PEFT i RAGate-MHA wykazują znaczące poprawy w precyzji, recallu i wynikach F1, podkreślając korzyści z włączania zarówno kontekstu, jak i wiedzy. Te strategie dostosowywania umożliwiają modelom lepsze wykonanie zadań intensywnie korzystających z wiedzy, dostarczając bardziej solidne i skalowalne rozwiązanie dla aplikacji świata rzeczywistego.
Aby wdrożyć RAGate, badacze zbadali kilka podejść, w tym:
- Używanie dużych modeli językowych z starannie przygotowanymi wyzwaniami
- Dostosowywanie modeli językowych przy użyciu efektywnych parametrów technik
- Rozwój specjalistycznych architektur neuronowych, takich jak modele z wielogłowicową uwagą
Każde z tych podejść ma swoje zalety i wady. Na przykład, podejście wyzwalające jest względnie proste do wdrożenia, ale może nie zawsze dawać spójne wyniki. Dostosowywanie oferuje dobry balans między wydajnością a efektywnością, podczas gdy specjalistyczne architektury mogą zapewnić najlepszą wydajność, ale wymagają większych zasobów obliczeniowych do treningu.
Oto uproszczony przykład, jak można wdrożyć system podobny do RAGate przy użyciu dostosowanego modelu językowego:
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
<p>class RAGate:
def __init__(self, nazwa_modelu):
self.tokenizer = AutoTokenizer.from_pretrained(nazwa_modelu)
self.model = AutoModelForSequenceClassification.from_pretrained(nazwa_modelu)
<p>def czy_użyć_wiedzy(self, kontekst, wiedza=None):
wejścia = self.tokenizer(kontekst, wiedza or "", return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
wyjścia = self.model(**wejścia)
prawdopodobieństwa = torch.softmax(wyjścia.logits, dim=1)
return prawdopodobieństwa[0][1].item() > 0.5 # Zakładając klasyfikację binarną (0: nie używaj wiedzy, 1: użyj wiedzy)
<p>class SystemKonwersacyjny:
def __init__(self, ragate, lm, retriever):
self.ragate = ragate
self.lm = lm
self.retriever = retriever
<p>def generuj_odpowiedź(self, kontekst):
wiedza = self.retriever.pobierz(kontekst)
if self.ragate.czy_użyć_wiedzy(kontekst, wiedza):
return self.lm.generuj_z_wiedzą(kontekst, wiedza)
else:
return self.lm.generuj_bez_wiedzy(kontekst)
<p># Przykład użycia
ragate = RAGate("ścieżka/do/dostosowanego/modelu")
lm = ModelJęzykowy() # Wybrany model językowy
retriever = RetrieverWiedzy() # System pobierania wiedzy
system_konwersacyjny = SystemKonwersacyjny(ragate, lm, retriever)
kontekst = "Użytkownik: Co to jest stolica Francji?\nSystem: Stolicą Francji jest Paryż.\nUżytkownik: Powiedz mi więcej o jego słynnych zabytkach."
odpowiedź = system_konwersacyjny.generuj_odpowiedź(kontekst)
print(odpowiedź)
Ten przykład demonstruje, jak system podobny do RAGate mógłby być wdrożony w praktyce. Klasa RAGate używa dostosowanego modelu do decyzji o użyciu zewnętrznej wiedzy, podczas gdy klasa SystemKonwersacyjny koordynuje interakcję między bramką, modelem językowym i systemem pobierania.
Wyzwania i przyszłe kierunki
Chociaż ramy samoistnej argumentacji i adaptacyjna augmentacja pobierania wykazują duży potencjał, istnieją jeszcze kilka wyzwań, z którymi badacze próbują się uporać:
- Wyższa efektywność obliczeniowa: Obie podejścia mogą być obliczeniowo intensywne, szczególnie przy radzeniu sobie z dużymi ilościami pobranych informacji lub generowaniem długich trajektorii argumentacji. Optymalizacja tych procesów do aplikacji w czasie rzeczywistym pozostaje aktywnym obszarem badań.
- Wytrzymałość: Zapewnienie, że te systemy wykonują się spójnie w szerokim zakresie tematów i typów pytań, jest kluczowe. To obejmuje radzenie sobie z przypadkami brzegowymi i wejściami nieprzyjaznymi, które mogą mylić ocenę istotności lub mechanizmy bramki.
- Wspieranie wielu języków i obsługa międzyjęzykowa: Rozszerzenie tych podejść, aby działały skutecznie w wielu językach i radziły sobie z pobieraniem informacji i argumentacją międzyjęzykową, jest ważnym kierunkiem przyszłych badań.
- Integracja z innymi technologiami AI: Badanie, jak te podejścia mogą być połączone z innymi technologiami AI, takimi jak modele multimodalne lub uczenie ze wzmocnieniem, może prowadzić do jeszcze potężniejszych i bardziej elastycznych systemów.
Podsumowanie
Rozwój ram samoistnej argumentacji i adaptacyjnej augmentacji pobierania reprezentuje znaczący krok naprzód w dziedzinie przetwarzania języka naturalnego. Poprzez umożliwienie modelom językowym jawnej argumentacji o informacjach, których używają, oraz adaptacyjnej zmianie strategii augmentacji wiedzy, te podejścia obiecują uczynić systemy AI bardziej niezawodnymi, interpretowalnymi i świadomymi kontekstu.
W miarę ewolucji badań w tej dziedzinie, możemy oczekiwać, że te techniki zostaną udoskonalone i zintegrowane z szerokim zakresem aplikacji, od systemów odpowiedzi na pytania i wirtualnych asystentów po narzędzia edukacyjne i pomocnicze badawcze. Możliwość połączenia ogromnej wiedzy zakodowanej w dużych modelach językowych z dynamicznie pobieranymi, aktualnymi informacjami ma potencjał rewolucjonizować, jak wchodzimy w interakcje z systemami AI i dostęp do informacji.
Przez ostatnie pięć lat zanurzałem się w fascynującym świecie Machine Learning i Deep Learning. Moja pasja i ekspertyza doprowadziły mnie do udziału w ponad 50 różnorodnych projektach inżynierii oprogramowania, ze szczególnym uwzględnieniem AI/ML. Moja nieustanna ciekawość również skierowała mnie w stronę Natural Language Processing, dziedziny, którą chcę dalej eksplorować.
Odkryj więcej


Czym jest generowanie wspomagane wyszukiwaniem (RAG)? Jak AI odpowiada z wykorzystaniem zewnętrznej wiedzy


Problem pamięci AI: Dlaczego wydajna długa kontekst zmienia wszystko, i co jest potrzebne, aby to osiągnąć


Dlaczego Twój Biomedyczny RAG Ukrywa Przed Tobą Sprzeczności


Prawdziwa przyczyna, dla której twój pipeline RAG ciągle halucynuje


Przewidywanie 2026 – Otwarte źródło będzie jeździć na fali AI do swojej następnej złotej ery


Dylemat kontroli AI: ryzyka i rozwiązania




