KI/Large Language Models

tithrion

Herzlich willkommen!
Wer mal mit verschiedenen LLMs rumexperimentieren will ohne dabei auf die verbreiteten Online-Angebote wie z.B. ChatGPT oder Gemini zu setzen, der kann sich für eine lokale Implementierung mal Ollama anschauen.

Ollama ist eine Software mit der man LLMs herunterladen, lokal installieren und ausführen kann.

Homepage:

Github:

Eines vorneweg, das Thema ist (nicht überraschend) ein Ressourcenfresser.
LLMs benötigen viel RAM, CPU und einiges an Storage, wenn man es on premise(=lokal) betreiben will.

Allerdings kann man je nach vorhandener Hardware auch entsprechend abgespeckte Versionen installieren, welche dann mit deutlich weniger Anforderungen auskommen.

Ich habe hier Experimente mit einem System mit AMD 16-core CPU, 64GB RAM und unterstützter GPU als auch mit einem RaspberryPi5 gefahren. Beides geht, aber nicht zwingend mit der gleichen LLM, Leistungsfähigkeit und Performance.

Die Diskussion mit Phi3 (von Microsoft...), laufend auf einem raspi5 war durchaus amüsant. Das LLM hat immer wieder darauf bestanden, dass es in der Azure-Cloud auf entsprechend fetter Hardware laufe und man z.B. mit Office365 darauf zugreife. Die Vorstellung, dass es sich bei der zugrunde liegenden Hardware lediglich um eine 4-core ARM CPU mit 8GB RAM handelt und das Interface eine CLI ist wurde fast schon arrogant immer wieder abgetan... ;)

An Betriebssystemen wird Linux, macOS und auch Windows unterstützt.
GPU-Support gibt es für diverse GPUs von AMD, NVIDIA und Apple.
Siehe hierzu: ollama/docs/gpu.md at main · ollama/ollama

Zur Bedienung:

Die grundlegende Bedienung erfolgt hier zunächst via Command Line Interface (CLI).

Zunächst läd und installiert man sich ollama, je nach OS-Version (siehe github).
Bei mir (opensuse Tumbleweed) genügte ein
Code:
zypper in ollama
.

Danach sollte der deamon/service gestartet werden.
Wieder in meinem Fall:
Code:
systemctl start ollama
.
Unter macOS war es ein
Code:
ollama serve
.

Jetzt kann man ollama bereits nutzen, ohne Optionen gibt es einfach die Übersicht der verfügbaren Kommandos aus.
Mit
Code:
ollama list
kann man sich z.B. die installierten LLMs anzeigen lassen.
Zu Beginn dürfte diese Liste erst mal leer sein.

Um sie zu füllen, schaut man sich am besten die verfügbaren Models auf der Homepage (library) an und entscheidet sich für den Anfang erst mal für was kleineres.
Ich habe zu Beginn mit tinydolphin, phi3 (Microsoft) und gemma (Google) rumgespielt, aber ihr könnt auch was anderes wählen. Von den meisten gibt es Versionen mit unterschiedlich vielen Parametern. Die kleineren sind vom Download-Umfang weniger und brauchen auch weniger Ressourcen im Betrieb.
Die derzeit leistungsfähigsten freien LLMs dürften llama3 (META) und ganz frisch qwen2 (ALIBABA) sein.

Heruntergeladen und installiert wird das LLM der Wahl mit pull:
Bsp.:
Code:
ollama pull phi3
Das lädt die 2.3 GB der Mini Version mit 3.8B Parametern runter. Will man die Medium Variante mit 14B, hängt man das per Doppelpunkt an den Namen dran, also
Code:
ollama pull phi3:14b
.

Jetzt sollte man das LLM mit list auch sehen und kann es mit run entsprechend starten:
Code:
ollama run phi3

Je nach verwendetem LLM und den verfügbaren Ressourcen kann es ein paar Sekunden dauern bis der Prompt bereit für die Eingabe ist.

Wenn man "Send a message" sieht, kann man auch schon los legen.

Die sprachliche Unterstützung variiert von LLM zu LLM. Im Zweifel dürfte Englisch die breiteste Unterstützung haben, man kann seine Kommunikation aber durchaus auch auf Deutsch absetzen. Das Ergebnis kann wie gesagt variieren.
Ebenso macht es Sinn, hier vielleicht mit unterschiedlichen LLMs und Varianten zu spielen.
Grundsätzlich gilt je mehr Parameter desto leistungsfähiger, aber auch ressourcenfressender.

Den Eingabeprompt verlasst ihr übrigens entweder mit einem /bye oder Ctrl-d.
ollama.png

Soviel zum Einstieg.

Ollama bringt darüberhinaus auch eine API mit über die man die LLMs auch aus eigenen Softwareprojekten heraus ansprechen kann: ollama/docs/api.md at main · ollama/ollama

Außerdem gibt es auf der Github-Seite eine Übersicht über diverse 3rd party Software, wie z.B. auch GUIs.

Wer noch tiefer einsteigen will kann auch ein eigenes Modelfile erstellen.

Viel Spass und bleibt neugierig!
 
Wird denn eine eventuell vorhandene NPU angesprochen? Das könnte mit den neuen ARM-Laptops, die in Kürze auf den Markt kommen, dann deutlich interessanter werden.
 
Konnte ich mangels NPU nicht testen. Bei den GPUs wird, wenn beim Start eine unterstützte GPU gefunden wurde, dies automatisch mit eingebunden. Mit ollama ps wird dann auch angezeigt ob die LLM auf CPU oder GPU bzw. zu welchen Anteilen läuft.
 
Oben