Adventskalender 10. Dezember 2024 - Ollama

Smalltalk
Antworten
Benutzeravatar
mn77de
Beiträge: 194
Registriert: 23.11.2003 16:53:53
Wohnort: Übersee
Kontaktdaten:

Adventskalender 10. Dezember 2024 - Ollama

Beitrag von mn77de » 10.12.2024 02:43:00

Einleitung
ChatGPT ist mittlerweile ja sehr gut bekannt. Weniger bekannt ist, dass man sehr einfach ein LLM (Large Language Model = großes Sprachmodell) lokal auf dem eigenen Rechner laufen lassen kann.

Die Rede ist hier von Ollama, eine Software von META (Facebook), welche unter MIT-Lizenz frei verfügbar ist.

Die Hardware-Anforderungen für das heutige Türchen sind mittel bis hoch. Ein einigermaßen aktueller Rechner und ein paar Gigabyte freier Speicher sollten ausreichen. Eine schnelle CPU, oder noch besser eine gute Grafikkarte, sind natürlich von Vorteil.

Installation
Die Installation ist wirklich einfach. Hierzu müssen wir ein Bash-Skript herunterladen und als Root ausführen, welches die Installation durchführt.

:!: Bei einem fremden Shell-Skript sollte man generell immer vorsichtig sein, gerade wenn man es als Root ausführt! :!:

Wer mag kann sich das Skript gerne herunterladen und ansehen.
Bei der Installation werden etwa folgende Schritte durchgeführt:
  • den Server nachladen und unter /usr/local/bin/ollama speichern
  • Ein paar Libs nach /usr/local/lib/ollama verlinken
  • Einen Service anlegen und starten

Code: Alles auswählen

curl -fsSL https://ollama.com/install.sh | sh
Damit ist der Server installiert und startklar.
Nun benötigen wir noch ein geeignetes Sprachmodell. Da es bei Ollama mittlerweile um die 100 Modelle gibt, hier noch ein paar Informationen.

Modell-Zweck
Es hängt viel davon ab, mit welchen Daten und für welchen Zweck ein Modell trainiert wurde.

Hier gibt es vor allem zwei große Bereiche:
  • Allzweck-Modelle
  • Coder, welche Quellcode generieren oder analysieren können.
Zudem ist noch wichtig, in welcher Sprache ein Modell trainiert wurde. Die meisten für Ollama verfügbaren Modelle können sehr gutes Englisch, bei Deutsch hakt es allerdings hier und da gerne etwas.

Anekdote: Ein Modell behauptete ernsthaft, ein B-Tree sei eine "Art von Bäumelichung"! :roll: :lol:

Größe
Manche Sprachmodelle gibt es in mehreren Ausführungen. Diese nennen sich dann z.B. 3b, 7b oder 15b.

Ein "7b-Modell" hat etwa eine Dateigröße von 4 bis 5 GB und benötigt circa 8 GB an Arbeitsspeicher oder Speicher auf der Grafikkarte. Ein "27b-Modell" ist somit für etwa 32 GB freien Speicher ausgelegt und hat eine Dateigröße von ca. 15 GB. Zudem benötigt ein "27b-Modell" gerne mehr Rechenleistung als ein "3b-Modell".

Somit sollte bereits klar sein, dass man ein "405b-Modell" meist eher nicht herunterladen braucht. :wink:

Weiter kann man grob sagen, dass größere Modelle einfach mehr können (wissen), als kleinere Modelle.

Zensiert
Ein weiterer Punkt ist, wie stark ein Modell zensiert ist.
Manche Modelle sagen z.B., dass sie zwar diesen oder jenen Songtext kennen, jedoch nicht ausgeben dürfen. Andere Modelle geben die Lyrics ohne murren aus, verweisen aber vielleicht auf das Copyright.

Als Beispiel: "Gemma2" (Google) ist zwar sehr gut, aber auch stark zensiert.

Welches Modell nun?
Ein Sprachmodell sollte hierzulande gutes Deutsch können und sinnvolle, sowie (meist) korrekte Antworten liefern.
Ansonsten ist das alles irgendwie den Aufwand nicht wert.

Meiner Erfahrung nach fallen hier alle Modelle mit weniger als "3b" durch. Ein "7b" liefert hingegen meist brauchbare Ergebnisse und ein 27b weiß einfach mehr.

Auf der folgenden Seite sind alle verfügbaren Modelle und Größen aufgelistet:
https://ollama.com/search

Generell empfehlen kann ich:
  • openhermes
  • openchat
  • gemma2 (Google, gut aber stark zensiert)
Modell installieren
Ein Modell kann bequem als normaler User (nicht Root) wie folgt installiert werden:

Code: Alles auswählen

ollama pull <modell>:<größe>
Wird keine Größe angegeben, so wird das Standardmodell mit ":latest" heruntergeladen.

Für den Einstieg installieren wir "openhermes", ein 7b-Modell welches meist gut Deutsch spricht.

Code: Alles auswählen

ollama pull openhermes
Mit folgendem Befehl erhalten wir eine Liste aller installierten Modelle:

Code: Alles auswählen

ollama list
Run!
Sobald das Modell fertig geladen ist, können wir es starten:

Code: Alles auswählen

ollama run openhermes
Client
Der nun gestartete Client ist relativ einfach gehalten, unterstützt aber ein paar gängige Tastenkürzel wie:
  • Strg+A und Strg+E (Anfang/Ende)
  • Strg+F und Strg+B (vor/zurück)
  • Strg+U und Strg+K (löschen nach links/rechts)
Sollte eine Ausgabe zu lange dauern, kann sie mit "Strg+C" abbgebrochen werden.
Mit "Strg+D" lässt sich der Client beenden.

Wozu das Ganze?
Wer noch keine Erfahrung mit LLM's hat, hier ein paar Aufgabengebiete:
  • Fragen beantworten
  • Rechtschreibung prüfen
  • Texte verfassen
  • Texte übersetzen
  • Texte oder Programme analysieren
:!: WICHTIG! Die Ausgabe eines LLM's niemals ungeprüft verwenden oder weitergeben.

Grund: LLM's können einerseits beim Training in irgendeine Richtung beeinflusst werden, andererseits neigen sie zum halluzinieren wenn nicht genug Informationen vorhanden sind.

Hier muss man auch klar sagen, dass die heutzutage verfügbaren LLM's nur eine schwache künstliche Intelligenz sind.
Ich betrachte sie mehr wie eine große Datenbank, welche mit eigenen Worten befragt werden kann.

Programmieren
Sehr nützlich können LLM's beim Programmieren sein. Eine kurz beschriebene Aufgabenstellung kann so sehr schnell in der gewünschten Programmiersprache umgesetzt werden.

Hier sind aus meiner Sicht folgende Modelle einen Blick wert:
  • deepseek-coder-v2:16b (sehr flott)
  • qwen2.5-coder:7b
  • codellama:7b
  • codeqwen:7b
  • starcoder2:7b
Entfernen
Übrigens, ein Modell lässt sich bequem wieder entfernen:

Code: Alles auswählen

ollama rm <modell>
Schlusswort
LLM's sind definitiv nicht perfekt!
Aber bewusst eingesetzt können sie ein gutes Werkzeug sein. Gerade im Bereich der Programmierung haben sie aus meiner Sicht sehr viel Potential.

Zu Ollama gibt es übrigens noch unzählige Bibliotheken, Oberflächen und Tools.
https://github.com/ollama/ollama (Unten in der Projekt-Beschreibung)

Wie denkt Ihr über LLM's?
Was sind Eure favorisierten Modelle?
Wie schnell laufen die Modelle bei Euch?
Zuletzt geändert von mn77de am 10.12.2024 08:51:54, insgesamt 4-mal geändert.
Debian stable, AwesomeWM, Mate, Helix, LF, Git, Java, Xemy, JayMo, ...
OpenSource! :THX:

Liffi
Beiträge: 2345
Registriert: 02.10.2004 01:33:05

Re: Adventskalender 10. Dezember 2024 - Ollama

Beitrag von Liffi » 10.12.2024 06:44:31

Vielen Dank für das Türchen. Gehört habe ich davon schon, aber einfach noch nicht eingesetzt. Ich denke, ich werde dann mal am Wochenende damit rumspielen :-).

Benutzeravatar
ralli
Beiträge: 4380
Registriert: 02.03.2008 08:03:02

Re: Adventskalender 10. Dezember 2024 - Ollama

Beitrag von ralli » 10.12.2024 08:13:06

Danke für die Vorstellung von Ollama. Selber benutze ich täglich ChatGPT in der kostenlosen Version. Hab mich aber angemeldet und meine Mailadresse hinterlegt. Ich bin sehr zufrieden damit. Das liegt aber auch daran, das ich keine perfekten Ergebnisse erwarte. Wenn ich bedenke, das die KI insgesammt erst am Anfang steht, liefert ChatGPT für mich gute Ergebnisse. Die Leistung ist eindrucksvoll. Ollama werde ich mir mal anschauen.

Gruß ralli

Benutzeravatar
whisper
Beiträge: 3379
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Adventskalender 10. Dezember 2024 - Ollama

Beitrag von whisper » 10.12.2024 08:40:58

Vielen Dank für die gut struktuierte Beschreibung.
Midnight Journey hatte ich mal kurz probiert, mangels GPU Power aber gleich wieder sein gelassen.
Dann habe ich ja jetzt mal was zum „spielen"
Aber passt auf den Platz in / auf!
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt. 😉

Benutzeravatar
mn77de
Beiträge: 194
Registriert: 23.11.2003 16:53:53
Wohnort: Übersee
Kontaktdaten:

Re: Adventskalender 10. Dezember 2024 - Ollama

Beitrag von mn77de » 10.12.2024 08:50:11

whisper hat geschrieben: ↑ zum Beitrag ↑
10.12.2024 08:40:58
Midnight Journey hatte ich mal kurz probiert, mangels GPU Power aber gleich wieder sein gelassen.
Aber passt auf den Platz in / auf!
Freut mich wenn das Türchen gefällt. 8)
Die Modelle bis 30b laufen bei mir auch mit CPU (Intel i7-11700) sehr brauchbar, teils sogar richtig flott. Mit guter GraKa dürfte alles aber sicherlich noch viel flotter gehen.

Und ja, 100 GB sind mit Ollama ganz schnell weg :lol:
Zuletzt geändert von mn77de am 15.12.2024 08:19:45, insgesamt 1-mal geändert.
Debian stable, AwesomeWM, Mate, Helix, LF, Git, Java, Xemy, JayMo, ...
OpenSource! :THX:

Benutzeravatar
whisper
Beiträge: 3379
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Adventskalender 10. Dezember 2024 - Ollama

Beitrag von whisper » 10.12.2024 17:31:07

Das Modell deepseek-coder-v2 habe ich mal ausprobiert. Meine NVIDIA Karte hat nur 2GB, das ist nicht genug, macht aber schon zum ausprobieren Sinn.
ein 30 Zeilen Script sollte um eine Kleinigkeiten erweitert werden.
ChatGPT 4o und deepseek-coder-v2 habe die Aufgabe unterschiedlich erledigt aber beide auch mit awk ein falsch kaltkuliertes printf generiert.
deepseek-coder-v2 ist anfangs flott, erreicht aber schnell seine Grenze und wenn man dann /clear verpasst, kommt es zum Crash.
Was die Erkennung der NVidia ausser Gefecht setzt.
Reboot behebl´t das dann.
Mein erster Eindruck: Tolle Leistung, aber nur mit guter GPU und reichlich RAM nutzbar.
Und das Model ist noch zu klein, der Prompt ist zuklein
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt. 😉

Antworten