--- license: mit datasets: - wikimedia/wikipedia language: - de - en metrics: - perplexity base_model: - dbmdz/german-gpt2 pipeline_tag: text-generation library_name: transformers tags: - gpt2 - german - deutsch - causal-lm - language-model - 24-layers - expanded-architecture --- # GPT2-24Layers 🇩🇪 Ein erweitertes GPT-2 Modell mit **24 Transformer-Layern** (statt der originalen 12), das auf **deutscher Wikipedia** trainiert wurde. ## Modell-Beschreibung Dieses Modell basiert auf der originalen GPT-2 Architektur von OpenAI, wurde jedoch strukturell erweitert: | Eigenschaft | Original GPT-2 | GPT2-24Layers | |---|---|---| | Transformer-Layer | 12 | **24** | | Attention Heads | 12 | 12 | | Hidden Size | 768 | 768 | | Vocab Size | 50,257 | 50,257 | | Context Window | 1024 | 1024 | | Parameter (ca.) | ~124M | **~200M** | Die zusätzlichen Layer wurden aus dem originalen GPT-2 dupliziert und anschließend durch ein **Heilungs-Training** auf deutscher Wikipedia stabilisiert, sodass alle Layer kohärent zusammenarbeiten. ## Training ### Phase 1 – Heilungs-Training (Architektur-Stabilisierung) - **Datensatz:** [wikimedia/wikipedia](https://huggingface.co/datasets/wikimedia/wikipedia) (`20231101.de`) – ~2.7M deutsche Wikipedia-Artikel - **Hardware:** NVIDIA T4 (16 GB VRAM) - **Precision:** FP16 - **Lernrate:** 3e-5 - **Batch Size:** 2 (mit Gradient Accumulation Steps: 6 → effektiv 12) - **Optimizer:** AdamW (fused) - **Block Size:** 512 Token - **Epochen:** 1 ### Trainings-Prozess 1. **Architektur-Erweiterung:** Die Layer 0–11 des originalen GPT-2 wurden dupliziert, um Layer 12–23 zu erzeugen. 2. **Heilungs-Training:** Das erweiterte Modell wurde auf der deutschen Wikipedia trainiert, damit die duplizierten Layer eigene Repräsentationen lernen und das Modell stabil generiert. ## Verwendung ```python from transformers import GPT2LMHeadModel, GPT2TokenizerFast model = GPT2LMHeadModel.from_pretrained("Atomic-Ai/GPT2-24Layers") tokenizer = GPT2TokenizerFast.from_pretrained("Atomic-Ai/GPT2-24Layers") input_text = "Die Geschichte Deutschlands" input_ids = tokenizer.encode(input_text, return_tensors="pt") output = model.generate( input_ids, max_length=200, temperature=0.8, top_p=0.9, top_k=50, do_sample=True, no_repeat_ngram_size=3, ) print(tokenizer.decode(output[0], skip_special_tokens=True)) ``` ## Einschränkungen - **Tokenizer:** Verwendet den originalen GPT-2 Byte-Pair-Encoding Tokenizer, der primär auf englischen Texten trainiert wurde. Deutsche Umlaute (ä, ö, ü, ß) werden daher in mehrere Tokens aufgeteilt, was die Effizienz bei deutschen Texten reduziert. - **Modellgröße:** Mit ~200M Parametern ist das Modell deutlich kleiner als moderne LLMs und eignet sich eher für Experimente und Forschung als für Produktionsumgebungen. - **Trainingsdaten:** Ausschließlich auf Wikipedia trainiert – der Schreibstil ist daher eher enzyklopädisch. Konversationelle oder kreative Texte sind nicht die Stärke des Modells. ## Zitierung ```bibtex @misc{atomic-ai-gpt2-24layers, title={GPT2-24Layers: An Expanded German GPT-2 Model}, author={Atomic AI Studios}, year={2026}, url={https://huggingface.co/Atomic-Ai/GPT2-24Layers} } ``` ## Lizenz MIT