Große LLMs auf jedem Rechner ausführen!

Große LLMs auf jedem Rechner ausführen!

Worum geht es?

Wäre es nicht toll, wenn du jedes Open-Source Sprachmodell auf deiner Hardware ausführen könntest, egal wie groß es ist?
Die Sache ist, dass man bis jetzt sehr teure Hardware mit großem Speicher und super teure GPUs braucht. Oder man mietet sich Rechenpower irgendwo in der Cloud… auch nicht gerade günstig.

Jetzt gibt es allerdings etwas tolles, aus meiner Sicht: https://petals.ml/

Damit kannst du Modelle wie LLaMA-65B, Guanaco, BLOOM-176B oder BLOOMZ ausführen!

 

Wie funktioniert das?

Kurz: ja die gute alte Torrent-Zeit ist zurück! Nur diesmal geht es nicht um (illegal) heruntergeladene Filme, sondern um geteilte Rechenpower!

Wie bei den (Film-)Torrents, werden die benötigten Teile auf viele Rechner verteilt, d.h. Teile des Modells und vor allem die notwendige Berechnung verteilt sich auf zahlreiche Computer.

Dabei kannst du in unterschiedlichen Rollen teilnehmen: Client oder Server. Als Client nutzt du die Kapazität des Netzwerks und kannst entweder das Modell nutzen (Inference) oder Fine-Tuning betreiben. Als Server-Teilnehmer bietest du deine Rechenzeit für alle an.

Du kannst aber auch ein privates Netzwerk aufbauen, wenn du z.B. mehrere Rechner zur Verfügung hast.

Du kannst natürlich auch beide Rollen gleichzeitig einnehmen.

Die Nutzung

Wenn du das jetzt nutzen möchtest, dann brauchst du lediglich ein paar Zeilen Python-Code auszuführen. Dazu gehst du auf https://petals.ml/ und besorgst dir den Code, den du dann einfach auf deinem Rechner (oder z.B. in Google Colaboratory) ausführst. Eine genaue Anleitung findest du in dem GitHub-Repostiory des Projektes: https://github.com/bigscience-workshop/petals

 

Meine Meinung

Ich habe das Projekt gerade erst entdeckt und hatte noch nicht die Gelegenheit ausführlich damit zu spielen. Es eröffnet aber meines Erachtens einige Möglichkeiten. So kann man mit den großen Modellen erstmal experimentieren, ohne viel Geld ausgeben zu müssen.

Ob es für ein „ernsthaftes“ Projekt oder gar für kommerzielle Anwendungen ausreicht, muss sich noch zeigen. Unklar ist (für mich) noch, wie es mit dem Datenschutz aussieht. Letztendlich müssen ja schließlich deine Prompts verteilt werden, damit sie auf fremden Rechnern berechnet werden können.

Auch die Performance muss betrachtet werden, denn es macht sicherlich einen Unterschied, ob direkt verfügbare performante Hardware die Berechnungen durchführt oder ob die Daten erstmal über das Netztwerk laufen müssen.

Ausserdem hängt das Ganze davon ab, dass Leute bereitwillig ihre Rechenkapazität zur Verfügung stellen! Das wäre doch endlich mal ein vernünftiger Einsatzgrund für eine Blockchain! wink Also ein Belohnungssystem, das die gespendete Rechenzeit registriert und dir dafür, z.B. die Rechenzeit des Gesamtsystems anbietet oder Vorrang gibt.
Wenn ich ausreichend damit gespielt habe, werde ich ggfs. ein kurzes Tutorial erstellen.

ChatGPT Code Interpreter Plugin für alle verfügbar

ChatGPT Code Interpreter Plugin für alle verfügbar

Das Code Interpreter Plugin für ChatGPT wurde nun nach längerer closed beta Phase für alle ChatGPT+ Nutzer freigegeben. Dieses Plugin ist aus meiner Sicht ein Game-Changer!

Was ist das Code Interpreter Plugin?

Der Name des Plugins ist aus meiner Sicht nicht gut gewählt, denn der Name drückt nicht aus, wozu dieses Plugin in der Lage ist! Mit dem Plugin kannst du alle möglichen Arten von Dokumenten in ChatGPT hochladen und auf unterschiedliche Arten und Weisen verarbeiten oder bearbeiten lassen. Je nach dem was du verlangst, kannst du auch ein Ergebnis herunterladen, z.B. kannst du ChatGPT mit einer CSV-Datei füttern und bitten dazu eine Grafik zu erstellen, die du dann herunterladen kannst!

 

Wie funktioniert das Plugin?

Bevor ich dir ein paar Beispiele zeige, möchte ich die technischen Hintergrunde des Plugins erläutern. 

Damit das Plugin in der Lage ist, die Aufgaben auszuführen, wurde ChatGPT um die Möglichkeit erweitert, (Python) Code zu erzeugen und auszuführen. D.h. anhand deines Prompts erzeugt sich ChatGPT den notwendigen Code selbst, führt in aus, verbessert ihn, erstellt weiteren Code… usw. bis das Ergebnis zur Verfügung steht. Die Ausgaben des Codes wertet ChatGPT außerdem aus, bevor es dir die endgültige Antwort gibt.

Was das Plugin so anstellt, kann man sich netterweise anschauen, wenn man auf den Knopf „Show work“ klickt. So zum Beispiel:

 

Hier habe ich zuvor eine CSV-Datei hochgeladen, die meinen Gas-Verbrauch enthält (die gleiche Datei, die ich in dem Prompt-Tutorial verwendet habe). In diesem Beispiel nutzt ChatGPT diesen Python-Code um die Daten zu analysieren und ein Diagramm zu erstellen.

Was man hier sieht, ist eine Art Agentensystem. D.h. die Aufgabe wird in Teilaufgaben unterteilt, der notwendige Code erzeugt und die Resultate werden ausgewertet und weiter verarbeitet usw. Das sind ähnliche Ansätze wie bei AutoGPT und ähnlichen KI-Agentensystemen.

Beispiele

Es gibt fast unbegrenzte Möglichkeiten das Plugin zu nutzen. Hier zeige ich dir ein paar davon.

Also insgesamt ist das Ding in der Lage, Sachen wie Datenanalyse, Bildbearbeitung, Programmierung, Übersetzen von Code in eine andere Programmiersprache, Videobearbeitung, animierte GIFs erstellen, ….

Datenanalyse

Eines der coolsten Features ist die Datenanalyse. Dazu können wir eine Datei mit Daten hochladen, z.B. als CSV-Datei. Falls du keine Daten zur Hand hast, aber gerne damit spielen möchtest, dann gibt es z.B. bei https://www.kaggle.com/datasets/ zahlreiche Datensätze, die man herunterladen kann.

Ich habe mir einfach mal folgenden Datensatz heruntergeladen: https://www.kaggle.com/datasets/konradb/global-income-statistics. Offensichtlich enthält er Angaben zum Einkommen weltweit. Ohne wirklich den Inhalt im Detail zu kennen, kann man jetzt die Datei hochladen und um eine erste Analyse bitten:

Ok, das ist schon mal ein erster Überblick, welche Felder enthalten sind und was sie vermutlich bedeuten. Wenn wir noch nicht wissen was wir analysieren können, fragen wir doch ChatGPT! wink

Alles klar, mich interessiert hier die Hypothese 3. Also lassen wir das mal analysieren und natürlich mit Unterstützung von Grafiken!

Es folgen noch weitere Analysen usw. Hier war ich beim Erstellen des Prompts sehr faul, daher ist das Ergebnis sicher nicht optimal. Das Diagramm könnte z.B. besser skaliert sein etc. Aber es zeigt wo es hingehen kann.

Wo es noch hingehen kann z.B.: eine Powerpoint-Präsentation daraus erstellen usw.

Bildbearbeitung

Wir können auch Bilder hochladen und etwas mit diesen Bildern anstellen lassen. Hier erstmal ein Beispiel, wo ich die Person im Vordergrund freistellen möchte (ja ja, dafür gibt es natürlich Bildverarbeitung etc…. aber es geht halt sehr schnell). Also bastle ich mir schnell ein Bild… da Leonardo.ai gerade Downtime hat, habe ich mal mit firefly.adobe.com eins erstellt:

Schauen wir mal, ob ChatGPT den Mann freistellen kann…

 

 

… nun es ist daran gescheitert. Es war ein Drama in mehreren Akten. Fast menschlich hat es Probleme beim Programmieren gehabt. Inkompatible Funktionen etc… arme KI 😉

Auch wenn es nicht so gut funktioniert hat, so sieht man aber sehr gut, wie ChatGPT hier vorgeht und versucht sich zu verbessern!

Fazit

Es ist lange nicht perfekt, aber es ist ein echt wichtiges und cooles Feature, das sehr nützlich sein kann. Die Hauptstärken sehe ich bei der Datenanalyse und bei der Visualisierung. Klar kann man das auch alles ohne KI, mit den entsprechenden Tools, erreichen. Aber es geht aus meiner Sicht um die Unterstützung und die Arbeitserleichterung.

Willkommen!

Willkommen!

Da ist er… mein Blog!

Schön, dass du meinen Blog gefunden hast! Ich möchte dir erstmal ein wenig über mich erzählen, über meine Motivation diesen Blog anzufangen und was dich hier zukünftig erwartet!

Erstmal ein paar wenige Worte über mich. Mein Name ist Styrmir Grünheit und zähle inzwischen 47 Geburtstage! Meine Leidenschaft für alles was mit Computern und Programmierung angeht, entwickelte sich bei mir sehr früh. Glaub mir, ohne Internet und nur aus Büchern lernen, die es in der Bibliothek gab, war eine ganz eigene Herausforderung!

Seit nun über 23 Jahren bin ich in der Softwareentwicklung tätig. Anfangs hauptsächlich im Bereich Java aber über die Jahre kamen natürlich immer mehr Sachen dazu, sei es im Frontendbereich oder als Softwarearchitekt.

Aber wie komme ich nun zu einem Blog über KIs? Kurz: Aus purem Eigeninteresse! Automatisierung durch Computer hat mich immer fasziniert. So habe ich das Haus meiner Familie schon mit meine Hausautomatisierung verunstaltet. Ja ich gebe es zu, man kann einfach den Lichtschalter betätigen aber ich freue mich einfach viel mehr darüber, wenn ich Alexa „bitte“ das Licht einzuschalten! 

Apropos Alexa! Als die Dinger auf den Mark kamen, war ich natürlich vorne mit dabei! Für mich brach ein neues Zeitalter an. Voller Begeisterung, wie weit die Technik doch ist! Mit der Zeit allerdings wich die Begeisterung eher der Ernüchterung. Inzwischen ist Alexa sowas wie eine Aggressionstherapie für mich. Auf jeden Fall werden die diversen Alexas im Haushalt regelmäßig angeschrien, wenn sie wieder einmal alles falsch verstanden haben.

Vielleicht durch diese Ernüchterung befasste ich mich mit dem Thema künstliche Intelligenz nicht viel weiter. Es war eher so, dass ich alles was da so vorgestellt wurde, sei es irgendwelche KIs, die Gegenstände in Bildern erkennen oder etwas anderes, als nette Spielerei angesehen habe. Für mich war das allerdings etwas, was lange nicht nützlich sein wird… ich sollte mich täuschen!

Vor einigen Monaten hörte ich erstmal von ChatGPT. Ein paar Arbeitskollegen unterhielten sich und es vielen so Sätze wie „ich habe ChatGPT gefragt, was es vom Thema XY hält“ oder „Man kann ChatGPT bitten Texte zu schreiben und andere ähnliche Aufgaben“. Mein erstes Interesse war geweckt. Ich dachte mir, ich schaue es mir mal an und guck wie weit wir so im Thema KIs sind.

Also los, bei ChatGPT anmelden und schon mal erste Prompts eingeben. Natürlich erstmal in Google-Style, also eher im Sinne von Suchanfrage. Huch! Die Antwort ist ja super ausführlich und man bekommt das Gefühl verstanden zu werden! Toll wir haben eine kluge Suchmaschine!

Mit langsam wachsender Begeisterung schaute ich mir erste Tutorials zum Prompt-Engineering an und entdeckte dadurch, dass es viel mehr als eine kluge Suchmaschine ist!

Also schaue ich mir noch mehr Informationen zum gesamten Thema an und stelle fest: ChatGPT ist ja nur die Spitze des Eisberges. Wahnsinn was inzwischen alles möglich ist und mit welcher Geschwindigkeit das Thema vorangetrieben wird!

Ich bin also inzwischen der Meinung: Das KI-Zeitalter hat begonnen! (hüstel… daher der Name meines Blogs)

Nach inzwischen vielen Recherchen und aufsaugen von Materialien habe ich mich dazu entschlossen diese Reise zu beginnen und diesen Blog zu starten. Ich hoffe du wirst von meiner Begeisterung von diesem Thema mitgersissen!

Was erwartet dich hier?

Hier wird es zunächst unterschiedliche Themenbereiche geben. Das kann sich mit der Zeit ändern, je nachdem wohin sich meine Interessen entwickeln.

Einmal möchte ich natürlich über neue Entwicklungen berichten. Aber was mir viel wichtiger ist, ist euch Grundlagenwissen zu teilen. Es wird also Vorstellungen von wichtigen Tools und AIs, Tutorials und theoretische Grundlagen geben.

Dabei gehen die Themen weit über ChatGPT und Bard usw. aus. Ich möchte auch und vor allem Einblicke in die schöne Welt der Community-AIs und sehr spannende Projekte wie AutoGPT geben.