$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Kompleksowe podstawy teoretyczne
Komponent QAS: Ramy QAS składają się z trzech segmentów, jak pokazano na Rysunku 3: i) Moduł przetwarzania pytań (QPM), ii) Moduł przetwarzania dokumentów (DPM) oraz iii) Moduł ekstrakcji i formułowania odpowiedzi (AEFM). System otrzymuje pytania dzielące się na dwie główne kategorie: Factoid i Non-Factoid. Pytania factoidalne zazwyczaj używają pytań takich jak co, gdzie, kiedy lub kto, podczas gdy pytania nie-factoidalne używają słów typu how i why.
DPM: Z dostępnej listy użytkownik może wybrać konkretny fragment. Następnie każdy token w fragmencie jest oznaczany tagiem części mowy (POS). Aby wyodrębnić czasowniki, zidentyfikować wszystkie tokeny oznaczone jako czasowniki. Połącz te czasowniki z listą niekonwencjonalnych czasowników i zastosuj logikę dla czasowników regularnych. Stwórz strukturę danych (tablicę) zawierającą wyodrębnione czasowniki, ich czasy oraz formy -ing.
QPM: System otrzymuje dane wejściowe w formie pytania od użytkownika. Tekst jest tokenizowany za pomocą klasy StringTokenizer, a powstałe tokeny są przechowywane w osobnej strukturze danych. Ta struktura danych jest następnie zwracana do dalszego wykorzystania w programie.
AEFM: Pierwszym krokiem jest zidentyfikowanie czasownika w danym pytaniu. Niedawno zidentyfikowany czasownik jest teraz dopasowany do tokenów wygenerowanych podczas etapu przetwarzania dokumentów. Wybrany przypadek dla konkretnego typu pytania faktycznego (takiego jak co lub kiedy) jest wykorzystywany do wyodrębnienia i skonstruowania odpowiedzi w bardziej precyzyjny sposób.
Przed wyborem rodzaju pytania użytkownik jest najpierw proszony o wybranie wybranego fragmentu. QPM odpowiada za przetwarzanie pytań użytkownika i przekazywanie go do AEFM. AEFM wykorzystuje wyodrębnienia uzyskane z DPM oraz przetworzone dokumenty zawierające oznaczony format oryginalnego dokumentu wejściowego. Moduł przekaże wymagane algorytmy modułowi formułującemu, aby uzyskać pożądaną odpowiedź.

Rysunek 3: Komponenty QAS. Rysunek ilustruje czteroetapowy proces systemu QA: Pytanie, Przetwarzanie pytań, Przetwarzanie odpowiedzi oraz Odpowiedź. W procesie przetwarzania pytań system klasyfikuje pytanie. W procesie przetwarzania odpowiedzi znajduje i przegląda dokumenty oraz fragmenty, aby uzyskać odpowiedź. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.
Model: Aby odkryć powiązania między słowami w tekście, metoda wykorzystuje transformator. W transformatorze są dwa mechanizmy – enkoder i dekoder28, ale do potrzebny jest tylko enkoder. stosuje dwukierunkowe podejście i systematycznie skanuje tekst wejściowy, aby nauczyć się znaczenia słów w ich kontekście. Koder przyjmuje jako wejście serię tokenów, które zostały wektoryzowane. Wektory są następnie wprowadzane do sieci neuronowej, która generuje serię wektorów odbijających dane wejściowe. Wektor wyjściowy słowa zmienia się w zależności od zdania, w którym się pojawia. Wektor słowa może się różnić w zależności od kontekstu, w którym się pojawia; na przykład "like" w "He likes to play cricket" ma inny wektor niż "like" w "His face turned red like a pomid." Podejście zaczyna się od fazy przetwarzania tekstu, zanim przejdzie do fazy budowania modelu. Kroki, które podejmuje przy przetwarzaniu tekstu, są omówione w następnej sekcji28.
Przetwarzanie tekstu: Model reprezentuje tekst wejściowy zgodnie z określonym zestawem zasad. Dodatkowo ten czynnik przyczynia się do poprawy wydajności modelu. Osadzenie wejściowe w składa się z amalgamatu trzech odrębnych typów osadzeń28.
Osadzenia pozycji (PE): Aby nauczyć się informacji o kolejności w osadzeniach, stosuje się PE. PE służą do przywrócenia informacji o kolejności, która została utracona w transformatorach. opracowuje odrębne PE specjalnie dla każdego punktu sekwencji wejściowej. posiada zdolność przekazywania informacji pozycyjnej słów w zdaniu za pomocą PE. Pozwala to-owi skutecznie przechwytywać i reprezentować sekwencję lub kolejność słów.
Osadzenia zdań (SE): Dodatkowo, aby pomóc modelu rozróżnić pierwsze i drugie zdanie, uczy się osadzenia unikalnego dla każdego z nich. Jest również zdolny do przyjmowania zdań parowych jako danych wejściowych do aktywności takich jak QA.
Osadzenia tokenów (TE): TE są nauczane dla każdego tokena w słowniku tokenów WordPiece. Słownictwo tokenów WordPiece składa się z jednostek podwyrazowych pochodzących ze słów znajdujących się w korpusie. Jako przykład ilustracyjny, ten zbiór słownictwa obejmie wszystkie możliwe podsłowa terminu Question, w tym Questio, Questi i inne.
Reprezentacja wejściowa tokena jest budowana przez sumowanie jego osadzeń na poziomach segmentu i pozycji. Z tego powodu jest to rozbudowane podejście osadzania, które dostarcza modelu ogromnej ilości informacji. Rysunek 49przedstawia osadzenia modelu.

Rysunek 4: Osadzenia. Rysunek pokazuje, jak powstają osadzenia wejściowe dla modelu transformatora. Zaczyna się od sekwencji wejściowej: [CLS] [MASK] niebo jest pochmurne [WRZEŚNIE], będzie padać [WRZEŚNIE]. Każdy token w sekwencji otrzymuje własne osadzenie, takie jak Ethe lub E[MASK]. Następnie dla każdego zdania dodaje się osadzenia zdań, takie jak EA dla pierwszego i EB dla drugiego. Uwzględnione są również osadzenia pozycyjne, oznaczone E0 do E9, aby wskazać pozycję każdego tokena. Wszystkie te elementy są łączone, tworząc ostateczne osadzenia wejściowe. Ta figura została zmodyfikowana z9. Proszę kliknąć tutaj, aby zobaczyć większą wersję tej figurki.
Projektowanie QAS z użyciem: Dla celów ilustracyjnych przeanalizuj to pytanie w połączeniu z akapitem zaczerpniętym z wpisu Wikipedii o Football League28.
Pytanie: Gdzie powstała Football League?
Przejście: W 1888 roku w Anglii powstała Football League, stając się pierwszą z wielu profesjonalnych rozgrywek piłkarskich. W XX wieku kilka różnych rodzajów piłki nożnej rozwinęło się, stając się jednymi z najpopularniejszych sportów drużynowych na świecie.
Odpowiedź: Anglia
Model wykorzystuje wyciąganie tokenów zarówno z pytania, jak i kontekstu, łącząc je następnie w jednolite wejście. Jak już wspomniano, proces rozpoczyna się od użycia tokena [CLS], który służy jako wskaźnik rozpoczęcia zdania. Dodatkowo stosuje się separator [SEP], który wyraźnie oddziela pytanie od fragmentu. Oprócz tokena [SEP], zawiera SE, aby rozróżnić pytanie od fragmentu28 zawierającego odpowiedź. używa dwóch SE, jednego poświęconego temu pytaniu, drugiego fragmentowi, aby wyraźnie je rozróżnić. Następnie osadzenia są łączone z jedną gorącą reprezentacją28 tokenów, aby odróżnić pytanie od fragmentu. Proces ten zilustrowany jest na rysunku 5.

Rysunek 5: Reprezentacja wejściowa. Rysunek ilustruje, jak generowane są osadzenia wejściowe dla QAS opartego na. Zaczyna się od tokena [CLS], potem pytanie: Ilu? [SEP], oraz fragment large is, każdy z osadzeniami zdań (A dla pytania, B dla fragmentu). Tokeny, zdania i pozycyjne osadzenia są łączone, aby uzyskać ostateczne wejście. Proszę kliknąć tutaj, aby zobaczyć większą wersję tego rysunku.
Następnie połączona osadzona reprezentacja28 pytania i kontekstu jest wykorzystywana jako wejście w modelu. Ostatnia ukryta warstwa jest modyfikowana tak, aby wykorzystywać SoftMax do generowania rozkładów prawdopodobieństwa. Rozkłady te określają indeksy początkowe i końcowe podciągu w zdaniu tekstowym wejściowym, które reprezentuje odpowiedź, jak pokazano na Rysunku 6, dla wizualnej reprezentacji.

Rysunek 6: Workflow przetwarzania dla QA.Rysunek pokazuje, jak model działa w QA. Przedstawia sekwencję wejściową, która zawiera pytanie, oznaczone tokenem klasyfikacji [CLS] na początku i tokenem separatora [SEP] na końcu, po którym następuje kontekst, oddzielony kolejnym [SEP]. Tokeny w tej sekwencji są zamieniane w osadzenia. Model następnie przewiduje pozycję początkową i końcową odpowiedzi w fragmencie. Proszę kliknąć tutaj, aby zobaczyć większą wersję tego rysunku.
Baza wektorowa (VD): VD17,18 to specjalistyczny system do efektywnego przechowywania, zarządzania, indeksowania i zapytań wysokowymiarowych reprezentacji wektorowych danych. Wektory są często generowane z modeli głębokiego uczenia i zawierają informacje semantyczne lub kontekstowe dotyczące danych. Każdy wymiar wektora reprezentuje konkretną cechę. Osadzenia to numeryczne reprezentacje obiektów takich jak tekst, obrazy, filmy i dźwięk. Te osadzenia są wykorzystywane w różnych zastosowaniach, w tym w uczeniu maszynowym (ML), NLP, systemach rekomendacji, widzeniu komputerowym oraz IR. VD ułatwiają skuteczne wyszukiwania podobieństw i zapytania semantyczne, grupując podobne obiekty blisko siebie w przestrzeni wektorowej. Facebook AI Similarity Search (FAISS)29 to znana choroba weneryczna użyta w tym badaniu do identyfikacji najbardziej istotnego kontekstu dla zapytań użytkowników. Tabela 2 przedstawia główne cechy choroby wenerycznych oraz ich zastosowania.
| Cecha | Opis |
| Dane wysokowymiarowe | Obsługuje dane o setkach lub tysiącach wymiarów. |
| Przybliżony najbliższy sąsiad (ANN) | Umożliwia szybkie wyszukiwanie podobieństw poprzez przybliżanie odległości. |
| Skalowalność | Obsługuje duże zbiory danych z miliardami wektorów. |
| Integracja | Często integruje się z frameworkami i narzędziami AI/ML, co pozwala na płynne przepływy pracy. |
| Zapytania w czasie rzeczywistym | Zapewnia wektorowe wyszukiwania o niskim opóźnieniu dla aplikacji interaktywnych. |
Tabela 2: Główne cechy choroby wenerycznej. Tabela podkreśla ważne cechy choroby wenerycznej. Obejmują one obsługę danych o wysokich wymiarach, szybkie wyszukiwanie podobieństw za pomocą algorytmów ANN, skalowanie do dużych zbiorów danych, współpracę z narzędziami AI i ML oraz wsparcie szybkich, w czasie rzeczywistym zapytań do interaktywnego użytku.
Metryki oceny wyników: System SCD-QA został oceniony na podstawie dwóch głównych wskaźników: wyniku EM14 oraz latencji modelu15. Wynik EM, standardowy wskaźnik w badaniach QA, ocenia dokładność przewidywania poprzez pomiar odsetka przewidywanych odpowiedzi, które dokładnie odpowiadają rzeczywistości. Dla zestawu N pytań wynik EM jest formalnie określony w równaniu 1 w następujący sposób:
gdzie
(1)
Ta metryka przypisuje wynik 1 za dokładne dopasowanie do odpowiedzi referencyjnej oraz 0 za każdą różnicę.
Metryka opóźnienia określa całkowity czas przetwarzania potrzebny przez system do wygenerowania odpowiedzi na pojedyncze zapytanie. Ta metryka jest obliczana jako średni upływ czasu wszystkich zapytań, zgodnie z Równaniem 2:
(2)
gdzie Tzaczynai, a Tkończyi to znaczniki czasowe oznaczające odpowiednio początek i koniec przetwarzania i-tego zapytania. Opóźnienia są raportowane w s i rejestrują responsywność systemu, obejmując wszystkie etapy od przetwarzania danych wejściowych po generowanie odpowiedzi.
Metoda
Aby wdrożyć SCD-QA, w niniejszym artykule uwzględniono następujące badania testowe.
Zbiór danych SCD-QA: Proponowany zestaw danych30 jest wprowadzany do implementacji systemu SCD-QA. Ten zbiór danych pochodzi z korpusu tekstów zawierającego zasady doktoranckie na rok20228, dotyczące wytycznych dla studentów z NIT Arunachal Pradesh, Indie. Aby ustanowić system SCD-QA, konieczne jest wygenerowanie pliku JSON, który zawiera wszystkie istotne informacje w precyzyjnym formacie. Zbiór danych jest generowany z korpusu tekstowego za pomocą narzędzia Haystack annotation tool (wersja 2.18.1)31, otwartoźródłowego frameworka. To narzędzie ułatwia tworzenie zbioru danych SCD-QA w stylu SQuAD14. Kroki tworzenia anotowanego zbioru danych typu SQuAD z pliku PDF przedstawiono na Rysunku 7, a struktura naszego zbioru danych w stylu SQuAD została zilustrowana na Rysunku 8.

Rysunek 7: Kroki tworzenia annotowanego zbioru danych z pliku PDF.Rysunek ilustruje stopniowy przepływ pracy przy tworzeniu anotowanego zbioru danych w stylu SQuAD przy użyciu narzędzi Haystack. Opisuje proces od wyodrębniania tekstu z PDF-ów, czyszczenia i dzielenia na fragmenty, ręcznego adnotowania par pytanie-odpowiedź, przechowywania adnotacji w formacie JSON SQuAD, aż po eksport zbioru danych do treningu modelu. Proszę kliknąć tutaj, aby zobaczyć większą wersję tego rysunku.

Rysunek 8: Struktura factoid dataset QA. Rysunek przedstawia strukturę danych JSON, która reprezentuje paragraf i parę QA ze zbioru danych. Zawiera sekcję akapitów, która zawiera zestaw pytań i odpowiedzi. Jedno z pytań brzmi: Jaki jest minimalny wymagany punkt, aby dostać się na studia doktoranckie z nauk ścisłych? Każde pytanie ma identyfikator i zestaw odpowiedzi. Odpowiedź zawiera identyfikator dokumentu, identyfikator pytania, tekst 60% punktów, pozycję początkową odpowiedzi oraz nieokreśloną kategorię odpowiedzi. Flaga is_impossible jest ustawiona na false. Proszę kliknąć tutaj, aby zobaczyć większą wersję tej figury.
Zbiór danych jest ustrukturyzowany jako lista słowników, gdzie każdy słownik zawiera kluczowe pola takie jak dane, akapity, pytanie, answer_id, document_id, question_id, tekst, answer_start, answer_end, is_impossible oraz kontekst.
dane: Zawiera ogólne informacje o odpowiedziach na pytania.
akapity: Określony kontekst, wraz z pytaniami i odpowiedziami.
pytanie: Konkretne pytanie.
answer_id: Unikalny numer identyfikacyjny dla każdego tekstu odpowiedzi.
document_id: Unikalny numer identyfikacyjny dla każdego kontekstu.
question_id: Unikalny numer identyfikacyjny dla każdego pytania.
tekst: Tekst odpowiedzi.
answer_start: Miejsce początkowe poprawnej odpowiedzi w kontekście.
answer_end: Lokalizacja poprawnej odpowiedzi na zakończenie odpowiedzi w kontekście.
is_impossible: Pokazuje, czy odpowiedź na zadane pytanie jest dostępna w danym kontekście, czy nie.
kontekst: Korpus tekstowy, z którego można znaleźć odpowiedź.
Wszystkie 80 pytań w proponowanym zbiorze danych ma format pytań factoid i non-factoid. Przykłady niektórych typów pytań w ramach przedstawiono w Tabeli 3.
| Pytania |
| Kim jest PS? |
| Jaki jest rozmiar czcionki w nowoczesnym dokumencie? |
| Ile dni jest urlop macierzyński? |
Tabela 3: Przykładowe pytanie z zestawu danych. Tabela przedstawia przykłady dwóch typów pytań: pierwszy i drugi to pytania faktoidalne, natomiast trzeci to pytanie nie-factoid.
FAISS: FAISS (wersja faiss_cpu-1.9.0)29,32, opracowany przez Facebook AI Research (FAIR), to otwartoźródłowa biblioteka, która ułatwia efektywne wyszukiwanie podobieństw i klasteryzację gęstych wektorów. Jest specjalnie zaprojektowany do efektywnego zarządzania dużymi, wysokowymiarowymi danymi. System ten umożliwia szybkie i skalowalne wyszukiwania ANN w zbiorach danych składających się z milionów lub miliardów wektorów. Jest szeroko wykorzystywany w aplikacjach związanych z osadzeniami, w tym w NLP, systemach rekomendacji oraz wyszukiwaniu obrazów lub wideo. FAISS oferuje wiele metod indeksowania, w tym Flat (brute force), Inverted File (IVF), hierarchicznie nawigowalne małe światowe grafy (HNSW) oraz kwantyzację produktu (PQ). Metody te pozwalają użytkownikom optymalizować wydajność wyszukiwania zgodnie z rozmiarem danych, wymiarowością i specyfikacjami sprzętowymi. W tym badaniu zastosowano indeksowanie płaskie, które wykonuje przeszukiwanie brute-force z wykorzystością odległości L2 (euklidesowej) do identyfikacji najbliższych sąsiadów. Skalowalność systemu obsługuje zarówno implementacje CPU, jak i GPU, umożliwiając wysokowydajne obliczenia na rozległych zbiorach danych. Dodatkowo zapewnia elastyczność w optymalizacji równowagi między szybkością a dokładnością w zależności od wymagań konkretnych zastosowań. FAISS jest często stosowany w NLP do oceny podobieństwa semantycznego w osadzeniach, takich jak czy Word2Vec. FAISS jest wykorzystywany w QAS do przechowywania i zarządzania reprezentacjami wektorowymi dokumentów lub zdań. Wykonuje przybliżone wyszukiwania ANN33, aby uzyskać najbardziej istotny kontekst dla pytań użytkowników, wzbogacając wyszukiwanie semantyczne o osadzenia z modeli transformatorów, takich jak. FAISS jest podstawowym narzędziem w procesach pracy AI i ML ze względu na swoją wszechstronność.
Model-large-uncased-whole-word-masking-finetuned-SQuAD: Niniejsze prace wykorzystują wstępnie wytrenowany model językowy znany jako-large-uncased-whole-word-masking finetuned-squad9 do opracowania factoid QAS z wykorzystaniem zaproponowanego w badaniu zbioru danych. Model przeszedł wstępne szkolenie na BookCorpus, zbiorze danych 11 038 niepublikowanych książek9, a także na angielskiej Wikipedii, z wyjątkiem list, tabel i nagłówków. Model jest bez przepustek, co oznacza, że nie rozróżnia słów english od English. Model jest wstępnie wytrenowanym modelem transformatora, który został wytrenowany na znacznej ilości danych z języka angielskiego przy użyciu podejścia samonadzorowanego. Model był wstępnie trenowany wyłącznie na surowych tekstach, bez żadnych ludzkich adnotacji. Pozwala to na wykorzystanie dużej ilości publicznie dostępnych danych. Proces wstępnego treningu polega na automatycznym generowaniu wejść i etykiet z dostarczonych tekstów. Model został wytrenowany z dwoma konkretnymi celami:9:
MLM: Proces polega na losowym maskowaniu 15% słów w zdaniu wejściowym. Model następnie przetwarza całe zamaskowane zdanie i przewiduje zamaskowane słowa. To podejście różni się od konwencjonalnych sieci rekurencyjnych neuronowych (RNN), które zazwyczaj przetwarzają słowa sekwencyjnie, oraz od modeli autoregresywnych, takich jak GPT, które wykorzystują wewnętrzne maskowanie przyszłych tokenów. Funkcjonalność ta pozwala modelowi uzyskać dwukierunkową reprezentację zdania.
NSP: W fazie wstępnego treningu model łączy dwa ukryte zdania jako dane wejściowe. W niektórych przypadkach te zdania są sąsiadujące w oryginalnym tekście, co wskazuje na bezpośredni związek. W innych przypadkach nie są, co oznacza, że nie ma oryginalnej bliskości ani kontekstu łączącego je. Kolejny krok polega na przewidywaniu przez model, czy oba zdania są logicznie spójne.
Obecny model charakteryzuje się następującą konfiguracją: architektura modelu składa się z 24 warstw, o ukrytym wymiarze 1024. Wykorzystuje 16 głowic uwagi i łącznie 336 milionów parametrów9.
WordPiece służy do tokenizacji tekstów o rozmiarze słownictwa 30 000 słów w etapach wstępnego przetwarzania. Wejścia modelu wyglądałyby wtedy tak: [CLS] Zdanie A [SEP] Zdanie B [SEP]. Jedynym wymogiem jest, aby łączna długość zdań była krótsza niż 512 tokenów9. Konkretny model wstępnie wytrenowany daje następujący wynik: uzyskany wynik F1 to 93,15%, natomiast dokładny wynik meczu to 86,91%9%.
Model Distilbert/distilbert-base-cased-distilled-squad: Model DistilBERT10 to bardziej kompaktowa, szybsza i wydajna odmiana modelu9 , opracowana tak, aby zachować większość semantycznych zdolności do rozumienia, jednocześnie będąc mniej wymagającym zasobów i bardziej odpowiednim do praktycznych zastosowań o ograniczonych możliwościach obliczeniowych. Wersja distilbert-base-cased-distilled-squad została dopracowana na SQuAD14 pod kątem zadań QA. Model wykorzystuje architekturę transformatora, w tym zmniejszony rozmiar o 66 milionów parametrów w porównaniu do 110 milionów, zachowując jednocześnie 97% skuteczności w rozumieniu języka. DistilBERT osiąga to metodą znaną jako destylacja wiedzy, która przekazuje informacje z większego modelu do bardziej zwartego modelu DistilBERT. Dzięki mniejszym rozmiarom może szybciej wnioskować informacje i zużywać mniej pamięci, co czyni go idealnym dla aplikacji o ograniczonych zasobach, takich jak urządzenia mobilne czy edge. Model, starannie dopracowany na zbiorze danych SQuAD 1.1, wykazuje wyjątkową biegłość w zadaniach QA ekstrakcyjnych, gdzie celem jest zlokalizowanie fragmentu tekstu z określonego kontekstu, który odpowiada na pytanie. DistilBERT osiąga około 85% wyniku w F1 na liście wyników SQuAD i zachowuje znaczną część jego zdolności językowych, mimo zmniejszonego rozmiaru. Model ten jest wyjątkowo wydajnym rozwiązaniem dla zadań QA na poziomie produkcyjnym, optymalizując zarówno wydajność, jak i efektywność obliczeniową.
Deepset/roberta-base-squad2: Model12,13 deepset/roberta-base-squad2 to dopracowana wersja architektury RoBERTa. Jest specjalnie zaprojektowany dla zbioru danych SQuAD14 2.0, który zawiera zarówno pytania odpowiedzialne, jak i nieodpowiedzialne. Ten ulepszony framework RoBERTa eliminuje9 zadań NSP w. Wykorzystuje także dynamiczne maskowanie podczas treningu, aby zwiększyć efektywność i wydajność w zadaniach związanych ze zrozumieniem języka językowego. Model ma 125 milionów parametrów i wykorzystuje dwukierunkowy transformator. Pozwala to na pozyskiwanie informacji kontekstowych z obu stron i doskonalenie radzi sobie w zadaniach QA ekstrakcyjnych.
Dostrojenie w SQuAD 2.0 pozwala modelowi zidentyfikować poprawny zakres odpowiedzi w danym kontekście oraz rozpoznać, gdy nie ma odpowiedzi. Wykorzystuje tokenizator Byte Pair Encoding (BPE), który obsługuje tokenizację podsłów i zachowuje czułość na wielka litera. To poprawia jego zdolność do przetwarzania rzadkich i złożonych słów. Model radzi sobie dobrze, osiągając około 85%-90% F1 oraz 80%-85% EM. Jego zdolność do wykrywania nieodpowiedzialnych pytań oraz skuteczne wdrożenie czynią go cennym w obsłudze klienta, wyszukiwaniu wiedzy oraz wirtualnych asystentach.
Najskuteczniejszym sposobem na wdrożenie modeli dostrojonych przez SQuAD do QA jest wykorzystanie pipeline34 Hugging Face Transformers. Ten framework usprawnia tokenizację, formatowanie wejściowe, ładowanie modeli oraz postprodukcję wyników. Modele te są powszechnie uznawane za skuteczność w ekstrakcji QA, gdzie odpowiedzią jest fragment tekstu bezpośrednio pobrany z danego kontekstu. Aby wyznaczyć implementację, następująca procedura opisuje kroki uruchamiania modeli.
Wkład i konfiguracja: Proces ten wymaga czterech głównych danych wejściowych i parametrów konfiguracji: nazwy modelu, określonej jako identyfikator ciągu z Hugging Face Hub (na przykład google-/-large-large-large-cased-whole-word-masking-finetuned-squad, distilbert/distilbert-base-cased-distilled-squad lub deepset/roberta-base-squad2); pytanie (Q), podany jako ciąg zawierający zapytanie; oraz kontekst (C), ciąg reprezentujący odpowiedni tekst lub fragment. Głównym narzędziem używanym jest funkcja potoku wysokiego poziomu z biblioteki Hugging Face transformers (wersja 4.57.0) w Pythonie (wersja 3.12.12).
Proces: Wykonanie (Pipeline Hugging Face): Proces składa się z sześciu podstawowych etapów i wykorzystuje pipeline Hugging Face do rozwiązania złożoności zadania QA:
Biblioteka instalacyjna: Zacznij od zainstalowania wymaganej biblioteki z transformatorami instalacji poleceń. Ta instalacja umożliwia dostęp do modeli oraz uproszczonej funkcjonalności potoków.
Import Pipeline: Import funkcji potoku używając: z transformatorów importuj potok.
Inicjalizacja potoku QA: Zainicjalizuj potok QA używając qa_pipeline = pipeline ("question-answering", model=""). To polecenie pobiera model i tokenizer, przygotowując je do wnioskowania.
Zdefiniuj input: Pytanie o ustaw = ... a kontekst = ... do przygotowania danych modelu.
Wnioskowanie o biegu: Przekaż pytanie i kontekst do potoku z wynikiem = qa_pipeline(pytanie=pytanie, kontekst=kontekst). Model przetwarza dane wejściowe i dostarcza odpowiedzi.
Odpowiedź z fragmentu: Pobierz ciąg odpowiedzi ze słownika wyjściowego używając: answer = result['answer'].
Wyjście: Proces generuje kilka parametrów wyjściowych w następującej kolejności: Odpowiedź (wyodrębniony fragment tekstu z kontekstu, przedstawiony jako ciąg znaków), Score (wartość zmiennoprzecinkowa kwantyfikująca pewność modelu w jego przewidywaniu) oraz indeksy Start i End (liczby całkowite określające pozycje znaków w zakresie odpowiedzi w kontekście).
Transformery zdań/all-MiniLM-L6-v2: Wersja35 w całości MiniLM-L6-v2 to pretrenowany transformator zdań z biblioteki Sentence-Transformers (wersja 5.1.1)36. Jest zoptymalizowany pod kątem efektywnego i precyzyjnego osadzania tekstu. Opracowany na frameworku Microsoft MiniLM, zawiera sześć warstw transformerów oraz 384-wymiarowe osadzenia. Ten projekt równoważy wydajność z biegłością obliczeniową, co czyni go odpowiednim do zastosowań w czasie rzeczywistym. Model został wytrenowany na ponad miliardzie par frazowych z zestawów danych takich jak SNLI, MultiNLI, benchmarki STS oraz dane z indeksowania internetowego. W rezultacie wykazuje biegłość w zadaniach związanych z podobieństwem semanticznym, grupowaniem oraz wyszukiwaniem. Dzięki niewielkiemu rozmiarowi (~22MB) i zwiększonej wydajności wnioskowania, all-MiniLM-L6-v2 upraszcza aplikacje takie jak wyszukiwanie semanticzne, wykrywanie duplikacji czy kategoryzacja tekstu. Mimo że jest lekki, zapewnia dużą dokładność w testach takich jak STS-B i SICK-R, co czyni go skutecznym wyborem zarówno w scenariuszach skalowalnych, jak i ograniczonych zasobów. Sposób generowania osadzenia za pomocą Sentence-Transformer przedstawiono na Rysunku 9 poniżej.

Rysunek 9: Krok procesu osadzania z wykorzystaniem modelu transformatora zdań. Rysunek ilustruje sposób generowania osadzeń tekstowych z wykorzystaniem frameworka transformers zdań. Opisuje on proces od importu bibliotek i załadowania wstępnie wytrenowanego modelu po przygotowanie danych tekstowych, generowanie osadzeń, konwersję ich na tablice NumPy oraz przechowywanie do zadań kolejnych, takich jak indeksowanie czy wyszukiwanie podobieństw. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.
Proponowany algorytm: Niniejsze badanie przedstawia sugerowaną metodologię w Algorytmie 1 do opracowania systemu SCD-QA opartego na SeCD, zdolnego do odpowiadania zarówno na pytania faktograficzne, jak i nie-factoidalne zadawane przez użytkowników.
ALGORYTM 1: Algorytm proponowanego systemu SCD-QA opartego na SeCD
Input: Zestaw surowego pliku kontekstowego (C) oraz zapytanie użytkownika (Q).
Wyjście: Wybrany optymalny LLM oparty na transformatorze (M') oraz odpowiedź generowana przez M'.
Wstępne przetwarzanie kontekstów: Oznacz surowy zestaw kontekstowy C, aby stworzyć strukturalny zbiór danych w formacieD SQuAD .
DSQuAD = fannonowaty (C)
Generuj osadzenia kontekstu: Użyj Sentence-Transformer fembed , aby przekonwertować każdy kontekst c
DSQuAD w osadzenie ec.

Przechowywanie osadzeń: Przechowywanie Ec w wektorowej bazie V dla efektywnego wyszukiwania podobieństw.

Generuj osadzenie zapytań: Przekształc zapytanie użytkownika Q w osadzającee q , używając tego samego transformatora zdań.

Wyszukiwanie kontekstu: Pobierz najbardziej istotne osadzenie kontekstu
z bazy V na podstawie podobieństwa do eq.

gdzie sim(eq,e c) jest funkcją podobieństwa.
Przekazanie kontekstu do LLM: Włóż odzyskany kontekst
do 3 LLM opartych na transformatorach: Google-(M1), DistilBERT (M2), RoBERTa (M3) oraz tradycyjny model: TF-IDF+Cosine Similarity (M4)

Ocena modelu: Porównaj odpowiedzi {R1,R 2,R 3,R 4} za pomocą funkcji oceny fevaluacji, która ocenia każdą odpowiedź.

Wybierz najlepszy model: Zidentyfikuj model M' z najwyższą oceną S'

Wygeneruj końcowy wynik: Użyj M' do wygenerowania ostatecznej odpowiedzi R na podstawie

Koniec
Proponowany proces algorytmiczny przedstawia systematyczne podejście (rysunek 10) do wyboru idealnego modelu LLM opartego na transformatorze, aby odpowiadać na pytania użytkowników. Obejmuje wstępne przetwarzanie, wyszukiwanie kontekstu oparte na osadzaniu oraz ocenę wielomodelową, aby zapewnić wysoką jakość i kontekstowo istotne odpowiedzi. Poniżej wyjaśniono krok po kroku proces dla jasności:
Przygotowanie i wstępne przetwarzanie danych: Pierwsza faza obejmuje przetwarzanie surowych danych tekstowych-
Input: Surowe pliki tekstowe8 są adaptowane do systemu.
Narzędzie do adnotacji31: Dane wejściowe są przekształcane w ustrukturyzowany zbiór danych w formacie SQuAD14 . Ten etap polega na tworzeniu par QA. Organizuje także istotne dane tekstowe w dobrze zdefiniowane bloki kontekstowe.
Wyjście: Zbiór danych jest już gotowy do tworzenia osadzeń.
Generowanie osadzenia kontekstu: Aby umożliwić efektywne i skalowalne pobieranie kontekstu, do zestawu danych z adnotacjami stosuje się wytrenowany model Sentence-Transformer35,36. Ten transformator przekształca tekst w wysokowymiarowe osadzenia, które oddają znaczenie semantyczne. Osadzenia są przechowywane w VD, FAISS29,32, aby umożliwić szybkie wyszukiwania oparte na podobieństwach.
Przetwarzanie zapytań użytkownika: Gdy użytkownik wysyła pytanie, pytanie jest przetwarzane przez ten sam Transformator Zdań35,36. Generuje to odpowiadające osadzenie w tej samej przestrzeni wektorowej29,32 co osadzenia kontekstowe. Taki projekt zapewnia, że zapytanie może być dopasowane do odpowiednich wpisów kontekstowych.
Wyszukiwanie kontekstu za pomocą podobieństwa wektorowego: Korzystając z metryki podobieństwa (np. podobieństwa cosinusowego), system porównuje zapytanie z zapisanymi osadzeniami kontekstowymi. System wybiera najbardziej istotny kontekst na podstawie najwyższego wyniku podobieństwa. Zapewnia to, że do modeli dalszych przekazywany jest tylko istotny kontekst. Proces ten zmniejsza narzut obliczeniowy i zwiększa jego przydatność.
Ocena modelu na wielu LLM: Wybrany kontekst jest oceniany przez trzy LLM oparte na transformatorach: Google-28, DistilBERT10 oraz RoBERTa12. Jest również oceniany przez tradycyjny oparty na słowach kluczowych TF-IDF37 z modelem podobieństwa kosinusowego. Każdy model przetwarza kontekst i generuje odpowiedź na pytanie użytkownika.
Ocena porównawcza: Odpowiedzi z czterech modeli LLM są oceniane na podstawie dwóch kluczowych wskaźników. Po pierwsze, dopasowywanie semantyczne jest oceniane przez EM14. Po drugie, latencja modelu jest analizowana przez średnią reakcję czasów15.
Wybór modelu i końcowy wynik: Najlepiej działający model jest wybierany jako odpowiedni LLM dla pytania użytkownika. Ostateczna odpowiedź wybranego modelu jest rozpatrywana. Zapewnia to równowagę między efektywnością obliczeniową a jakością odpowiedzi.

Rysunek 10: Przepływ pracy systemu SCD-QA z wykorzystaniem modeli opartych na transformatorach.Rysunek pokazuje, jak działa system SCD-QA. Najpierw surowy plik kontekstowy jest przetwarzany przez narzędzie adnotacji, aby utworzyć zbiór danych w formacie SQuAD. Następnie transformator zdań generuje osadzenia, które są przechowywane w wektorowej bazie FAISS. Gdy użytkownik zadaje pytanie, system tworzy dla niego osadzenie i wybiera najbardziej istotny kontekst. Porównuje trzy modele oparte na transformatorach – Google-, DistilBERT i RoBERTa – oraz jeden tradycyjny wskaźnik podobieństwa kosinusowego TFIDF + cosinus – i wykorzystuje najlepiej działający model do uzyskania odpowiedzi. Proszę kliknąć tutaj, aby zobaczyć większą wersję tego wykresu.