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?
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.
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
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.
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.
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.
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!
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"
> 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.
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.
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?
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?
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.