AI Personal Learning
und praktische Anleitung
讯飞绘镜

Unsloth: ein Open-Source-Tool für die effiziente Feinabstimmung und das Training großer Sprachmodelle

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.

Unsloth Zoo:提供免费大模型微调工具库,提升模型性能-1


 

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

  1. 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
  2. Klon-LagerKlonen Sie das Unsloth-Repository mit Git: bash
    git clone https://github.com/unslothai/unsloth.git
    cd unsloth
  3. Unsloth installieren: Führen Sie den folgenden Befehl aus, um Unsloth zu installieren: bash
    pip install -e .

Anleitungen

  1. 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)
    
  2. 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()
    
  3. 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)
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Unsloth: ein Open-Source-Tool für die effiziente Feinabstimmung und das Training großer Sprachmodelle
de_DEDeutsch