Weiter zum Inhalt
Künstliche Intelligenz

Alpaca-LoRA auf deinem Gerät ausführen: So geht's

Lerne in dieser umfassenden Anleitung, wie du Alpaca-LoRA auf deinem Gerät ausführst. Entdecke, wie dieses Open-Source-Modell LoRA-Technologie nutzt, um einen leistungsstarken und zugleich effizienten KI-Chatbot zu bieten.
Kurtis Pykes 's photo
Kurtis Pykes
Aktualisiert · 7 Min. lesen

Entdecke KI

ChatGPTClaudePerplexity

Erstelle dein kostenloses Konto

Üben und Lernpfad deinen Fortschritt.

Weiter Mit Google
Durch Klick auf die Schaltfläche akzeptierst du unsere Nutzungsbedingungen, unsere Datenschutzrichtlinie und die Speicherung deiner Daten in den USA.

Während generative KI immer mehr Fahrt aufnimmt, nutzen Entwicklerinnen und Entwickler weltweit die Chance, spannende Anwendungen mit natürlicher Sprache zu bauen. Ein Tool hat zuletzt besonders viel Aufmerksamkeit bekommen: ChatGPT.

ChatGPT ist ein von OpenAI entwickeltes Sprachmodell. Sein Zweck ist es, als KI-gestützter Chatbot Gespräche zu führen, die sich menschlich anfühlen. So nützlich es auch ist, ganz ohne Nachteile ist es nicht. ChatGPT ist nicht Open Source, das heißt, der Quellcode ist nicht zugänglich und kann nicht verändert werden. Außerdem ist es extrem ressourcenintensiv – eine eigene Implementierung zu bauen ist daher selten eine gute Lösung.

Genau diese Probleme haben eine Reihe von ChatGPT-Alternativen hervorgebracht, etwa Alpaca-LoRA. Diese funktionieren ähnlich wie ChatGPT, sind aber quelloffen und benötigen deutlich weniger Ressourcen.

In diesem Tutorial konzentrieren wir uns auf Alpaca-LoRA. Du erfährst, was es ist, welche Voraussetzungen du zum Ausführen auf deinem Gerät brauchst und welche Schritte dafür nötig sind.

Was ist Alpaca LoRA?

Anfang März 2023 veröffentlichte Eric J. Wang das Projekt Alpaca-LoRA. Es enthält Code, um die Ergebnisse von Stanford Alpaca mithilfe von Parameter-Efficient Fine-Tuning (PEFT) zu reproduzieren – einer Bibliothek, mit der sich Transformer-Modelle per LoRA effizient feinabstimmen lassen.

LoRA verstehen

Low-Rank Adaptation großer Sprachmodelle (LoRA) ist eine Methode, die das Training großer Modelle beschleunigt und dabei weniger Speicher benötigt.

So funktioniert’s:

  • Bestehende Gewichte einfrieren. Stell dir das Modell als ein Geflecht aus Knoten vor (das sind die „Gewichte“). Normalerweise werden beim Training alle Knoten angepasst. LoRA sagt: „Wir lassen sie, wie sie sind.“
  • Neue Gewichte hinzufügen. LoRA fügt dann einige neue, einfachere Verbindungen (zusätzliche Gewichte) hinzu.
  • Nur die neuen Gewichte trainieren. Statt das ganze komplexe Netz zu verändern, optimierst du nur diese neuen, einfacheren Verbindungen.

So sparst du Zeit und Speicher und machst das Modell trotzdem besser.

Vorteile von LoRA

Die Vorteile von LoRA sind:

  • Portabilität – Rank-Dekompositions-Gewichtsmatrizen enthalten deutlich weniger trainierbare Parameter als das Ausgangsmodell; die trainierten LoRA-Gewichte sind daher leicht portierbar und laufen sogar auf einem Raspberry Pi.
  • Zugänglichkeit – Im Vergleich zum herkömmlichen Fine-Tuning reduziert LoRA den GPU-Speicherbedarf erheblich; dadurch wird Fine-Tuning auf Consumer-GPUs wie Tesla T4, RTX 3080 oder sogar RTX 2080 Ti möglich.

Alpaca: Das Open-Source-Modell

Alpaca ist ein Open-Source-Sprachmodell, das per Instruktionsdaten feinabgestimmt wurde und auf Large Language Model Meta AI (LLaMA) basiert. Entwickelt wurde es von einem Forschungsteam der Stanford University mit dem Ziel, große Sprachmodelle (LLMs) breiter zugänglich zu machen.

Damit sind wir bei Alpaca-LoRA.

Das Alpaca-LoRA-Modell ist eine ressourcenschonendere Variante des Stanford-Alpaca-Modells. Es nutzt LoRA, um das Training zu beschleunigen und gleichzeitig weniger Speicher zu verbrauchen.

Voraussetzungen für Alpaca-LoRA

Um Alpaca-LoRA lokal auszuführen, brauchst du eine GPU. Das kann eine GPU mit niedriger Ausstattung wie die NVIDIA T4 sein oder eine Consumer-GPU wie die 4090. Laut Eric J. Wang, dem Projektinitiator, läuft das Modell „innerhalb weniger Stunden auf einer einzelnen RTX 4090“.

Hinweis: Die Anweisungen in diesem Artikel folgen der Alpaca-LoRA-Repository von Eric J. Wang.

Alpaca-LoRA in 4 Schritten ausführen

Schritt 1: Virtuelle Umgebung erstellen (optional)

Virtuelle Umgebungen sind isolierte Container für die Python-Abhängigkeiten eines Projekts. So bleiben die Abhängigkeiten verschiedener Projekte sauber getrennt, was das Teilen vereinfacht und Konflikte reduziert.

Sie ist nicht zwingend nötig, wird für Alpaca-LoRA aber empfohlen.

Erstelle unter Windows per Eingabeaufforderung eine virtuelle Umgebung mit:

py -m venv venv

Damit wird im aktuellen Arbeitsverzeichnis eine Umgebung namens venv angelegt.

Hinweis: Du kannst den Namen frei wählen, indem du das zweite venv durch deinen Wunschnamen ersetzt.

Bevor du Abhängigkeiten installierst, musst du die virtuelle Umgebung aktivieren. Führe dazu aus:

venv\Scripts\activate.bat

Wenn du die virtuelle Umgebung nicht mehr brauchst, deaktiviere sie mit:

deactivate

Jetzt kannst du mit Alpaca-LoRA loslegen.

Schritt 2: Setup

Als Erstes klonst du das Repository von GitHub und installierst die benötigten Abhängigkeiten.

Klonen des GitHub-Repos:

git clone https://github.com/tloen/alpaca-lora.git

Wechsle dann in das soeben geklonte Verzeichnis alpaca-lora:

cd alpaca-lora

Installiere anschließend die Abhängigkeiten:

pip install -r requirements.txt

Schritt 3: Modell feinabstimmen (optional)

Im Repository alpaca-lora liegt die Datei finetune.py. Sie enthält unter anderem eine einfache Anwendung von Parameter-Efficient Fine-Tuning (PEFT) für das LLaMA-Modell.

Diese Datei führst du aus, wenn du die Hyperparameter des Modells anpassen willst – verpflichtend ist das nicht. Laut Autor des Repositories gilt: „Ohne Hyperparameter-Tuning erzeugt das LoRA-Modell Ausgaben, die mit dem Stanford-Alpaca-Modell vergleichbar sind. Weiteres Tuning kann die Leistung möglicherweise noch verbessern [...].“

So nutzt du finetune.py beispielhaft:

python -m finetune.py \
    --base_model 'decapoda-research/llama-7b-hf' \
    --data_path 'yahma/alpaca-cleaned' \
    --output_dir './lora-alpaca' \
    --batch_size 128 \
    --micro_batch_size 4 \
    --num_epochs 3 \
    --learning_rate 1e-4 \
    --cutoff_len 512 \
    --val_set_size 2000 \
    --lora_r 8 \
    --lora_alpha 16 \
    --lora_dropout 0.05 \
    --lora_target_modules '[q_proj,v_proj]' \
    --train_on_inputs \
    --group_by_length

Schritt 4: Modell ausführen / Inferenz

Ebenfalls im Repository alpaca-lora findest du die Datei generate.py. Beim Ausführen von generate.py passiert Folgendes:

  • Das Basismodell wird aus dem Hugging Face Model Hub geladen.
  • Die Modellgewichte werden aus tloen/alpaca-lora-7b gelesen.
  • Eine Gradio-Oberfläche startet, in der du Inferenz für deine Eingaben durchführen kannst.

Zum Zeitpunkt der Erstellung war der aktuelle Alpaca-LoRA-Adapter für das Training alpaca-lora-7b. Er wurde am 26. März 2023 mit folgendem Befehl trainiert:

python finetune.py \
    --base_model='decapoda-research/llama-7b-hf' \
    --num_epochs=10 \
    --cutoff_len=512 \
    --group_by_length \
    --output_dir='./lora-alpaca' \
    --lora_target_modules='[q_proj,k_proj,v_proj,o_proj]' \
    --lora_r=16 \
    --micro_batch_size=8

Wenn du einen anderen Adapter verwenden möchtest, gib beim Ausführen von generate.py einfach den Pfad zu deinem bevorzugten Adapter an.

python generate.py \
    --load_8bit \
    --base_model 'decapoda-research/llama-7b-hf' \
    --lora_weights 'tloen/alpaca-lora-7b'

Fazit

Alpaca-LoRA ist eine ressourcenschonendere Variante des Stanford-Alpaca-Modells. Durch Low-Rank Adaptation großer Sprachmodelle (LoRA) wird das Training beschleunigt und deutlich weniger Speicher verbraucht als beim ursprünglichen Alpaca-Modell.

Lerne mehr über Large Language Models (LLMs) und generative KI mit diesen Tutorials:


Kurtis Pykes 's photo
Author
Kurtis Pykes
LinkedIn
Themen
Künstliche Intelligenz

Starte noch heute in deine KI-Reise!

Kurs

Konzeptuelle Einführung in generative KI

2 Std.
120.9K
Erfahren Sie, wie Sie generative KI verantwortungsvoll nutzen. Lernen Sie ihre Entwicklung und Auswirkungen kennen.
Details anzeigenKurs Starten

Lernpfad

Grundlagen der KI

10 Std.
Lerne die Grundlagen der KI kennen, finde heraus, wie du KI effektiv bei der Arbeit nutzen kannst, und tauche in Modelle wie chatGPT ein, um dich in der dynamischen KI-Landschaft zurechtzufinden.

Erstelle dein kostenloses Konto

Üben und Lernpfad deinen Fortschritt.

Weiter Mit Google
Durch Klick auf die Schaltfläche akzeptierst du unsere Nutzungsbedingungen, unsere Datenschutzrichtlinie und die Speicherung deiner Daten in den USA.
Mehr anzeigen
Ähnlich

Blog

Arten von KI-Agenten: Ihre Rollen, Strukturen und Anwendungen verstehen

Lerne die wichtigsten Arten von KI-Agenten kennen, wie sie mit ihrer Umgebung interagieren und wie sie in verschiedenen Branchen eingesetzt werden. Verstehe einfache reflexive, modellbasierte, zielbasierte, nutzenbasierte, lernende Agenten und mehr.

Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Tutorial

Python Hallo Welt: Ein Leitfaden für Programmieranfänger

Lerne die Grundlagen von Python, indem du das Programm print(„Hello World“) ausführst.
Adel Nehme's photo

Adel Nehme

3 Min.

Tutorial

Python-Lambda-Funktionen: Ein Leitfaden für Anfänger

Lerne mehr über Python-Lambda-Funktionen, wozu sie gut sind und wann man sie benutzt. Enthält praktische Beispiele und bewährte Methoden für eine effektive Umsetzung.
Mark Pedigo's photo

Mark Pedigo

10 Min.

Tutorial

OLS-Regression: Die wichtigsten Ideen erklärt

Gewinne Vertrauen in die OLS-Regression, indem du ihre theoretischen Grundlagen beherrschst. Erforsche, wie du einfache Implementierungen in Excel, R und Python durchführst.
Josef Waples's photo

Josef Waples

8 Min.

Tutorial

Fibonacci-Folge in Python: Lerne und entdecke Programmiertechniken

Finde raus, wie die Fibonacci-Folge funktioniert. Schau dir die mathematischen Eigenschaften und die Anwendungen in der echten Welt an.
Laiba Siddiqui's photo

Laiba Siddiqui

6 Min.

Mehr anzeigen