ByteBuddy
Nicolai PlenkByteBuddy ist eine native macOS-Anwendung, die es ermöglicht, eine lokale Wissensdatenbank auf Basis eigener Dokumente abzufragen. Die App implementiert eine RAG-Architektur (Retrieval-Augmented Generation), um LLM-generierte Antworten auf einen spezifischen nutzerdefinierten Datenbestand zu beschränken. Die gesamte Datenverarbeitung und Inferenz erfolgt lokal auf dem Gerät.
Technische Architektur
Die Anwendung ist in Swift geschrieben und nutzt Apples MLX-Framework für das lokale maschinelle Lernen sowie SwiftUI für das Interface. Die Verarbeitung der Dokumente und Anfragen gliedert sich in zwei wesentliche Phasen:
- Ingestion & Embedding (Datenaufbereitung) Wenn Dokumente (unterstützt werden .pdf, .docx, .doc und .txt) in die App geladen werden, extrahiert ByteBuddy den Rohtext und unterteilt ihn in kleinere Segmente (Chunks).
Für die semantische Erfassung dieser Segmente kommt das Embedding-Modell paraphrase-multilingual-MiniLM-L12-v2 (ein Sentence-BERT Modell) zum Einsatz. Es generiert für jeden Chunk einen Vektor, der in einer lokalen Datenbank gespeichert wird, um spätere Ähnlichkeitssuchen zu ermöglichen.
- Retrieval & Generation (Suche & Antwortgenerierung)
Der Ablauf einer Nutzeranfrage im Chat funktioniert wie folgt:
- Vector Search: Die Eingabe des Nutzers wird durch das gleiche Embedding-Modell vektorisiert. Anschließend vergleicht die App diesen Vektor mit der Datenbank, um die semantisch ähnlichsten Textabschnitte aus den indexierten Dokumenten zu ermitteln.
- Context Injection: Die relevantesten Textabschnitte werden als Kontext zusammen mit der ursprünglichen Frage in ein definiertes System-Prompt integriert.
- Textgenerierung: Für die eigentliche Beantwortung nutzt ByteBuddy das Sprachmodell Llama-3.2-3B-Instruct-4bit. Das Modell wird über das MLX-Framework geladen. Durch die 4-bit Quantisierung ist es ausreichend speichereffizient, um auf gängigen Apple Silicon Macs lokal ausgeführt zu werden.
Kernmerkmale der App
- On-Device Verarbeitung: Sowohl die Generierung der Embeddings als auch die Ausführung des LLMs finden vollständig auf dem lokalen Mac statt. Es bestehen keine Abhängigkeiten zu externen APIs oder Cloud-Diensten.
- Reduzierung von Halluzinationen: Durch die RAG-Architektur und entsprechende System-Prompts wird das Llama-Modell angewiesen, Antworten ausschließlich auf Basis des injizierten Kontexts zu formulieren.
- Quellennachweis: Die generierten Antworten beinhalten Referenzen zu den jeweiligen Ursprungsdokumenten. Über eine integrierte Vorschau (mittels PDFKit und TextKit) können die referenzierten Dokumente direkt in der App geöffnet und validiert werden.
- Datenschutz: Die generierten Antworten und Dokumente werden lokal gespeichert und nicht an externe Dienste übertragen.
