„Die Möglichkeit, Sprachmodelle lokal auf meinem Mac anzupassen, ohne dabei auf Cloud-Dienste zurückgreifen zu müssen, ist ein echter Gewinn“, sagt ein Nutzer über die neue Software MLX.
Die Anpassung von Sprachmodellen war bisher oft mit hohen Kosten verbunden, da Nutzer auf Cloud-GPUs angewiesen waren. Mit der neuen Software MLX können Anwender, die über einen Mac mit einem Apple Silicon Chip verfügen, offene Modelle nun lokal an ihre eigenen Daten anpassen, ohne dass dabei Kosten für Cloud-Dienste anfallen.
Einführung in MLX
Die Entscheidung, von Windows auf Mac umzusteigen, wurde von vielen Nutzern getroffen, die die enge Integration von Hardware und Software bei Apple schätzen. Diese Integration ermöglicht es nun, Sprachmodelle vollständig auf dem Gerät zu optimieren, ohne dass Daten das eigene System verlassen müssen.
MLX, eine Open-Source-Bibliothek, wurde speziell für die Architektur von Apple Silicon entwickelt. Sie nutzt die einheitliche Speicherarchitektur, bei der CPU und GPU auf denselben Speicherpool zugreifen. Dies eliminiert den sonst notwendigen Kopiervorgang zwischen System- und GPU-Speicher, was die lokale Anpassung von Modellen praktikabel macht.
Systemanforderungen und Installation
Um MLX nutzen zu können, benötigen Anwender einen Apple Silicon Mac (M1 oder neuer), macOS Ventura 13.5 oder höher sowie Python 3.10 oder eine neuere Version. Intel-Macs werden nicht unterstützt.
Die Installation der benötigten Tools erfolgt über den Befehl:
pip install "mlx-lm[train]"
Nach der Installation kann ein einfacher Test durchgeführt werden, um sicherzustellen, dass alles korrekt funktioniert.
Vorbereitung der Daten
Für die Anpassung müssen die Trainingsdaten in einem bestimmten Format vorliegen. MLX LM erwartet eine Ordnerstruktur mit drei Dateien: train.jsonl, valid.jsonl und optional test.jsonl. Jede Zeile in diesen Dateien enthält ein JSON-Beispiel.
Die unterstützten Formate sind: Chat, Completions und Text. Das Chat-Format ist am robustesten und speichert rollenspezifische Nachrichten pro Zeile.
Training eines LoRA-Adapters
Die Low-Rank Adaptation (LoRA) Methode ermöglicht es, die ursprünglichen Gewichte des Modells einzufrieren und nur kleine Adaptermatrizen zu trainieren. Dies reduziert den Speicherbedarf erheblich, während die Qualität der Anpassung erhalten bleibt. Weitere Informationen dazu finden Sie in unserem Leitfaden zur lokalen Nutzung von Tiny AI-Modellen.
Ein Training wird mit folgendem Befehl gestartet:
mlx_lm.lora
--model mlx-community/Mistral-7B-Instruct-v0.3-4bit
--train
--data ./data
--iters 600
--batch-size 1
Wichtige Parameter wie die Anzahl der Schichten und die Lernrate beeinflussen die Qualität des Modells. Ein gängiger Ausgangspunkt sind 16 Schichten mit einer moderaten Ranggröße.
Speichereinsparungen durch Quantisierung
Die Quantisierung ist ein weiterer wichtiger Aspekt, der in MLX integriert ist. Ein 4-Bit-Modell benötigt erheblich weniger Speicher, was die Anpassung auf Geräten mit begrenztem Arbeitsspeicher erleichtert.
Testen und Generieren mit dem Adapter
Nach dem Training kann das Modell getestet werden, um die Leistung zu bewerten. Der folgende Befehl ermöglicht es, die Ergebnisse zu überprüfen:
mlx_lm.lora
--model mlx-community/Mistral-7B-Instruct-v0.3-4bit
--adapter-path ./adapters
--data ./data
--test
Fusion und Bereitstellung des Modells
Für die Bereitstellung wird der Adapter in die Basisgewichte integriert. Dies geschieht mit dem Befehl:
mlx_lm.fuse
--model mlx-community/Mistral-7B-Instruct-v0.3-4bit
--adapter-path ./adapters
--save-path ./fused-model
Das fusionierte Modell kann dann über einen OpenAI-kompatiblen Endpunkt bereitgestellt werden, was die Integration in bestehende Anwendungen erleichtert.
Fazit
Mit MLX steht Nutzern eine vollständige lokale Anpassungsumgebung zur Verfügung, die es ermöglicht, Sprachmodelle effizient und kostengünstig zu optimieren. Die enge Integration von Hardware und Software bei Apple hat sich als vorteilhaft erwiesen und eröffnet neue Möglichkeiten für die Nutzung von KI-Technologien direkt auf dem eigenen Gerät.
„`
Quellen: kdnuggets
Bildquelle: KI generiert
🚀