googleGemma 3 - Anleitung zur Ausführung

Wie man Gemma 3 effektiv mit unseren GGUFs auf llama.cpp, Ollama, Open WebUI ausführt und wie man mit Unsloth feinabstimmt!

Google veröffentlicht Gemma 3 mit einem neuen 270M-Modell und den vorherigen Größen 1B, 4B, 12B und 27B. Die 270M und 1B sind nur für Text, während die größeren Modelle sowohl Text als auch Vision verarbeiten. Wir stellen GGUFs bereit sowie eine Anleitung, wie man es effizient ausführt und wie man feinjustiert & macht RL mit Gemma 3!

circle-check

AusführungsanleitungFeinabstimmungsanleitung

Unsloth ist das einzige Framework, das auf float16-Maschinen für Gemma 3 Inferenz und Training funktioniert. Das bedeutet, dass Colab-Notebooks mit kostenlosen Tesla T4-GPUs ebenfalls funktionieren!

circle-info

Laut dem Gemma-Team ist die optimale Konfiguration für die Inferenz temperature = 1.0, top_k = 64, top_p = 0.95, min_p = 0.0

Unsloth Gemma 3 Uploads mit optimalen Konfigurationen:

⚙️ Empfohlene Inferenz-Einstellungen

Laut dem Gemma-Team sind die offiziell empfohlenen Einstellungen für die Inferenz:

  • Temperatur von 1.0

  • Top_K von 64

  • Min_P von 0,00 (optional, aber 0,01 funktioniert gut, der llama.cpp-Standard ist 0,1)

  • Top_P von 0.95

  • Repetition Penalty von 1.0. (1.0 bedeutet deaktiviert in llama.cpp und transformers)

  • Chat-Vorlage:

    <bos><start_of_turn>user\nHello!<end_of_turn>\n<start_of_turn>model\nHey there!<end_of_turn>\n<start_of_turn>user\nWhat is 1+1?<end_of_turn>\n<start_of_turn>model\n
  • Chat-Vorlage mit \nZeilenumbrüchen gerendert (außer dem letzten)

triangle-exclamation

✨Gemma 3 auf Ihrem Telefon ausführen

Um die Modelle auf Ihrem Telefon auszuführen, empfehlen wir jede mobile App, die GGUFs lokal auf Edge-Geräten wie Telefonen ausführen kann. Nach dem Fine-Tuning können Sie es als GGUF exportieren und dann lokal auf Ihrem Telefon ausführen. Stellen Sie sicher, dass Ihr Telefon genügend RAM/Leistung hat, um die Modelle zu verarbeiten, da es überhitzen kann. Wir empfehlen daher die Verwendung von Gemma 3 270M oder den Gemma 3n-Modellen für diesen Anwendungsfall. Sie können das Open-Source-Projekt AnythingLLM'sarrow-up-right mobile App, die Sie herunterladen können auf Android hierarrow-up-right oder ChatterUIarrow-up-right, welche großartige Apps zum Ausführen von GGUFs auf Ihrem Telefon sind.

circle-check

🦙 Tutorial: Wie man Gemma 3 in Ollama ausführt

  1. In Ollama ausführen Installieren Sie falls Sie es noch nicht getan haben!

  1. curl -fsSL https://ollama.com/install.sh | sh Führen Sie das Modell aus! Beachten Sie, dass Sieollama serve in einem anderen Terminal aufrufen können, wenn es fehlschlägt! Wir fügen alle unsere Fixes und vorgeschlagenen Parameter (Temperatur usw.) in in unserem Hugging Face-Upload! Sie können den Modellnamen 'gemma-3-27b-it-GGUF' in jeden Gemma-Modellnamen wie 'gemma-3-270m-it-GGUF:Q8_K_XL' ändern.

📖 Tutorial: Wie man Gemma 3 27B in llama.cpp ausführt

  1. Hole dir die neueste llama.cpp auf GitHub hierarrow-up-right. Du kannst auch den Build-Anweisungen unten folgen. Ändere -DGGML_CUDA=ON zu -DGGML_CUDA=OFF wenn du keine GPU hast oder nur CPU-Inferenz möchtest. Für Apple Mac / Metal-Geräte, setze -DGGML_CUDA=OFF dann wie gewohnt fort - Metal-Unterstützung ist standardmäßig aktiviert.

  1. Wenn du llama.cpp direkt zum Laden von Modellen verwenden möchten, können Sie Folgendes tun: (:Q4_K_XL) ist der Quantisierungstyp. Sie können auch über Hugging Face herunterladen (Punkt 3). Dies ähnelt ollama run

  1. ODER laden Sie das Modell herunter via (nach Installation von pip install huggingface_hub hf_transfer ). Sie können Q4_K_M wählen oder andere quantisierte Versionen (wie BF16 Vollpräzision). Weitere Versionen unter: https://huggingface.co/unsloth/gemma-3-27b-it-GGUFarrow-up-right

  1. Führen Sie Unsloths Flappy Bird-Test aus

  2. Bearbeiten Sie können --threads 32 für die Anzahl der CPU-Threads bearbeiten, für Kontextlänge (Gemma 3 unterstützt 128K Kontextlänge!), --n-gpu-layers 99 --n-gpu-layers 2

  3. Für den Konversationsmodus:

  1. Für den Nicht-Konversationsmodus, um Flappy Bird zu testen:

Die vollständige Eingabe aus unserem https://unsloth.ai/blog/deepseekr1-dynamicarrow-up-right 1.58bit-Blog ist:

triangle-exclamation

🦥 Fine-Tuning von Gemma 3 in Unsloth

Unsloth ist das einzige Framework, das auf float16-Maschinen für Gemma 3 Inferenz und Training funktioniert. Das bedeutet, dass Colab-Notebooks mit kostenlosen Tesla T4-GPUs ebenfalls funktionieren!

circle-exclamation

Unsloth Fine-Tuning Fixes

Unsere Lösung in Unsloth ist dreifach:

  1. Behalten Sie alle Zwischenaktivierungen im bfloat16-Format bei - sie können float32 sein, aber das verbraucht 2x mehr VRAM oder RAM (über Unsloths asynchrones Gradient Checkpointing)

  2. Führen Sie alle Matrixmultiplikationen in float16 mit Tensor-Cores aus, aber casten Sie manuell hoch/runter ohne die Hilfe von Pythons (Pytorchs) Mixed-Precision-Autocast.

  3. Casten Sie alle anderen Optionen, die keine Matrixmultiplikationen benötigen (Layernorms), auf float32 hoch.

🤔 Gemma 3 Fixes Analyse

Gemma 3 1B bis 27B überschreiten das Float16-Maximum von 65504

Zuerst, bevor wir feinjustieren oder Gemma 3 ausführen, haben wir festgestellt, dass bei Verwendung von float16 Mixed Precision Gradienten und Aktivierungen leider unendlich werden Dies passiert bei T4-GPUs, der RTX-20x-Serie und V100-GPUs, die nur float16 Tensor-Cores haben.

Bei neueren GPUs wie RTX-30x oder höher, A100s, H100s usw. haben diese GPUs bfloat16 Tensor-Cores, sodass dieses Problem nicht auftritt! Aber warum?

Float16 kann nur Zahlen bis zu 65504, darstellen, während bfloat16 riesige Zahlen bis zu 10^38darstellen kann! Aber beachten Sie, dass beide Zahlenformate nur 16 Bit verwenden! Das liegt daran, dass float16 mehr Bits zuordnet, damit es kleinere Dezimalzahlen besser darstellen kann, während bfloat16 Brüche nicht gut darstellen kann.

Aber warum float16? Lassen Sie uns einfach float32 verwenden! Aber leider ist float32 in GPUs bei Matrixmultiplikationen sehr langsam - manchmal 4- bis 10-mal langsamer! Daher können wir das nicht tun.

Zuletzt aktualisiert

War das hilfreich?