Mit der hier vorgestellten Conversational Applikation die in die Kategorie der chatte mit z. B. PDF Dateien fällt habe ich mein persönliches Ziel verfolgt das Thema der großen Sprachenmodelle (Large Language Models LLM) für mich zu erarbeiten. Mein Ziel dabei war es nicht einfach einen Service wie von OpenAI mit der ChatGPT API zu verwenden sondern von der Auswahl des Sprachenmodelles bis zur Inbetriebnahme alles auf meiner eigenen Hardware umzusetzen. So hatte ich die steilste Lernkurve und konnte mir soweit das beste Verständnis erarbeiten wie alles zusammen gefügt werden muss und vor allem wo welche Schwierigkeiten liegen die gelöst werden müssen. Das Projekt hat mir sehr viel Freude bereitet und auch gezeigt wie wichtig wieder einmal die Aufbereitung der Texte ist damit mit diesen in z. B. einem Chat-Modus gearbeitet werden kann oder die Texte bewertet werden können im Sinne einer Stimmungsanalyse.
Im nachfolgenden Bild ist einmal die Anwendung zu sehen nach dem diese aufgerufen wurde. Zu den einzelnen Funktionen komme ich jetzt im nachfolgenden Kapitel
Einführung in die Funktionsweise
Im jetzt folgenden Abschnitt geht es um die Funktionen bzw. Möglichkeiten die mir diese Conversational Application bietet.
- Mit dem Dropdown Menü „Select a LLM model“ kann der Anwender zwischen verschiedenen Sprachenmodellen auswählen. Diese können über eine YAML Konfigurationsdatei zentral vorgegeben werden.
- Abhängig von der Verfügbaren Hardware ist es mit dem Dropdown Menü „Select a quantization option“ möglich das Sprachenmodell vollumfänglich zu laden oder als Integer 4.
- Je nach fachlicher Anforderung kann über das Dropdown Menü „Select a prompt templte“ zwischen dem klassischen Chat-Modus, einem Programmierassistenten bzw. eine Text-Analyse im Sinne ist der Text positive, neutral oder negativ gewählt werden.
- Im Dropdown Menü „Select a vector store“ ist es mir möglich eine Vektor Store Datenbank zu laden die z. B. eine API Beschreibung enthält oder eben eine Vielzahl an Reiseführern.
- Über den Button „Initialize app“ wird die getroffene Konfiguration übernommen und das gewählte Sprachenmodell in den GPU Speicher geladen.
- Nach dem die Anwendung initialisiert ist kann über das Textfeld die Frage gestellt werden die mit Hilfe der Vektor Store Datenbank beantwortet werden soll oder ein Text eingefügt werden für eine Stimmungsanalyse.
- Unterhalb des Textfeldes ist für den Anwender anschließend der Chatverlauf zu sehen.
Damit wären die Funktionen soweit erläutert und die Arbeitsweise der Anwendung hoffentlich verständlich erklärt. Jetzt folgen noch ein paar Beispiele die zeigen wie die Applikation aktuell funktioniert.
Beispiel – Chatten mit einer vielzahl an PDF Dateien
In dem jetzt folgenden Bild ist ein Chat-Verlauf zu sehen. Hier wird mit dem Llama 2 13b Modell zusammen mit einem Vektor Store der aus den Produktkatalogen von BOSCH, Markita, Einhell und Hilti besteht eine Unterhaltung geführt. Die doch etwas offene Frage nach einer Bohrmaschine wird gestellt und dann mit Unterstützung des AI Assistenten ein Modell näher ausgewählt. Je genauer meine Frage ist bzw. die Beschreibung für welchen Zweck die Bohrmaschine gebraucht wird desto besser wird natürlich die Antwort.
Beispiel – Programmieren
Mit dem Sprachenmodell CodeLlama hat META ein Modell für die Entwicklung von Software heraus gebracht. Ich habe wie ihr sehen könnt ein Modell gewählt das auf Basis des CodeLlama entstanden ist und für Python optimiert wurde. Leider hatte ich bei diesem Beispeil einen Fehler gemacht und nicht die Vektor Store Datenbank der Fronius Solar API gewählt. Daher ist die Antwort des AI Assistent soweit okay bzw. sieht nicht schlecht aus. Hätte ich aber die Beschreibung der API geladen wäre die Antwort mit Sicherheit deutlich besser gewesen. In einer älteren Version meiner Anwendung kam ein bis auf einen kleinen Fehler in der JSON Defition voll funktionsfähiges Programm als Antwort vom AI Assistent zurück.
Beispiel – Text Analyse
Sehr spannend ist auch die Analyse von Texten wie die Stimmung in dem Text sich darstellt. Ich habe hier eine Bewertung aus Amazon kopiert und auf der linken Seite einen für diese Analyse erstelltes Prompt Template geladen. Das Template gibt den AI Assistenten die Aufgabe mit einen vorgegebenen Text in den Stufen positiv, neutral und negativ zu bewerten. Das Ergebnis wie gut das Funktioniert seht ihr im jetzt folgenden Bild.
Hallo, ich habe ihre Anleitung befolgt und bekomme im letzten Schritt leider immer folgende Meldung im Terminal: bash <(wget -qO-…
Hi Dennis, vielen Dank für den Hinweis, ich habe die URLs angepasst so das diese wieder gehen. Ich bin gespannt…
Ich weiss, es ist noch im Aufbau. Aber hier ist ein Broken Link: https://www.ai-box.eu/smurf_training_data_small.zip Freue mich drauf, die ganze Serie…