Forum: Offtopic selbst gehostete KI - kann die lernen?


von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

In letzter Zeit häufen sich im Web Beiträge und Anleitungen, wie man 
"Sprachassistenten" (landläufig als KI bezeichnet) selber lokal hosten 
kann, wahlweise auf Windows, MacOS oder Linux.

Was in den ganzen Beiträgen aber nie erwähnt oder erklärt wird, ist die 
Frage, ob das "Ding", wenn es denn einmal läuft, seine Wissensbasis 
selbstständig erweitern kann. Kann man es dazu bringen, z.B. sich lokal 
vorhandene Dokumente, Texte, Bücher, Datenbank-Inhalte "einzuverleiben" 
und die enthaltenen Fakten fortan in seinen Antworten zu 
berücksichtigen?

von Rene K. (xdraconix)


Lesenswert?

Welche wären das denn?! Die die ich so kenne bassieren alle darauf, das 
man ein Konto bei "großen" hat und die Dienste im Endeffekt dennoch über 
deren Server laufen.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Rene K. schrieb:
> Welche wären das denn?! Die die ich so kenne bassieren alle
> darauf, das
> man ein Konto bei "großen" hat und die Dienste im Endeffekt dennoch über
> deren Server laufen.

Da gibst seit kurzem so einige, nennt sich z.B. "PrivateGPT", oder 
"GPTforAll". Bei Heise war jüngst ein Artikel dazu:

https://www.heise.de/news/GPT4All-ausprobiert-Das-eigene-ChatGPT-ohne-Internetverbindung-9163132.html

und hier ein Video:

https://www.youtube.com/watch?v=_jGiKh4VBS4&t=3s

Allerdings können die bisher nur Englisch und auch nicht sprechen, nur 
Text.

Inzwischen schiessen die Varianten und Forks wie Pilze aus dem Boden.

Zm Thema: Ich habe mal ChatGPT danach befragt. Der/Die/Das meinte, das 
mitgelieferte Sprachmodell sei die Wissensbasis und man könne es nicht 
(selbst) erweitern. Die Entwickler schrecken wohl davor zurück, diese 
Möglichkeit quasi jedem zu geben (obwohl technisch kein Problem), weil 
sich die KI daraufhin "problematisch" entwicklen könnte ...

: Bearbeitet durch User
von Markus K. (markus-)


Lesenswert?

Frank E. schrieb:

> Was in den ganzen Beiträgen aber nie erwähnt oder erklärt wird, ist die
> Frage, ob das "Ding", wenn es denn einmal läuft, seine Wissensbasis
> selbstständig erweitern kann.

Typischerweise haben die Netze eine Lernphase (Training) und eine 
Benutzungsphase (Inference). Sie lernen im Gegensatz zum Menschen nicht 
ständig dazu.

von Markus K. (markus-)


Lesenswert?

Frank E. schrieb:
> Die Entwickler schrecken wohl davor zurück, diese
> Möglichkeit quasi jedem zu geben (obwohl technisch kein Problem), weil
> sich die KI daraufhin "problematisch" entwicklen könnte ...

Zum einen braucht man fürs Training eher mehr Leistung/RAM als für das 
Ausführen und zum anderen muss man ein bisschen darauf achten, dass die 
Daten ausgewogen sind. Wenn sie das nicht sind, dann wird die Leistung 
des Netzes schlechter.

von Teo D. (teoderix)


Lesenswert?

Frank E. schrieb:
> Kann man es dazu bringen, z.B. sich lokal
> vorhandene Dokumente, Texte, Bücher, Datenbank-Inhalte "einzuverleiben"
> und die enthaltenen Fakten fortan in seinen Antworten zu
> berücksichtigen?

Microsoft nachmachen, die setzen grad eine Lernfähige KI auf:
https://gagadget.com/de/224676-microsoft-entwickelt-chatgpt-supercomputer-fur-hunderte-von-millionen-dollar/

Daher....
Markus K. schrieb:
> Typischerweise haben die Netze eine Lernphase (Training) und eine
> Benutzungsphase (Inference). Sie lernen im Gegensatz zum Menschen nicht
> ständig dazu.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Wenn die KI dann alle Anträge erstellt, das wäre schön was. Auch die 
Übersicht über die eigenen Daten käme zurück.

Nie mehr Chaos 😜

Steuererklärung, mach mal. Aber morgen früh auf dem Tisch!

von Ein T. (ein_typ)


Lesenswert?

Frank E. schrieb:
> Was in den ganzen Beiträgen aber nie erwähnt oder erklärt wird, ist die
> Frage, ob das "Ding", wenn es denn einmal läuft, seine Wissensbasis
> selbstständig erweitern kann. Kann man es dazu bringen, z.B. sich lokal
> vorhandene Dokumente, Texte, Bücher, Datenbank-Inhalte "einzuverleiben"
> und die enthaltenen Fakten fortan in seinen Antworten zu
> berücksichtigen?

Ja, natürlich. Du mußt Deine "Dokumente, Texte, Bücher, 
Datenbank-Inhalte" dazu zunächst in ein Format wandeln, die Dein 
KI-Modell "verstehen" kann, dazu gibt es verschiedene Verfahren für 
unterschiedliche Formate. Danach wird Dein Datensatz üblicherweise in 
einen Trainings- und Testdatensatz aufgesplittet, zudem häufig auch noch 
einen für die Validierung. Um Dich einzulesen, findest Du beim 
Tensorflow-Projekt ein Tutorial zur Erzeugung von Shakespeare-Texten: 
[1], das mit Gated Recurrent Units (GRU), mithin einem Rekurrenten 
Neuronalen Netzwerk (RNN) arbeitet.

Danach trainierst Du Dein Modell mit Deinem Trainingsdatensatz, meistens 
über mehrere Epochen und mit verschiedenen Hyperparametern, und 
überprüfst das trainierte Modell mit Deinem Testdatensatz. Diese 
Schritte werden so lange wiederholt, bis Du ein möglichst gutes Ergebnis 
erreichst -- wobei "gut" in diesem Zusammenhang in der Regel ein 
Kompromiß aus der Güte der Testergebnisse und der Laufzeit von Training 
und / oder Vorhersage ist.

Du kannst für einige Teile des Prozesses auch bereits vortrainierte 
Modelle herunterladen und sie entweder unverändert nutzen, oder nochmals 
mit Deinen eigenen Daten "nachtrainieren". Hier bietet insbesondere das 
Huggingface-Projekt [2] viele vortrainierte Modelle an. Das Projekt 
Spacy [3] bietet Sprachmodelle und Embeddings für das Natural Language 
Processing an.

Hier bei Mikrocontroller.net hat ein User ein Projekt zur Übersetzung 
von deutscher in bairische Sprache [4] vorgestellt. Das Projekt ist zwar 
noch nicht fertig, seine Dokumentation aber schon sehr lesenswert.

Um brauchbare Ergebnisse zu erhalten, brauchst Du allerdings viele 
Daten, viel Rechenleistung (besonders gerne auch mit einer aktuellen 
Grafikkarte von NVidia), und viel Zeit... das wirst Du schon bemerken, 
wenn Du nur das winzige Modell aus [1] ausprobierst. Dennoch: viel Spaß 
und Erfolg!


[1] https://www.tensorflow.org/text/tutorials/text_generation
[2] https://huggingface.co/
[3] https://spacy.io/
[4] Beitrag "TensorFlow GPU aktivieren in Windows"

von Xanthippos (xanthippos)


Lesenswert?

> und die enthaltenen Fakten fortan in seinen Antworten zu
> berücksichtigen?

Dazu muss ein GPT zunächst mal überhaupt Fakten berücksichtigen.

Die Wolfram Alpha Entwickler arbeiten daran. Benutzen das ChatGPT als 
Frontend für ihr System.
https://www.youtube.com/watch?v=FvNjxiOK8OQ

Wahrscheinlich musst du warten, bis die Euphorie verflogen ist. Bis alle 
Leute zu der Einschätzung kommen, ein GPT plappert nur Unfug daher. Erst 
danach werden Systeme entwickelt, die sich auf Ein-Ausgabe beschränken 
und eine verlässliche Datenbasis benutzen.

> Ja, natürlich. Du mußt Deine "Dokumente, Texte, Bücher,
> Datenbank-Inhalte" dazu zunächst in ein Format wandeln, die Dein
> KI-Modell "verstehen" kann

Warum? Das Konzept hinter Wolfram Alpha funktioniert doch einwandfrei. 
Das einzige Problem - du musst erst mal Mathematik studieren, damit du 
die Frage formulieren kannst.

von Markus K. (markus-)


Lesenswert?

Ein T. schrieb:
> Danach wird Dein Datensatz üblicherweise in
> einen Trainings- und Testdatensatz aufgesplittet, zudem häufig auch noch
> einen für die Validierung.

Ja, so macht man das typischerweise, aber für einen Assistenten ist das 
doch extrem unpraktisch. Man würde ja eher z.B. in der Nacht einen Scan 
auf neue Dokumente und dann ein automatisches Nachtraining wollen. Man 
braucht aber im Prinzip für neue Trainingsdaten auch neue Testdaten. Bei 
so einem Assistenten also neue Fragen, die sich auf die neuen 
Textdokumente beziehen. Ich kann mir gerade nicht vorstellen, wie man 
sowas automatisieren könnte. Man will ja nicht jeden Tag das System 
manuell updaten.

von Ein T. (ein_typ)


Lesenswert?

Markus K. schrieb:
> Ja, so macht man das typischerweise, aber für einen Assistenten ist das
> doch extrem unpraktisch. Man würde ja eher z.B. in der Nacht einen Scan
> auf neue Dokumente und dann ein automatisches Nachtraining wollen.

Oder, je nach Modell, ein Neutraining. Manche Modelle können nach dem 
Ende der Trainingsphase nicht mehr trainiert werden, bei RNN-Modellen 
wie LSTMs oder GRUs soll das aber möglich sein.

> Man
> braucht aber im Prinzip für neue Trainingsdaten auch neue Testdaten.

Das sehe ich jetzt nicht, aber das ist ja easy, denn das Splitting der 
Daten erfolgt ja ohnehin zufallsbasiert.

> Bei
> so einem Assistenten also neue Fragen, die sich auf die neuen
> Textdokumente beziehen. Ich kann mir gerade nicht vorstellen, wie man
> sowas automatisieren könnte. Man will ja nicht jeden Tag das System
> manuell updaten.

Ich verstehe nicht ganz, wo siehst Du denn da eine Schwierigkeit?

von Markus K. (markus-)


Lesenswert?

Ein T. schrieb:
> Markus K. schrieb:
>> Ja, so macht man das typischerweise, aber für einen Assistenten ist das
>> doch extrem unpraktisch. Man würde ja eher z.B. in der Nacht einen Scan
>> auf neue Dokumente und dann ein automatisches Nachtraining wollen.
>
> Oder, je nach Modell, ein Neutraining.
Stimmt. ich bin einfach davon ausgegangen, dass man ein vortrainiertes 
Netz nimmt, aber das muss natürlich nicht so sein.

>> Man
>> braucht aber im Prinzip für neue Trainingsdaten auch neue Testdaten.
>
> Das sehe ich jetzt nicht, aber das ist ja easy, denn das Splitting der
> Daten erfolgt ja ohnehin zufallsbasiert.

Ich kenn das so: Man hat gelabelte Daten, die man teilweise fürs 
Training und teilweise für den Test benutzt. Wenn das automatisch laufen 
soll, dann gibts keine weiteren Labels.

Ich hatte allerdings noch nie mit unsupervised learning zu tun. Ist das 
da anders?

von Ein T. (ein_typ)


Lesenswert?

Markus K. schrieb:
> Ein T. schrieb:
>> Markus K. schrieb:
>>> Ja, so macht man das typischerweise, aber für einen Assistenten ist das
>>> doch extrem unpraktisch. Man würde ja eher z.B. in der Nacht einen Scan
>>> auf neue Dokumente und dann ein automatisches Nachtraining wollen.
>>
>> Oder, je nach Modell, ein Neutraining.
> Stimmt. ich bin einfach davon ausgegangen, dass man ein vortrainiertes
> Netz nimmt, aber das muss natürlich nicht so sein.

Vortrainierte Netze für NLP sind ja meistens Transformermodelle, die man 
dann in der Regel aber noch nachtrainieren kann.

> Ich kenn das so: Man hat gelabelte Daten, die man teilweise fürs
> Training und teilweise für den Test benutzt. Wenn das automatisch laufen
> soll, dann gibts keine weiteren Labels.

Ist halt die Frage, was für eine Aufgabe zu hast. Bei NLP-Modellen sind 
RNNs und Transformermodelle heute state-of-the-art, da brauchst Du keine 
gelabelten Daten, quasi weil die Reihenfolge der Token das Target sind.

> Ich hatte allerdings noch nie mit unsupervised learning zu tun. Ist das
> da anders?

Ja, deswegen "unsupervised". Dabei gibt es keine Labels, sondern es geht 
darum, Cluster von ähnlichen Datenpunkten zu finden. Labels brauchst Du, 
wenn Du eine kategorische Vorhersage machen möchtest, also: ist dieser 
Beitrag Spam oder Ham, oder: welche Abteilung soll diese E-Mail 
erhalten? Für solche Fragen muß das Modell natürlich lernen, welche 
Beiträge oder E-Mails wie zu klassifizieren sind, es braucht Labels.

In diesem Thread hier geht es aber streng genommen nicht um Unsupervised 
Learning, aber für einen Sprachassistenten wie ChatGPT braucht es auch 
keine Labels -- oder, anders gesagt: die Labels sind bereits in unseren 
Rohdaten vorhanden, sie sind nämlich die Reihenfolgen der Token in den 
Rohdaten. Im Grunde ist das eine Art Time Series Forecast, also die 
Vorhersage einer Zeitserie bzw. einer Abfolge von Ereignissen, basierend 
auf der vorher gelernten Abfolge von Ereignissen.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ich habe inzwischen etwas weiter recherchiert ...

Prinzipiell soll das Lernen eigener Daten mit einem Fork namens 
"PrivateGPT" funktionieren bzw. sogar explizit vorgesehen sein.

Allerdings ist hier die Installation wieder so eine Linux-CLI-Orgie, bei 
"GPT4All" gab es so schöne GUI-Installer für Win, Mac und Linux ... :-(

https://github.com/imartinez/privateGPT

: Bearbeitet durch User
von Ein T. (ein_typ)


Lesenswert?

Frank E. schrieb:
> Allerdings ist hier die Installation wieder so eine Linux-CLI-Orgie, bei
> "GPT4All" gab es so schöne GUI-Installer für Win, Mac und Linux ... :-(
>
> https://github.com/imartinez/privateGPT

Wo ist denn da die Orgie? Python installieren, virtualenv einrichten und 
aktivieren, requirements.txt einspielen, loslegen... Das ist doch alles 
wirklich absolut easy peasy. Und wenn Du Dich ernsthaft mit diesem Thema 
beschäftigen willst, mußt Du Dir das Klickibunti wohl abschminken.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ich wärme mal den Thread wieder auf!

Ich habe inzwischen mal ein Experiment gewagt! Auf einem zufällig 
vorhanden

- Dell-Rackserver R380
- CPU Xeon E5-2403 V2
- 96GB Ram
- 512GB SSD
- Windows 2022 Server

wurde GPT4All installiert. Die Installation ging tatsächlich so einfach 
wie auf der Webseite beschrieben: Herunterladen, Klick und etwas Konfig 
... fertig!

GPT4All ist nzwischen in der Lage, auch eigene Dokumente (PDF, TXT, DOC 
...) in seine Wissensbasis aufzunehmen, kann also tatsächlich "Lernen". 
Als Sprachmodell habe ich Wizzard gewählt, weil der (angeblich) am 
Besten Deutsch kann.

Allerdings: Auf der genannten Maschine völlig unbauchbar. Alleine die 
Antwort auf ein "Hallo!" dauert ca. 5 Minuten. In der GUI steht was von 
"0.1 ... 0.2 Token/s".

Das liegt sicher auch daran, dass GPT4All primär für die Nutzung mit CPU 
statt GPU gemnacht ist, um die Einstiegsschwelle niedrig zu halten. 
Allerdings habe ich auch schon ein Youtube-Video gesehen, wo jemand auf 
einem MacMini M2 die Antworten innerhalb weniger Sekunden erhält. Die 
Möglichkeit der Nutzung von GPU-Karten ist aber demnächst auch 
vorgesehen ...

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.