RAG: KI-Basismodelle mit eigener Wissensbasis verknüpfen

Gerade Kleine und Mittlere Unternehmen (KMU) können es sich oftmals nicht leisten, eigene Trainingsmodelle (Large Language Models) zu entwickeln. KMU greifen daher gerne auf bekannte Modelle wie ChatGPT usw. zurück.

Es wird allerdings gerade bei innovativen KMU immer klarer, dass es gefährlich sein kann, eigene Datenbestände in z.B. ChatGPT einzugeben. Da diese Modelle nicht transparent sind ist unklar, was mit den eigenen Daten passiert.

Eine Möglichkeit aus dem Dilemma herauszukommen ist, RAG (Retrieval-Augmented Generation) zu nutzen – also ein Basismodell mit einer internen Wissensbasis zu verknüpfen:

Retrieval-Augmented Generation (RAG): Bei RAG wird ein Basismodell wie GPT-4, Jamba oder LaMDA mit einer internen Wissensbasis verknüpft. Dabei kann es sich um strukturierte Informationen aus einer Datenbank, aber auch um unstrukturierte Daten wie E-Mails, technische Dokumente, Whitepaper oder Marketingunterlagen handeln. Das Foundation Model kombiniert die Informationen mit seiner eigenen Datenbasis und kann so Antworten liefern, die besser auf die Anforderungen des Unternehmens zugeschnitten sind” (heise business services (2024): KI für KMU: Große Sprachmodelle erfolgreich einsetzen – mit Finetuning, RAG & Co.).

Wir gehen noch einen Schritt weiter, indem wir (1) einerseits LocalAI und Open Source AI mit einem Assistenten nutzen, und (2) darüber hinaus mit Hilfe von Ollama und Langflow eigene KI-Agenten entwickeln, die auf Basis von Open Source AI Modellen und beliebig konfigurierbaren eigenen Input einen gewünschten Output generieren In dem gesamten Prozess bleiben alle Daten auf unserem Server.

LocalAI: Das Open Source Modell olmOCR installiert

Eigener Screenshot

Wie schon in mehreren Blogbeiträgen erläutert, haben wir das Ziel, einen souveränen Arbeitsplatz zu gestalten, bei dem u.a. auch Künstliche Intelligenz so genutzt werden kann, dass alle eingegebenen und generierten Daten auf unserem Server bleiben.

Dazu haben wir LocalAI (Open Source) auf unserem Server installiert. Damit können wir aktuell aus mehr als 700 frei verfügbaren KI-Modellen je nach Bedarf auswählen. Zu beachten ist hier, dass wir nur Open Source AI nutzen wollen. Siehe dazu auch AI: Was ist der Unterschied zwischen Open Source und Open Weights Models?

Bei den verschiedenen Recherchen sind wir auch auf OLMo gestoßen. OLMo 2 ist eine LLM-Familie (Large Language Models), die von Ai2 – einer Not for Profit Organisation – entwickelt wurde und zur Verfügung gestellt wird:

“OLMo 2 is a family of fully-open language models, developed start-to-finish with open and accessible training data, open-source training code, reproducible training recipes, transparent evaluations, intermediate checkpoints, and more” (Source: https://allenai.org/olmo).

Unter den verschiedenen Modellen haben wir uns die sehr spezielle Version allenai_olmocr-7b-0225 in unserer LocalAI installiert – siehe Abbildung.

“olmOCR is a document recognition pipeline for efficiently converting documents into plain text” (ebd.)

Siehe dazu auch Efficient PDF Text Extraction with Vision Language Models.

Selbstverständlich werden wir demnächst auch noch andere Möglichkeiten aus der OLMo-Familie testen und Erfahrungen sammeln.

LocalAI: KI-Modelle und eigene Daten kombinieren

NEXTCLOUD ASSISTENT – Eigener Screenshot

Wenn Sie die bekannten Trainingsmodelle (LLM: Large Language Modells) bei ChatGPT (OpenAI), Gemini (Google) usw. nutzen, werden Sie sich irgendwann als Privatperson, oder auch als Organisation Fragen, was mit ihren eingegebenen Texten (Prompts) oder auch Dateien, Datenbanken usw. bei der Verarbeitung Ihrer Anfragen und Aufgaben passiert.

Antwort: Das weiß keiner so genau, da die KI-Modelle nicht offen und transparent sind.

Ein wirklich offenes und transparentes KI-Modell orientiert sich an den Vorgaben für solche Modelle, die in der Zwischenzeit veröffentlicht wurden. Siehe dazu beispielsweise Open Source AI: Besser für einzelne Personen, Organisationen und demokratische Gesellschaften.

Um die eigene Souveränität über unsere Daten zu erlangen, haben wir seit einiger Zeit angefangen, uns Stück für Stück von kommerziellen Anwendungen zu lösen. Angefangen haben wir mit NEXTCLOUD, das auf unserem eigenen Server läuft. NEXTCLOUD Hub 9 bietet die Möglichkeiten, die wir alle von Microsoft kennen.

Dazu kommt in der Zwischenzeit auch ein NEXTCLOUD-Assistent, mit dem wir auch KI-Modelle nutzen können, die auf unserem Serverlaufen. Dieses Konzept einer LOCALAI – also einer lokal angewendeten KI – ist deshalb sehr interessant, da wir nicht nur große LLM hinterlegen, sondern auch fast beliebig viele spezialisierte kleinere Trainingsmodelle (SML: Small Language Models) nutzen können. Siehe dazu Free Open Source Software (FOSS): Eigene LocalAI-Instanz mit ersten drei Modellen eingerichtet.

In dem Blogbeitrag LocalAI (Free Open Source Software): Chat mit KI über den Nextcloud-Assistenten haben wir dargestellt, wie im NEXTCLOUD Assistenten mit einer lokalen KI gearbeitet werden kann.

Wie in der Abbildung zu sehen, können wir mit dem NEXTCLOUD Assistenten auch Funktionen nutzen, und auch eigene Dateien hochladen. Dabei werden die Dateien auch mit Hilfe von dem jeweils lokal verknüpften lokalen KI-Modell bearbeitet. Alle Daten bleiben dabei auf unserem Server – ein unschätzbarer Vorteil.

Die Kombination von LOCALAI mit eigenen Daten auf dem eigenen Server macht dieses Konzept gerade für Kleine und Mittlere Unternehmen (KMU) interessant.

LocalAI (Free Open Source Software): Chat mit KI über den Nextcloud-Assistenten

LocalAI: Chat mit KI über den Nextcloud Assistenten

Wie Sie wissen, haben wir eine lokale KI (LokalKI) oder LocalAI installiert. Siehe dazu Free Open Source Software (FOSS): Eigene LocalAI-Instanz mit ersten drei Modellen eingerichtet.

In unserer Kollaborationsplattform Nextcloud (Open Source) kann an jeder beliebigen Stelle der Nextcloud-Assistent aufgerufen werden. Wie in der Abbildung zu sehen ist, ergeben sich hier viele Möglichkeiten, die auch mit lokalen Large Language Models (LLM) verknüpft sind.

In dem Beispiel ist CHAT MIT KI angewählt. Diese Funktion ist in unserer LocalAI mit Llama 3.2 (LLM) verknüpft.

Als Prompt habe ich zum Test einfach “Erstelle eine Liste mit Stakeholdern für das Projekt Website” eingegeben.

Es kam zu einer Nachfrage, die ich beantwortet habe. Anschließend wurde eine durchaus brauchbare Liste möglicher Stakeholder für ein Projekt “Website” ausgegeben.

Nach verschiedenen kleinen Einstellungen am Server waren die Antwortzeiten sehr gut.

Der große Vorteil bei dieser Arbeitsweise ist allerdings: Alle Daten bleiben auf unserem Server – LocalAI eben.

Lokale KI-Anwendungen: Erster Test mit dem Modell Llama 3.2

Screenshot von unserer lokalen KI-Anwendung (LokalKI)

Wie Sie wissen, haben wir auf einem Server die Möglichkeit eingerichtet, KI-Modelle lokal auszuwählen und zu testen, bzw. zu nutzen – LokalKI oder LocalAI. Siehe dazu Free Open Source Software (FOSS): Eigene LocalAI-Instanz mit ersten drei Modellen eingerichtet.

Die verschiedenen Modelle können dazu vorab ausgewählt werden. Für diesen Test habe ich Llama 3.2 ausgewählt, was in der Abbildung zu erkennen ist. Der folgende einfache Prompt wurde im Textfeld (Unten in der Abbildung) von mir eingegeben:

Prompt (Blau hinterlegt): Du bist Projektmanager des Projekts Website. Erstelle eine Übersicht zu möglichen Stakeholder in Tabellenform. Ausgabe in einem Worddokument.

Das Ergebnis (Grün hinterlegt) kann sich durchaus sehen lassen. Die erste Übersicht zu möglichen Stakeholdern könnte genutzt und noch ein wenig angepasst werden.

Die Aufforderung, eine Tabelle in einer Worddatei zu erstellen wurde ignoriert, da das wohl in dieser Modell-Version nicht möglich ist. Das Ergebnis könnte ich natürlich selbst einfach in einer Worddatei kopieren.

Die Antwortzeit war relativ kurz was mich durchaus überrascht hat.

Insgesamt ist das Ergebnis natürlich noch nicht so, wie man das von ChatGPT usw. gewohnt ist, doch hier haben wir den Vorteil, dass alle Daten der KI-Anwendung auf unserem Server bleiben – auch wenn wir z.B. interne Dokumente hochladen.

Free Open Source Software (FOSS): Eigene LocalAI-Instanz mit ersten drei Modellen eingerichtet

Quelle: Eigener Screenshot

In verschiedenen Blogbeiträgen hatte ich darauf hingewiesen, dass es für Organisationen in Zukunft immer wichtiger wird, die digitale Abhängigkeiten von kommerziellen IT-/AI-Anbietern zu reduzieren – auch bei der Anwendung von Künstlicher Intelligenz (AI: Artificial Intelligence), da die Trainingsdatenbanken der verschiedenen Anbieter

(1) nicht transparent sind,
(2) es zu Urheberrechtsverletzungen kommen kann,
(3) und nicht klar ist, was mit den eigenen eingegeben Daten, z.B. über Prompts oder hochgeladenen Dateien, passiert.

Siehe dazu auch Digitale Souveränität: Europa, USA und China im Vergleich. Nicht zuletzt werden die Kosten für die KI-Nutzung immer höher – beispielsweise bei Microsoft und der Nutzung des KI-Assistenten Copilot: KI treibt Microsoft-365-Preise in die Höhe (golem vom 17.01.2025).

Es ist natürlich leicht, darüber zu schreiben und die Dinge anzuprangern, schwieriger ist es, Lösungen aufzuzeigen, die die oben genannten Punkte (1-3) umgehen. Zunächst einmal ist die Basis von einer Lösung Free Open Source Software (FOSS). Eine FOSS-Alternative zu OpenAI, Claude usw. haben wir auf einem Server installiert und die ersten drei Modelle installiert. Was bedeutet das?

Wenn wir in einem Chat einen Prompt (Text, Datei..) eingeben, greift das System auf das ausgewählte Modell (LLM: Large Language Model) zu, wobei die Daten (Eingabe, Verarbeitung, Ausgabe) alle auf unserem Server bleiben.

Wie in der Abbildung zu sehen ist, haben wir neben Llama 3.2 auch Teuken 7B hinterlegt. Gerade Teuken 7B basiert auf einem europäischen Ansatz für eine Trainingsdatenbank (LLM) in 24 Sprachen der Europäischen Union. Siehe dazu Open Source AI-Models for Europe: Teuken 7B – Training on >50% non English Data.

Wir werden diese Modelle in der nächsten Zeit testen und unsere Erkenntnisse in Blogbeiträgen darstellen.