So baust du eine local-first KI-Infrastruktur auf
Mit VAF laufen KI-Agent und Sprachmodell lokal auf einem Rechner in deinem Netzwerk, von unterwegs erreichst du ihn per VPN statt über einen offenen Port.
Local-first heißt, dass deine Daten und deine Arbeit zuerst auf deinen eigenen Geräten liegen und eine Netzwerkverbindung optional bleibt. Vorgeschlagen hat den Begriff 2019 ein Essay des Labors Ink & Switch, damals für Software allgemein. Für KI bedeutet das, dass der Agent, sein Gedächtnis, seine eingebauten Tools und das Sprachmodell lokal auf einem Rechner in deinem Netzwerk laufen.
Eine solche Infrastruktur besteht aus vier Bausteinen. Ein Rechner in deinem Netzwerk läuft rund um die Uhr und führt das Sprachmodell lokal aus. VAF ist der Agent, mit Gedächtnis, Tools und einem eigenen Konto für jede Person. Dein Team greift im Büro per HTTPS darauf zu und von unterwegs über ein VPN.
Welche Hardware du brauchst
Wie viel Speicher du brauchst, hängt vom Modell ab. Mit 16 Bit Genauigkeit belegt ein Modell etwa 2 GB pro Milliarde Parameter, so die Dokumentation von Hugging Face. Im Beispiel dort belegt ein Modell mit gut 15 Mrd. Parametern gemessen rund 29 GB, mit 4-Bit-Quantisierung nur noch rund 9,5 GB. Dazu kommt Speicher für den Kontext des laufenden Gesprächs. Wie schnell das Modell Text erzeugt, Token für Token, hängt bei wenigen gleichzeitigen Anfragen vor allem von der Speicherbandbreite ab, wie NVIDIA und Databricks in ihren Leitfäden zur Inferenz erklären.
- Ein vorhandener PC oder Server reicht für ein kleineres Modell. VAF wählt die Modellstufe, also Größe und Quantisierung, standardmäßig passend zur Hardware und braucht je nach Stufe etwa 3 bis 18 GB Arbeitsspeicher oder Grafikspeicher.
- Kompakte Systeme mit Unified Memory, also einem gemeinsamen Speicher für CPU und GPU, bieten auch für große Modelle genug Platz. Beispiele sind der NVIDIA DGX Spark mit 128 GB und Mini-PCs mit AMD Ryzen AI Max+ 395 und laut AMD bis zu 128 GB. Der DGX Spark erreicht laut NVIDIA eine Speicherbandbreite von 273 GB/s.
- Auf einer Workstation mit Grafikkarte läuft das Modell im Grafikspeicher (VRAM), solange es hineinpasst. Die NVIDIA RTX PRO 6000 bietet laut NVIDIA 96 GB VRAM mit einer Bandbreite von 1.792 GB/s.
Reicht die Hardware für das Modell nicht aus, das du brauchst, bindest du ein Modell über eine API an, zum Beispiel die Veyllo API. Mehr dazu unten.
VAF einrichten und im Netzwerk freigeben
Unter Linux fragt der Installer, ob VAF als Desktop-App oder als Server laufen soll. Im Server-Modus richtet er einen Dienst ein, der automatisch mit dem Rechner startet, auch ohne angemeldeten Benutzer. Außerdem erzeugt er die Zertifikate und gibt den Zugangsport in der Firewall für das lokale Netzwerk frei.
git clone https://github.com/Veyllo-Labs/VAF.git && cd VAF
chmod +x install.sh && ./install.sh --serverIm Server-Modus sind Zugangsadresse, Zertifikat und Firewall-Regel an die IP-Adresse gebunden. Gib dem Server deshalb eine feste IP-Adresse oder reserviere sie im Router.
In der Desktop-App reicht ein Schalter in den Einstellungen oder der Befehl vaf server on, dann ist VAF im lokalen Netzwerk per HTTPS erreichbar. Unter Windows kann das an der Firewall scheitern, wenn VAF ohne Administratorrechte läuft. Dein Team ruft die Adresse des Rechners im Browser auf, meist mit Port 8443, und bestätigt beim ersten Aufruf das selbst erzeugte Zertifikat oder installiert die Zertifizierungsstelle von VAF als vertrauenswürdig.
Wer die Weboberfläche über das Netzwerk aufruft, muss sich anmelden, standardmäßig mit Zwei-Faktor-Authentifizierung. Konten und Rechte verwaltet ein Administrator in den Einstellungen.
Das lokale Modell
Lokale Modelle führt VAF mit einem eigenen llama.cpp-Server aus, im GGUF-Format. Für die GPU-Beschleunigung nutzt der Server unter Linux Vulkan auf Grafikkarten von NVIDIA, AMD und Intel, unter Windows CUDA, ROCm, SYCL oder Vulkan und auf Macs mit Apple-Chip Metal. Unter Linux läuft er ohne Grafikkarte auch auf der CPU. VAF sendet keine Telemetriedaten.
Für Rechner mit schwacher GPU oder wenig Grafikspeicher bietet der Einrichtungsassistent ausdrücklich an, einen API-Key für die Veyllo API einzutragen. Das Modell läuft dann nicht mehr lokal, und deine Prompts und Tool-Ergebnisse gehen an diesen Anbieter. Der Assistent stellt dabei auch die Bilderkennung auf Veyllo um und, solange du keinen anderen Dienst für die Spracherkennung gewählt hast, auch diese. Gedächtnis, Zugangsdaten und Dateien speichert VAF weiterhin in ~/.vaf/ und in deinem eigenen Datenbank-Container.
Zugriff von unterwegs per VPN
Den Zugangsport gibst du nicht ins Internet frei, das schließt die Sicherheitsrichtlinie von VAF ausdrücklich aus. Öffentliche Netze lassen sich auch gar nicht freigeben, und API-Anfragen von Adressen außerhalb der zugelassenen Netze lehnt VAF ab. Seitenaufrufe prüft VAF dabei nicht, die Anmeldeseite wird also trotzdem ausgeliefert. Ein VPN richtet VAF nicht selbst ein, das bringst du mit.
Geräte aus einem WireGuard- oder OpenVPN-Netz mit Adressen im Bereich 10.x sind standardmäßig zugelassen, sofern das VPN ein eigenes Netz meldet. Ein WireGuard mit /32-Adressen gibst du mit vaf server networks allow frei, Tailscale, Headscale und NetBird mit einem einzigen Befehl. Auf einem Headless-Server braucht VAF sudo ohne Passwort, um die Firewall anzupassen, sonst gibst du den Port selbst frei.
vaf server networks tailscale onMit vaf server vpn-only on sperrst du das lokale Netzwerk aus. Auf einem gemieteten Server lässt du den Zugangsport in der Firewall des Anbieters geschlossen, gibst dort nur den Port des VPN frei und richtest VAF mit vaf server provision --no-firewall ein.
Grenzen, die du kennen solltest
Standardmäßig arbeitet ein einziger Worker die Chat-Anfragen nacheinander ab. Ein langer Chat-Lauf einer Person hält also die Chat-Anfragen der anderen auf. VAF ist eine Alpha-Version, und die Sicherheitsrichtlinie des Projekts sieht den Einsatz für private und interne Zwecke vor, nicht für den Produktivbetrieb.