en

localGPT

Ich denke jeder hat nun schon mal von OpenAI's ChatGPT gehört. Man stellt ChatGPT in formlosem Text Fragen und bekommt die Antworten in Text. Z.B. kann man ChatGPT bitten die Zusammenfassung eines Textes zu erstellen. OpenAI betreibt ChatGPT als proprietären Service. Wenn man ChatGPT verwenden will, muss man somit die Anfragen an OpenAI senden.

Beim Verarbeiten von Texten von Dritten braucht man daher die Zustimmung, dass der Text an OpenAI zum Zwecke der Verarbeitung mit ChatGPT gehen darf. Ich werde wohl nie einen sinnvollen Text produzieren. Ich würde aber auf die Frage der Weitergabe wohl mit 'Nein' antworten.

Dieses Dilemma lässt sich lösen indem man statt ChatGPT ein Open Source LLM lokal auf dem eigenen PC verwendet. Man braucht also ein vortrainiertes LLM und eine Software die dieses LLM dann verarbeiten kann.

Was GitHub für Source-Code ist, ist Hugging Face für vortrainierte Modelle. Dort findet man z.B. das Llama-2-7b-Chat-GGUF Modell. LLaMA-2 ist der Name der Designs, welches zum Aufbau des Modells verwendet wurde. 7b deutet auf die 7 Milliarden Parameter hin die Trainiert wurden. Es wird auch ein Modell mit 70 Milliarden Parametern zum Download angeboten. Jedoch passen 7 Milliarden besser in der Arbeitsspeicher, falls man auch noch parallel andere Programme ausführen möchte. Laut eigenen Angaben wurden für das Training des 7 Milliarden Parameter Modells rein rechnerisch 31 Tonnen CO2 produziert. Ohje…

Die Software zur Arbeit mit dem LLaMA Modell ist localGPT. localGPT sind ein paar Python-Skripte die zuerst eine lokale Sammlung an Dokumenten aufnehmen. Dabei kann man einfache Textdokumente, PDFs oder auch CSVs übergeben. Nach der Aufnahme der Dokumente startet ein zweites Python-Skript einen Prompt für Fragen an die Dokumente. Beide Schritte lassen sich innerhalb eines Podman-Containers ausführen. So müllt man sich die Umgebung nicht mit diversen apt und pip Paketen zu. Da ich bisher meine Grafikkarte nicht an den Podman-Container durchreichen kann findet die Verarbeitung des Modells auf der CPU und nicht mit Cuda auf der GPU statt.

Nun kommt der Moment der Wahrheit. Ich habe in meinem virtuellen Bücherregal nach einem Klassiker gesucht und ihn in das PDF-Format umgewandelt. Und zwar Uncle Bob's Clean Code. Ein streitbares Buch. Jedoch erfüllt es meine wichtigste Anforderung. Es ist ein langer Text in englischer Sprache. Nun die Interaktion mit localGPT:

> Question:
when should i use classes?

> Answer:
    Based on the provided context, it seems that you are asking about
    when to use classes in software development. The author of the text
    is emphasizing the importance of using small classes in contrast to
    large, multipurpose classes.

OMG… es wurde tatsächlich eine gewissermaßen nachvollziehbare Antwort produziert. Zwischen "Question" und "Answer" lag ca. eine Minute. Wie gesagt nutze ich die GPU noch nicht. Ich habe die Antwort etwas gekürzt. Es folgten noch die Kernpunkte für den Einsatz von Klassen: Kleine Klassen sind besser als große, jede Klasse soll nur eine Aufgabe haben, ….

Nun zum Abschluss noch eine Frage an localGPT für die ich keine Dokumente vorgelegt habe:

> Question:
list three typical bavarian dishes

> Answer:
    Based on the provided context, I can suggest three typical Bavarian
    dishes that you might enjoy:
    1. Bratwurst: This is a classic Bavarian dish made from a sausage
    filled with a mixture of pork and veal, seasoned with salt, pepper,
    and nutmeg. It's typically served with a side of sauerkraut or
    potatoes, and often accompanied by a pint of beer.
    2. Weisswurst: Another popular Bavarian dish, Weisswurst is a white
    sausage made from veal and pork, flavored with salt, pepper, and
    nutmeg. It's usually served with a side of potatoes or sauerkraut,
    and washed down with a stein of beer.
    3. Leberkase: This is a traditional Bavarian meatloaf made from
    ground beef and pork, mixed with onions, eggs, and spices. It's
    often served with a side of potatoes or vegetables, and is a hearty
    and satisfying meal.

Wieder was neues gelernt: Weißwurst wird mit nem Krug Bier runtergewaschen… vermutlich weils dazu Kartoffeln gab. Guten Appetit!

Feedback

Falls der Artikel interessant war oder etwas unklar ist freue ich mich über Fragen per e-Mail an markus.peroebner@gmail.com.