Große Sprachmodelle (LLMs) sind inzwischen fester Bestandteil zahlreicher Technologiebereiche, und die meisten Produkte bringen heute Funktionen auf LLM-Basis mit. Die Ausführung dieser Modelle auf eigenen Geräten wie Laptops, Desktops oder Smartphones stieß jedoch lange auf Hürden durch Hardwarebeschränkungen.
Als Antwort darauf hat das PyTorch-Team Torchchat vorgestellt – ein flexibles Framework, das die Effizienz von LLMs auf unterschiedlichster Hardware steigert. Dieser Durchbruch ermöglicht eine performante lokale Verarbeitung auf vielen Geräten und macht fortgeschrittene KI-Modelle potenziell für mehr Menschen zugänglich.
PyTorch ist ein führendes Open-Source-Framework für Machine Learning, entwickelt von Facebooks AI Research Lab (FAIR). Es unterstützt verschiedene Anwendungsfälle, darunter Computer Vision und Natural Language Processing.
In diesem Artikel geben wir einen Überblick über die Funktionen von Torchchat und zeigen, wie du es lokal einrichtest.
KI-Anwendungen entwickeln
Funktionen von Torchchat
Torchchat bietet vier Hauptfunktionen:
- LLMs mit Python und PyTorch ausführen.
- Eigenständige Modelle auf einer Desktop-App oder einem Server ohne Python betreiben.
- Modelle auf einem Mobilgerät ausführen.
- Die Leistung eines Modells evaluieren.
LLMs mit Python und PyTorch ausführen
In diesem Modus läuft ein LLM auf einer Maschine mit installiertem Python und PyTorch. Du kannst direkt im Terminal mit dem Modell interagieren oder einen Server mit einer REST API aufsetzen. Darauf konzentrieren wir uns in diesem Artikel.
Eigenständige Modelle betreiben
Torchchat nutzt AOT Inductor (Ahead-of-Time Inductor), um ein eigenständiges, verteilbares Executable für PyTorch-Inferenzprogramme zu erstellen – in Form einer dynamischen Bibliothek ohne Abhängigkeit von Python und PyTorch.
Dieser Ansatz adressiert die Anforderungen von Produktionsumgebungen, in denen Laufzeitstabilität über Updates und Änderungen im Serving-Umfeld gewährleistet sein muss, sodass Modelle ohne erneutes Kompilieren weiterlaufen.
AOT Inductor optimiert die Modellauslieferung durch effiziente, binäre Distributionsformate, die schnell geladen und unmittelbar ausgeführt werden können – und behebt damit die Grenzen und den Overhead textbasierter Formate wie TorchScript. Es setzt Codegenerierung und Optimierungen für CPU- und GPU-Performance ein, um Overhead zu reduzieren und die Ausführung zu beschleunigen.
Ausführung auf Mobilgeräten
Für die Ausführung auf Mobilgeräten setzt Torchchat auf ExecuTorch. Ähnlich wie AOT Inductor optimiert ExecuTorch das Modell für die Ausführung auf Mobil- oder Embedded-Geräten und erzeugt ein PTE-Artefakt, mit dem das Modell später ausgeführt werden kann.
Ein Modell evaluieren
Der Evaluationsmodus von Torchchat kann genutzt werden, um die Leistung eines LLMs auf verschiedenen Aufgaben aus lm_eval zu bewerten. Das ist besonders für Forschende wichtig, die neue Modelle gegen gängige Benchmarks testen möchten.
Warum Torchchat nutzen
Ein LLM lokal auszuführen statt über eine Cloud-API eines Drittanbieters wie die API von OpenAI eröffnet diverse Einsatzszenarien und Vorteile – je nach Bedarf und Kontext.
- Datenschutzkritische Anwendungen: In Branchen mit sensiblen Daten wie Gesundheitswesen, Finanzwesen oder Recht bleibt Vertrauliches in der eigenen Infrastruktur – konform mit Datenschutzvorgaben.
- Echtzeitanwendungen: Anwendungen mit strengen Latenzanforderungen – etwa interaktive Chatbots, Generierung in Echtzeit oder Live-Monitoring – profitieren von lokaler Ausführung, da Netzwerklatenzen zur Cloud entfallen.
- Offline- oder Low-Connectivity-Szenarien: In Umgebungen mit wenig oder keinem Internetzugang ermöglicht die lokale Bereitstellung LLM-basierte Anwendungen – z. B. Feldforschung, Remote-Lernen oder In-Flight-Entertainment.
- Kostenkontrolle und Optimierung: Bei hohem Durchsatz oder Dauerbetrieb kann die lokale Ausführung kostengünstiger sein, weil sie Request-basierte Preismodelle von Cloud-APIs umgeht und vorhandene Rechenressourcen nutzt.
Wenn du mehr darüber erfahren möchtest, wie ein KI-Modell auf einem Gerät statt in der Cloud läuft, lies diesen Blogpost zu Edge AI.
Lokale Einrichtung mit Python
Richten wir Torchchat nun Schritt für Schritt lokal ein. Wir beginnen damit, das Torchchat-Repository zu klonen.
Code klonen oder herunterladen
Der erste Schritt ist, das Torchchat-Repository zu klonen. Mit installiertem Git kannst du im Terminal folgenden Befehl ausführen:
git clone git@github.com:pytorch/torchchat.git
Alternativ lässt sich das Repository über die GitHub-Oberfläche herunterladen.

Installation
Wir gehen davon aus, dass Python 3.10 bereits installiert ist. Eine Anleitung zur Installation findest du in diesem Artikel.
Zur Installation öffnest du ein Terminal im Torchchat-Ordner. Zuerst erstellen wir eine virtuelle Umgebung:
python -m venv .venv
Kurz gesagt ist eine virtuelle Umgebung ein in sich geschlossener Projektordner mit eigenen Installationsverzeichnissen für Python-Bibliotheken, -Pakete und teils sogar einer spezifischen Python-Version. So hat jedes Projekt genau die Versionen, die es braucht – ohne Konflikte mit anderen Projekten.
Als Nächstes aktivieren wir die Umgebung mit:
source .venv/bin/activate
Zum Abschluss installieren wir alle benötigten Abhängigkeiten. Torchchat liefert dafür das Skript install_requirements.sh, das du so ausführst:
./install_requirements.sh
Torchchat sollte nun installiert und einsatzbereit sein. Du kannst die Installation prüfen, indem du die verfügbaren Torchchat-Befehle auflistest:
python torchchat.py --help
Torchchat lokal mit Python nutzen
Mit installierten Torchchat können wir LLMs lokal auf unserem Rechner ausführen.
Alle unterstützten Modelle auflisten
Torchchat unterstützt eine große Bandbreite an LLMs. Mit dem Befehl list lassen sich alle unterstützten Modelle anzeigen:
python torchchat.py list
Die vollständige Modulliste findest du im GitHub-Repository.

Der Abschnitt „Notes“ liefert hilfreiche Infos zum jeweiligen Modell, etwa den besten Einsatzzweck und den Alias, den du in Torchchat-Befehlen angibst.
Ein Modell herunterladen
Torchchat nutzt Hugging Face als Distributionskanal. Hugging Face ist eine kollaborative Plattform mit Tools, um NLP- und ML-Modelle mit Open-Source-Code zu erstellen, zu trainieren und bereitzustellen. Mehr dazu in diesem Blogpost: What Is Hugging Face.
Vor dem Download eines Modells musst du:
- Die Hugging Face Command Line Interface installieren
- Einen Account bei Hugging Face anlegen
- Einen Zugriffstoken erstellen
- Dich über die Hugging Face CLI anmelden
Die Installation der Hugging Face CLI erfolgt mit pip:
pip install huggingface_hub
Anschließend erstellst du auf der Hugging Face-Website einen Account. Danach kannst du in den Profileinstellungen einen Zugriffstoken erstellen:

Im Profil öffnest du „Access Tokens“, um einen neuen Token anzulegen:

Für diesen Artikel reichen Leserechte. Notiere dir den Token direkt beim Erstellen, da er später nicht mehr angezeigt wird.
Mit dem Token meldest du dich per folgendem Befehl an:
huggingface-cli login
Nach erfolgreicher Anmeldung kannst du mit dem Befehl download ein Modell herunterladen. Manche Modelle sind sehr groß – prüfe daher den verfügbaren Speicherplatz. Für das Beispiel nutzen wir das stories15M-Modell, ein kleines Modell zur Story-Generierung. Es ist ein guter Einstieg, da der Download schnell geht und keine Sonderrechte nötig sind.
Der Download erfolgt so:
python torchchat.py download stories15M
Ein Modell ausführen
Nach dem Download kannst du die Befehle chat oder generate verwenden. Für Textgenerierung gibst du mit --prompt eine Eingabe vor. Beispiel:
python torchchat.py generate stories15M --prompt “Once upon a time”
Dieser Befehl weist Torchchat an, mit dem Modell stories15M Text zur Eingabe ”Once upon a time” zu generieren.
Für den Chatmodus nutzt du chat ohne Prompt:
python torchchat.py chat stories15M
Der Chatmodus startet einen interaktiven Dialog im Terminal. Beachte: Manche Modelle eignen sich eher für den generate-Modus, andere für chat. Diese Info findest du im Abschnitt „Notes“ der Modelldokumentation.
Zugriff auf ein Modell anfordern
Einige Modelle wie llama3 erfordern spezielle Zugriffsrechte. Wenn du versuchst, ein solches Modell herunterzuladen, erscheint eine Fehlermeldung:
Access to model meta-llama/Meta-Llama-3-8B-Instruct is restricted and you are not in the authorized list. Visit https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct to ask for access.
Über die angegebene URL kannst du Zugriff anfragen. Fülle ein kurzes Formular mit persönlichen Angaben aus und akzeptiere die Nutzungsbedingungen. Du erhältst eine E‑Mail, sobald der Zugriff gewährt ist.

Erweiterte Nutzung
Torchchat bietet zusätzliche Optionen für die lokale Ausführung von LLMs, damit du sie an Anforderungen und Hardware anpassen kannst. Schauen wir uns einige davon an.
Präzision steuern
LLMs basieren stark auf Matrixmultiplikationen, also auf dem Multiplizieren vieler Gleitkommazahlen. Es gibt verschiedene Datentypen zur Repräsentation von Gleitkommazahlen mit unterschiedlicher Genauigkeit.
Höhere Präzision stellt sicher, dass feine Nuancen aus dem Training bei der Inferenz erhalten bleiben – wichtig für komplexe Aufgaben oder nuanciertes Sprachverständnis. Allerdings verlangsamt hohe Präzision die Inferenz. Der richtige Datentyp ist ein Abwägen zwischen Tempo und Genauigkeit.
Den Datentyp legst du mit dem Parameter --dtype fest, zum Beispiel:
python torchchat.py chat --dtype fast stories15M
Just-in-Time-Kompilierung
Das Flag --compile aktiviert die Just-in-Time-(JIT)-Kompilierung des Modells. JIT kompiliert Teile des Modells zur Laufzeit in Maschinencode, statt sie bei jeder Ausführung zu interpretieren. Das kann die Effizienz und Geschwindigkeit auf verschiedenen Hardwareplattformen deutlich steigern.
Mit JIT verlängert sich die Startzeit wegen des zusätzlichen Kompilierungsschritts, die Inferenz läuft danach jedoch schneller. So kombinierst du chat mit JIT:
python torchchat.py chat --compile stories15M
Beachte, dass diese Option nicht auf jeder Hardware unterstützt wird. In diesem Fall ignoriert Torchchat den Kompilierungsschritt und führt das LLM ohne ihn aus.
Quantisierung
Quantisierung reduziert die Modellgröße und beschleunigt die Inferenz, ohne Leistung oder Genauigkeit stark zu beeinträchtigen. Das ist besonders relevant für die Bereitstellung auf Edge-Geräten oder in Umgebungen mit begrenzten Rechenressourcen, Speicher und Bandbreite.
Kurz gesagt wandelt Quantisierung Gewichte und Aktivierungen eines Netzes von Gleitkommazahlen (meist 32 Bit) in niedrigere Bitbreiten um – etwa 16-Bit- oder 8-Bit-Integer, in Einzelfällen sogar binär.
Das unterscheidet sich von der Präzisionswahl via --dtype. Quantisierung wirkt direkt auf die Modellgewichte und erzeugt ein kleineres Modell, während der Datentyp den Typ der Daten für die Inferenzberechnungen festlegt.
Für Quantisierung in Torchchat brauchst du eine JSON-Konfigurationsdatei und rufst sie so auf:
python torchchat.py chat --quantize config.json stories15M
Details zum Format der Datei config.json und zur Funktionsweise der Quantisierung in Torchchat findest du in der Quantisierungsdokumentation.
Gerät festlegen
Mit der Option --device gibst du an, auf welchem Gerät das LLM ausgeführt wird. Für CUDA z. B. so:
python torchchat.py chat --device cuda stories15M
Fazit
Torchchat ist ein großer Schritt zur Demokratisierung der LLM-Inferenz. Es macht es einfach, LLMs effizient auf einer Vielzahl von Geräten auszuführen.
Torchchat kann noch weit mehr, als wir hier gezeigt haben. Mit dieser Anleitung hast du alles Nötige, um LLMs mit Python und PyTorch lokal auf deinem Rechner zum Laufen zu bringen. Ich kann dir nur empfehlen, Torchchat weiter auszuprobieren.
