LLMs: ein echter Anwendungsfall

Kurzfassung: Wir haben LLMs, Vektordatenbanken und RAG für elMejorTrato.com umgesetzt und dabei Folgendes festgestellt:

  • Die Arbeit mit Spanisch hat ihre Besonderheiten
  • Die ChatGPT-API ist zu teuer
  • LangChain und Agenten sind manchmal überdimensioniert
  • Mit SentenceBert und einer VectorDB lassen sich hervorragende Ergebnisse erzielen
  • Quantisierte Open-Source-LLMs liefern sehr gute Ergebnisse

Wir stellen hier den Basiscode als Open Source mit Docker bereit, damit ihr ihn in euren Projekten nutzen könnt.

Einen Prototyp entwickeln

Große Sprachmodelle sind seit der öffentlichen Freigabe von ChatGPT bekannt geworden und haben Begeisterung für ihre möglichen zukünftigen Anwendungen ausgelöst. Es gibt viele Beispiele, in denen LLMs allgemeine künstliche Intelligenz simulieren sollen und die tatsächlich futuristisch wirken. Hier betrachten wir einen konkreten Anwendungsfall auf der Website elMejorTrato.com.

LLMs brachten Softwareentwicklern zwei erstaunliche neue Möglichkeiten:

  1. natürliche Sprache zu verstehen;
  2. Vektorsuchen in Text, Audio und Bildern durchzuführen.

Bei elMejorTrato.com konnten Nutzer den gewünschten Kreditbetrag als Text statt als Zahl eingeben, etwa „Ich brauche $10,000, um mein Haus zu erweitern“. Die damalige Lösung bestand darin, ein Texteingabefeld durch ein Auswahlfeld zu ersetzen. Heute lässt sich die Absicht der Nutzer dank des Sprachverständnisses von LLMs besser erfassen und ein besserer Service anbieten.

Ein zweites Beispiel ist die Beantwortung von Nutzerfragen anhand bereits beantworteter Fragen anderer Nutzer. Dafür wird Text über vom LLM erzeugte Embeddings per Vektorsuche durchsucht.

Um diese Lösungen zu prüfen, haben wir einen Prototyp aus einem Fork dieser sehr guten Docker-Vorlage entwickelt und folgende Anpassungen vorgenommen:

  • Ein Prompt, damit llama2 auf Spanisch richtig arbeitet.
  • Ein spanisches Bert-Embedding-Modell der Universität von Chile.
  • Weaviate als Datenbank für hybride Suche aus Vektor- und Textsuche sowie für den lokalen Einsatz oder den Betrieb in der Cloud.
  • Vereinfachter Code, der leichter verständlich ist und sich einfacher an eigene Projekte anpassen lässt.