Spaces:
Running on Zero
Running on Zero
|
Download README.md from Alibrown/ZeroGPU-Mini-Trainer: direct link, hf CLI and curl.
- Browser
- Download file 4.21 kB
-
https://huggingface.co/spaces/Alibrown/ZeroGPU-Mini-Trainer/resolve/main/README.md
- Command line
-
hf download hf://spaces/Alibrown/ZeroGPU-Mini-Trainer/README.md
-
curl -L -o README.md https://huggingface.co/spaces/Alibrown/ZeroGPU-Mini-Trainer/resolve/main/README.md
4.21 kB
| title: ZeroGPU Fast Mini-Trainer | |
| emoji: ⚡ | |
| colorFrom: yellow | |
| colorTo: red | |
| sdk: gradio | |
| sdk_version: 6.31.0 | |
| app_file: app.py | |
| pinned: true | |
| hf_oauth: true | |
| hf_oauth_scopes: | |
| - read-repos | |
| - write-repos | |
| license: agpl-3.0 | |
| short_description: ZeroGPU Fast Mini-Trainer for train small LLMs | |
| LoRA-Fine-Tuning für kleine SmolLM-Modelle auf ZeroGPU. Jeder Nutzer loggt sich ein und nutzt seine eigene Tagesquote. | |
| # ZeroGPU Mini-Trainer – Anleitung für Blöde mit KI geschrieben! | |
| ## Was ist das? | |
| Eine kleine Webseite (Gradio), auf der man ein winziges KI-Modell (SmolLM) in ein paar Minuten | |
| etwas beibringen kann. Man gibt ein Modell, einen Datensatz (Dataset) und ein Ziel an, klickt | |
| auf einen Knopf, und fertig ist ein "angelernter" Aufsatz für das Modell. | |
| ## Die Begriffe in einfach | |
| - **Basismodell**: Die KI, die schon etwas kann (z. B. SmolLM2-135M-Instruct). | |
| - **Dataset**: Beispiele, wie die KI antworten soll (Frage + Antwort). | |
| - **LoRA / Adapter**: Statt das ganze Modell umzubauen, trainieren wir nur einen kleinen Zusatz | |
| (ein paar MB). Das ist schnell und billig. Der Zusatz heißt Adapter. | |
| - **ZeroGPU**: Eine GPU von Hugging Face, die man nur für ein paar Minuten am Tag bekommt. | |
| Die Zeit gehört dem Nutzer, der eingeloggt ist, nicht dem Space. | |
| - **Epoche**: Einmal alle Beispiele durchgehen. Mehr Epochen = lernt stärker, kann aber | |
| auswendig lernen. | |
| - **Loss**: Fehlerwert. Wenn er beim Training sinkt (z. B. 2.5 → 1.4), lernt das Modell. | |
| ## Welche Dateien gibt es? | |
| - `app.py` – das Programm (Oberfläche + Training + Hochladen). | |
| - `requirements.txt` – Liste der Python-Pakete, die der Space installieren soll. | |
| - `README.md` – Einstellungen für Hugging Face (Gradio, Login an). Nicht löschen! | |
| - `train.jsonl` – kleines Test-Dataset. | |
| ## Einrichten (einmalig) | |
| 1. Auf Hugging Face: **New Space** → SDK **Gradio** → Hardware **ZeroGPU**. | |
| 2. `app.py`, `requirements.txt`, `README.md` hochladen. Warten, bis der Space "Running" zeigt. | |
| 3. **New Dataset** erstellen (privat ist okay) und `train.jsonl` hochladen. | |
| 4. Optional: **New Model** (leer, privat) für das Ergebnis anlegen. | |
| ## Benutzen | |
| 1. Space öffnen, **Sign in with Hugging Face** klicken. | |
| 2. Basismodell wählen (für den Anfang 135M). | |
| 3. Dataset-URL oder `name/dataset` eintragen. | |
| 4. Ziel-Repo eintragen (oder leer lassen). | |
| 5. **Training starten**. Im Statusfeld siehst du, was passiert. | |
| 6. Am Ende steht dort der Link zum fertigen Adapter. | |
| ## Einstellungen, die du kennen musst | |
| - **Max. GPU-Sekunden**: So lange darf das Training laufen. Quote beachten (Free = ca. 5 Min/Tag). | |
| Bei 150 s hast du noch Luft für einen zweiten Versuch. | |
| - **Max. Beispiele**: Wie viele Zeilen aus dem Dataset genutzt werden. | |
| - **Epochen**: Für kleine Datasets 2-3, für große 1. | |
| - **LoRA Rank**: Größe des Zusatzes. 16 ist ein guter Start. | |
| - **Learning Rate**: 2e-4 passt für LoRA fast immer. | |
| ## Dataset-Formate (automatisch erkannt) | |
| 1. `messages` (empfohlen): | |
| `{"messages": [{"role": "user", "content": "Hi"}, {"role": "assistant", "content": "Hallo!"}]}` | |
| 2. `text`: `{"text": "ein ganzer Beispieltext"}` | |
| 3. `instruction` + `output` (auch `prompt`/`response`, `question`/`answer`). | |
| Eine Zeile pro Beispiel (JSONL), Datei z. B. `train.jsonl`. | |
| ## Das trainierte Modell benutzen | |
| ```python | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| from peft import PeftModel | |
| base = "HuggingFaceTB/SmolLM2-135M-Instruct" | |
| tok = AutoTokenizer.from_pretrained(base) | |
| model = AutoModelForCausalLM.from_pretrained(base) | |
| model = PeftModel.from_pretrained(model, "dein-name/dein-modell-repo") | |
| ``` | |
| Tipp: Mit `model = model.merge_and_unload()` wird alles zu einem normalen Modell zusammengefügt. | |
| ## Wenn was schiefgeht | |
| - **Quota-Fehler**: Die Tageszeit ist aufgebraucht. Morgen wieder oder weniger Sekunden einstellen. | |
| - **Spalten nicht erkannt**: Dataset-Format anpassen oder den Spaltennamen im Feld "Textspalte" angeben. | |
| - **Zugriff verweigert**: Beim Login die Rechte (lesen und schreiben) erlauben. | |
| - **Space startet nicht**: In den Logs (Tab "Logs") steht der Fehler. Den kopieren und fragen. | |
| - **Training bringt nichts**: Mehr und bessere Beispiele nehmen. Ein paar Hundert saubere | |
| Beispiele schlagen tausend schlechte. |