Allgemeine Einführung
Unsloth ist ein Open-Source-Projekt, das effiziente Werkzeuge für die Feinabstimmung und das Training von Large Language Models (LLMs) bereitstellt. Das Projekt unterstützt eine breite Palette bekannter Modelle, darunter Llama, Mistral, Phi und Gemma usw. Zu den wichtigsten Merkmalen von Unsloth gehört die Fähigkeit, die Speichernutzung erheblich zu reduzieren und das Training zu beschleunigen, sodass die Benutzer die Feinabstimmung und das Training der Modelle in kürzerer Zeit abschließen können. Darüber hinaus bietet Unsloth eine ausführliche Dokumentation und Tutorials, die den Benutzern einen schnellen Einstieg ermöglichen und ihnen helfen, die Vorteile der Funktionen voll auszuschöpfen.
Funktionsliste
- Effiziente FeinabstimmungUnterstützung für mehrere Modelle wie Llama, Mistral, Phi und Gemma, mit 2-5x schnellerer Feinabstimmung und 50-80% weniger Speicherverbrauch.
- Kostenlose NutzungEin kostenloses Notebook wird zur Verfügung gestellt, damit die Benutzer einfach einen Datensatz hinzufügen und den gesamten Code ausführen können, um ein fein abgestimmtes Modell zu erhalten.
- Mehrere ExportformateUnterstützung für den Export von feinabgestimmten Modellen nach GGUF, Ollama, vLLM oder das Hochladen zu Hugging Face.
- dynamische QuantifizierungUnterstützung der dynamischen 4-Bit-Quantisierung für verbesserte Modellgenauigkeit bei weniger als 10% Speicherbedarf.
- Lange KontextunterstützungUnterstützt 89K Kontextfenster für Llama 3.3 (70B) Modelle und 342K Kontextfenster für Llama 3.1 (8B) Modelle.
- Visuelle ModellierungsunterstützungUnterstützt Bildverarbeitungsmodelle wie Llama 3.2 Vision (11B), Qwen 2.5 VL (7B) und Pixtral (12B).
- Optimierung der ArgumentationBietet eine Vielzahl von Optionen zur Optimierung der Inferenz, um die Geschwindigkeit der Inferenz erheblich zu verbessern.
Hilfe verwenden
Einbauverfahren
- Installation von AbhängigkeitenStellen Sie sicher, dass Python 3.8 und höher installiert ist und dass die folgenden Abhängigkeiten installiert sind:
bash
pip install torch transformers datasets
- Klon-LagerKlonen Sie das Unsloth-Repository mit Git:
bash
git clone https://github.com/unslothai/unsloth.git
cd unsloth
- Unsloth installieren: Führen Sie den folgenden Befehl aus, um Unsloth zu installieren:
bash
pip install -e .
Anleitungen
- Modelle ladenLaden Sie das vortrainierte Modell in ein Python-Skript:
from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "unslothai/llama-3.3" model = AutoModelForCausalLM.from_pretrained(model_name) tokenizer = AutoTokenizer.from_pretrained(model_name)
- Feinabstimmung des Modells: Verwenden Sie das von Unsloth bereitgestellte Notizbuch für die Feinabstimmung des Modells. Hier ist ein einfaches Beispiel:
from unsloth import Trainer, TrainingArguments training_args = TrainingArguments( output_dir="./results", num_train_epochs=3, per_device_train_batch_size=4, save_steps=10_000, save_total_limit=2, ) trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, eval_dataset=eval_dataset, ) trainer.train()
- Modell exportierenSobald die Feinabstimmung abgeschlossen ist, kann das Modell in eine Vielzahl von Formaten exportiert werden:
python
model.save_pretrained("./finetuned_model")
tokenizer.save_pretrained("./finetuned_model")
Detaillierte Funktionsweise
- dynamische QuantifizierungUnsloth unterstützt die dynamische 4-Bit-Quantisierung während des Feinabstimmungsprozesses, was die Genauigkeit des Modells erheblich verbessern kann, während weniger als 10% Speicherplatz benötigt werden. Der Benutzer kann diese Funktion in den Trainingsparametern aktivieren:
training_args = TrainingArguments( output_dir="./results", num_train_epochs=3, per_device_train_batch_size=4, save_steps=10_000, save_total_limit=2, quantization="dynamic_4bit" )
- Lange KontextunterstützungUnsloth unterstützt das 89K Kontextfenster des Llama 3.3 (70B) Modells und das 342K Kontextfenster des Llama 3.1 (8B) Modells. Dadurch wird das Modell noch besser im Umgang mit langen Texten. Der Benutzer kann die Größe des Kontextfensters beim Laden des Modells festlegen:
model = AutoModelForCausalLM.from_pretrained(model_name, context_window=89000)
- Visuelle ModellierungsunterstützungUnsloth unterstützt auch eine Vielzahl von Bildverarbeitungsmodellen wie Llama 3.2 Vision (11B), Qwen 2.5 VL (7B) und Pixtral (12B). Benutzer können diese Modelle für Bilderzeugungs- und -verarbeitungsaufgaben verwenden:
python
model_name = "unslothai/llama-3.2-vision"
model = AutoModelForImageGeneration.from_pretrained(model_name)