Open-Source-LLMs KI ohne Datenschutzprobleme – Self-Hosting

Ein Gastbeitrag von Mirco Lang 5 min Lesedauer

Anbieter zum Thema

KI-Tools sind bereits Teil der Normalität und auch in Unternehmen verlangen auch Mitarbeiter vermehrt danach. Aber sensible, interne Daten und die Cloud? Das passt nicht immer zusammen.

Aus Sorge, dass sensible Daten nach außen geraten, scheuen sich viele Unternehmer vor der KI - das muss nicht sein!(Bild:  deagreez - stock.adobe.com)
Aus Sorge, dass sensible Daten nach außen geraten, scheuen sich viele Unternehmer vor der KI - das muss nicht sein!
(Bild: deagreez - stock.adobe.com)

KI-Helfer wie ChatGPT werden in den Arbeitsalltag Einzug halten, daran führt kein Weg vorbei. KI-unterstützte Smartphones sind aktuell das große Verkaufsargument und wird somit zum Standard. Betriebssysteme werden künftig ebenfalls KI-gestützte Suchen und dergleichen anbieten – oder auch einfach integrieren. Und selbst wenn nicht: Die Angestellten werden Wege finden, den Alltag mit KI zu vereinfachen. Sicherlich eine gute Idee, denn viele Aufgaben lassen sich zwar nicht von der KI, aber mit der KI schneller erledigen.

Allerdings schürt die KI bei Sicherheitsbeauftragte, CISOs und Datenschützer die Sorge, dass sensible Daten nicht ausreichend geschützt sind. Daher äußern diese schnell Bedenken und untersagen schlimmstenfalls die Nutzung oder wollen diese stark reglementieren. Erfahrungsgemäß funktioniert das selten gut. Und warum sollte man sich ein hilfreiches Werkzeug untersagen? Es kommt auch beim Thema KI wieder zu den etablierten Varianten: SaaS-Lösungen mit entsprechenden Verträgen und zertifizierten Partnern oder eben Self-Hosting.

Kürzlich haben wir Ihnen

vorgestellt, nun folgen ein paar Möglichkeiten, diese schnell und einfach lokal zu nutzen.

LM Studio

LM Studio ist eine Lösung, die einfach genutzt werden kann. Aber sie hat einen Nachteil: Die kostenlose Nutzung ist nur für nicht-kommerzielle Zwecke freigegeben und konkrete Preis- oder Lizenzinformationen gibt es noch nicht, lediglich ein Kontaktformular. LLMs kann die Anwendung lokal betreiben. Sie stellt die Chat-Oberfläche zur Verfügung und übernimmt auch direkt den Download der Modelle – fast schon selbstverständlich via Hugging Face.

Die Konfiguration läuft ebenfalls über die Web-Oberfläche oder alternativ, auch über ein Kommandozeilenprogramm, das sich ähnlich wie Docker-CLI bedienen lässt. Damit lassen sich Modelle suchen, herunterladen und aktivieren. Der Download und die Einrichtung dauern keine drei Minuten. Allerdings bleibt es nicht bei der Chat-Schnittstelle: LM Studio kann auch einen Server samt OpenAI-mäßiger API betreiben.

LM Studio in der Anwendung.(Bild:  LM Studio)
LM Studio in der Anwendung.
(Bild: LM Studio)

So sieht LM Studio aus.(Bild:  LM Studio)
So sieht LM Studio aus.
(Bild: LM Studio)

Out-of-the-Box hat LM Studio hier auf einem lokalen Windows-Testsystem auch die GPU genutzt, was zu ordentlichen Ergebnissen geführt hat. Mit dem kleinen Llama 3.2 1B (mit 1 Billion Parametern) hat LM Studio immerhin 130 Token/Sekunde angezeigt, mit der 3.1-8B-Variante nur noch gut 30, was der üblichen Erfahrung mit ChatGPT 3.5 im Browser entspricht. ChatGPT selbst behauptet durchschnittlich 50 bis 70 Tokens pro Sekunde zu verarbeiten – je nach Auslastung, Nutzung und so weiter. Ein kleines Problem: Die 1B-Variante liefert schlechte Ergebnisse.

Die Software bietet einige Einstellungen, etwa zur Hardware-Nutzung oder Rückgaben, Logs in der Entwickleransicht und integrierte Hilfe, beispielsweise curl-Beispiele zum Testen. Auch eigene Daten lassen sich einfach integrieren: Direkt im Chat können Dokumente hochgeladen werden, die prompt mit verarbeitet und gegebenenfalls auch zitiert werden.

Im Großen und Ganzen ist LM Studio eine Lösung für den kommerziellen Einsatz. Für den produktiven Einsatz ist die Lage noch nicht ganz klar. Doch was wichtig anzumerken ist, ist dass LM Studio keine Daten verschickt.

Jan

Jan (Just another name) ähnelt LM Studio – doch an einigen Stellen ist sie noch nicht ganz ausgereift. Dafür aber ist sie aber eine komplette Open-Source-Software – also steht auch einer kommerziellen Nutzung nichts im Wege.

Die Installation der plattformunabhängigen Software beschränkt sich auf einen Doppelklick. Frickeleien, wie sie vor ein, zwei Jahren üblich waren, entfallen komplett. Allerdings müssen in den Einstellungen zunächst Abhängigkeiten installiert werden, damit die GPU-Nutzung funktioniert. Mit einem Klick direkt in der App lässt sich dies erledigen.

Als Model-Hub kann Jan Modelle suchen, herunterladen und aktivieren, was umgehend den üblichen Chat im App-Fenster selbst ermöglicht. Im Chat gibt es übliche Optionen, sprich Temperature, eine maximale Anzahl an Token (Kontextlänge), Beschränkung der Hardware und so weiter.

Noch ein Beta-Feature: Jan kann auch mit lokalen Dateien arbeiten, allerdings muss das zunächst über die Option „Tools/Retrieval“ im Chat freigeschaltet werden. Bis dato kann Jan nur ein einzelnes PDF-Dokument verarbeiten und liefert auch keine direkten Zitate wie LM Studio es tut. Perfekt ist der Umgang mit dieser Art Content noch nicht, funktioniert aber grundsätzlich.

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Das ist der Jan-Chat in der Anwendung.(Bild:  Jan)
Das ist der Jan-Chat in der Anwendung.
(Bild: Jan)

So sieht Jan im Hintergrund aus.(Bild:  Jan)
So sieht Jan im Hintergrund aus.
(Bild: Jan)

Die Ähnlichkeiten gehen noch weiter: Jan verfügt ebenfalls über einen API-Server, kann also im kleineren Maßstab produktiv genutzt werden – und liegt mit Llama 3 8B bei über 80 Token pro Sekunde. Nett: der API-Server bringt auch direkt eine interaktive GUI/Dokumentation für den Browser mit – die übliche Redoc-Dokumentation, die wir kürzlich ebenfalls im Praxiseinsatz gezeigt haben.

Auch wenn es hier explizit um Offline-Open-Source-LLMs geht, Sie sind nicht darauf beschränkt! Jan kann via API-Schlüssel auch Verbindungen zu OpenAI, Nvidia Nim und weiteren Cloud-LLMs aufbauen. Last but not least: Jan wird mit einigen Standard-Extensions ausgeliefert, verträgt aber auch Erweiterungen von Dritten, was eine Menge Potenzial verspricht.

Ein Punkt dürfte nicht allen Open-Source-Freunden gefallen: Jan steht unter der AGPL, sprich die Lizenz entfaltet ihre Gültigkeit nicht erst bei der Distribution, sondern schon bei der Nutzung über das Netzwerk.

Text Generation Inference

Eine völlig andere Methode: Text Generation Inference von Hugging Face selbst. Dabei handelt es sich um ein Toolkit, um LLMs wie Falcon, Bloom, Falcon oder eben auch Llama zu betreiben.

Eine schicke GUI bekommen Sie hier nicht, nur den API-Server. Dafür bietet TGI einige Features rund um den professionellen Betrieb – beispielsweise: Tensor-Parallelisierung, Token-Streaming über Server-Sent Events (für andauernde Verbindungen), Wasserzeichen, Logs, Anbindung an Prometheus und vieles mehr.

Besonders praktisch: TGI lässt sich einfach als Container aufsetzen, dafür genügt:

model=HuggingFaceH4/zephyr-7b-betavolume=$PWD/datadocker run --gpus all --shm-size 1g -p 8080:80 -v $volume:/data \   ghcr.io/huggingface/text-generation-inference:2.4.0 --model-id $model

Die Probleme können hier an vielen Stellen auftreten. Der Zugriff funktioniert auf einigen LLMs (etwa Llama) nur über separate Lese-Tokens („token=<your cli READ token>“), für die GPU-Nutzung muss das Nvidia Container Toolkit genutzt werden, das unter Windows nur via WSL funktioniert. TGI ist, trotz der Darstellung von Hugging Face, nicht immer ohne Aufwand einzurichten.

Wenn Container und TGI einmal laufen, lassen sich übliche Anfragen absenden, wie zum Beispiel

curl 127.0.0.1:8080/generate_stream \   -X POST \   -d '{"inputs":"What is Python?","parameters":{"max_new_tokens":20}}' \   -H 'Content-Type: application/json'

Letztlich soll TGI aber vor allem helfen, eine produktive Umgebung einzurichten – und was fehlt da noch zum Container-Glück? Na klar, Kubernetes. Und Hugging Face liefert auch direkt eine Kurzanleitung, wie Llama 3 8B mittels TGI in einer Google Kubernetes Engine (GKE) aufgesetzt wird.

Auch Llama.cpp ist einen Blick wert. Es ist die Engine, die Jan standardmäßig verwendet. Hier gilt, was so oft für Entwickler-Tools gilt: Eine einfache Einrichtung ist hier nur mit viel Glück der Fall! Jan erspart hier reichlich Arbeit.

Eines ist jedenfalls klar: Der lokale Betrieb von LLMs, selbst auf Desktop-Rechnern, ist mittlerweile ziemlich einfach.

Dieser Beitrag stammt von unserem Partnerportal Dev-Insider.de.

(ID:50296003)