Eigenschaften der LLMs, Schwachstellen und Verbesserungsmassnahmen bei der Domänenanpassung von Anwendungen

„Durch die zunehmende Komplexität ist offenbar das passiert, was in komplexen Systemen nicht ungewöhnlich ist: Quantitative Vermehrung führt zu neuen Qualitäten“[1]

Wolf Singer (1943)


Im ersten Beitrag dieser Serie zu Large Language Models (LLMs) wurde aufgezeigt, wie man im Laufe der letzten Jahrzehnte die Kommunikation mit Rechnern mittels natürlicher Sprache(n) möglich gemacht hat. Wesentlich dabei war die Abkehr vom Glauben, diese komplexe Aufgabe mittels direkt (vom Menschen) geschaffener (und implementierter) Regeln zu bewältigen. Diese Regeln wurden durch das Training auf extrem großen Datenmengen und leistungsfähigen Rechnern mit Hilfe Neuronaler Netze realisiert. Komplexe Regeln und die verarbeiteten Daten mit ihren komplexen Abhängigkeiten stehen implizit im geschaffenen Sprachmodell zur Verfügung, womit einige ihrer Grundeigenschaften vorgegeben sind.

Dieses generative System, das als Foundation Model[2] aufgebaut wurde, ist aufgrund des “breiten Trainings” zu vielen Assoziationen auf Umweltreize fähig, und damit jeweils zur Schaffung eines Kontextes, im Rahmen dessen Texte produziert werden. Foundation Models haben aus dieser Entstehungsgeschichte zwei Grundeigenschaften: Emergenz und Homogenität, also breite Anwendbarkeit bei Fragestellungen, die nicht explizit gelernt wurden, und Einsetzbarkeit (nach Anpassungen) für viele Aufgaben, die sonst mit Einzellösungen gebaut wurden (vgl. Bommasani et al. (2021)).

Diese Ansprache- und Anpassungsmöglichkeiten der LLMs für nachgelagerte Aufgaben stehen in diesem Blogbeitrag im Mittelpunkt. Es geht um Effizienzsteigerungen und Verbesserung der LLMs bei Schwächen, die auch aus der Entstehungsgeschichte herrühren, wie z.B. Halluzinationen, fehlende Aktualität, oder auch „problematische“ Ansichten aufgrund der Trainingsdaten und einige andere Punkte, die z.B. im Rahmen einer Studie zum Aufbau einer Taxonomie zur Vertrauenswürdigkeit von LLMs aufgelistet und genauer betrachtet werden, mit dem Ziel, systematisch an der Behebung dieser Schwachstellen zu arbeiten (vgl. Liu, Y. et al. (2024)). Siehe hierzu nachfolgende Abbildung.

(Bildquelle: Liu, Y., Yao, Y. et al. (2024). Trustworthy LLMs: a Survey and Guideline for Evaluating Large Language Models’ Alignment. arXiv:2308.05374v2)

Dargestellt werden dazu insgesamt folgende drei Methodenbereiche zur Anpassung von Anwendungsdomänen von LLMs: „In Context Learning (ICL)”, „Prompt-Engineering“ und „Fine-Tuning”.

Das “Learning” in der Bezeichnung des „In Context Learnings (ICL)“ ist insofern “schwierig”, als es sich hier um die Aktivierung und Generierung nicht direkt greifbarer impliziter Informationen handelt und nicht um die Veränderung der neuronalen Parameter im Modell, wie es z.B. beim Lernen üblicherweise geschieht. Allerdings werden beim ICL Informationen generiert, die nicht explizit so gelernt wurden (Emergenz), ähnlich wie es beim menschlichen Lernen gelingt, aus erlernten Kategorien neue Informationen zu synthetisieren und zu lernen, so dass Sechsjährigen bereits nahezu alle Objektkategorien der Welt prinzipiell bekannt sind[3] (vgl. Biederman, I. (1987)). 

Mittels der im LLM erlernten Kategorien der gemeinsamen Darstellung von Daten, Regeln und Verknüpfungen[4] wird durch Eingabeaufforderung ans LLM – z. B. zu einer Frage (“Zero-shot”-Verfahren), ergänzt um ein Beispiel (“One-shot”-Verfahren) oder mehrere Beispiele (“Few- shot“-Verfahren) die „passende“ Antwort generiert. Diese Eingabeaufforderungen ans LLM heißen auch “Prompts” und die Disziplin zu ihrer optimalen, systematischen und effektiven Erstellung heißt Prompt-Engineering (vgl. z.B. Sahoo, P. et al. (2024)).

Für eine hinreichend gute Qualität der LLM-Antworten muss der Benutzer bei der Erstellung des Prompts u.a. auch das spezielle LLM, dessen Trainingshistorie und spezielle Aspekte der Anwendungsdomäne berücksichtigen. Um nicht von der “Kunstfertigkeit” spezieller Promptengineers abhängig zu werden, und um diese Manufaktur-ähnlichen Prozesse in Automatisierte zu überführen, müssen – insbesondere für komplexe Aufgaben- mehr Struktur und technologische Funktionen zur LLM-Umgebung ergänzt werden. Dabei gibt es Ansätze, auf Promptebene zu strukturieren und dabei den Prompt z.B. in folgende Teile zu zerlegen und zu optimieren: „Instruction, Context, Input Data und Outputindicator (format)“, um dann eine „Bibliothek“ solcher Prompts zu pflegen. Eine aktuelle systematische Übersicht, nach Anwendungsbereichen und den neuesten Arbeiten (meist aus dem Jahr 2023) gegliedert findet man in Sahoo, P.; Singh, A.K. et al. (2024). Die folgende Taxonomie beschreibt zusätzlich einen standardisierten Ansatz zur Operationalisierung des Promptings in Abhängigkeit der Komplexität/dem Detailgrad der Anforderungen (Santu, S.K.K., Feng, D. (2023)). Dabei zeigt die Taxonomie wichtige Entwicklungen auf, z. B. wie für hoch detailliertere Fragestellungen die LLM-Schwächen des Fehlens der Aktualität und des Detail-Fachwissens mittels Einbringung externen Wissens durch den RAG-Prozess (Retrieval Augmented Generation) überwunden werden kann (vgl. 4. In Level 5, Level 6 im Bild). Dazu muss die technologische Umgebung durch z. B. Vektordatenbanken und neue Prozesse (z. B. Retrieval, Similarity Search etc.) ergänzt werden. Der für die Fortentwicklung des LLMs zum Einsatz in Produktivumgebungen wichtige RAG-Prozess wird in Beitrag 3 dieser Blogserie ausführlich dargestellt.

(Bildquelle: Santu, S.K.K., Feng, D. (2023). TELeR: A General Taxonomy of LLM Prompts for Benchmarking Complex Tasks. arXiv:2305.11430v2)

Weitere wichtige Ergebnisse aus der Arbeit mit speziellen Prompts, die hier nicht ausgeführt werden können, sind Rollen-Festlegungen und Ausgabeformate und auch Ansätze zur Selbstüberprüfung von LLMs. Der Gebrauch von Reasoning-Formaten, die das LLM systematisch und nachvollziehbar eine Aufgabe analysierend abarbeiten lassen (Chain of Thought (CoT) oder Tree of Thoughts (ToT), Chain of X) sind nachfolgend dargestellt und sollen beispielhaft Entwicklungslinien der Prompt-Systematik veranschaulichen. Diese Art Prompts bewirken, die Lösung komplexer Probleme in eine Reihe von Zwischenschritten zu zerlegen und durch das LLM darzustellen (vgl. nachfolgendes Bild zur Illustration).

(Bildquelle: Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601v2)

Die Prompts diffundieren in eine Vielzahl von Varianten (siehe nachfolgendes Bild), die auch als „Chain of X“ bezeichnet werden, die mit „Erstellungsgrundsätzen“ operationalisiert werden.

(Bildquelle: Greyling, C. (2023). The Anatomy Of Chain-Of-Thought Prompting (CoT). Medium. https://cobusgreyling.medium.com/the-anatomy-of-chain-of-thought-prompting-cot-b7489c925402 (abgerufen am 10.07.2024))

Trotz aller Systematisierung bleibt, dass die Fragilität durch die Abhängigkeit von Umgebungskomponenten, kaum ohne eine wachsende Anzahl von Spezialfällen lösbar ist. Zusätzlich ist es problematisch, dass Speziallisten vorgeben,wie das Modell arbeiten soll, auch wenn man mit Hilfe von Erstellungsgrundsätzen den Bau von Prompts operationalisieren und weniger willkürlich gestalten will (vgl. z.B. Greyling, C. (2023). Deutlich wird, dass man in Lösungsansätzen, die dem LLM vorgeben, „wie“ es zu operieren hat, sich eher auf dem Weg hin zu „eindeutigen“ formalen Sprachen befindet, um die Ziele Objektivität, Nachvollziehbarkeit und Eindeutigkeit zu erreichen. Kurz: manchmal nimmt man die Tendenz wahr, Programmiersprachen erzeugen zu wollen. Allerdings hat man dafür mit dem LLM nicht das geeignete Gegenüber und verfehlt eklatant die Pointe der Schaffung NLP-fähiger Modelle. Natürliche Sprache erfüllt gerade nicht einfach die genannten Ziele, sondern nur über einen anderen paradigmatischen Ansatz, den wir im Laufe der Blogfolgen entwickeln und dessen Auswirkungen untersuchen wollen.

In diesem Zusammenhang sollen neueste Entwicklungen zur automatisierten Herstellung optimaler Prompts, die aktuell an der Stanford University entwickelt werden und große Resonanz erhalten, erwähnt werden: DSPy (Declarative Self-Improving Language Programs (in Python)) (vgl. Khattab, O et al. (2023)) und TextGrad (vgl. Yuksekgonul, M et al. (2024)). 

DSPy ist ein deklaratives, selbstverbesserndes Programm zur algorithmischen Optimierung von LM-Eingabeaufforderungen und LM-Parametern, die nicht direkt vorgeben, “wie” das LLM prozessieren möge, sondern das “was” in sogenannten “Signaturen” vorgibt: den Input und den dazu angestrebten Output. Das “wie” erzeugt das Optimierungsvorgehen im DSPy-System. Dabei können auch Modellparameter geändert werden, anders als in den bisher aufgezählten Ansätzen. Es handelt sich bereits um einen neuen Ansatz, der nicht sofort aufgrund seiner Komplexität eingängig ist (vgl. Hebbar, S. (2024); Khattab, O. (2024)).

(Bildquelle: Hebbar, S. (2024). DSPy: The Future of Programming Language Models. https://www.linkedin.com/pulse/dspy-future-programming-language-models-srinivas-hebbar-w1jpf)

Dies gilt insbesondere auch für TextGrad, ebenfalls aus dem Umfeld der Stanford University. Es soll noch erwähnt werden, dass hier das System der Komponenten rund um ein LLM optimiert werden soll. Der interessante Ansatz der „Differenzierung nach Text“ überträgt textuelles Feedback von LLMs zurück, um einzelne Komponenten eines zusammengesetzten KI-Systems zu verbessern. Es berechnet für allgemeinere Anwendungssituationen analog dem Gradientenverfahren beim Backpropagation Optima, z.B. auch für die Bestimmung optimaler Molekülkonstellationen, Programm-Codes oder Strahlungstherapie-Behandlungsplänen.

Auch, wenn Transparenz und Kontrolle gegenüber den direkten Prompting-Vorgehensweisen etwas zurückstehen, erreicht man doch ein user- und umgebungsneutraleres Vorgehen, wenn man – wie schon bei der Regelerzeugung beim NLP und NLU – durch Abgabe von Kontrolle und Transparenz bei der Erstellung der passenden „Regeln“ erfolgreiche Ergebnisse erzielt werden.[5] [6] Möglicherweise, ein Prinzip?! Zumindest eine weitere Kultur bei der Erzeugung und Nutzung von Software, infolge des neuen KI-Paradigmas „Foundation Models“.

Die gerade bisher behandelten Verfahren werden insbesondere in LLM-Anwendungen mit sich häufig ändernden Daten zu fachlich getriebenen Fragestellungen verwendet. In Situationen, in denen stabilere Fähigkeiten, wie Fachsprache und-Vokabular, Kommunikationsstile oder Fähigkeiten, wie Zusammenfassungen, Topic-Modeling oder Programmierung usw. gefragt sind, ist das aufwändige Trainieren oder das Finetuning ein richtiges Mittel, wie bereits Ende des ersten Teils beim Übergang vom Pre-trained Model GPT zu InstructGPT, GPT 3.5 oder ChatGPT beschrieben wurde. Auf den dort erwähnten Reinforcement-Learning-Ansatz wird nicht weiter eingegangen.

Das Standard-Fine-Tuning betrifft grundsätzlich alle Parameter des LLMs und ist damit ressourcenintensiv und teuer. Gibt man alle Parameter frei zur Gestaltung, droht die Gefahr des sogenannten “katastrophalen Vergessens” durch Abänderung wichtiger Parameter für bereits etablierte („gelernte“) Anwendungen. Daher lohnt sich der Einsatz sogenannter PEFT (Parameter Efficient Fine-Tuning)-Techniken, mit der ein großer Teil der Parameter eingefroren und nur eine viel kleinere Menge modifiziert wird, basierend auf den Fähigkeiten zum Transfer-Lernen der LLMs. Dies schützt auch vor der Gefahr des “katastrophalen Vergessens”.

Methodisch existieren unterschiedliche Variationen (vgl. Abdullahi, M. (2024)):

  • eine spezielle Auswahl änderbarer/eingefrorener Parameter (“selective PEFT”),
  • alles kann eingefroren werden und eine zusätzliche Schicht (oder mehr) mittels Adapter oder Soft prompts kann eingebracht werden (“Additive PEFT”)
  • Reparametrisierung („LoRA“) mittels sogenannter “low rank”-Darstellungen (zwei Matrizen viel geringeren Rangs, deren Produkt wieder die ursprüngliche Parameter-Zahl ergibt). Das Trainieren der kleineren Matrizen kann eine Reduktion von über 80% freier Parameter bringen.

Zur Senkung der Speicheranforderungen und Beschleunigung der Verarbeitung, insbes. an RAM bei den GPUs wird eine quantisierte Variante von LoRA (QLoRA) benutzt (vgl. Dettmers, T. et al. (2023)). QLoRA nutzt statt der Rechenpräzision von 16 Bit nur 4 Bit-Darstellungen der Parameter, ohne große Verluste. In QLoRA wird heute ein neuer Datentyp verwendet: 4-bit Normal Float (NF 4). Darüber hinaus gibt es noch eine Reihe weiterer Ansätze, die im Rahmen dieses Blogbeitrags nicht besprochen werden können.

Im Ergebnis lassen sich die Trade-offs der üblichen Anforderungen (Parameter Efficiency, Training Speed, Inference Costs, Model Performance und Memory Efficiency)[7] im PEFT-Bereich lösen.

Zusammenfassend wird jedoch deutlich, dass viele innovative und nachhaltige Maßnahmen zur Überwindung der Schwachen der LLMs existieren und permanent entwickelt werden. In der Tendenz wird deutlich, dass alle Zugänge (im nachfolgenden Bild rechts oben) zur optimalen Gestaltung des LLMs genutzt werden müssen:

(Bildquelle: Bouchard, L.-F., Peters, L. (2024). Building LLMs for Production: Enhancing LLM Abilities and Reliability with Prompting, Fine-Tuning, and RAG (English Edition). Kindle-Version, Towards AI.)

Die Ergänzung des LLMs um zusätzliche, aktuelle und fachliche Datenquellen (RAG) zur Kontextoptimierung, die Optimierung der Kommunikation mit dem LLM und die Einführung der Kommunikation der Module untereinander weisen schon auf die zukünftige Zielstruktur hin: Ein System interagierender Module, Tools und Anwendungen mit Zugriff auf unterschiedliche “Knowledge-bases” mit strukturierten und unstrukturierten Daten unterschiedlicher Modalitäten, das sich optimiert und neuen Anforderungen anpasst. Mit der Kontextoptimierung (RAG) und der weiteren LLM-Optimierung durch Einbindung weiterer Komponenten/Funktionen beginnen wir im nächsten Blog die Darstellung dieser neuen Ansätze.


Bibliography

Abdullahi, M. (2024). An Introduction to LoRa: Unpacking the Theory and Practical Implementation. Medium. https://medium.com/@mujahidabdullahi1992/an-introduction-to-lora-unpacking-the-theory-and-practical-implementation-e665c5d78295 (abgerufen am 10.07.2024)

Biederman, I. (1987). “Recognition-by-Components: a theory of human understanding”. Psychological Review. 94 (2): 115–147

Bommasani et al. (2021). On the opportunities and risks of foundation models. arXiv:2108.07258v3

Bouchard, L.-F., Peters, L. (2024). Building LLMs for Production: Enhancing LLM Abilities and Reliability with Prompting, Fine-Tuning, and RAG (English Edition). Kindle-Version, Towards AI.

Dettmers, T., Pagnoni, A., Holtzman, A., & Zettlemoyer, L. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. arXiv:2305.14314v1

Dong, Q., Li, L., Dai, D., Zheng, C., Ma, J., Li, R., Xia, H., Xu, J., Wu, Z., Chang, B., Sun, X., Li, L. & Sui, Z. (2024). A Survey on In-context Learning. arXiv:2301.00234v4

Greyling, C. (2023).  The Anatomy Of Chain-Of-Thought Prompting (CoT). Medium. https://cobusgreyling.medium.com/the-anatomy-of-chain-of-thought-prompting-cot-b7489c925402 (abgerufen am 10.07.2024)

Hebbar, S. (2024). DSPy: The Future of Programming Language Models. https://www.linkedin.com/pulse/dspy-future-programming-language-models-srinivas-hebbar-w1jpf

Hu, E.J., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., Wang, L., & Chen, W. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685v2

Khattab, O. (2024). DSPy: Programming—not prompting—Foundation Models. GitHub, GitHub repository. https://github.com/stanfordnlp/dspy

Khattab, O., Singhvi, A., Maheshwari, P., Zhang, Z., Santhanam, K., Vardhamanan, S., Haq, S., Sharma, A., Joshi, T.T., Moazam, H., Miller, H., Zaharia, M., & Potts, C. (2023). Dspy: Compiling declarative language model calls into self-improving pipelines. arXiv:2310.03714

Liu, Y., Yao, Y., Ton, J.-F., Zhang, X., Cheng, R.G.H., Klochkov, Y., Taufiq, M.F., & Li, H. (2024). Trustworthy LLMs: a Survey and Guideline for Evaluating Large Language Models’ Alignment. arXiv:2308.05374v2

Sahoo, P., Singh, A.K., Saha, S., Vinija Jain, V. Mondal S., Chadha, A. (2024). A Systematic Survey of Prompt Engineering in Large Language Models: Techniques and Applications. arXiv:2402.07927v1

Santu, S.K.K., Feng, D. (2023). TELeR: A General Taxonomy of LLM Prompts for Benchmarking

Complex Tasks. arXiv:2305.11430v2

Shen, T., Jin, R., Huang, Y., Liu, C., Dong, W., Guo, Z., Wu, X., Liu, Y., & Xiong, D. (2023). Large Language Model Alignment: A Survey. arXiv:2309.15025v1

Yao, S., Yu, D., Zhao, J., Shafran, I., Griffiths, T. L., Cao, Y., & Narasimhan, K. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601v2

Yuksekgonul, M., Bianchi, F., Boen, J., Liu, S., Huang, Z., Guestrin, C., & Zou, J. (2024). TextGrad: Automatic “Differentiation” via Text. arXiv:2406.07496v1


[1] https://www.spiegel.de/politik/das-falsche-rot-der-rose-a-817b363e-0002-0001-0000-000018166285

[2] Foundation Models versteht man als allgemeines Paradigma der KI, nicht spezifisch für NLP, die aber dort heute noch am häufigsten eingesetzt werden (vgl. Bommasani et al. (2021)).

[3] https://en.wikipedia.org/wiki/One-shot_learning_(computer_vision)

[4] Diese Kategorien sind die beim Deep Learning (DL) erzeugten Repräsentanten, die in abstrakter Form hier die Basis für die synthetische Erzeugung der Sprache darstellen.

[5] Die Untersuchungen zur Struktur optimaler Prompts, die Klassifizierungen und Bewertungsverfahren der Eingabeaufforderungen sind dennoch (insbesondere aus wissenschaftlicher Sicht) sehr nützlich und willkommen. Die industrielle Verwendung stellt jedoch (wie beschrieben) nochmals anders gelagerte Anforderungen.

[6] Auch der im folgenden Blog beschriebene normale RAG-Ansatz erzeugt einen größeren Teil des Prompts für das LLM in seinem Prozess „automatisch“ durch eine optimierte semantische Suche in externen Texten.

[7] https://www.coursera.org/learn/generative-ai-with-LLms

 

 

 

 

Wilhelm Niehoff