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

app work with your data and a LLM 01

app work with your data and a LLM 01

Einführung in die Funktionsweise

Im jetzt folgenden Abschnitt geht es um die Funktionen bzw. Möglichkeiten die mir diese Conversational Application bietet.

  1. 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.
  2. 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.
  3. 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.
    1. 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.
  4. Über den Button „Initialize app“ wird die getroffene Konfiguration übernommen und das gewählte Sprachenmodell in den GPU Speicher geladen.
  5. 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.
  6. Unterhalb des Textfeldes ist für den Anwender anschließend der Chatverlauf zu sehen.
app work with your data and a LLM 01 details

app work with your data and a LLM 01 details

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.

app work with your data and a LLM 08

app work with your data and a LLM 08

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.

app work with your data and a LLM 10

app work with your data and a LLM 10

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.

app work with your data and a LLM 13

app work with your data and a LLM 13

Zusammenfassung

Mit der Entwicklung dieses Programmes habe ich für mich ein gutes Verständnis erlangt wie die Bausteine zusammengefügt werden müssen um selber daheim solch eine Technologie laufen lassen zu können. Natürlich geht die Entwicklung aktuell rasend schnell weiter und es gibt seit dem ich mich Anfang August 2023 hingesetzt habe und eingelesen habe schon wieder viele tolle neue Entwicklungen bei den Sprachenmodellen, Frameworks und Architekturen. Auch sind die online Services die es gibt wie z. B. Zapier einfach umwerfend vielfältig und es können komplexe Anwendungen in kürzester Zeit aufgebaut werden. Ich werde jetzt noch den Programmcode kommentieren, etwas aufräumen und anschließend meine Lösung auf GitHub online stellen.





Artikelübersicht - Large Language Model Anwendungen:

Conversational Applikation - Arbeite mit Deinen Daten zusammen mit Large Language Modellen
Conversational Applikation - Erstelle Deine Text Embeddings und Vektor Datenbank