Feinabstimmung von KI Modellen

Standardmässig hat ein Modell wie Llama von Meta nur Zugriff auf seine Schulungsdaten. Jedes KI-Modell kann jedoch erweitert werden, damit Echtzeitdaten in Form von Unternehmensdaten eingeschlossen werden. Dabei gibt es zwei Varianten, welche man wählen kann: RAG oder Feintuning.

RAG vs. Feintuning

Während RAG quasi den „Chat mit Ihren Daten“ aktiviert, wird als Grundlage ein grosser Teil von Daten, wie Dokumente, Textinhalte, Dokumentationen oder andere Daten verwendet, um die Antworten auf Benutzeraufforderungen zu generieren. In einem ersten Schritt wird eine Vektordatenbank erstellt, die die Einbettung von Dokumenten und Daten sicherstellt. Durch eine Datenpipeline wird auch sichergestellt, dass die Vektordatenbank Dateien im richtigen Format enthält, die für das LLM benötigt werden:

RAG: Chatten mit Ihren Daten

Damit Sie mit Ihren Daten chatten können, ist der Aufbau eines RAG-Systems unumgänglich. Damit das KI-System aber optimal funktioniert, ist es wichtig, einen strategischen Ansatz zu fahren, der sicherstellt, dass hochqualitative Ergebnisse erzielt werden. Hierfür hat Cybershark folgendes Vorgehen definiert, welches wir als Dienstleistung für unsere Kunden anbieten:

Vorbereiten Ihrer Daten: Saubere und genaue Daten sind essenziell für ein erfolgreiches RAG-System. Das Standardisieren von Textformaten, das Entfernen von nicht verknüpften und veralteten Inhalten, die Extraktion von Metadaten sowie die Behandlung der Sonderzeichen sind essenziell für jedes Unternehmen, bevor ein RAG-System aufgesetzt wird.

Chunking: Um die Relevanz der Inhalte zu verbessern, werden Teile eines Dokuments in kleinere Abschnitte aufgeteilt, durch das sogenannte „Chunking“. Somit wird sichergestellt, dass die Anfragen von Benutzern auch präzise beantwortet werden.

Strategische Organisation von Daten: Um effiziente Abrufe zu generieren, ist es wichtig, dass die Anzahl der Einträge, welche durchsucht werden, reduziert wird, indem zuerst der sogenannte Zusammenfassungsindex anvisiert wird. Abhängig von der Art der Daten werden auch unterschiedliche graphbasierte oder relationale Datenbanken verwendet.

Ausrichtungsoptimierung: Um die Genauigkeit und die Relevanz sicherzustellen, wird jedem Chunk eine hypothetische Frage beigefügt, welche die Frage aufzeigt, für deren Beantwortung der entsprechende Chunk am besten geeignet ist. So arbeitet der Algorithmus gezielter und ist mehr auf den Kontext bezogen, das heißt, die Antwortzeiten werden auch beschleunigt.

Retriever-Komponente: Die Retriever-Komponente stellt sicher, dass das System mit neuesten Informationen aktualisiert wird und vor allem der Zugriff auf diese Informationen sichergestellt wird. Hier gibt es verschiedene Arten: Echtzeitupdates, inkrementelle Updates, Snapshotting oder teilweise Aktualisierung.

Rückschlusspipeline: Hier geht es um die Lösung von Fertigstellungsproblemen, d.h. um die gezieltesten Fertigstellungen zu erhalten, müssen diverse Faktoren berücksichtigt werden, wie zum Beispiel, ob die Richtlinien eingehalten werden, ob die Abfrage des Benutzers richtig formuliert ist, sodass die Ergebnisse geliefert werden, nach denen gesucht wird, oder wie die Abfrageergebnisse modifiziert werden, sodass auch wichtige Details berücksichtigt werden.

Vorverarbeiten von Abfragen: In diesem Bereich werden Inhalte identifiziert, welche entfernt oder abgelehnt werden. Dies kann das Entfernen von personenbezogenen Inhalten, Jailbreak-Versuche oder Interaktionen von Benutzern in die Sicherheit, Ethik oder Betriebsrichtlinien beinhalten. Durch Richtlinienüberprüfungen oder Umformulieren der Abfragen oder auch durch das Step-back Prompting mittels Hypothetical Document Embedding (HyDE) werden wichtige Teile berücksichtigt, damit die LLM optimal funktioniert.

Unterabfragen & Abfragerouter: Wenn Fragen lang und komplex sind, können diese in Unterabfragen unterteilt werden, damit diese Antworten dann wiederum kombiniert werden. Die Kombination von Ergebnissen wiederum hilft dem KI-System, eine umfassendere Antwort zu generieren. Ein Unternehmen kann zudem Daten in mehrere Vektorspeicher oder in Abrufsysteme aufteilen. Der Abfragerouter selektiert dann die Datenbank, welche sich für das Beantworten der Benutzeranfrage am besten eignet.

Post-retrieval processing steps: Da der Einbezug von irrelevanten Informationen das Ergebnis negativ beeinflussen kann und wir auch das „Nadel-im-Heuhaufen-Problem“, welches viele LLMs haben, adressieren wollen, ist es wichtig, die Post-retrieval processing steps einzubinden, welche Filterergebnisse, Re-Ranking und die Prompt-Datenkomprimierung beinhalten.

Post-completion processing steps: Nach Abschluss der Vervollständigung der LLM erfolgt eine Faktenüberprüfung und Richtlinienüberprüfung, welche gemeinsam sicherstellen, dass eine richtige Identifikation gemacht wird, ob die Aussagen richtig sind, welche das Large Language Modell generiert. Außerdem wird zusätzlich sichergestellt, dass keine schädlichen Inhalte generiert werden.

Bewertungspipeline: Anhand der Bewertungspipeline werden Lücken aufgedeckt, wenn keine geeignete Dokumentation für die Antwort auf die Anfrage eines Benutzers vorhanden ist. Dieser Schritt ist notwendig, um die Qualität des Large Language Modells sicherzustellen.

Goldenes Dataset: Ein goldenes Dataset ist ein Datensatz, der häufig gestellte Fragen und Antworten beinhaltet. Dies beinhaltet auch Quelldokumente oder diverse Variationen wie unterschiedliche Formulierungen, um die Vielfalt der Art und Weise zu erfassen, wie Fragen von Usern gestellt werden.

Risikominimierung & Red Teaming: Durch Bewertung von Auswirkungen des KI-Systems werden Schadensmodellierungen durchgeführt, welche sicherstellen, dass Risiken wie Datenschutzverlust oder wirtschaftliche Ausbeutung entgegengewirkt wird. Zudem wird sichergestellt, dass mittels Simulation eines Angriffsszenarios Risiken wie Jailbreaking entgegengewirkt werden.

Finetuning

Nachdem ein Large Language Model mit einem großen Datensatz trainiert wurde, geht es beim Finetuning, auch Feinabstimmung genannt, darum, dass man das KI-Modell so trainiert, dass das Modell so angepasst wird, um spezifische Aufgaben besser zu erledigen.

Feinabstimmung ist gegenüber RAG vorzuziehen, wenn die folgenden Punkte zutreffen:

  • Die Performance des KI-Modells hat höchste Priorität.

  • Ihre Daten unterscheiden sich nicht groß von denen des Basismodells (Beispiel ChatGPT).

  • Die ständige Aktualisierung der Daten ist bei Ihnen zweitrangig.

Beim Finetuning gibt es verschiedene Ansätze, welche man wählen kann, damit die Performance nicht unnötig beansprucht wird:

PEFT (Parameter-efficient-fine-tuning): Beim Parameter-Efficient-fine-tuning werden dem Basismodell zusätzliche Modellgewichte hinzugefügt, welche dann wiederum trainiert werden, anstelle dass das gesamte Basismodell von Grund auf trainiert wird.

DoRa (Weight-Decomposed-Low-Rank-Adaption): DoRa trainiert gegenüber dem Full Finetuning nur die zusätzlichen Modellgewichte und nicht das gesamte Large Language Modell, wie das auch bereits bei PEFT (Parameter-efficient-fine-tuning) der Fall ist. Gegenüber PEFT kommt aber ein zusätzliches Verfahren hinzu, welches das vortrainierte Modellgewicht in Größen- und Richtungskomponenten aufteilt, sodass diese dann wiederum gefintuned werden. Durch die Zerlegung in die beiden Komponenten wird die Effizienz gesteigert und die Lernkurve ist größer als bei LoRa (Low-Rank Adaptation of Large Language Models).