Edit model card

Hypothesentrainer: LLM für Feedback auf Schülerhypothesen

Deutschsprachiges LLM, das basierend auf biologischen Forschungsfragen, Schülerhypothesn und Feedback von GPT-4-Turbo mittels Fine-Tuning auf diese spezifische Aufgabe angepasst wurde. Das Feedback von GPT-4 wurde mittels eines größeren Prompts so angepasst, dass das Resultat didaktisch möglichst sinnvoll ist. Basis dieses Modells ist das deutschsprachige Chat-LLM https://huggingface.co/LeoLM/leo-hessianai-13b-chat, dass in einer zweiten Pre-Training-Phase das Llama-2 Modell von Meta an die deutschen Sprache angepasst hat. Zudem wurde anschließend das Modell in einer größeren Fine-Tuning-Phase auf die Beantwortung von Wissensfragen angepasst.

Model Details

Use in 🤗Transformers

Installationen:

pip install transformers torch sentencepiece

Für schnellere Inferenz, nicht zwingend notwendig (Empfehlung aus https://huggingface.co/LeoLM/leo-hessianai-13b-chat):

pip install packaging ninja
pip install flash-attn==v2.1.1 --no-build-isolation
pip install git+https://github.com/HazyResearch/flash-attention.git@v2.1.1#subdirectory=csrc/rotary

Modell laden:

from transformers import pipeline
import torch

question = "Wie beeinflusst die Temperatur die Aktivität der Hefe im Pizzateig?"
hypothesis = "Je höher die Temperatur, desto höher die Hefeaktivität im Pizzateig."
prompt = format_prompt_chat(question, hypothesis, with_additional_prompt=True)

generator = pipeline(model="Tobistd/hypothesen-13b", device="cuda", torch_dtype=torch.float16, trust_remote_code=True) # True for flash-attn2 else False
print(generator(prompt, do_sample=True, top_p=0.95, max_length=2048))

Beispiel:

TODO

Prompting

Template wie in https://huggingface.co/LeoLM/leo-hessianai-13b-chat:

"""
<|im_start|>system
{system_message}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant
"""

Beispielfunktion für das Prompt Format:

def format_prompt_chat(question, hypothesis, with_additional_prompt=True):
    if with_additional_prompt:
        instructions = open_file("prompt/assistantInstructions.txt").strip()
        system_prompt = f"<|im_start|>system\n{inst}"
    else:
        system_prompt = "<|im_start|>system\nNachfolgend findest du eine biologische Forschungsfrage und eine entwickelte Schülerhypothese. Gebe dem Schüler auf seine Hypothese ein angemessenes Feedback, das didaktisch möglichst wertvoll formuliert ist."
    system_prompt += "<|im_end|>"

    student= f"## Forschungsfrage: {question}\n## Hypothese: {hypothesis}"
    
    prompt = f"{system_prompt}\n<|im_start|>user\n{student}<|im_end|>\n<|im_start|>assistant\n"
    
    return prompt

Finetuning Details

  • Für das Training wurde ein Datensatz mit 1093 Zeilen verwendet.
  • Es wurde auf einem TPU v3-32 Pod-Slice trainiert (https://cloud.google.com/tpu/docs/v3?hl=de).
  • Das Modell und die Daten wurden auf 4-TPU-v3-8-Knoten, also auf insgesamt 32 TensorCores bzw. Devices verteilt.
  • Die Dauer des Training betrug 35 Minuten und 52 Sekunden.
Hyperparameter Value
Num epochs 2
Examples per epoch 1093 // 8 // 32 = 4
batch size 4*32 = 128
Learning rate 3e-5
LR scheduler Cosine
Optimizer AdamW
Adam betas (0.9, 0.95)

Datensatz Details

Beispiel:

Forschungsfrage: Welchen Einfluss hat die Temperatur auf die Aktivität der Hefe im Pizzateig?
Hypothese: Durch die Wärme verdampft das Wasser im Teig und steigt und steigt nach oben.
Feedback: Eure Hypothese stellt keinen direkten Zusammenhang zwischen der Temperatur und der Aktivität der Hefe her. Es beschreibt eher einen allgemeinen Prozess bei Erwärmung. Versucht, den Fokus auf die spezifische Frage zu legen, wie die Temperatur die Aktivität der Hefe beeinflusst. Überlegt, wie die Temperaturänderung die Hefe zum Wachsen, sich zu vermehren oder ihre Aktivität zu ändern veranlassen könnte.

Evaluation

TODO

Downloads last month
0
Safetensors
Model size
13B params
Tensor type
BF16
·