c't 19/2023
S. 119
Wissen
Sprach-KI Falcon
Bild: KI Midjourney | Bearbeitung c’t

Frag den Falken!

Sprach-KI Falcon-7B in Google Colab ausprobieren

KIs haben sich zu solchen Speichermonstern entwickelt, dass man sie kaum mehr auf dem eigenen Rechner ausführen, geschweige denn bearbeiten kann. Zum Glück gibt es kostenlose Clouddienste wie Colab, in denen man zum Beispiel Sprachmodelle installieren und nach Belieben anpassen kann.

Von Wilhelm Drehling

Sprach-KIs verschlingen Unmengen an Rechenleistung und Speicher – so viel, dass es fast unmöglich ist, sie auf dem eigenen PC auszuführen. Wenn Sie damit trotzdem experimentieren möchten, um beispielsweise zu lernen, wie man sie aus Python-Skripten heraus verwendet, um sie in Ihre Projekte zu integrieren, müssen Sie nicht gleich in teure Hardware investieren.

Nutzen Sie stattdessen die Cloud – kostenlos. Zum Beispiel den Dienst Colab (kurz für Colaboratory) von Google [1]. Bei Colab handelt es sich um einen Python-Editor, der sich an dem von Jupyter-Notebook orientiert. Um ihn zu nutzen, benötigen Sie nur einen Google-Account. In der kostenfreien Version haben Sie Zugriff auf 12,7 GByte System-RAM, 78,2 GByte an Laufwerkspeicher und 15 GByte GPU-RAM. Das ist mehr als genug, um kleine Sprachmodelle darin herunterzuladen und auszuprobieren.

Qual der Wahl

Als Beispiel für diesen Artikel dient Falcon-7B, ein vom Technology Innovation Institute (TII) in Abu Dhabi entwickeltes Sprachmodell. Genauer: eine fertig trainierte Variante namens Falcon-7B-Instruct, die gerade noch so in das kostenlose Notebook von Colab hineinpasst.

Das Anhängsel 7B sagt aus, dass das Modell 7 Milliarden Token groß ist. Es gibt also Ausschluss darüber, mit wie vielen Daten das Sprachmodell trainiert worden ist. Laut dem führenden KI-Unternehmen OpenAI entsprechen 100 Token durchschnittlich etwa 75 englischsprachigen gelernten Wörtern. Zum Vergleich: ChatGPT-3 enthielt zur Veröffentlichung mehr als 175 Milliarden Token. Falcon-7B wirkt dagegen klein, aber deswegen sollten Sie die KI nicht unterschätzen. Bei der Entwicklung lehnte sich das TII stark an Trainingsmethoden aus dem ChatGPT-3-Paper von Brown et al. an [2]. Weitere Informationen zu Token und Trainingsdaten finden Sie über ct.de/y2t4.

KI-Modelle wie das fertig trainierte Falcon-7B-Instruct bekommen Sie von der Open-Source-Plattform Hugging Face, die Tausende von Modellen beherbergt. So zum Beispiel auch den größeren Bruder Falcon-40B, der derzeit die Rangliste des Open LLM Leaderboard von Hugging Face anführt. Damit der Download und das Nutzen der KIs möglichst einfach ist, haben die Köpfe hinter Hugging Face eine Bibliothek namens „transformers“ entwickelt. Mit ihrer Hilfe laden Sie eine KI Ihrer Wahl bequem in Ihr Colab-Notebook. Dazu brauchen Sie nur eine Handvoll Codezeilen, die Hugging Face auf einem Silbertablett serviert (siehe ct.de/y2t4). Dazu später mehr.

Obacht: Nicht jedes Modell auf Hugging Face können Sie auf Colab benutzen, viele sind zu groß oder benötigen zu viele Ressourcen. Nicht einmal das Upgrade auf das Bezahlmodell Colab Pro für 11 Euro beziehungsweise Colab Pro+ für knapp 50 Euro im Monat ist sinnvoll, da die zusätzlichen Ressourcen nicht ausreichen, um die gewaltigen KIs zu stemmen.

Einrichten

Im Folgenden erklären wir, wie Sie eine KI in Colab zum Laufen bringen. Wollen Sie dagegen nur mit dem Sprachmodell Falcon-7B experimentieren, können Sie das Notebook verwenden, das wir für diesen Artikel vorbereitet haben (siehe ct.de/y2t4). Wenn Sie es anklicken, wird es automatisch in Ihre Colab-Umgebung transferiert. Wie Sie das Notebook ausführen und benutzen, lesen Sie im Abschnitt „Sprich!“.

Den Clouddienst erreichen Sie unter der URL https://colab.research.google.com/. Mit „Datei/Neues Notebook“ legen Sie ein neues Dokument an. Den unschönen Namen „Untitled.ipynb“ ändern Sie oben links nach einem Klick darauf. Zunächst müssen Sie Colab mitteilen, welche Ressourcen es dem Notebook zuweisen soll. Öffnen Sie dazu das Menü unter „Laufzeit/Laufzeittyp ändern“. Python 3 als Sprache sollte vorausgewählt sein, als Hardwarebeschleuniger benötigen Sie GPU; in der kostenfreien Version ist das eine Nvidia T4. Schließen Sie das Menü mit „Speichern“.

In den Notebook-Einstellungen weisen Sie dem Notebook die benötigten Ressourcen zu. In diesem Fall eine mächtige Grafikkarte des Typs Nvidia Tesla T4.
In den Notebook-Einstellungen weisen Sie dem Notebook die benötigten Ressourcen zu. In diesem Fall eine mächtige Grafikkarte des Typs Nvidia Tesla T4.

Damit der Code läuft, braucht er zusätzliche Bibliotheken. Mit Klick auf „+Code“ erstellen Sie einen Code-Kasten, in dem Sie die Befehle zum Nachladen abkippen:

!pip install -U transformers
!pip install -U einops
!pip install -U git+https://github.com/huggingface/accelerate.git

transformers kennen Sie bereits, damit laden Sie die KI von Hugging Face herunter. einops und accelerate ergänzen Funktionen, die transformers im Hintergrund zum Ausführen des Sprachmodells benötigt, etwa flotte Tensor-Operationen. Das Anhängsel -U zwingt pip, die neueste Version zu installieren, selbst wenn die Bibliothek bereits vorhanden ist. So sind Sie immer up to date.

Den Code für Falcon-7B-Instruct finden Sie im Listing auf Seite 121. Es empfiehlt sich, den Codeschnipsel in zwei Teile aufzutrennen, damit Sie später den Prompt unabhängig vom Download und der Installation des Modells ausführen können. Fügen Sie deswegen zwei weitere Code-Kästen zum Notebook hinzu.

Im ersten steht die obere Hälfte des Codes, der das Sprachmodell herunterlädt und eine pipeline erstellt. Das ist eine überaus mächtige Kapselfunktion, die Ihnen die Bedienung der KI erleichtert und erlaubt, Parameter zu verändern, ohne tief im Code herumzuwühlen. Den unteren Part rund um sequences und prompt fügen Sie in den zweiten Kasten ein. Dieser sendet den prompt via pipeline an das Sprachmodell und empfängt die Antwort. Die letzten beiden Zeilen verarbeiten die Antwort und geben sie auf der Konsole aus.

Sprich!

Nun sind Sie startklar, um Falcon-7B in Betrieb zu nehmen. Sie führen das Notebook aus, indem Sie über „Laufzeit“ auf „Alle ausführen“ klicken. Sollten Sie unser fertiges Notebook genommen haben, müssen Sie die Abfrage, ob Sie es ausführen wollen und dem Autor vertrauen, mit „Trotzdem ausführen“ bestätigen. Es dauert ein paar Minuten, bis das Modell samt Abhängigkeiten installiert ist und die Antwort des Prompts ausgegeben wird. Voilà, es lebt! Wie viele Ressourcen die KI gerade verschlingt, sehen Sie unter „Laufzeit/Ressourcen ansehen“.

Wenn Sie die KI etwas anderes fragen wollen (sie unterstützt nur Englisch und Französisch), dann tippen Sie Ihre Frage in das prompt-Feld und klicken auf den Play-Button links neben dem Codekasten, damit Colab nur diesen neu ausführt. Bis die Antwort erscheint, vergehen je nach Prompt wenige Sekunden bis einige Minuten. Das hängt davon ab, wie komplex die Frage und wie aufwendig die Beantwortung ist. In unseren Tests dauerten Gedichte und tabellarische Ausgaben am längsten.

Drücken Sie auf den Play-Button, um nur den Inhalt des korrespondierenden Kastens auszuführen.
Drücken Sie auf den Play-Button, um nur den Inhalt des korrespondierenden Kastens auszuführen.

Die Antworten sind gar nicht mal so schlecht, so kennt Falcon die korrekte Höhe des Eiffelturms und den Namen des längsten Flusses der Welt. Je nach Frage mangelt es der KI aber auch an Präzision: Manchmal kennt sie die c’t, manchmal nicht: „Yes, c’t magazin is definitely worth a read for anyone interested in technology and computing“ oder „I’m sorry, I do not know what you mean by ’ct’ in the sentence“.

Sollte es mal haken oder Fehlermeldungen geben, die Sie nicht zuordnen können, dann kann es daran liegen, dass Hugging Face Daten aktualisiert oder die Server down sind. Probieren Sie einfach das Pendant zu Stecker herausziehen und wieder einstecken, indem Sie die VM über „Laufzeit/Neustarten und alles ausführen“ resetten. Moniert Colab, es seien keine Ressourcen mehr vorhanden, dann müssen Sie wohl oder übel bis zum nächsten Tag warten, bis Google sie Ihnen wieder zuteilt.

Letzte Worte

Klar, mit einer Cloud fühlt man sich weniger selbstständig, als wenn die KI auf dem eigenen Rechner läuft. Hinzu kommt, dass Google Ihnen theoretisch über die Schulter schauen könnte. Seien Sie daher so vorsichtig wie immer, wenn Sie Daten außerhalb Ihres Verfügungsbereichs verarbeiten.

So weit zum schnellen Einstieg, wie Sie KIs in der Cloud ausführen. Es gibt aber noch mehr Möglichkeiten: Sie könnten die KI etwa mit eigenen Trainingsdaten füttern und sie an Ihre Bedürfnisse anpassen. Zudem steht Falcon-7B unter der Open-Source-Lizenz Apache 2.0, die es Ihnen erlaubt, die KI zu verändern und kostenfrei in eigene Projekte zu integrieren. Eine ausführliche Anleitung von Hugging Face finden Sie über ct.de/y2t4. (wid@ct.de)

Colab-Vorlage, Infos über Token und Hugging Face: ct.de/y2t4

Kommentieren