Skip to content

streisel/llm-finetuning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Mistral 7B LoRA Fine-Tuning mit Docker

Dieses Projekt ermöglicht das Fine-Tuning des Mistral-7B-Instruct-v0.3-Modells mit LoRA, ohne das Modell erneut herunterladen zu müssen. Es nutzt Docker mit GPU-Support und eine lokale Hugging Face Model-Cache-Struktur, um den Workflow zu beschleunigen.


🚀 1. Voraussetzungen

Hardware & Software

  • GPU: NVIDIA RTX 4070 Ti Super mit 16GB VRAM (getestet mit 4-bit Quantisierung)
  • Software:
    • Docker mit NVIDIA GPU-Unterstützung
    • Python 3.10 oder neuer
    • Hugging Face CLI für lokalen Modell-Download

Vorbereitung: NVIDIA Container Toolkit installieren

Falls nicht installiert, folge dieser Anleitung:

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker

📥 2. Modell lokal herunterladen

Da das Modell nicht in Docker heruntergeladen werden soll, muss es zuerst lokal gespeichert werden.

mkdir -p ~/huggingface_models/mistral-7b
huggingface-cli download mistralai/Mistral-7B-Instruct-v0.3 --local-dir ~/huggingface_models/mistral-7b --resume-download

🚀 Prüfe, ob das Modell vollständig ist:

ls -lah ~/huggingface_models/mistral-7b

Wichtige Dateien:

config.json
consolidated.safetensors
tokenizer.json
special_tokens_map.json

🏗 3. Docker-Container bauen

Um den Container für das Fine-Tuning zu bauen:

docker build --build-arg PIP_CACHE_DIR=/root/.cache/pip \
    -t mistral-lora-cache -f Dockerfile .

Das Modell wird nicht heruntergeladen, sondern als Volume gemountet.


🚀 4. Fine-Tuning starten

Nachdem der Container gebaut wurde, kann das Fine-Tuning gestartet werden.

docker run --rm --gpus all \
    -v ~/huggingface_models/mistral-7b:/workspace/models/mistral-7b \
    -v ~/.docker-cache/pip:/root/.cache/pip \
    -v ~/.docker-cache/apt:/var/cache/apt \
    -v "$(pwd)/models":/models \
    -v "$(pwd)/logs":/logs \
    mistral-lora-cache "32552420-7" "1" "Dies ist ein Beispieltext für Fine-Tuning."

📌 Erklärung der Parameter:

Argument Beschreibung
"32552420-7" CPV-Code des Trainingsdatensatzes
"1" Label (1 = Positiv, 0 = Negativ)
"Dies ist ein Beispieltext für Fine-Tuning." Text, der für LoRA-Training verwendet wird

🛠 5. Optional: Modell testen, bevor Fine-Tuning läuft

Falls du erst prüfen willst, ob das Modell richtig geladen wird:

python scripts/test_model.py

🚀 Wenn das Modell erfolgreich lädt, kannst du das Training starten!


📝 6. Projektstruktur

llm-finetuning/
├── Dockerfile          # Container mit GPU-Unterstützung und LoRA-Training
├── README.md           # Diese Anleitung
├── scripts/
│   ├── train.py        # Haupt-Skript für Fine-Tuning
│   ├── test_model.py   # Test-Skript für Modell-Check
├── models/             # Speichert LoRA-Modelle
├── logs/               # Speichert Logs vom Training

Fazit

🔥 Dieses Setup erlaubt LoRA-Fine-Tuning von Mistral 7B mit minimalem Overhead.
🚀 Kein Download des Modells nötig – einfach ausführen & trainieren!
🐳 Dank Docker bleibt die Umgebung immer stabil und wiederholbar.

📌 Fragen oder Feedback? Erstelle ein GitHub-Issue!

About

Finetuning-Script für Erstellung Lora

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published