Method Article

Rozszerzanie dużych modeli językowych za pomocą osadzania wektorów w celu poprawy responsywności specyficznej dla domeny

DOI:

10.3791/66796

December 6th, 2024

In This Article

Summary

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

W tym protokole, jakość odpowiedzi modelu dużego języka jest poprawiana poprzez wzbogacenie o recenzowane, specyficzne dla danej dziedziny artykuły naukowe dzięki mechanizmowi osadzania wektorów. Ponadto dostarczany jest kod, który pomaga w porównywaniu wydajności między dużymi modelami językowymi.

Abstract

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Duże modele językowe (LLM) stały się popularnym źródłem do generowania informacji istotnych dla zapytania użytkownika. Takie modele są tworzone w procesie trenowania wymagającym dużej ilości zasobów przy użyciu obszernego, statycznego korpusu danych tekstowych. Ta statyczna natura skutkuje ograniczeniami w zakresie adaptacji w dziedzinach z szybko zmieniającą się wiedzą, informacjami zastrzeżonymi i danymi wrażliwymi. W tej pracy przedstawiono metody rozszerzania LLM ogólnego przeznaczenia, znanych jako modele podstawowe, o informacje specyficzne dla danej dziedziny przy użyciu podejścia opartego na osadzaniu w celu włączenia aktualnych, recenzowanych manuskryptów naukowych. Osiąga się to dzięki narzędziom typu open source, takim jak Llama-Index, i publicznie dostępnym modelom, takim jak Llama-2, aby zmaksymalizować przejrzystość, prywatność i kontrolę użytkownika oraz możliwość powielania. Chociaż manuskrypty naukowe są używane jako przykładowy przypadek użycia, podejście to można rozszerzyć na dowolne źródło danych tekstowych. Ponadto omówiono metody oceny wydajności modelu po tym ulepszeniu. Metody te umożliwiają szybki rozwój systemów LLM dla wysoce wyspecjalizowanych dziedzin niezależnie od kompleksowości informacji w korpusie szkoleniowym.

Introduction

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Duże modele językowe (LLM), takie jak ChatGPT firmy OpenAI lub Lama firmy Meta AI, szybko stały się popularnym źródłem do generowania tekstu odpowiadającego na pytanie użytkownika. Modele te, pierwotnie funkcjonujące w celu przewidywania kolejnych elementów leksykalnych w sekwencji, ewoluowały, aby rozumieć kontekst, kodować informacje kliniczne i wykazywać wysoką wydajność w różnych zadaniach1,2,3,4. Chociaż modele językowe wyprzedzają takie możliwości i ich obecny poziom popularności o dziesięciolecia5, ostatnie postępy w głębokim uczeniu i możliwościach obliczeniowych sprawiły, że wstępnie wyszkolone, wysokiej jakości komercyjne LLM stały się szeroko dostępne dla użytkowników za pośrednictwem technologii internetowych i interfejsów programowania aplikacji (API)6. Istnieje jednak kilka znaczących ograniczeń w korzystaniu z LLM w tym formacie.

Wyzwanie 1: Statyczny korpus treningowy
LLM są trenowane na ogromnym (np. dwa biliony tokenów w przypadku Llama 27), ale statycznym korpusie danych tekstowych. Stanowi to wyzwanie w uzyskaniu trafnych odpowiedzi dotyczących dziedzin podlegających szybkiemu rozwojowi lub zmieniającej się literaturze. W tym statycznym podejściu LLM wymagałyby częstego przekwalifikowania, aby nadążyć za najnowszymi danymi, co nie jest ani praktyczne, ani skalowalne. Co więcej, podpowiedzi, które wymagają odpowiedzi na podstawie informacji nieobecnych w danych treningowych, mogą uniemożliwić wygenerowanie użytecznego tekstu lub prowadzić do halucynacji8. Przypadki halucynacji lub fabrykowania faktów budzą poważne obawy co do wiarygodności LLM, szczególnie w ustawieniach, w których dokładność informacji jest krytyczna9.

Wyzwanie 2: Brak specyfiki domeny
Wstępnie wytrenowane modele są często tworzone do użytku ogólnego, podczas gdy użytkownicy mogą wymagać modelu specjalnie zoptymalizowanego pod kątem wydajności w określonej domenie. Ponadto zasoby obliczeniowe i dane wymagane do trenowania modelu de novo lub wykonywania znacznych dostrajań są zaporowe dla wielu użytkowników.

Wyzwanie 3: Brak prywatności
Użytkownicy korzystający z aplikacji zawierających poufne dane lub informacje zastrzeżone mogą nie chcieć lub nie być w stanie korzystać z niektórych usług LLM, ponieważ brakuje im informacji o tym, jak dane mogą być przechowywane lub wykorzystywane.

Wyzwanie 4: Brak gwarantowanej stabilności
Usługi z zastrzeżonymi LLM mogą zmieniać dostępne modele lub zmieniać zachowanie w dowolnym momencie, co sprawia, że stabilność jest problemem dla implementacji aplikacji opartych na tych usługach.

Retrieval-augmented generation (RAG) to technika opracowana w celu poprawy wydajności LLM, szczególnie w przypadku zapytań związanych z informacjami spoza korpusu treningowego modelu10,11. Systemy te rozszerzają LLM, włączając informacje kontekstowe, które należy wziąć pod uwagę podczas generowania odpowiedzi na zapytanie użytkownika. W różnych ostatnich pracach opisano zastosowania systemów RAG i ich potencjalne zalety12,13,14.

Celem metody opisanej w tej pracy jest zademonstrowanie budowy takiego systemu i dostarczenie ram dla badaczy do szybkiego eksperymentowania na specyficznych dla domeny, rozszerzonych LLM. Ta metoda ma zastosowanie dla użytkowników, którzy chcą rozszerzyć LLM o zewnętrzne źródło danych tekstowych. W szczególności nadrzędnym celem tego protokołu jest dostarczenie kodu krok po kroku, który można rozszerzyć na różne praktyczne eksperymenty LLM i RAG bez konieczności posiadania znaczącej wiedzy technicznej w dziedzinie modelowania języka, chociaż wymagana jest praktyczna znajomość Pythona, aby zastosować to podejście bez modyfikacji. Aby zmaksymalizować kontrolę użytkowników, przejrzystość, przenośność i przystępność cenową rozwiązań, wykorzystywane są publicznie dostępne narzędzia typu open source. Proponowany system rozwiązuje wcześniej wymienione problemy w następujący sposób:

Rozwiązania 1 i 2: Statyczny korpus szkoleniowy i brak specyficzności domeny
Dostarczona metodologia wykorzystuje podejście RAG, wykorzystując osadzanie w celu dostarczania informacji specyficznych dla domeny, które nie zostały uwzględnione w oryginalnych danych treningowych. Na wysokim poziomie modele osadzania przekształcają tekst lub inne dane w reprezentację w postaci wektora lub jednowymiarowej tablicy liczb. Ta technika jest korzystna, ponieważ konwertuje informacje semantyczne zawarte w tekście na gęstą, liczbową formę. Rzutując zapytanie użytkownika w tę samą przestrzeń osadzania, można użyć różnych algorytmów do obliczenia odległości15, a tym samym przybliżonego podobieństwa semantycznego między zapytaniem użytkownika a sekcjami dokumentów tekstowych. W związku z tym utworzenie bazy danych takich wektorów z dokumentów podzielonych na odrębne sekcje może ułatwić przeszukiwanie znacznej liczby dokumentów w poszukiwaniu tekstu najbardziej istotnego dla zapytania użytkownika (Rysunek 1). Takie podejście można rozszerzyć na dowolny dokument tekstowy. Podczas gdy inne podejścia, takie jak możliwości wyszukiwania online, zaczynają być wdrażane w celu rozszerzenia LLM, podejście to pozwala użytkownikom wybrać źródła uważane za wystarczająco wysokiej jakości dla ich przypadku użycia.

Rozwiązanie 2: Brak prywatności
W tej implementacji do hostingu wykorzystano bezpieczne środowisko chmurowe, bez podpowiedzi użytkownika, generowanych odpowiedzi ani innych danych opuszczających ten ekosystem. Cały kod jest jednak napisany w sposób niezależny od platformy, aby zapewnić możliwość zastąpienia go innym dostawcą chmury lub lokalnym sprzętem.

Rozwiązanie 3: Brak gwarantowanej stabilności
To podejście wykorzystuje biblioteki typu open source i koncentruje się na rozszerzaniu LLM o publicznie dostępne wagi, co pozwala na wyższy stopień przezroczystości, stabilności i wersjonowania, jeśli jest to wymagane.

Pełny schemat proponowanego przez nas systemu jest pokazany w Rysunek 2, a szczegółowe instrukcje dotyczące replikacji tego lub podobnego systemu są przedstawione w sekcji protokołu. Dodatkową kwestią, którą należy wziąć pod uwagę podczas zmieniania zachowania modelu poprzez dostrajanie lub rozszerzanie, jest ocena wydajności. W modelach generujących język stanowi to wyjątkowe wyzwanie, ponieważ wiele tradycyjnych metryk uczenia maszynowego nie ma zastosowania. Chociaż istnieje wiele różnych technik16, w tym badaniu wykorzystano pytania wielokrotnego wyboru (MCQ) napisane przez ekspertów do oceny dokładności i porównania wydajności przed i po augmentacji, a także z popularnymi alternatywnymi LLM.

Protocol

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

W przypadku użycia opisanym w tym artykule, magazyn wektorów został wygenerowany przy użyciu opublikowanych wytycznych od Chicago Consensus Working Group17. Ta grupa ekspertów została powołana w celu opracowania wytycznych dotyczących leczenia nowotworów otrzewnej. Obszar tematyczny został wybrany, ponieważ mieści się w obszarze wiedzy klinicznej badaczy. Zbiór artykułów uzyskano z internetowych repozytoriów czasopism, w tym Cancer i Annals of Surgical Oncology. Kompaktowy (33,4 mln parametrów) model osadzania stworzony przez Pekińską Akademię Sztucznej Inteligencji (BAAI, https://www.baai.ac.cn/english.html), bge-small-en, został wykorzystany do generowania osadzania z dokumentów źródłowych. Uzyskana w ten sposób baza danych została następnie wykorzystana do rozszerzenia modeli Llama 2 i Open-AI foundation7. Dla wygody czytelnika kod jest udostępniany za pośrednictwem GitHub (https://github.com/AnaiLab/AugmentedLLM). Aby zapewnić odtwarzalność, zaleca się używanie tych samych wersji bibliotek, które są używane na podanej liście wymagań, a także tej samej wersji języka Python. Dodatkowe informacje na temat instalacji lub dokumentacja dotycząca narzędzi używanych w poniższych metodach można znaleźć na oficjalnych stronach internetowych dostawców Pythona (https://www.python.org), git (https://git-scm.com), Lama-Index (https://llamaindex.ai) i Chroma (https://trychroma.com).

1. Wymagania wstępne: Przejrzyj kod i zainstaluj wymagane biblioteki

  1. Sprawdź, czy są zainstalowane polecenia git, python i.
    1. W terminalu uruchom następujące polecenia, aby zweryfikować instalację:
      git --version
      python3 --version
      pip3 --wersja
  2. Sprawdź kod i wymagania instalacyjne.
    1. W terminalu uruchom następujące polecenia:
      git clone https://github.com/AnaiLab/AugmentedLLM.git
      cd ./AugmentedLLM/

      pip3 install -r requirements.txt

2. Tworzenie wektorowej bazy danych za pomocą Llama-Index

  1. Konwertuj formaty plików RTF (wymagane tylko wtedy, gdy pliki są w formacie RTF).
    1. Edytuj plik o nazwie config.py, zastępując ścieżki plików w poniższym kodzie lokalizacją artykułów RTF, które mają zostać przekonwertowane, oraz lokalizacją, do której mają zostać zapisane zwykłe pliki tekstowe, wpisując następujące polecenia. Zapisz plik.
      rtf_file_dir = './articles_rtf/'
      converted_file_dir = './articles_converted/'
    2. W terminalu, w tym samym katalogu, wykonaj kod, aby wygenerować wersje plików RTF w postaci zwykłego tekstu, uruchamiając następujące polecenie:
      python3 ./convert_rtf.py
  2. Utwórz i zapisz wektorową bazę danych.
    1. Edytuj plik config.py, zastępując wartość następującej zmiennej ścieżką pliku folderu zawierającego dokumenty, o które ma zostać rozszerzony LLM; zapisz plik.
      article_dir = './artykuły/'
    2. W terminalu, w tym samym katalogu, wykonaj kod za pomocą następującego polecenia, aby utworzyć i utrwalić bazę danych. Sprawdź, czy baza danych jest teraz zapisana w folderze vector_db.
      python3 ./build_index.py

3. Augmentacja modelu lamy za pomocą wektorowej bazy danych wygenerowanej w sekcji 2

  1. Utwórz instancję niestandardowego LLM lokalnie (opcjonalnie)
    UWAGA: Wykonanie tego kroku jest wymagane tylko wtedy, gdy chcesz użyć modelu innego niż domyślny Llama-2-7B. Jeśli chcesz użyć modelu domyślnego, przejdź do kroku 3.2.
    1. (Korzystając z niestandardowego LLM) Określ LLM do rozszerzenia, edytując run_augmented_llm.py i przekazując obiekt llama-index LLM w konstruktorze jako parametr llm w następujących wierszach kodu, a nie None.
      augmentedLLM = AugmentedLLM(vector_store, llm=Brak)
  2. Zapytanie rozszerzone LLM
    1. Uruchom następujące polecenie w terminalu:
      python3 ./run_augmented_llm.py
    2. Uruchom zapytania użytkownika, aby uzyskać odpowiedź rozszerzoną o dane z zestawu rękopisów (Rysunek 3 i Rysunek 4). Naciśnij CTRL + C, aby wyjść po zakończeniu.

4. Programowe porównanie alternatywnych LLM

  1. Tworzenie wielokrotnych połączeń.
    1. Edytuj plik questions.py, zwracając uwagę na format przykładów. Dodaj pytania w podobnym formacie. Zapisz plik.
  2. Połącz się z GPT-3.5, GPT-4, OpenChat lub innymi modelami porównawczymi przez API.
    1. Edytuj plik config.py, dodając klucz API dla OpenAI lub Huggingface, jeśli celem jest porównanie z modelami od któregokolwiek z dostawców. Zapisz plik.
      huggingface_key = ''
      openai_key = ''
    2. Edytuj plik compare_llms.py i wybierz zestaw modeli, które chcesz przetestować, odkomentowując (usuwając znaki "#" na początku tego wiersza) modele do porównania.
      UWAGA: Niektóre komparatory wymagają klucza API ustawionego w kroku 4.2.1. Dodatkowo edytuj parametr output_dir, aby w razie potrzeby zmienić miejsce przechowywania danych wyjściowych LLM; W przeciwnym razie zostanie użyta wartość domyślna.
      output_dir = './llm_responses/'
    3. W terminalu wykonaj kod za pomocą następującego polecenia. Po wykonaniu wyświetl odpowiedzi modelu w folderze określonym w kroku 4.2.2 w celu oceny lub innego przeglądu.
      python3 ./compare_llms.py
  3. (Opcjonalnie) Eksperymentuj z automatycznym ocenianiem odpowiedzi wielokrotnego wyboru. Przykładowy kod używa biblioteki LMQL do ograniczania danych wyjściowych LLM do oczekiwanego formatu.
    1. Otwórz plik automated_comparison.py i podobnie jak w kroku 4.2.2 odkomentuj modele, które mają zostać dołączone, edytuj zmienną output_dir lub dostosuj w inny sposób. Należy pamiętać, że dane wyjściowe modelu będą nadal zapisywane w podobny sposób. Zapisz plik.
    2. Uruchom kod z kroku 4.3.1, uruchamiając następujące polecenie w terminalu:
      python3 ./automated_comparison.py

Results

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Zestaw 22 publikacji z wytycznych zarządzania Grupą Roboczą Konsensusu Chicagowskiego został wykorzystany do rozszerzenia podstawowego modelu Lama-7b17. Dokumenty zostały przekształcone w indeks wektorowy za pomocą narzędzia Llama-Index w celu wygenerowania Llama-2-7b-CCWG-Embed. Popularne modele OpenAI, takie jak GPT-3.5 i GPT-4, zostały również ulepszone w podobny sposób, aby wyprodukować modele GPT-XX-CCWG-Embed. W sumie opracowano 20 pytań wielokrotnego wyboru (MCQ) w celu oceny wiedzy związanej z leczeniem różnych nowotworów złośliwych powierzchni otrzewnej. Wielokrotne zarządzanie zostało stworzone przez certyfikowanego chirurga onkologa w celu przetestowania na poziomie wiedzy, jakiego oczekuje się od stypendysty chirurgii onkologicznej. Llama-2-7b-CCWG-Embed działał znacznie lepiej niż model podstawowy (patrz Tabela 1), podobnie jak rozszerzone modele OpenAI. Jest to uważany za pozytywny wynik dla tej metody, ponieważ wydajność modelu poprawiła się dzięki rozszerzeniu w porównaniu z wartością wyjściową.

figure-results-1
Rysunek 1: Schemat generowania wektorowej bazy danych na podstawie artykułów naukowych. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

figure-results-2
Rysunek 2: Ogólny schemat systemu dla rozszerzonego LLM. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

figure-results-3
Rysunek 3: Rozszerzony model Lamy-2 działający w terminalu Linux. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

figure-results-4
Rysunek 4: Wynik zapytania z rozszerzonego modelu Lama-2. Kliknij tutaj, aby zobaczyć większą wersję tego rysunku.

powiedział: )
Llm Wynik (% poprawnie)
Lama-2-7b-czat-hf 65%
llama-2-7b-CCWG-Osadź75%
otwarty-3.5-01061865%
Mistral-7B-v0.11970%
Indeks GPT-3.5 (wersja GPT) 75%
GPT-3.5-CCWG-Osadzanie85%
Indeks GPT-4 (GPT-485%
GPT-4-CCWG-Osadzanie90%

Tabela 1: Wyniki (procent poprawności) różnych LLM w zestawie 20 pytań dotyczących leczenia nowotworów otrzewnej.

Discussion

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Przedstawione tutaj metody mają na celu ułatwienie badań nad specyficznymi dla danej dziedziny zastosowaniami LLM bez konieczności szkolenia de novo lub obszernego dostrajania. Ponieważ LLM stają się obszarem znaczącego zainteresowania badawczego, podejścia do poszerzania baz wiedzy i poprawy dokładności odpowiedzi będą stawać się coraz ważniejsze 18,19,20,21. Jak wykazano w przedstawionych wynikach, przedstawiony protokół oferuje poprawę wydajności w przypadku pytań specyficznych dla danej dziedziny w porównaniu z tym samym LLM bez rozszerzenia i zbliża się do wydajności bardziej złożonych modeli, takich jak modele OpenAI GPT. Ponieważ LLM mogą wymagać ogromnych zasobów obliczeniowych do generowania odpowiedzi22,23, rozszerzenie prostszego modelu może zapewnić drogę do implementacji w przypadkach użycia ograniczonych zasobami. Co więcej, system RAG przyniósł również korzyści w zakresie rozszerzania modeli o wysokim stopniu złożoności, takich jak te dostarczane przez OpenAI. Chociaż przedstawione wyniki są specyficzne dla leczenia raka otrzewnej, ostatnie badania nad systemami RAG z różnymi źródłami danych zarówno w domenie, jak i skali, wskazują na szerokie zastosowanie takich systemów 21,24,25,26. Ponieważ jednak jakość odpowiedzi jest ściśle związana z danymi tekstowymi wykorzystywanymi do augmentacji, niezwykle ważne jest, aby użytkownicy dokładnie rozważyli, które źródła są optymalne dla ich konkretnej domeny i pożądanej aplikacji. Rozważania te mają szczególne znaczenie w dziedzinach takich jak opieka zdrowotna, która była szczególnym przedmiotem badań związanych z LLM. Wykorzystanie LLM do diagnostyki 27,28, dopasowania badań klinicznych29,30 i wielu innych zastosowań jest obecnie badanych i wymaga zweryfikowanych, godnych zaufania zasobów tekstowych, a nie polegania na nieznanych korpusach szkoleniowych.

Wydajność mierzono na podstawie procentu poprawnych MCQ napisanych przez eksperta w dziedzinie raka otrzewnej i ich postępowania klinicznego. Odpowiedzi zostały sklasyfikowane jako poprawne lub niepoprawne na podstawie oceny ludzkiej; jednakże, aby zminimalizować powtarzalne zadania dla badaczy, udostępniono podstawowy kod, aby zacząć zbliżać się do bardziej zautomatyzowanego porównywania wydajności między LLM.

Kluczową zaletą tego protokołu jest dostarczony kod umożliwiający programowy dostęp do różnych LLM. Wcześniej, aby ocenić wydajność na MCQ, użytkownicy bez wymaganych możliwości technicznych mogli polegać na powtarzających się testach ręcznych za pośrednictwem interfejsu internetowego. Dostarczony kod zawiera podstawowe klasy do interfejsu z kilkoma popularnymi LLM wraz z przykładami wykonania kodu. Celem zapewnienia tych narzędzi jest umożliwienie większej liczbie badaczy przejścia do automatyzacji przepływów pracy, które oceniają odpowiedzi na monit w różnych LLM, zwiększając zdolność do przeprowadzania badań porównawczych.

Ponadto przedstawione metody mają na celu podkreślenie elastyczności i rozszerzalności. Chociaż kod może być używany w takiej postaci, w jakiej jest, jest pisany z zamiarem dalszego dostosowywania do konkretnych przypadków użycia w razie potrzeby, takich jak użycie różnych LLM i osadzanie modeli w celu rozszerzenia lub porównania. Ponieważ krajobraz LLM szybko się rozwija, ta rozszerzalność będzie coraz ważniejsza, aby zaspokoić różnorodne potrzeby użytkowników w różnych domenach. Dodatkowo, biblioteka Llama-Index zapewnia znaczną liczbę funkcji, które nie są wykorzystywane w demonstrowanych metodach, a które mogą dać użytkownikom dodatkowe opcje podczas tworzenia podobnych systemów. Można je znaleźć w oficjalnej dokumentacji Llama-Index.

Czytelnicy powinni również dokładnie rozważyć metody oceny, które są optymalne dla ich przypadku użycia. Chociaż MCQ zyskały popularność w porównaniach LLM ze względu na ich łatwo mierzalny charakter31,32, należy zachować ostrożność w traktowaniu ich jako kompleksowego wskaźnika wydajności dla systemów generatywnych. W najnowszej literaturze wdrożono różnorodny zakres ocen, w tym podejścia jakościowe, ocenę ludzką, holistyczną ocenę modeli językowych Stanforda (HELM)33 oraz standardowe wskaźniki przetwarzania języka naturalnego, takie jak Bilingual Evaluation Understudy (BLEU), General Language Understanding Evaluation (GLUE), ROUGE, konsternacja i wynik F1 34,35,36,37,38,Lokal mieszkalny 39.

Istnieją ograniczenia dotyczące tych metod, jak podano tutaj. Na przykład, chociaż interfejsy zostały wdrożone dla kilku wiodących dostawców LLM, biorąc pod uwagę szybko rozwijający się charakter tej dziedziny i to, jak zróżnicowane mogą być przypadki użycia, ta implementacja może nie być kompleksowa. Kod został jednak zaprojektowany z myślą o tym, jak omówiono wcześniej. Ponadto, chociaż dostarczono podstawowy kod do przejścia na automatyczne ocenianie, istnieje miejsce na rozszerzenie o korzystanie z alternatywnych narzędzi do oceniania odpowiedzi, takich jak HELM lub BLEU. Co więcej, dodatkowe wykorzystanie narzędzi do ograniczania danych wyjściowych zgodnie z predefiniowanymi gramatykami, takich jak język zapytań modelu językowego (LMQL), może być wykorzystane do rozszerzenia tej pracy i zwiększenia automatyzacji porównawczych studiów LLM. Ponadto, biorąc pod uwagę szeroką gamę potencjalnych przypadków użycia, konieczne są dalsze badania nad wpływem systemów RAG na ogólną wydajność poza domeną, aby scharakteryzować wszelkie kompromisy w zakresie wydajności. Wreszcie, należy nadal badać dodatkowe metody poprawy wiarygodności i oceny odpowiedzi LLM.

Należy pamiętać, że z przyczyn technicznych wymagany jest python 3.10 lub nowszy. Podpowiedzi powłoki są zapisywane dla bash, zsh lub innych terminali podobnych do UNIX. Polecenia można wykonywać (określane w protokole jako "uruchamianie polecenia"), po prostu wpisując tekst, a następnie powrotu. Dla każdego kroku w protokole użytkownik może chcieć zbadać kod w wykonywanym pliku, aby uzyskać pełniejsze zrozumienie mechaniki stojącej za przepływem pracy.

Disclosures

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Autorzy nie mają do zadeklarowania konfliktu interesów.

Acknowledgements

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Ta praca była ułatwiona przez kilka bibliotek open-source, przede wszystkim llama-index (https://www.llamaindex.ai/), ChromaDB (https://www.trychroma.com/) i LMQL (https://lmql.ai/).

Materials

List of materials used in this article
NameCompanyCatalog NumberComments
pip3 wersja 22.0.2 
Python w wersji 3.10.12

References

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Singhal, K., et al. Large language models encode clinical knowledge. Nature. 620 (7972), 172-180 (2023).
  2. Gilson, A., et al. How does ChatGPT perform on the United States medical licensing examination? The implications of large language models for medical education and knowledge assessment. JMIR Med Educ. 9 (1), e45312(2023).
  3. Guerra, G. A., et al. GPT-4 artificial intelligence model outperforms ChatGPT, medical students, and neurosurgery residents on neurosurgery written board-like questions. World Neurosurg. 179, e160-e165 (2023).
  4. Terwiesch, C. Would Chat GPT3 get a Wharton MBA? A prediction based on its performance in the Operations Management course. , https://mackinstitute.wharton.upenn.edu/wp-content/uploads/2023/01/Christian-Terwiesch-Chat-GTP.pdf (2023).
  5. Weizenbaum, J. ELIZA-a computer program for the study of natural language communication between man and machine. Communications of the ACM. 9 (1), 36-45 (1966).
  6. Wu, T., et al. A brief overview of ChatGPT: The history, status quo and potential future development. IEEE/CAA Journal of Automatica Sinica. 10 (5), 1122-1136 (2023).
  7. Touvron, H., et al. Llama 2: Open foundation and fine-tuned chat models. arXiv [cs.CL]. , http://arxiv.org/abs/2307.09288 (2023).
  8. Huang, L., et al. A survey on hallucination in large language models: Principles, taxonomy, challenges, and open questions. arXiv [cs.CL]. , http://arxiv.org/abs/2311.05232 (2023).
  9. Thirunavukarasu, A. J., et al. Large language models in medicine. Nature Med. 29 (8), 1930-1940 (2023).
  10. Lewis, P., et al. Retrieval-augmented generation for knowledge-intensive NLP tasks. arXiv [cs.CL]. , http://arxiv.org/abs/2005.11401 (2020).
  11. Li, J., Yuan, Y., Zhang, Z. Enhancing LLM factual accuracy with RAG to counter hallucinations: A case study on domain-specific queries in private knowledge-bases. arXiv [cs.CL]. , http://arxiv.org/abs/2403.10446 (2024).
  12. Zhang, P., Xiao, S., Liu, Z., Dou, Z., Nie, J. -Y. Retrieve anything to augment large language models. arXiv [cs.IR]. , http://arxiv.org/abs/2310.07554 (2023).
  13. Ling, C., et al. Domain specialization as the key to make large language models disruptive: A comprehensive survey. arXiv [cs.CL]. , http://arxiv.org/abs/2305.18703 (2023).
  14. Ram, O., et al. In-Context retrieval-augmented language models. Trans Assoc Comput Linguist. 11, 1316-1331 (2023).
  15. Cormode, G. Sequence distance embeddings. , The University of Warwick. https://wrap.warwick.ac.uk/61310/7/WRAP_THESIS_Cormode_2003.pdf (2003).
  16. Guo, Z., et al. Evaluating large language models: A comprehensive survey. arXiv [cs.CL]. , http://arxiv.org/abs/2310.19736 (2023).
  17. Chicago Consensus Working Group. The Chicago Consensus Guidelines for peritoneal surface malignancies: Introduction. Cancer. 126 (11), 2510-2512 (2020).
  18. Wang, G., et al. OpenChat: Advancing open-source language models with mixed-quality data. arXiv [cs.CL]. , http://arxiv.org/abs/2309.11235 (2023).
  19. Jiang, A. Q., et al. Mistral 7B. arXiv [cs.CL]. , http://arxiv.org/abs/2310.06825 (2023).
  20. Megahed, F. M., et al. AI and the future of work in statistical quality control: Insights from a first attempt to augmenting ChatGPT with an SQC knowledge base (ChatSQC). arXiv [cs.HC]. , http://arxiv.org/abs/2308.13550 (2023).
  21. Wang, Y., Ma, X., Chen, W. Augmenting black-box LLMs with medical textbooks for clinical question answering. arXiv [cs.CL]. , http://arxiv.org/abs/2309.02233 (2023).
  22. Dodge, J., et al. Measuring the carbon intensity of AI in cloud instances. FACCT 2022. , (2022).
  23. Samsi, S., et al. From words to watts: Benchmarking the energy costs of large language model inference. arXiv [cs.CL]. , http://arxiv.org/abs/2310.03003 (2023).
  24. Khene, Z. -E., Bigot, P., Mathieu, R., Rouprêt, M., Bensalah, K. Development of a personalized chat model based on the European association of urology oncology guidelines: Harnessing the power of generative artificial intelligence in clinical practice. Eur Urol Oncol. 7 (1), 160-162 (2024).
  25. Kresevic, S., et al. Optimization of hepatological clinical guidelines interpretation by large language models: a retrieval augmented generation-based framework. NPJ Digit Med. 7 (1), 102(2024).
  26. Ge, J., et al. Development of a liver disease-specific large language model chat interface using retrieval augmented generation. medRxiv. , (2023).
  27. Rule-augmented artificial intelligence-empowered systems for medical diagnosis using large language models. Panagoulias, D. P., et al. 2023 IEEE 35th International Conference on Tools with Artificial Intelligence (ICTAI), , 70-77 (2023).
  28. Panagoulias, D. P., et al. Augmenting large language models with rules for enhanced domain-specific interactions: The case of medical diagnosis. Electronics. 13 (2), 320(2024).
  29. Jin, Q., et al. Matching patients to clinical trials with large language models. arXiv [cs.CL]. , http://arxiv.org/abs/2307.15051 (2023).
  30. Gupta, S. K., et al. PRISM: Patient records interpretation for semantic clinical trial matching using large language models. arXiv [cs.CL]. , http://arxiv.org/abs/2404.15549 (2024).
  31. Hendrycks, D., et al. Measuring massive multitask language understanding. arXiv [cs.CY]. , http://arxiv.org/abs/2009.03300 (2020).
  32. Lin, S., Hilton, J., Evans, O. TruthfulQA: Measuring how models mimic human falsehoods. arXiv [cs.CL]. , http://arxiv.org/abs/2109.07958 (2021).
  33. Bommasani, R., Liang, P., Lee, T. Holistic evaluation of language models. Ann N Y Acad Sci. 1525 (1), 140-146 (2023).
  34. Banerjee, D., Singh, P., Avadhanam, A., Srivastava, S. Benchmarking LLM powered Chatbots: Methods and Metrics. arXiv [cs.CL]. , http://arxiv.org/abs/2308.04624 (2023).
  35. Papineni, K., Roukos, S., Ward, T., Zhu, W. -J. Bleu. Proceedings of the 40th Annual Meeting on Association for Computational Linguistics - ACL '02. , (2001).
  36. Wang, A., Singh, A., Michael, J., Hill, F., Levy, O., Bowman, S. R. Glue: A multi-task benchmark and analysis platform for natural language understanding. , http://arxiv.org/abs/1804.07461 (2019).
  37. Johnson, D., et al. Assessing the accuracy and reliability of AI-generated medical responses: An evaluation of the chat-GPT model. Res Sq. , (2023).
  38. Lin, C. -Y. ROUGE: A package for automatic evaluation of summaries. Text Summarization Branches Out. , 74-81 (2004).
  39. Chen, S., et al. Evaluating the ChatGPT family of models for biomedical reasoning and classification. J Am Med Inform Assoc. 31 (4), 940-948 (2024).

Reprints and Permissions

Request permission to reuse the text or figures of this JoVE article

Request Permission

Tags

Large Language ModelsVector EmbeddingsDomain Specific AugmentationLlama IndexScientific ManuscriptsModel BenchmarkingOpen Source ToolsVector DatabaseModel EvaluationFoundation Models

Related Articles