KI

Siehe auch

KI, Künstliche Intelligenz, AI, Artificial Intelligence, GPT, Sprachmodelle usw… ein kleiner Überblick.

Im Oktober 2018 veröffentlichte Google einen Preprint des BERT-Aufsatzes und startete so den KI-Hype.

Die Technik von beispielsweise Chat-Bots wie ChatGPT und anderen text-basierten KI-Applikationen basiert auf Large Language Models (LLMs). In der KI ist ein Transformer eine Methode, mit der ein Computer eine Zeichenfolge in eine andere Zeichenfolge übersetzen kann. Dies kann z. B. zur Übersetzung von Text aus einer Sprache in eine andere verwendet werden. Ein LLM ist ein neuronales Netz, das mit grossen Textmengen gefüttert wird. Die Generierung eines solchen Sprachmodells nennt man „Pre-Training“ - sehr aufwendig, und nur mit viel Rechenpower und daher mit viel Geld machbar (laut LEAM-Machbarkeitsstudie des deutschen KI-Bundesverbands ca. 400 Mio. EUR). Ein LLM ist am Ende kein Chatbot, sondern die Basis dafür.

Bemerkung

Pre-Training: Vor dem Training für die eigentliche Aufgabe findet zunächst ein Training mit beliebigen Texten aus dem Internet statt. Diese müssen vorher nicht aufwendig manuell annotiert werden. Hier hört man immer wieder von der Anzahl der „Parameter“, die bei den grössten Modellen bei mehreren hundert Milliarden liegt. Die LLMs entwickeln hier bereits eine Art allgemeines Sprachgefühl, können also schon ordentliche Sätze bilden.

PyTorch wird für das Training wesentlich häufiger eingesetzt als Googles TensorFlow (Hugging Face: 151k Modelle vs. 10k Modelle).

Ein LLM wird dann für den vorgesehenen Einsatzzweck (z.B. für den Einsatz in einem Chatbot, der Fragen beantwortet) nachtrainiert. Man spricht hier von „Finetuning“. Dieses ist deutlich weniger aufwendig und kann mit moderater Rechenleistung in wenigen Stunden oder Tagen durchgeführt werden.

Bemerkung

Finetuning: Verfeinerung der Fähigkeiten für eine bestimmte Aufgabe. Hier lernen die Modelle typische Aufgaben wie Übersetzen, Fragen beantworten oder Kundenfeedback als positiv oder negativ zu klassifizieren.

Ablauf:

  • Daten ins Modell bringen: Text in Tokens umbauen und vektorisieren.

  • Antwort des LLMs: Vektoren > Tokens > lesbarer Text.

Die so genannten „Foundation Models“ sind die Basis für spätere Anwendungen. Bis vor kurzem gab es keine guten Open Source Foundation Models: ChatGPT und Bing verwenden das nicht-offene Sprachmodell „GPT-4“ der Firma OpenAI. Ein weiteres nicht-offenes LLM ist „PaLM 2“ von Google, die Basis des Chatbots „Bard“. Seit Meta sein (aktuell zu GPT-4 nicht konkurrenzfähiges) LLM „LLaMA“ für nicht-kommerzielle Zwecke freigegeben hat, entwickeln sich aber darauf basierende Anwendungen rasant.

Foundation Models („Basismodelle“):

  • GPT-3, GPT-4 von OpenAI (Text)

  • LLaMA von Meta (Text; wurde mit PyTorch trainiert)

  • PaLM 2 von Google (Text)

  • Midjourney von Midjourney (Bildgenerierung)

  • MoLFormer-XL von IBM (z.B. zur Entwicklung von mRNA-Medikamenten)

  • Gen-2 von Runway (Videogenerierung)

Auf LLaMA basierende LLMs:

  • vicuna

  • l13b-snoozy

Echte Open Source LLMs, auch für den kommerziellen Einsatz - aber deutlich schlechter:

  • Open Assistent

  • mosaic MPT von MosaicML

  • Cerebras-GPT von Cerebras

  • GPT-J von EleutherAI (Apache2-Lizenz)

  • Stable Diffusion (Bildgenerierung)

File-Formate für LLMs:

  • GGUF (GPT-Generated Unified Format): neu, Nachfolger von GGML

  • GGML (GPT-Generated Model Language): Dateformat und gleichzeitig ein Quantisierungsmechanismus

Chat-Schnittstellen/Anwendungen zu einem LLM:

  • Langchain

  • llama.cpp (Kommandozeile)

  • Llamaindex

Begriffe

  • BERT: Biderectional Encoder Representations from Transformers

  • Checkpoint: Gespeicherte Model-Version, die deployed werden kann.

  • emergente Fähigkeiten: LLMs erzielen plötzlich in Aufgaben gute Ergebnisse erzielen, für die sie gar nicht direkt trainiert wurden.

  • Few-Shot-Learning: Die Fragestellung darf keine Beispiele enthalten, aus denen die KI ableiten könnte, wie die Aufgabe korrekt gelöst wird.

  • GPT: Generative Pre-trained Transformer

  • Hugging Face: Zentrale Repos für Entwickler, die mit offenen KI-Modellen arbeiten.

  • Inferencing: Einsatz/Verwendung eines schon trainierten Sprachmodells.

  • Maximum length: Maximum length of response in tokens.

  • Parameter: Eine Variable, die ein LLM während des Trainings gelernt hat.

  • Quantisierung: Vorgang, ein Modell so umzubauen, dass es mit kurzen Ganzzahlen rechnet.

  • Prompt Batch Size: Amount of prompt tokens to process at once. Higher values can speed up reading prompts but will use more RAM.

  • Repeat Penalty Tokens: How far back in output to apply repeat penalty

  • Repeat Penalty: Amount to penalize repetitiveness of the output.

  • RLHF: Reinforcement Learning from Human Feedback. Verfahren, das menschliches Feedback simulieren soll.

  • Temperature: Temperature increases the chances of choosing less likely tokens. Higher temperature gives more creative but less predictable outputs.

  • Token: Entspricht ungefähr einem Wort.

  • Top K: Only the top K most likely tokens will be chosen from.

  • Top P: Only the most likely tokens up to a total probability of top_p can be chosen. Prevents choosing highly unlikely tokens, aka Nucleus Sampling.

  • Transformer: Eine bestimmte, von Google entwickelte Architektur neuronaler Netze. Damit kann ein Computer eine Zeichenfolge in eine andere Zeichenfolge übersetzen.

  • Vertex AI: Cloudplattform für alle Machine-Learning-Anwendungen von Google

  • Zero-Shot-Aufgaben: Anfragen, für die die KIs kein Finetuning bekommen haben. Werden zum Testen der KI verwendet.

Training - Grundlagen

Während grosse Sprachmodelle wie GPT (Generative Pre-trained Transformer) durch Vortraining mit grossen Datenmengen allgemeine Sprachmuster erlernen können, kann die Feinabstimmung mit spezifischen Daten deren Leistung bei speziellen Aufgaben weiter verbessern.

Um Textnachrichten zu trainieren, allgemein wie folgt vorgehen:

  1. Daten sammeln: Alle relevanten Textnachrichten, die Informationen oder Fragen zu einem bestimmten Thema oder einer bestimmten Fragestellung enthalten, sammeln. Darauf achten, dass diese Texte ein breites Spektrum an Beispielen und Variationen abdecken, damit das Modell effektiv aus ihnen lernen kann.

  2. Data Preprocessing: Sobald der Datensatz zur Verfügung steht, alle Inkonsistenzen in der Formatierung bereinigen (z. B. zusätzliche Leerzeichen entfernen), den gesamten Text in Klein- oder Grossbuchstaben umwandeln und Abkürzungen und Akronyme standardisieren. Dies hilft dem Modell, die Texte besser zu verstehen.

  3. Daten labeln: Für jedes Beispiel im Datensatz eine Bezeichnung angeben, die beschreibt, worum es geht (z. B. „How to“, „Wie“, „What is“, „Was ist“, „Why“, „Warum“ usw.). Diese Beschriftungen können bei Bedarf als Tags zum Organisieren und Durchsuchen des Trainingssatzes verwendet werden.

  4. Das eigentliche Training: Sobald der Datensatz vorverarbeitet und beschriftet ist, wird das KI-Modell trainiert. Auf diese Weise kann es den Kontext dieser Texte besser verstehen und genauere Antworten geben.

  5. Testen und verfeinern: Nachdem das Modell mit den Daten trainiert wurde, Fragen stellen, die auf Beispielen aus dem Datensatz basieren, und anschliessend notwendige Anpassungen oder Verbesserungen am Modell vornehmen.

Plattformen wie https://huggingface.co/ unterstützen bei diesem Prozess.

Built on 2024-03-28