⚡Tutorial: Trainiere dein eigenes Reasoning-Modell mit GRPO
Anfängerleitfaden, um ein Modell wie Llama 3.1 (8B) mit Unsloth und GRPO in ein Reasoning-Modell zu verwandeln.
Schnellstart
4
Datenvorbereitung

# Definieren Sie den System-Prompt, der das Modell anweist, ein bestimmtes Format zu verwenden
SYSTEM_PROMPT = """
Antworten Sie im folgenden Format:
<reasoning>
...
</reasoning>
<answer>
...
</answer>
"""
XML_COT_FORMAT = """\
<reasoning>
{reasoning}
</reasoning>
<answer>
{answer}
</answer>
"""import re
from datasets import load_dataset, Dataset
# Hilfsfunktionen zum Extrahieren von Antworten aus verschiedenen Formaten
def extract_xml_answer(text: str) -> str:
answer = text.split("<answer>")[-1]
answer = answer.split("</answer>")[0]
return answer.strip()
def extract_hash_answer(text: str) -> str | None:
if "####" not in text:
return None
return text.split("####")[1].strip()
# Funktion zur Vorbereitung des GSM8K-Datensatzes
def get_gsm8k_questions(split="train") -> Dataset:
data = load_dataset("openai/gsm8k", "main")[split]
data = data.map(
lambda x: {
"prompt": [
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": x["question"]},
],
"answer": extract_hash_answer(x["answer"]),
}
)
return data
dataset = get_gsm8k_questions()6
7
8
Wenn Sie immer noch keine Begründungen erhalten, haben Sie möglicherweise zu wenige Schritte trainiert oder Ihre Belohnungsfunktion/Verifizierer war nicht optimal.
Sie können das Modell mit 16-Bit-Präzision mit folgendem Befehl speichern:
# In 16-Bit-Präzision speichernMethode. Dadurch kann das Modell in mehreren Quantisierungsformaten gespeichert werden.
# Push zum Hugging Face Hub (erfordert ein Token)
model.push_to_hub_merged(
), wodurch es mit
model.push_to_hub_gguf(
"your-username/model-name",
tokenizer,
quantization_method=["q4_k_m", "q8_0", "q5_k_m"],
)oder in anderen Inferenz-Engines verwendet werden.
Zuletzt aktualisiert
War das hilfreich?








