KI-Müll überlastet Open-Source-Entwickler
KI ist aus unserem Leben nicht mehr wegzudenken. Ihren wahren Wert muss sie allerdings noch beweisen. Derzeit werden Open-Source-Entwickler vermehrt mit wertlosem KI-Müll überschüttet.
KI ist aus unserem Leben nicht mehr wegzudenken. Ihren wahren Wert muss sie allerdings noch beweisen. Derzeit werden Open-Source-Entwickler vermehrt mit wertlosem KI-Müll überschüttet.
Heute berichte ich über meine Nutzung großer Sprachmodelle (engl. Large Language Model, kurz LLM) und freue mich, wenn ihr eure Erfahrungen in den Kommentaren oder vielleicht sogar einem eigenen Blog mit mir teilt.
Ich konzentriere mich in diesem Text auf Beispiele, in denen mich die Nutzung von LLMs in meiner Arbeit unterstützt. Dies soll nicht darüber hinwegtäuschen, dass LLMs halluzinieren und falsche Antworten produzieren können. Auch hierzu finden sich diverse Beispiele, die den Fokus des Artikels jedoch verschieben und den Umfang sprengen würden.
Ich nutze ChatGPT und Gemini, um Bilder für Präsentationen zu generieren. Dabei hat bis jetzt ChatGPT die Nase vorn.
Zuvor habe ich Bilder entweder selbst erstellt oder Stunden mit der Suche in Datenbanken mit lizenzfreien Bildern verbracht. Dies war für mich stets eine sehr frustrierende Erfahrung. Nun kann ich beschreiben, was ich in einem Bild sehen möchte und die Künstliche Intelligenz in Form eines LLM generiert mir entsprechende Bilder. Dies bringt für mich eine große Zeitersparnis und ich habe weniger Stress.
Damit ist jetzt nicht gemeint, dass ich mir E-Mails mit mehr als fünf Sätzen zusammenfassen lasse. Aber auf der Arbeit erlebe ich es häufig, dass ich mal kurz nicht in eine Google Group geschaut habe und plötzlich eine Diskussion mit 40-70 Beiträgen darin finde. Diesen Diskussionen zu folgen war in der Vergangenheit sehr zeitaufwendig bis hinzu unmöglich. Und wir haben sehr viele Maillinglisten.
Wir haben auf der Arbeit Google Workspace und ich gebe gerne zu, dass sich damit bereits ohne KI-Unterstützung super arbeiten lässt. Die nahtlose Integration von Gemini macht es allerdings noch besser.
Wenn ich eine E-Mail Diskussion öffne, kann ich mir mit einem Klick eine Zusammenfassung erstellen lassen. Folgender Prompt hat sich bisher als nützlich erwiesen, um mir einen Überblick zu verschaffen: „Erstelle eine kurze Zusammenfassung, die den Diskussionsgegenstand wiedergibt. Führe auf, wer welche Argumente vertritt. Falls es Lösungsvorschläge und Action Items gibt, liste diese stichpunktartig auf.“
Anhand der Zusammenfassung kann ich in kurzer Zeit beurteilen, ob eine Diskussion für mich von Relevanz ist oder nicht. Auch hier ist der Vorteil durch Nutzung der KI im Allgemeinen die Zeitersparnis und im Speziellen die gute Integration in die vorhandenen Werkzeuge. Ich würde mir nicht die Mühe machen, alle Nachrichten einer langen Diskussion in einen Prompt zu kopieren, um diese dann von einem LLM analysieren zu lassen.
Ich weiß, was ich sagen möchte und drücke mich gerne direkt aus. Das kommt in der Kommunikation mit internationalen Empfängern aus anderen Kulturkreisen nicht immer gut an. Ich schätze auch hier die gute Integration von Gemini in Google Mail, wo ich es manchmal als Formulierungshilfe nutze.
Gemini bietet 3-4 Antwortvarianten an, die in einer Vorschau im Nachrichtenfenster angezeigt werden. Manche sind fernab meiner Vorstellung, andere kommen erstaunlich nah heran. So kann ich die am besten zutreffende Antwort auswählen, kürze sie etwas ein, ergänze evtl. noch 1-2 Sätze und bin fertig.
Vorteile auch hier die Zeitersparnis und die etwas höflicher bzw. runder formulierten E-Mails.
Ihr ahnt vielleicht schon, wo es jetzt hingeht. Google Gemini integriert sich auch hervorragend in Google Meet. Und so haben wir in einer internen Besprechung mit Zustimmung aller Beteiligten die Funktion ausprobiert, ein Besprechungs-Protokoll zu erstellen. Wir waren positiv überrascht.
Die Besprechung wurde auf Deutsch durchgeführt. Gemini war für diese Sprache offiziell noch als Alpha markiert, was das Ergebnis umso beeindruckender macht. Nach der Besprechung wurde ein Google Doc mit einer deutschsprachigen Zusammenfassung erstellt und im Kalender in den Termin eingefügt, so dass alle Teilnehmer es finden und darauf zugreifen können.
Ich habe das Protokoll gelesen und musste lediglich einige Schreibfehler bei Namen und englischen Fachbegriffen korrigieren. Alle Teilnehmer waren sich einig, dass die wesentlichen Punkte korrekt zusammengefasst wurden. Bei englischsprachigen Meetings, welche aufgezeichnet werden, enthält die Zusammenfassung sogar die Zeitstempel, zu denen protokollierte Aussagen gemacht wurden.
Es muss nun also kein Protokollant mehr ausgelost werden und alle Teilnehmer:innen können sich auf die Besprechung konzentrieren.
Da sich die Zusammenfassung auf das Wesentliche konzentriert, finde ich diese noch besser als ein Transkript, welches auch die belanglosen Beiträge wiedergibt und viel Redundanz enthalten kann.
Als Organisator verlasse ich mich nicht blind auf die KI. Ich lese das Protokoll zeitnah nach der Besprechung und korrigiere es ggf. Es ist bei uns auch nicht unüblich, dass Teilnehmer:innen auch im Nachgang zu einer Besprechung Ergänzungen und Korrekturen zum gemeinsamen Dokument beitragen.
Google NotebookLM bietet eine Umgebung, in der mit KI-Unterstützung Inhalte von PDFs, Google Docs & Slides sowie Webseiten verarbeitet werden können. Ich möchte die Nutzung anhand eines konkreten Beispiels erläutern.
Leider habe ich mir die konkreten Prompts und detaillierten Antworten nicht gespeichert, so dass ich meine Erfahrung aus dem Gedächtnis aufschreibe.
Ich betreibe einen Server für Laborumgebungen aus der Hetzner-Serverbörse. Zu diesem gab es eine IPv4-Adresse und ein IPv6-Subnetz. Des Weiteren hat Hetzner eine Richtlinie zur Nutzung von MAC-Adressen. In meinem Fall darf nur die MAC der physischen Netzwerkkarte auf dem Switch im Rechenzentrum erscheinen, nicht jedoch die virtuellen MACs meiner virtuellen Maschinen (VM). Möchte ich meinen Server als Hypervisor-Host verwenden und die darauf laufenden VMs im Internet erreichbar machen, benötige ich dafür ein geroutetes Netzwerk auf dem Hypervisor.
Prinzipiell weiß ich, was zu tun ist. Es gibt bei Hetzner auch eine Anleitung, wie man Debian für Proxmox entsprechend konfiguriert, die ich auf RHEL mit Network Manager adaptieren kann. Deshalb schien mir diese Aufgabe geeignet, um zu testen, wie sich ChatGPT und NotebookLM dabei schlagen.
Ich habe beide Lösungen dabei angewiesen, mit folgenden Quellen zu arbeiten:
Bei ChatGPT sind die URLs zu den Quellen in den Prompt einzugeben. Bei NotebookLM kann zu Beginn konfiguriert werden, welche Quellen im aktuellen Notebook zu verwenden sind. Diese kann man flexibel selektieren oder abwählen, um zu steuern, mit welchen Quellen die KI arbeiten soll.
Beiden Werkzeugen habe ich über den Prompt mitgeteilt, welche IPv6-Adresse ich auf der physischen Netzwerkkarte des Hosts nutzen möchte. Anschließend habe ich via Prompt eine zu RHEL 9 passende Schritt-für-Schritt-Anleitung gefordert, mit der die gewünschte Netzwerkkonfiguration umgesetzt werden kann. Die angebotenen Lösungen wurden in beiden Fällen durch weitere Prompts verfeinert.
Die von ChatGPT generierte Lösung war komplex und falsch. Aufgrund meiner eigenen Erfahrung hatte ich direkt Zweifel und glaubte nicht, dass der vorgeschlagene wilde Mix aus Bridge und Teaming mit Master- und Slave-Interface auf der Bridge funktionieren würde.
Um meine Annahme zu verifizieren, habe ich die vorgeschlagene Lösung trotzdem umgesetzt und nach der Hetzner-MAC-Abuse-Meldung wieder zurückgebaut.
Ich hatte keine Lust, ChatGPT mit dem Ergebnis zu konfrontieren und weiter mit dem Bot zu chatten, da ich wenig Hoffnung hatte, dass ich noch zu einer funktionierenden Lösung komme.
Hier hat mir die Erfahrung deutlich besser gefallen. Gemini hat auf meinen Prompt mit einer Zusammenfassung reagiert, welche Informationen über die bereitgestellten Quellen zu meinem Prompt bieten. Dabei wurden auch Referenzen mit ausgegeben, um direkt zur Quelle springen zu können. Im Anschluss gab es eine Schritt-für-Schritt-Anleitung mit Code-Beispielen. Zu jedem Code-Beispiel erfolgte dazu eine Erklärung, was man dort sieht und was die einzelnen Parameter bedeuten. Dies hat mir gut gefallen.
Die ersten zwei Anleitungen waren noch etwas ungenau, ließen sich jedoch durch weitere Prompts soweit verfeinern, dass ich sie fast 1-zu-1 übernehmen konnte.
Warum nur fast? Ich habe mir die in der Schritt-für-Schritt-Anleitung referenzierten Quellen angeschaut und mit den dortigen Informationen die Code-Beispiele weiter optimiert, so dass sie besser zu meiner Umgebung passen. Evtl. hätte Gemini dies mit besseren Prompts ebenfalls hinbekommen.
Auch diese Lösung habe ich implementiert und sie läuft bis heute. Die KI hat mich auf dem Weg zur Lösung unterstützt und ich musste nicht die vier Quellen komplett und im Detail lesen, um mir die Lösung komplett selbst zu erarbeiten. Ich bin mit dem Ergebnis sehr zufrieden.
Künstliche Intelligenz und deren Nutzung ist nicht unumstritten. Der aktuelle Energiebedarf ist enorm und es ist zu befürchten, dass dies negative Umweltauswirkungen zur Folge hat. KI-Modelle können halluzinieren, was zu Fehlern führt, wenn man die Antworten der Modelle nicht verifiziert.
Die Weigerung, KI im Beruf zu benutzen und ihre Möglichkeiten zu erkunden, führt meiner Einschätzung nach jedoch nur dazu, dass man sich selbst benachteiligt. KI mag Arbeitsplätze nicht so schnell ersetzen. Aber Menschen, die KI effizient nutzen können, werden Menschen von Stellen verdrängen, die dies nicht können. Es erscheint mir daher sinnvoll, den Einsatz von KI im Beruf und Alltag zu erkunden.
Den größten Vorteil bietet mir die KI-Nutzung aktuell dort, wo sie gut in meine Anwendungen und Werkzeuge wie z.B. Mail, Videokonferenzen und Kalender integriert ist. Der Vorteil besteht überwiegend in Zeitersparnis. Ich habe die gewünschten Informationen schneller mit weniger eigenem Aufwand in ausreichender Qualität zur Verfügung, wobei die Qualität mit geringem Aufwand durch manuelle Überarbeitung schnell gesteigert werden kann, um ein gutes Ergebnis zu erzielen.
KI-Assistenten lassen sich nutzen, um die Zeit zur Lösung zu verkürzen. Ich hätte die Dokumentationen alle selbst lesen und mir die Lösung erarbeiten können. Ich bin mir jedoch sicher, dass ich dafür deutlich mehr Zeit hätte investieren müssen.
Im Endeffekt hilft mir KI dabei, mehr Aufgaben im gleichen Zeitintervall zu erledigen.
Die Forscher verschiedener führender Institute, darunter der Shanghai Jiao Tong University oder des Institute for Advanced Algorithms Research, Shanghai, konstatieren, dass das Fehlen einer gut…
Debian strebt nach vielen Diskussionen über KI ein Budget für freie Nutzung von LLMs für Entwickler an. Dabei geht es auch um KI-generierten Code.
Ein Sprachmodell unterstützt Programmierer besser, ein anderes ist ein Mathe-Ass, ein drittes läuft beim kreativen Schreiben zur Hochform auf – jedes hat seine Stärken und Schwächen.
Das chinesische Startup MiniMax, bekannt vor allem durch seinen KI-Videogenerator Hailuo, hat nun mit MiniMax-M1 ein großes Sprachmodell unter der Apache-2-Lizenz veröffentlicht, das über ein…
Im Vorfeld seiner Entwicklerkonferenz WWDC veröffentliche Apple eine Studie unter dem Titel „The Illusion of Thinking“, die prinzipielle Zweifel an der „Denkfähigkeit“…
Themis AI, eine Ausgründung aus dem MIT, hat Software entwickelt, die es beliebigen Sprachmodellen ermöglichen soll, zu erkennen, was sie nicht wissen oder wo sie zumindest unsicher sind.
Wissenschaftler der Princeton Universität und von Google DeepMind haben nun in einem Forschungsbericht gezeigt, warum sich viele Sprachmodelle dazu bringen lassen, gefährliche Inhalte zu…
Greenly, ein französisches Unternehmen, das auf die Berechnung von CO2-Bilanzen spezialisiert ist, hat ChatGPT und DeepSeek hinsichtlich ihres ökologischen Fußabdrucks verglichen.
Forscher des MIT haben einen neuen Ansatz dafür entwickelt, großen Sprachmodellen das Lösen komplizierter Probleme zu ermöglichen.
Die neueste Version, Red Hat OpenShift AI 2.18, bringt unter anderem End-to-End Model Tuning und distributed Serving.
Ganz ohne Ankündigung und Marketing Tamtam hat DeepSeek sein neues Modell DeepSeek-V3-0324 veröffentlicht, dass auf einem einzelnen Mac Studio performant läuft und zudem unter einer MIT-Lizenz…
Das französische KI-Unternehmen Mistral AI hat ein neues Sprachmodell namens Mistral Small 3.1 vorgestellt, dass mit einem Bruchteil an Parametern (24 Milliarden) die amerikanischen Konkurrenten…
Forscher des KI-Unternehmens Anthropic haben Techniken entwickelt, mit denen sie erkennen können, wann KI-Systeme ihre tatsächlichen Ziele verschleiern.
OpenAI hat sein neuestes und bisher größtes Sprachmodell GPT-4.5 „Orion“ als Forschungsvorschau vorgestellt.
Eine neue Studie zeigt, dass LLMs Daten auf der Grundlage ihrer Bedeutung als verschiedene Typen darstellen und über sie in ihrer dominanten Sprache denken.
Die KI-Firma von Elon Musk, xAI, hat ihr neues Sprachmodell Grok 3 veröffentlicht und kündigt neue Features für die Web- und iOS-Apps von Grok an.
Europas führende KI-Unternehmen und Forschungseinrichtungen bündeln ihre Kräfte und ihr Fachwissen, um im Rahmen des Projekts OpenEuroLLM Open-Source-Sprachmodelle der nächsten Generation zu…
Ein kürzlich veröffentlichter neuer Benchmark unter dem Titel "Humanity's Last Exam" lässt alle heutigen Sprachmodelle verzweifeln.
Mit Alibaba hat ein weiterer chinesischer Hersteller ein großes Sprachmodell vorgestellt, das mit allen führenden Modellen (einschließlich DeepSeek) auf Augenhöhe operiert oder sie in Benchmarks…
Metas Vice President of generative AI, Ahmad Al-Dahle, hat auf X die Verfügbarkeit des neuen Sprachmodells Llama 3.3 bekanntgegeben.
Meta will mit dem freien Large Language Model Meta Llama 3.1 405B eine neue Ära einläuten, in der Open Source den Weg vorgibt und nicht länger in Bezug auf Leistung und Fähigkeiten hinter den…
Dies ist die Fortsetzung von „Mit InstructLab zu Large Language Models beitragen“. Hier beschreibe ich, wie es nach dem Training weitergeht.
Das Training auf einer virtuellen Maschine mit Fedora 40 Server, 10 CPU-Threads und 32 GB RAM dauerte 180 Std. 44 Min. 7 Sek. Ich halte an dieser Stelle fest, ohne GPU-Beschleunigung fehlt es mir persönlich an Geduld. So macht das Training keinen Spaß.
Nach dem Training mit ilab train
findet man ein brandneues LLM auf dem eigenen System:
(venv) tronde@instructlab:~/src/instructlab$ ls -ltrh models
total 18G
-rw-r--r--. 1 tronde tronde 4.1G May 28 20:34 merlinite-7b-lab-Q4_K_M.gguf
-rw-r--r--. 1 tronde tronde 14G Jun 6 12:07 ggml-model-f16.gguf
Den Chat mit dem LLM starte ich mit dem Befehl ilab chat -m models/ggml-model-f16.gguf
. Das folgende Bild zeigt zwei Chats mit jeweils unterschiedlichem Ergebnis:
Schade, das hat nicht so funktioniert, wie ich mir das vorgestellt habe. Es kommt weiterhin zu KI-Halluzinationen und nur gelegentlich gesteht das LLM seine Unkenntnis bzw. seine Unsicherheit ein.
Für mich sind damit 180 Stunden Rechenzeit verschwendet. Ich werde bis auf Weiteres keine Trainings ohne Beschleuniger-Karten mehr durchführen. Jedoch werde ich mir von Zeit zu Zeit aktualisierte Releases der verfügbaren Modelle herunterladen und diesen Fragen stellen, deren Antworten ich bereits kenne.
Wenn sich mir die Gelegenheit bietet, diesen Versuch auf einem Rechner mit entsprechender GPU-Hardware zu wiederholen, werde ich die Erkenntnisse hier im Blog teilen.
Dies ist mein Erfahrungsbericht zu den ersten Schritten mit InstructLab. Ich gehe darauf ein, warum ich mich über die Existenz dieses Open Source-Projekts freue, was ich damit mache und was ich mir von Large Language Models (kurz: LLMs, zu Deutsch: große Sprachmodelle) erhoffe. Der Text enthält Links zu tiefergehenden Informationen, die euch mit Hintergrundwissen versorgen und einen Einstieg in das Thema ermöglichen.
Dieser Text ist keine Schritt-für-Schritt-Anleitung für:
Die Begriffe Künstliche Intelligenz (KI) oder englisch artificial intelligence (AI) werden in diesem Text synonym verwendet und zumeist einheitlich durch KI abgekürzt.
Beim Bezug auf große Sprachmodelle bediene ich mich der englischen Abkürzung LLM oder bezeichne diese als KI-ChatBot bzw. nur ChatBot.
InstructLab ist ein von IBM und Red Hat ins Leben gerufenes Open Source-Projekt, mit dem die Gemeinschaft zur Verbesserung von LLMs beitragen kann. Jeder
der kann nun teilhaben und ausgewählte LLMs lokal auf seinem Endgerät ausführen, testen und verbessern. Für eine ausführliche Beschreibung siehe:
Informationen zu Open Source LLMs und Basismodellen für InstructLab bieten diese Links:
Gegenüber KI-Produkten im Allgemeinen und KI-ChatBots im Speziellen bin ich stets kritisch, was nicht bedeutet, dass ich diese Technologien und auf ihnen basierende Produkte und Services ablehne. Ich versuche mir lediglich eine gesunde Skepsis zu bewahren.
Was Spielereien mit ChatBots betrifft, bin ich sicherlich spät dran. Ich habe schlicht keine Lust, mich irgendwo zu registrieren und unnötig Informationen über mich preiszugeben, nur um anschließend mit einer Büchse chatten und ihr Fragen stellen zu können, um den Wahrheitsgehalt der Antworten anschließend noch verifizieren zu müssen.
Mittlerweile gibt es LLMs, welche ohne spezielle Hardware auch lokal ausgeführt werden können. Diese sprechen meine Neugier und meinen Spieltrieb schon eher an, weswegen ich mich nun doch mit einem ChatBot unterhalten möchte.
Für meine ersten Versuche nutze ich mein Lenovo ThinkPad T14s (AMD) in der Ausstattung von 2021. Aktuell installiert ist Fedora 40 Workstation, welches zu den getesteten Betriebssystemen von InstructLab zählt.
Für die Einrichtung halte ich mich an den Getting Started Guide. Es sind folgende Befehle auszuführen, bis das erste LLM gestartet werden kann:
sudo dnf install gcc-c++ gcc make pip python3 python3-devel python3-GitPython
mkdir instructlab
cd instructlab
python3 -m venv --upgrade-deps venv
source venv/bin/activate
pip cache remove llama_cpp_python
pip install git+https://github.com/instructlab/instructlab.git@stable --extra-index-url=https://download.pytorch.org/whl/cpu
eval "$(_ILAB_COMPLETE=bash_source ilab)"
ilab init
ilab download
ilab serve
Der lokale LLM-Server wird mit dem Befehl ilab serve
gestartet. Mit dem Befehl ilab chat
wird die Unterhaltung mit dem Modell eingeleitet.
Im folgenden Video sende ich zwei Anweisungen an das LLM merlinite-7b-lab-Q4_K_M
. Den Chatverlauf seht ihr in der rechten Bildhälfte. In der linken Bildhälfte seht ihr die Ressourcenauslastung meines Laptops.
merlinite-7b-lab-Q4_K_M
Wie ihr seht, sind die Antwortzeiten des LLM auf meinem Laptop nicht gerade schnell, aber auch nicht so langsam, dass ich währenddessen einschlafe oder das Interesse an der Antwort verliere. An der CPU-Auslastung im Cockpit auf der linken Seite lässt sich erkennen, dass das LLM durchaus Leistung abruft und die CPU fordert.
Exkurs: Die Studie Energieverbrauch Index-basierter und KI-basierter Websuchmaschinen gibt einen interessanten Einblick in den Ressourcenverbrauch. Leider war ich nicht in der Lage, diese Studie als PDF aufzutreiben.
Mit den Antworten des LLM bin ich zufrieden. Sie decken sich mit meiner Erinnerung und ein kurzer Blick auf die Seite https://www.json.org/json-de.html bestätigt, dass die Aussagen des LLM korrekt sind.
Anmerkung: Der direkte Aufruf der Seite https://json.org, der mich mittels Redirect zu obiger URL führte, hat sicher deutlich weniger Energie verbraucht als das LLM oder eine Suchanfrage in irgendeiner Suchmaschine. Ich merke dies nur an, da ich den Eindruck habe, dass es aus der Mode zu geraten scheint, URLs einfach direkt in die Adresszeile eines Webbrowsers einzugeben, statt den Seitennamen in eine Suchmaske zu tippen.
Ich halte an dieser Stelle fest, der erste kleine Test wird zufriedenstellend absolviert.
Da ich einige Zeit im Hochschulrechenzentrum der Universität Bielefeld gearbeitet habe, interessiert mich, was das LLM über meine ehemalige Dienststelle weiß. Im nächsten Video frage ich, wer der Kanzler der Universität Bielefeld ist.
Da ich bis März 2023 selbst an der Universität Bielefeld beschäftigt war, kann ich mit hinreichender Sicherheit sagen, dass diese Antwort falsch ist und das Amt des Kanzlers nicht von Prof. Dr. Karin Vollmerd bekleidet wird. Im Personen- und Einrichtungsverzeichnis (PEVZ) findet sich für Prof. Dr. Vollmerd keinerlei Eintrag. Für den aktuellen Kanzler Dr. Stephan Becker hingegen schon.
Da eine kurze Recherche in der Suchmaschine meines geringsten Misstrauens keine Treffer zu Frau Vollmerd brachte, bezweifle ich, dass diese Person überhaupt existiert. Es kann allerdings auch in meinen unzureichenden Fähigkeiten der Internetsuche begründet liegen.
Bei der vorliegenden Antwort handelt es sich um eine Halluzination der Künstlichen Intelligenz.
Im Bereich der Künstlichen Intelligenz (KI) ist eine Halluzination (alternativ auch Konfabulation genannt) ein überzeugend formuliertes Resultat einer KI, das nicht durch Trainingsdaten gerechtfertigt zu sein scheint und objektiv falsch sein kann.
Solche Phänomene werden in Analogie zum Phänomen der Halluzination in der menschlichen Psychologie als von Chatbots erzeugte KI-Halluzinationen bezeichnet. Ein wichtiger Unterschied ist, dass menschliche Halluzinationen meist auf falschen Wahrnehmungen der menschlichen Sinne beruhen, während eine KI-Halluzination ungerechtfertigte Resultate als Text oder Bild erzeugt. Prabhakar Raghavan, Leiter von Google Search, beschrieb Halluzinationen von Chatbots als überzeugend formulierte, aber weitgehend erfundene Resultate.
Quelle: https://de.wikipedia.org/wiki/Halluzination_(K%C3%BCnstliche_Intelligenz)
Oder wie ich es umschreiben möchte: „Der KI-ChatBot demonstriert sichereres Auftreten bei völliger Ahnungslosigkeit.“
Wenn ihr selbst schon mit ChatBots experimentiert habt, werdet ihr sicher selbst schon auf Halluzinationen gestoßen sein. Wenn ihr mögt, teilt doch eure Erfahrungen, besonders jene, die euch fast aufs Glatteis geführt haben, in den Kommentaren mit uns.
Welche Auswirkungen überzeugend vorgetragene Falschmeldungen auf Nutzer haben, welche nicht über das Wissen verfügen, diese Halluzinationen sofort als solche zu entlarven, möchte ich für den Moment eurer Fantasie überlassen.
Ich denke an Fahrplanauskünfte, medizinische Diagnosen, Rezepturen, Risikoeinschätzungen, etc. und bin plötzlich doch ganz froh, dass sich die EU-Staaten auf ein erstes KI-Gesetz einigen konnten, um KI zu regulieren. Es wird sicher nicht das letzte sein.
Um das Beispiel noch etwas auszuführen, frage ich das LLM erneut nach dem Kanzler der Universität und weise es auf seine Falschaussagen hin. Der Chatverlauf ist in diesem Video zu sehen:
Die Antworten des LLM enthalten folgende Fehler:
Der Chatverlauf erweckt den Eindruck, dass der ChatBot sich zu rechtfertigen versucht und nach Erklärungen und Ausflüchten sucht. Hier wird nach meinem Eindruck menschliches Verhalten nachgeahmt. Dabei sollten wir Dinge nicht vermenschlichen. Denn unser Chatpartner ist kein Mensch. Er ist eine leblose Blechbüchse. Das LLM belügt uns auch nicht in böser Absicht, es ist schlicht nicht in der Lage, uns eine korrekte Antwort zu liefern, da ihm dazu das nötige Wissen bzw. der notwendige Datensatz fehlt. Daher versuche ich im nächsten Schritt, dem LLM mit InstructLab das notwendige Wissen zu vermitteln.
Das README.md
im Repository instructlab/taxonomy
enthält die Beschreibung, wie man dem LLM Wissen (englisch: knowledge) hinzufügt. Weitere Hinweise finden sich in folgenden Dateien:
Diese Dateien befinden sich auch in dem lokalen Repository unterhalb von ~/instructlab/taxonomy/
. Ich hangel mich an den Leitfäden entlang, um zu sehen, wie weit ich damit komme.
Die Überschrift ist natürlich maßlos übertrieben. Ich stelle lediglich existierende Informationen in erwarteten Dateiformaten bereit, um das LLM damit trainieren zu können.
Da aktuell nur Wissensbeiträge von Wikipedia-Artikeln akzeptiert werden, gehe ich wie folgt vor:
README.md
, ohne .gitignore
und LICENCE
unibi.md
hinzumkdir -p university/germany/bielefeld_university
qna.yaml
und eine attribution.txt
Dateiilab diff
aus, um die Daten zu validierenDer folgende Code-Block zeigt den Inhalt der Dateien qna.yaml
und eine attribution.txt
sowie die Ausgabe des Kommandos ilab diff
:
(venv) [tronde@t14s instructlab]$ cat /home/tronde/src/instructlab/taxonomy/knowledge/university/germany/bielefeld_university/qna.yaml
version: 2
task_description: 'Teach the model the who facts about Bielefeld University'
created_by: tronde
domain: university
seed_examples:
- question: Who is the chancellor of Bielefeld Universtiy?
answer: Dr. Stephan Becker is the chancellor of the Bielefeld University.
- question: When was the University founded?
answer: |
The Bielefeld Universtiy was founded in 1969.
- question: How many students study at Bielefeld University?
answer: |
In 2017 there were 24,255 students encrolled at Bielefeld Universtity?
- question: Do you know something about the Administrative staff?
answer: |
Yes, in 2017 the number for Administrative saff was published as 1,100.
- question: What is the number for Academic staff?
answer: |
In 2017 the number for Academic staff was 1,387.
document:
repo: https://github.com/Tronde/instructlab_knowledge_contributions_unibi.git
commit: c2d9117
patterns:
- unibi.md
(venv) [tronde@t14s instructlab]$
(venv) [tronde@t14s instructlab]$
(venv) [tronde@t14s instructlab]$ cat /home/tronde/src/instructlab/taxonomy/knowledge/university/germany/bielefeld_university/attribution.txt
Title of work: Bielefeld University
Link to work: https://en.wikipedia.org/wiki/Bielefeld_University
License of the work: CC-BY-SA-4.0
Creator names: Wikipedia Authors
(venv) [tronde@t14s instructlab]$
(venv) [tronde@t14s instructlab]$
(venv) [tronde@t14s instructlab]$ ilab diff
knowledge/university/germany/bielefeld_university/qna.yaml
Taxonomy in /taxonomy/ is valid :)
(venv) [tronde@t14s instructlab]$
Aus der im vorherigen Abschnitt erstellten Taxonomie generiere ich im nächsten Schritt synthetische Daten, welche in einem folgenden Schritt für das Training des LLM genutzt werden.
Dazu wird der Befehl ilab generate
aufgerufen, während sich das LLM noch in Ausführung befindet. Dieser endet bei mir erfolgreich mit folgendem Ergebnis:
(venv) [tronde@t14s instructlab]$ ilab generate
[…]
INFO 2024-05-28 12:46:34,249 generate_data.py:565 101 instructions generated, 62 discarded due to format (see generated/discarded_merlinite-7b-lab-Q4_K_M_2024-05-28T09_12_33.log), 4 discarded due to rouge score
INFO 2024-05-28 12:46:34,249 generate_data.py:569 Generation took 12841.62s
(venv) [tronde@t14s instructlab]$ ls generated/
discarded_merlinite-7b-lab-Q4_K_M_2024-05-28T09_12_33.log
generated_merlinite-7b-lab-Q4_K_M_2024-05-28T09_12_33.json
test_merlinite-7b-lab-Q4_K_M_2024-05-28T09_12_33.jsonl
train_merlinite-7b-lab-Q4_K_M_2024-05-28T09_12_33.jsonl
Zur Laufzeit werden alle CPU-Threads voll ausgelastet. Auf meinem Laptop dauerte dieser Vorgang knapp 4 Stunden.
Jetzt wird es Zeit, das LLM mit den synthetischen Daten anzulernen bzw. zu trainieren. Dieser Vorgang wird mehrere Stunden in Anspruch nehmen und ich verplane mein Laptop in dieser Zeit für keine weiteren Arbeiten.
Um möglichst viele Ressourcen freizugeben, beende ich das LLM (ilab serve
und ilab chat
). Das Training beginnt mit dem Befehl ilab train
… und dauert wirklich lange.
Nach 2 von 101 Durchläufen wird die geschätzte Restlaufzeit mit 183 Stunden angegeben. Das Ergebnis spare ich mir dann wohl für einen Folgeartikel auf und gehe zum Fazit über.
Mit dem InstructLab Getting Started Guide gelingt es in kurzer Zeit, das Projekt auf einem lokalen Linux-Rechner einzurichten, ein LLM auszuführen und mit diesem zu chatten.
KI-Halluzinationen stellen in meinen Augen ein Problem dar. Da LLMs überzeugend argumentieren, kann es Nutzern schwerfallen oder gar misslingen, die Falschaussagen als solche zu erkennen. Im schlimmsten Fall lernen Nutzer somit dummen Unfug und verbreiten diesen ggf. weiter. Dies ist allerdings kein Problem bzw. Fehler des InstructLab-Projekts, da alle LLMs in unterschiedlicher Ausprägung von KI-Halluzinationen betroffen sind.
Wie Knowledge und Skills hinzugefügt werden können, musste ich mir aus drei Guides anlesen. Dies ist kein Problem, doch kann der Leitfaden evtl. noch etwas verbessert werden.
Knowledge Contributions werden aktuell nur nach vorheriger Genehmigung und nur von Wikipedia-Quellen akzeptiert. Der Grund wird nicht klar kommuniziert, doch ich vermute, dass dies etwas mit geistigem Eigentum und Lizenzen zu tun hat. Wikipedia-Artikel stehen unter einer Creative Commons Attribution-ShareAlike 4.0 International License und können daher unkompliziert als Quelle verwendet werden. Da sich das Projekt in einem frühen Stadium befindet, kann ich diese Limitierung nachvollziehen. Ich wünsche mir, dass grundsätzlich auch Primärquellen wie Herstellerwebseiten und Publikationen zugelassen werden, wenn Rechteinhaber dies autorisieren.
Der von mir herangezogene Wikipedia-Artikel ist leider nicht ganz aktuell. Nutze ich ihn als Quelle für das Training eines LLM, bringe ich dem LLM damit veraltetes und nicht mehr gültiges Wissen bei. Das ist für meinen ersten Test unerheblich, für Beiträge zum Projekt jedoch nicht sinnvoll.
Die Generierung synthetischer Daten dauert auf Alltagshardware schon entsprechend lange, das anschließende Training jedoch nochmals bedeutend länger. Dies ist meiner Ansicht nach nichts, was man nebenbei auf seinem Laptop ausführt. Daher habe ich den Test auf meinem Laptop abgebrochen und lasse das Training aktuell auf einem Fedora 40 Server mit 32 GB RAM und 10 CPU-Kernen ausführen. Über das Ergebnis und einen Test des verbesserten Modells werde ich in einem folgenden Artikel berichten.
Was ist mit euch? Kennt ihr das Projekt InstructLab und habt evtl. schon damit gearbeitet? Wie sind eure Erfahrungen?
Arbeitet ihr mit LLMs? Wenn ja, nutzt ihr diese nur oder trainiert ihr sie auch? Was nutzt ihr für Hardware?
Ich freue mich, wenn ihr eure Erfahrungen hier mit uns teilt.