Ich hab’s ganz gerne, wenn neue Technologien so gestaltet und aufbereitet sind, dass man selbst damit herumspielen kann. Large Language Models wie OpenAIs ChatGPT machen das schon nicht schlecht: man kann sich dort einfach registrieren und dann ein paar Fragen an die KI stellen. Allerdings ist alles dahinter quasi eine Black Box. Man weiß nicht, wie ChatGPT zu seinen Antworten kommt, und man weiß auch nicht, was OpenAI mit den Fragen macht. Wenn ich GPT-4 nach einem Kochrezept frage, ist das nicht weiter problematisch. Wenn ich der KI aber Dokumente mit vertraulichen oder personenbezogenen Daten zum Analysieren gebe, möchte ich nicht, dass diese Daten später als Trainingsdaten oder für andere Zwecke verwendet werden können, da dann die Gefahr bestünde, dass die Daten irgendwo wieder auftauchen.
Es geht aber auch anders.
Ollama
Ollama ist ein recht einfacher Weg, LLMs auf Windows, Linux oder Mac OS herunterzuladen und laufen zu lassen.
Nach der Installation kann man Ollama über die Kommandozeile (z.B. die Windows PowerShell) aufrufen. Ollama hat einen ganzen Katalog verschiedener Open-Source-LLMs online, die wiederum in verschiedenen Größen und mit unterschiedlich vielen Milliarden Parametern angeboten werden. Die Modelle unterscheiden sich auch in ihren Fähigkeiten und in den unterstützten Sprachen.
Metas llama3.1 in der Größe 8B ist ein ganz brauchbares Modell zum Anfangen. Es braucht etwa 4,7 Gigabyte auf der Platte und läuft schon auf PCs mit 8GB RAM halbwegs gut.
Um das Modell laufen zu lassen, führt man in der Kommandozeile ollama run llama3.1:8b
aus. Sollte das Modell noch nicht installiert sein, lädt Ollama es automatisch herunter. Danach kann man mit dem Modell chatten:
PS C:\Users\daniel> ollama run llama3.1
>>> Wie schnell fliegt eine afrikanische Schwalbe?
Die Afrikanische Schwalbe (Hirundo daurica) ist ein kleiner Vogel, der eine Fluggeschwindigkeit von bis zu 35 km/h
erreichen kann. Bei Stürmen und wildem Fliegen können sie jedoch Geschwindigkeiten von über 50 km/h erreichen.
>>> Send a message (/? for help)
Mit /bye
kann man die interaktive Chat-Session beenden.
Auf der Kommandozeile kann man sich mit ollama list
die installierten LLMs anzeigen lassen. ollama ps
listet die gerade laufenden LLMs auf und ollama stop [LLM]
beendet eine davon.
PS C:\Users\daniel> ollama list
NAME ID SIZE MODIFIED
llama3.1:latest 42182419e950 4.7 GB 2 days ago
llama3.2:latest a80c4f17acd5 2.0 GB 2 days ago
PS C:\Users\daniel> ollama ps
NAME ID SIZE PROCESSOR UNTIL
llama3.1:latest 42182419e950 6.2 GB 100% CPU 4 minutes from now
PS C:\Users\daniel> ollama stop llama3.1
AnythingLLM
Chatten auf der Kommandozeile ist ganz nett. Wenn man aber ein bisserl mehr machen möchte, kann man AnythingLLM verwenden. In AnythingLLM kann man Arbeitsbereiche definieren und in diese Arbeitsbereiche Dateien laden, die dann den LLMs für Chats zur Verfügung stehen. AnythingLLM kann dafür sowohl lokale LLMs (Ollama) als auch cloudbasierte LLMs (z.B. GPT-4) verwenden.
Funktioniert das alles?
Ja und nein. Nicht immer, nicht verlässlich, nicht immer schnell. llama3.1 in der Größe 8B liefert mir auf meinem Laptop ähnlich schnell Antworten wie ChatGPT online. Die kleineren Modelle llama3.2 sind noch schneller, aber auch weniger genau. In jedem Fall sollte man unbedingt schon eine Ahnung davon haben, wonach man fragt, damit man beurteilen kann, ob das LLM Dinge halluziniert.
AnythingLLM kann PDFs und andere Textdateien verarbeiten. Ein Excel-Arbeitsblatt, das ich ihm hochlud, konnte es noch nicht lesen. Das sollte sich aber schnell beheben lassen.