Method Article

Erweiterung großer Sprachmodelle durch Vektoreinbettungen zur Verbesserung der domänenspezifischen Reaktionsfähigkeit

DOI:

10.3791/66796

December 6th, 2024

In This Article

Summary

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

In diesem Protokoll wird die Antwortqualität des grundlegenden Sprachmodells durch Augmentation mit begutachteten, domänenspezifischen wissenschaftlichen Artikeln durch einen Vektor-Embedding-Mechanismus verbessert. Darüber hinaus wird Code bereitgestellt, um den Leistungsvergleich zwischen großen Sprachmodellen zu erleichtern.

Abstract

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

Große Sprachmodelle (LLMs) haben sich zu einer beliebten Ressource für die Generierung von Informationen entwickelt, die für eine Benutzerabfrage relevant sind. Solche Modelle werden durch einen ressourcenintensiven Trainingsprozess erstellt, bei dem ein umfangreicher, statischer Korpus von Textdaten verwendet wird. Diese statische Natur führt zu Einschränkungen bei der Einführung in Bereichen mit sich schnell änderndem Wissen, proprietären Informationen und sensiblen Daten. In dieser Arbeit werden Methoden zur Anreicherung von Allzweck-LLMs, bekannt als Foundation-Modelle, mit domänenspezifischen Informationen unter Verwendung eines Embeddings-basierten Ansatzes zur Einbeziehung aktueller, begutachteter wissenschaftlicher Manuskripte skizziert. Dies wird durch Open-Source-Tools wie Llama-Index und öffentlich zugängliche Modelle wie Llama-2 erreicht, um die Transparenz, die Privatsphäre und Kontrolle der Benutzer sowie die Replizierbarkeit zu maximieren. Während wissenschaftliche Manuskripte als Anwendungsbeispiel herangezogen werden, kann dieser Ansatz auf jede beliebige Textdatenquelle ausgeweitet werden. Darüber hinaus werden Methoden zur Bewertung der Modellleistung nach dieser Verbesserung erläutert. Diese Methoden ermöglichen die schnelle Entwicklung von LLM-Systemen für hochspezialisierte Domänen, unabhängig von der Vollständigkeit der Informationen im Trainingskorpus.

Introduction

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

Große Sprachmodelle (LLMs) wie ChatGPT von OpenAI oder Llama von Meta AI haben sich schnell zu einer beliebten Ressource für die Generierung von Text entwickelt, der für eine Benutzeraufforderung relevant ist. Ursprünglich dazu gedacht, die nächsten lexikalischen Elemente in einer Sequenz vorherzusagen, haben sich diese Modelle weiterentwickelt, um den Kontext zu verstehen, klinische Informationen zu kodieren und eine hohe Leistung bei einer Vielzahl von Aufgaben zu demonstrieren 1,2,3,4. Obwohl Sprachmodelle diesen Fähigkeiten und ihrer heutigen Popularität um Jahrzehnte voraus sind5, haben die jüngsten Fortschritte bei Deep Learning und Computing-Fähigkeiten vortrainierte, qualitativ hochwertige kommerzielle LLMs über webbasierte Technologien und Application Program Interfaces (APIs) für Benutzer auf breiter Basis verfügbar gemacht6. Es gibt jedoch einige bemerkenswerte Einschränkungen bei der Nutzung von LLMs in diesem Format.

Herausforderung 1: Statischer Trainingskorpus
LLMs werden mit einem enormen (z. B. zwei Billionen Token im Fall von Llama 27), aber statischen Textdatenbestand trainiert. Dies stellt eine Herausforderung dar, genaue Antworten auf Bereiche zu finden, die sich in einer rasanten Entwicklung befinden oder sich in der Literatur verändern. Bei diesem statischen Ansatz müssten LLMs häufig neu trainiert werden, um mit den neuesten Daten Schritt zu halten, was weder praktisch noch skalierbar ist. Darüber hinaus können Aufforderungen, die Antworten auf der Grundlage von Informationen erfordern, die nicht in den Trainingsdaten enthalten sind, eine nützliche Textgenerierung verhindern oder zu Halluzinationen führen8. Fälle von Halluzinationen oder Faktenfälschungen geben Anlass zu erheblichen Bedenken hinsichtlich der Zuverlässigkeit von LLMs, insbesondere in Umgebungen, in denen die Genauigkeit der Informationen entscheidend ist9.

Herausforderung 2: Mangelnde Domänenspezifität
Vortrainierte Modelle werden häufig für die allgemeine Verwendung erstellt, während Benutzer möglicherweise ein Modell benötigen, das speziell für die Leistung in einer bestimmten Domäne optimiert ist. Darüber hinaus sind die Rechenressourcen und Daten, die für das De-novo-Training eines Modells oder die Durchführung einer signifikanten Feinabstimmung erforderlich sind, für viele Benutzer unerschwinglich.

Herausforderung 3: Mangelnde Privatsphäre
Benutzer, die Anwendungen mit sensiblen Daten oder proprietären Informationen verfolgen, sind möglicherweise nicht bereit oder nicht in der Lage, bestimmte LLM-Dienste zu nutzen, da ihnen Informationen darüber fehlen, wie Daten gespeichert oder verwendet werden können.

Herausforderung 4: Fehlende garantierte Stabilität
Dienste mit proprietären LLMs können jederzeit verfügbare Modelle oder das Verhalten ändern, so dass die Stabilität bei der Implementierung von Anwendungen, die auf diesen Diensten basieren, ein Problem darstellt.

Retrieval-Augmented Generation (RAG) ist eine Technik, die entwickelt wurde, um die LLM-Leistung zu verbessern, insbesondere bei Abfragen, die sich auf Informationen außerhalb des Trainingskorpus des Modells beziehen10,11. Diese Systeme ergänzen LLMs, indem sie Kontextinformationen einbeziehen, die bei der Generierung einer Antwort auf eine Benutzeranfrage berücksichtigt werden müssen. In verschiedenen neueren Arbeiten wurden die Anwendungen von RAG-Systemen und ihre potenziellen Vorteile beschrieben 12,13,14.

Das Ziel der in dieser Arbeit skizzierten Methode ist es, den Aufbau eines solchen Systems zu demonstrieren und Forschern einen Rahmen zu bieten, um schnell mit domänenspezifischen, erweiterten LLMs zu experimentieren. Diese Methode ist für Benutzer anwendbar, die ein LLM um eine externe textbasierte Datenquelle erweitern möchten. Konkret besteht ein übergeordnetes Ziel dieses Protokolls darin, Schritt-für-Schritt-Code bereitzustellen, der auf eine Vielzahl praktischer LLM- und RAG-Experimente erweiterbar ist, ohne dass erhebliches technisches Know-how im Bereich der Sprachmodellierung erforderlich ist, obwohl praktische Kenntnisse in Python erforderlich sind, um diesen Ansatz ohne Änderungen anzuwenden. Um die Benutzerkontrolle, Transparenz, Portabilität und Erschwinglichkeit von Lösungen zu maximieren, werden öffentlich zugängliche Open-Source-Tools verwendet. Das vorgeschlagene System löst die zuvor genannten Probleme auf folgende Weise:

Lösungen 1 und 2: Statisches Trainingskorpus und mangelnde Domänenspezifität
Die bereitgestellte Methodik nutzt einen RAG-Ansatz, bei dem Einbettungen verwendet werden, um domänenspezifische Informationen bereitzustellen, die nicht in den ursprünglichen Trainingsdaten enthalten sind. Auf hoher Ebene transformieren Einbettungsmodelle Text oder andere Daten in eine Darstellung als Vektor oder eindimensionales Array von Zahlen. Diese Technik ist von Vorteil, da sie semantische Informationen, die im Text enthalten sind, in eine dichte, numerische Form umwandelt. Durch die Projektion einer Benutzerabfrage in denselben Einbettungsraum können verschiedene Algorithmen verwendet werden, um den Abstand15 und damit die annähernde semantische Ähnlichkeit zwischen der Benutzerabfrage und Abschnitten von Textdokumenten zu berechnen. Daher kann das Erstellen einer Datenbank mit solchen Vektoren aus Dokumenten, die in einzelne Abschnitte unterteilt sind, das Durchsuchen einer beträchtlichen Anzahl von Dokumenten nach Text erleichtern, der für eine Benutzerabfrage am relevantesten ist (Abbildung 1). Dieser Ansatz ist auf jedes Textdokument erweiterbar. Während andere Ansätze, wie z. B. Online-Suchfunktionen, allmählich implementiert werden, um LLMs zu erweitern, ermöglicht dieser Ansatz den Benutzern, Quellen auszuwählen, die für ihren Anwendungsfall als ausreichend hochwertig angesehen werden.

Lösung 2: Mangelnde Privatsphäre
Bei dieser Implementierung wurde eine sichere Cloud-Umgebung für das Hosting verwendet, in der keine Benutzeraufforderungen, generierten Antworten oder andere Daten dieses Ökosystem verließen. Der gesamte Code wird jedoch plattformunabhängig geschrieben, um sicherzustellen, dass ein anderer Cloud-Anbieter oder lokale Hardware ersetzt werden kann.

Lösung 3: Fehlende garantierte Stabilität
Dieser Ansatz nutzt Open-Source-Bibliotheken und konzentriert sich auf die Erweiterung von LLMs mit öffentlich zugänglichen Gewichtungen, die bei Bedarf ein höheres Maß an Transparenz, Stabilität und Versionierung ermöglichen.

Ein vollständiges Schema unseres vorgeschlagenen Systems ist in Abbildung 2 dargestellt, und detaillierte Anweisungen zur Replikation dieses oder eines ähnlichen Systems finden Sie im Abschnitt Protokoll. Eine weitere Überlegung bei der Änderung des Modellverhaltens durch Feinabstimmung oder Erweiterung ist die Bewertung der Leistung. Bei sprachgenerierenden Modellen stellt dies eine besondere Herausforderung dar, da viele traditionelle Metriken des maschinellen Lernens nicht anwendbar sind. Obwohl es eine Vielzahl von Techniken gibt16, wurden in dieser Studie von Experten geschriebene Multiple-Choice-Fragen (MCQs) verwendet, um die Genauigkeit zu bewerten und die Leistung vor und nach der Augmentation sowie mit beliebten alternativen LLMs zu vergleichen.

Protocol

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

In dem in diesem Artikel gezeigten Anwendungsfall wurde der Vektorspeicher unter Verwendung veröffentlichter Richtlinien der Chicago Consensus Working Group17 generiert. Diese Expertengruppe wurde gegründet, um Leitlinien für die Behandlung von Bauchfellkarzinomen zu entwickeln. Das Fachgebiet wurde so gewählt, dass es innerhalb des klinischen Fachgebiets der Prüfärzte liegt. Die Artikel wurden aus Online-Zeitschriftenrepositorien wie Cancer und den Annals of Surgical Oncology veröffentlicht. Ein kompaktes (33,4 Mio. Parameter) Einbettungsmodell, das von der Beijing Academy for Artificial Intelligence (BAAI, https://www.baai.ac.cn/english.html), bge-small-en, erstellt wurde, wurde verwendet, um Einbettungen aus Quelldokumenten zu generieren. Die resultierende Datenbank wurde dann verwendet, um die Modelle Llama 2 und Open-AIFoundation 7 zu erweitern. Zur Bequemlichkeit des Lesers wird der Code über GitHub (https://github.com/AnaiLab/AugmentedLLM) zur Verfügung gestellt. Um die Replizierbarkeit zu gewährleisten, wird empfohlen, die gleichen Versionen von Bibliotheken zu verwenden, die in der bereitgestellten Anforderungsliste verwendet werden, sowie die gleiche Version von Python. Weitere Details zur Installation oder Dokumentation zu Tools, die in den folgenden Methoden verwendet werden, finden Sie auf den offiziellen Websites der Anbieter für Python (https://www.python.org), git (https://git-scm.com), Llama-Index (https://llamaindex.ai) und Chroma (https://trychroma.com).

1. Voraussetzungen: Überprüfen des Codes und Installieren der erforderlichen Bibliotheken

  1. Stellen Sie sicher, dass git, python und pip installiert sind.
    1. Führen Sie in einem Terminal die folgenden Befehle aus, um die Installation zu überprüfen:
      git --version
      python3 --version
      pip3 --version
  2. Überprüfen Sie den Code und die Installationsanforderungen.
    1. Führen Sie in einem Terminal die folgenden Befehle aus:
      git clone https://github.com/AnaiLab/AugmentedLLM.git
      cd ./ErweitertLLM/

      pip3 install -r requirements.txt

2. Erstellung einer Vektordatenbank mit Llama-Index

  1. Konvertieren Sie RTF-Dateiformate (nur erforderlich, wenn Dateien in einem RTF-Format vorliegen).
    1. Bearbeiten Sie die Datei mit dem Titel config.py, und ersetzen Sie die Dateipfade im folgenden Code durch den Speicherort der zu konvertierenden RTF-Artikel und den Speicherort, an den die Nur-Text-Dateien geschrieben werden sollen, indem Sie die folgenden Befehle eingeben. Speichern Sie die Datei.
      rtf_file_dir = './articles_rtf/'
      converted_file_dir = './articles_converted/'
    2. Führen Sie in einem Terminal im selben Verzeichnis den Code aus, um Nur-Text-Versionen von RTF-Dateien zu generieren, indem Sie den folgenden Befehl ausführen:
      python3 ./convert_rtf.py
  2. Erstellen und speichern Sie die Vektordatenbank.
    1. Bearbeiten Sie die config.py Datei, indem Sie den Wert der folgenden Variablen durch den Dateipfad des Ordners ersetzen, der Dokumente enthält, mit denen das LLM erweitert werden soll. Speichern Sie die Datei.
      article_dir = './Artikel/'
    2. Führen Sie in einem Terminal im selben Verzeichnis den Code mit dem folgenden Befehl aus, um die Datenbank zu erstellen und beizubehalten. Vergewissern Sie sich, dass die Datenbank jetzt im Ordner vector_db gespeichert ist.
      python3 ./build_index.py

3. Erweiterung eines Lama-Modells mit einer in Abschnitt 2 generierten Vektordatenbank

  1. Lokales Instanziieren von benutzerdefiniertem LLM (optional)
    HINWEIS: Dieser Schritt ist nur erforderlich, wenn Sie ein anderes Modell als das Standardmodell Llama-2-7B verwenden möchten. Wenn Sie das Standardmodell verwenden möchten, fahren Sie mit Schritt 3.2 fort.
    1. (Mit einem benutzerdefinierten LLM) Geben Sie ein LLM an, das erweitert werden soll, indem Sie run_augmented_llm.py bearbeiten und ein LLM-Objekt mit llama-index im Konstruktor als llm-Parameter in den folgenden Codezeilen anstelle von None übergeben.
      augmentedLLM = ErweitertLLM(vector_store, llm=Keine)
  2. Abfrage von erweitertem LLM
    1. Führen Sie den folgenden Befehl im Terminal aus:
      python3 ./run_augmented_llm.py
    2. Führen Sie Benutzerabfragen aus, um eine Antwort zu erhalten, die durch Daten in den Manuskripten ergänzt wird (Abbildung 3 und Abbildung 4). Drücken Sie STRG + C , um den Vorgang zu beenden, wenn Sie fertig sind.

4. Programmatischer Vergleich alternativer LLMs

  1. Erstellen Sie MCQs.
    1. Bearbeiten Sie die Datei questions.py und beachten Sie dabei das Format der Beispiele. Fügen Sie Fragen in einem ähnlichen Format hinzu. Speichern Sie die Datei.
  2. Verbinden Sie sich über die API mit GPT-3.5, GPT-4, OpenChat oder anderen Vergleichsmodellen.
    1. Bearbeiten Sie die config.py Datei, und fügen Sie den API-Schlüssel für OpenAI oder Huggingface hinzu, wenn das Ziel darin besteht, ein Benchmarking mit Modellen eines der beiden Anbieter durchzuführen. Speichern Sie die Datei.
      huggingface_key = ''
      openai_key = ''
    2. Bearbeiten Sie die compare_llms.py Datei, und wählen Sie die zu testenden Modelle aus, indem Sie die Modelle auskommentieren (die Zeichen '# ' am Anfang dieser Zeile löschen), mit denen verglichen werden soll.
      HINWEIS: Einige Komparatoren benötigen einen API-Schlüssel, wie in Schritt 4.2.1 festgelegt. Bearbeiten Sie außerdem den Parameter output_dir, um bei Bedarf zu ändern, wo die LLM-Ausgabe gespeichert wird. Andernfalls wird ein Standardwert verwendet.
      output_dir = './llm_responses/'
    3. Führen Sie in einem Terminal den Code mit dem folgenden Befehl aus. Zeigen Sie nach der Ausführung die Modellantworten in dem in Schritt 4.2.2 angegebenen Ordner zur Benotung oder anderen Überprüfung an.
      python3 ./compare_llms.py
  3. (Fakultativ) Experimentieren Sie mit der automatischen Benotung von MCQ-Antworten. Im Beispielcode wird die LMQL-Bibliothek verwendet, um die LLM-Ausgabe in ein erwartetes Format einzuschränken.
    1. Öffnen Sie die Datei automated_comparison.py und heben Sie ähnlich wie in Schritt 4.2.2 die Auskommentierung der einzuschließenden Modelle auf, bearbeiten Sie die output_dir Variable oder passen Sie sie anderweitig an. Beachten Sie, dass die Modellausgabe weiterhin auf ähnliche Weise gespeichert wird. Speichern Sie die Datei.
    2. Führen Sie den Code aus Schritt 4.3.1 aus, indem Sie den folgenden Befehl in einem Terminal ausführen:
      python3 ./automated_comparison.py

Results

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

Ein Satz von 22 Veröffentlichungen aus den Managementrichtlinien der Chicago Consensus Working Group wurde verwendet, um das Basismodell Llama-7b zu ergänzen17. Die Dokumente wurden mit dem Tool Llama-Index in einen Vektorindex umgewandelt, um Llama-2-7b-CCWG-Embed zu generieren. Beliebte OpenAI-Modelle wie GPT-3.5 und GPT-4 wurden ebenfalls auf ähnliche Weise erweitert, um GPT-XX-CCWG-Embed-Modelle zu erzeugen. Insgesamt wurden 20 Multiple-Choice-Fragen (MCQ) entwickelt, um das Wissen im Zusammenhang mit der Behandlung einer Vielzahl von malignen Erkrankungen der peritonealen Oberfläche zu bewerten. Die MCQs wurden von einem staatlich geprüften chirurgischen Onkologen erstellt, um auf dem Wissensstand zu testen, der von einem Stipendiaten für chirurgische Onkologie erwartet wird. Llama-2-7b-CCWG-Embed schnitt signifikant besser ab als das Basismodell (siehe Tabelle 1), ebenso wie erweiterte OpenAI-Modelle. Dies wird als positives Ergebnis für diese Methode angesehen, da die Modellleistung durch Augmentation im Vergleich zum Ausgangswert verbessert wurde.

figure-results-1
Abbildung 1: Schematische Darstellung der Generierung einer Vektordatenbank aus wissenschaftlichen Arbeiten. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.

figure-results-2
Abbildung 2: Gesamtsystemdiagramm für Augmented LLM. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.

figure-results-3
Abbildung 3: Erweitertes Llama-2-Modell, das im Linux-Terminal ausgeführt wird. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.

figure-results-4
Abbildung 4: Abfrageergebnis des erweiterten Llama-2-Modells. Klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.

LLMPunktzahl (% richtig)
Lama-2-7b-chat-hf65%
Lama-2-7B-CCWG-Einbetten75%
Offenchat-3.5-01061865%
Mistral-7B-v0.11970%
GPT-3.575%
GPT-3.5-CCWG-Einbetten85%
GPT-485%
GPT-4-CCWG-Einbetten90%

Tabelle 1: Punktzahlen (prozentual korrekt) verschiedener LLMs bei einem Satz von 20 Fragen zum Management von peritonealen Malignomen.

Discussion

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

Die hier vorgestellten Methoden zielen darauf ab, die Erforschung domänenspezifischer Anwendungen von LLMs zu erleichtern, ohne dass ein De-novo-Training oder eine umfangreiche Feinabstimmung erforderlich ist. Da LLM zu einem Bereich von erheblichem Forschungsinteresse werden, werden Ansätze zur Erweiterung der Wissensdatenbanken und zur Verbesserung der Genauigkeit der Antworten immer wichtiger 18,19,20,21. Wie die bereitgestellten Ergebnisse zeigen, bietet das skizzierte Protokoll eine Leistungsverbesserung bei domänenspezifischen Fragen im Vergleich zum gleichen LLM ohne Augmentation und nähert sich der Leistung komplexerer Modelle wie OpenAI GPT-Modelle. Da LLMs enorme Rechenressourcen erfordern können, um Antworten zu generieren22,23, kann die Erweiterung eines einfacheren Modells einen Weg zur Implementierung in Anwendungsfällen mit begrenzten Ressourcen bieten. Darüber hinaus zeigte das RAG-System auch Vorteile bei der Erweiterung hochkomplexer Modelle, wie sie OpenAI zur Verfügung stellt. Während die vorgestellten Ergebnisse speziell für die Behandlung von Peritonealkarzinom gelten, wurden kürzlich Studien zu RAG-Systemen mit einer Vielzahl von Datenquellen erstellt, die auf eine breite Anwendbarkeit solcher Systeme hinweisen 21,24,25,26. Da die Qualität der Antworten jedoch eng mit den Textdaten zusammenhängt, die für die Erweiterung verwendet werden, ist es wichtig, dass die Benutzer sorgfältig abwägen, welche Quellen für ihren speziellen Bereich und ihre gewünschte Anwendung optimal sind. Diese Überlegung ist von besonderer Bedeutung in Bereichen wie dem Gesundheitswesen, das ein besonderer Schwerpunkt der LLM-bezogenen Studien ist. Die Verwendung von LLM für die Diagnostik27,28, das Matching klinischer Studien29,30 und zahlreiche andere Anwendungen werden derzeit erforscht und erfordern validierte, vertrauenswürdige Textressourcen, anstatt sich auf unbekannte Trainingskorpora zu verlassen.

Die Leistung wurde anhand des prozentualen Prozentsatzes der korrekten MCQs gemessen, die von einem Experten für Bauchfellkrebs und deren klinisches Management verfasst wurden. Die Antworten wurden durch menschliche Überprüfung als richtig oder falsch eingestuft; Um jedoch sich wiederholende Aufgaben für Forscher zu minimieren, wird grundlegender Code bereitgestellt, um einen automatisierteren Vergleich der Leistung zwischen LLMs zu ermöglichen.

Ein wesentlicher Vorteil dieses Protokolls ist der bereitgestellte Code für den programmgesteuerten Zugriff auf eine Vielzahl von LLMs. Bisher haben sich Benutzer ohne die erforderlichen technischen Fähigkeiten zur Bewertung der Leistung von MCQs möglicherweise auf wiederholte manuelle Tests über eine webbasierte Schnittstelle verlassen. Der bereitgestellte Code enthält grundlegende Klassen für die Schnittstelle mit mehreren gängigen LLMs sowie Beispiele für die Ausführung des Codes. Das Ziel der Bereitstellung dieser Tools ist es, mehr Forschern die Möglichkeit zu geben, Arbeitsabläufe zu automatisieren, die Antworten auf eine Aufforderung über eine Vielzahl von LLMs hinweg bewerten, um die Fähigkeit zur Durchführung vergleichender Studien zu verbessern.

Darüber hinaus sind die skizzierten Methoden so konzipiert, dass sie Flexibilität und Erweiterbarkeit betonen. Obwohl der Code so verwendet werden kann, wie er ist, wird er mit der Absicht geschrieben, ihn bei Bedarf weiter an bestimmte Anwendungsfälle anzupassen, z. B. die Verwendung verschiedener LLMs und die Einbettung von Modellen zur Erweiterung oder zum Vergleich. Da sich die LLM-Landschaft rasant weiterentwickelt, wird diese Erweiterbarkeit immer wichtiger, um den unterschiedlichen Anforderungen der Benutzer in verschiedenen Bereichen gerecht zu werden. Darüber hinaus bietet die Llama-Index-Bibliothek eine beträchtliche Anzahl von Funktionen, die in den demonstrierten Methoden nicht verwendet werden, was den Benutzern zusätzliche Optionen bei der Erstellung ähnlicher Systeme bieten kann. Diese finden Sie in der offiziellen Dokumentation von Llama-Index.

Die Leser sollten auch sorgfältig über Bewertungsmethoden nachdenken, die für ihren Anwendungsfall optimal sind. Während MCQs aufgrund ihrer leicht quantifizierbaren Natur für LLM-Vergleiche an Popularität gewonnen haben 31,32, ist Vorsicht geboten, wenn man sie als umfassende Leistungsmetrik für generative Systeme betrachtet. In der neueren Literatur wurde eine Vielzahl von Evaluierungen implementiert, darunter qualitative Ansätze, Human Review, Stanford Holistic Evaluation of Language Models (HELM)33 und Standardmetriken zur Verarbeitung natürlicher Sprache wie Bilingual Evaluation Understudy (BLEU), General Language Understanding Evaluation (GLUE), ROUGE, Perplexity und F1-Score 34,35,36,37,38,39.

Es gibt Einschränkungen für diese Methoden, wie hier angegeben. Während beispielsweise Schnittstellen für mehrere führende LLM-Anbieter implementiert wurden, ist diese Implementierung angesichts der sich schnell entwickelnden Natur dieses Bereichs und der unterschiedlichen Anwendungsfälle möglicherweise nicht umfassend. Der Code wurde jedoch unter diesem Gesichtspunkt entworfen, wie bereits erwähnt. Darüber hinaus wurde zwar grundlegender Code für den Übergang zur automatisierten Benotung bereitgestellt, aber es gibt Raum für die Verwendung alternativer Tools für die Benotung von Antworten wie HELM oder BLEU. Darüber hinaus kann die zusätzliche Verwendung von Werkzeugen zur Einschränkung der Ausgabe nach vordefinierten Grammatiken, wie z. B. Language Model Query Language (LMQL), verwendet werden, um diese Arbeit zu erweitern und die Automatisierung vergleichender LLM-Studien zu erhöhen. Darüber hinaus sind angesichts der Vielzahl potenzieller Anwendungsfälle weitere Studien über die Auswirkungen von RAG-Systemen auf die allgemeine, domänenfremde Leistung erforderlich, um etwaige Leistungskompromisse zu charakterisieren. Schließlich müssen weitere Methoden zur Verbesserung der Reliabilität und Bewertung von LLM-Antworten untersucht werden.

Beachten Sie, dass aus technischen Gründen Python 3.10 oder höher erforderlich ist. Shell-Eingabeaufforderungen werden für bash, zsh oder andere UNIX-ähnliche Terminals geschrieben. Befehle können ausgeführt werden (im Protokoll als "Ausführen des Befehls" bezeichnet), indem einfach der Text gefolgt von der Eingabetaste eingegeben wird. Für jeden Schritt im Protokoll möchte ein Benutzer möglicherweise den Code in der Datei untersuchen, die ausgeführt wird, um ein umfassenderes Verständnis der Mechanismen hinter dem Arbeitsablauf zu erhalten.

Disclosures

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

Die Autoren haben keine Interessenkonflikte anzugeben.

Acknowledgements

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

Diese Arbeit wurde durch mehrere Open-Source-Bibliotheken erleichtert, vor allem durch llama-index (https://www.llamaindex.ai/), ChromaDB (https://www.trychroma.com/) und LMQL (https://lmql.ai/).

Materials

List of materials used in this article
NameCompanyCatalog NumberComments
pip3 Version 22.0.2 
Python-Version 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