SML – Small Language Modell für den PC und Laptop

Eigenes GPT entwickeln 

Wie kann ich datensicher eigene Dokumente durchforsten und damit arbeiten? Es funktioniert mit SML direkt am eigenen PC oder Laptop. Hier findet Ihr eine leicht verständliche Schritt-für-Schritt-Anleitung, wie man ein Small Language Model (SML) lokal auf dem eigenen Rechner aufgesetzt werden kann. Das Prinzip ist bei allen SML-Modellen relativ ähnlich, egal ob man GPT-2, BLOOM oder ein anderes kleines Modell verwendet.

slm Sprachmodelle


1. Voraussetzungen prüfen

  • Betriebssystem: Windows, macOS oder Linux.

  • Hardware: Mindestens 8 GB RAM (besser 16 GB oder mehr). Für GPU-Beschleunigung benötigst Du eine entsprechende Grafikkarte (z. B. NVIDIA mit CUDA-Unterstützung).

  • Python: Version 3.7 oder höher.

Tipp: Prüfe, ob Du eine NVIDIA-GPU hast, weil das Berechnen von Modellen dort meist schneller ist. Ansonsten läuft es auch auf der CPU, allerdings langsamer.


2. Entwicklungsumgebung einrichten

  1. Python-Installation:

    • Lade Dir Python herunter und installiere es.

    • Achte darauf, das Häkchen bei „Add Python to PATH“ (Windows) zu setzen.

  2. Virtuelle Umgebung erstellen (empfohlen, um Abhängigkeiten sauber zu trennen):

    • Öffne ein Terminal (PowerShell, macOS Terminal oder Linux Shell).

    • Erstelle einen neuen Ordner, z. B. my_sml_project.

    • Wechsel in diesen Ordner und führe aus:

      bash
      python -m venv venv
    • Aktiviere die virtuelle Umgebung:

      • Windows: .\venv\Scripts\activate

      • macOS/Linux: source venv/bin/activate


3. Notwendige Pakete installieren

  • Hugging Face Transformers: Die bekannteste Bibliothek, um fertige Sprachmodelle (inkl. kleiner Modelle) einfach zu laden und zu nutzen.

  • PyTorch oder TensorFlow: Wähle eine der beiden Bibliotheken. Hugging Face funktioniert mit beiden, PyTorch ist meist gängiger.

Beispielinstallation mit PyTorch

bash
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # mit GPU-Support

(Hinweis: Der genaue CUDA-Index-URL ändert sich je nach PyTorch-Version und CUDA-Version. Für CPU-only kannst Du einfach pip install torch ohne CUDA-Index nehmen.)

Transformers und weitere Tools

bash
pip install transformers
pip install sentencepiece # Für bestimmte Modelle erforderlich

4. Modelldateien beschaffen

  1. Hugging Face Model Hub:

    • Gehe auf huggingface.co/models und suche nach einem „Small“ oder „Tiny“-Modell (z. B. distilgpt2 oder distilbert-base-uncased – das sind abgespeckte Varianten).

    • Merke Dir den Modellnamen, z. B. distilgpt2.

  2. Option 1: Automatischer Download

    • Du musst nichts manuell herunterladen, sondern kannst das Modell später per Code direkt beziehen.

  3. Option 2: Manuelles Herunterladen

    • Du kannst auf der Modellseite das Repo klonen oder die Gewichte herunterladen und lokal speichern, um offline arbeiten zu können.


5. Test-Skript schreiben und ausführen

Erstelle eine Python-Datei, z. B. run_model.py, mit folgendem Beispielcode (hier für distilgpt2):

python

from transformers import AutoTokenizer, AutoModelForCausalLM

# 1. Modell und Tokenizer laden
model_name = „distilgpt2“
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# 2. Prompt vorbereiten
prompt = „Hallo, ich bin ein kleines Sprachmodell. Heute erzähle ich dir etwas über“

# 3. Eingabe tokenisieren
input_ids = tokenizer.encode(prompt, return_tensors=„pt“)

# 4. Modellinferenz (Text generieren)
with torch.no_grad():
output_ids = model.generate(
input_ids,
max_length=50, # wie viele Token ausgegeben werden sollen
do_sample=True, # stochastisches Sampling für Varianz
top_k=50,
top_p=0.95,
temperature=1.0
)

# 5. Ausgabestring dekodieren
generated_text = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(generated_text)

Danach führst Du die Datei aus:

bash
python run_model.py

Wenn alles korrekt eingerichtet ist, sollte das Skript Dir einen kurzen Text zurückliefern.


6. GPU-Unterstützung (optional)

  • Um das Modell auf Deiner NVIDIA-GPU laufen zu lassen, brauchst Du das passende CUDA Toolkit (z. B. 11.8).

  • Stelle sicher, dass PyTorch mit CUDA-Unterstützung installiert ist (siehe Schritt 3).

  • Im Skript fügst Du Folgendes hinzu:

python

import torch

device = „cuda“ if torch.cuda.is_available() else „cpu“
model.to(device)

input_ids = input_ids.to(device)

# Dann beim Generieren genauso weitermachen


7. Feintuning (optional, wenn Du Dein Modell anpassen willst)

  1. Datensammlung: Erstelle ein Dataset mit Beispielen, an denen Du Dein Modell anpassen möchtest. Typisch: Textdateien, CSV oder JSON.

  2. Trainingsskript: Du kannst mit den Hugging Face-Bibliotheken wie Trainer oder accelerate ein Feintuning starten:

    python

    from transformers import Trainer, TrainingArguments, AutoTokenizer, AutoModelForCausalLM

    # Modell laden
    model_name = „distilgpt2“
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    model = AutoModelForCausalLM.from_pretrained(model_name)

    # Dataset laden/preparieren (dieser Teil hängt stark von Deinem Format ab)
    # …

    training_args = TrainingArguments(
    output_dir=„./results“,
    num_train_epochs=1,
    per_device_train_batch_size=2,
    save_steps=10_000,
    save_total_limit=2,
    logging_steps=100,
    logging_dir=‚./logs‘
    )

    trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset
    )

    trainer.train()

  3. Speichern: Nach dem Training kannst Du das angepasste Modell mit model.save_pretrained("mein_sml_model") lokal ablegen.


8. Troubleshooting

  • Fehlende Abhängigkeiten: Stelle sicher, dass Du transformers, torch, sentencepiece und die erforderlichen CUDA-Treiber installiert hast.

  • Speichermangel: Wenn Deine GPU/CPU nicht genug RAM hat, reduziere die max_length oder nutze ein noch kleineres Modell.

  • Performance: Gerade auf CPUs kann das Generieren recht langsam sein. Verkürze ggf. Deine Generationslänge oder rüste ggf. auf eine GPU um.


9. Nächste Schritte

  • Experimentieren: Passe die Parameter (top_k, top_p, temperature) an und beobachte, wie sich die Ausgabe ändert.

  • Auswertung: Versuche, die Qualität Deiner generierten Texte zu beurteilen und ggf. Feintuning zu betreiben.

  • Integration: Binde den Code in Deine Anwendungen ein (z. B. Webservice, Chatbot).


Quellen

Mit diesem Ablauf kannst Du ein kleines Sprachmodell lokal zum Laufen bringen und bei Bedarf an Deine eigenen Texte anpassen. Viel Erfolg!


 


Sie interessieren sich für eine Strategie zur schrittweisen Implementierung von mehr Nachhaltigkeit in Ihrem Unternehmen und wollen darüber berichten? Wie möchten gerne eine Förderung dafür nützen? Gerne stehe ich für ein kostenloses Erstgespräch zur Verfügung!


Kontaktfoto Sabine Wölbl

Dr. Sabine Wölbl

Ich freue mich über Ihre  Nachricht!   sabine.woelbl@potenzialfinder.com