Views
No views yet
Stage1: The base model, finetuned using human-annotated data only.Stage2: The base model, finetuned using human-annotated and synthetically annotated data.1from transformers import pipeline
2
3text_to_annotate = "Solange Berlin - nach 25 Jahren sozialdemokratischer Schulsenatoren - in aller Regel einen "
4 "der Schlussplätze im Bildungsvergleich belegt, müssen sich Schulen auf ihre Kernaufgabe "
5 "konzentrieren. Kindern muss vermittelt werden, dass Menschen andersartig, aber gleichwertig "
6 "sind."
7
8generator = pipeline(
9 "text-generation",
10 model="sandh/Gemma-4-E4B-it_DimABSA-German",
11 revision="Stage1", # or "Stage2"
12 device="cuda"
13)
14output = generator(
15 [{"role": "system",
16 "content": "Du bist ein spezialisiertes Modell zur Sentimentanalyse politischer Texte.\n"
17 "Das Ausgabeformat ist ein JSON-Array aus 0 oder mehr Objekten, wobei jedes Objekt genau die "
18 "folgenden Felder enthält:\n"
19 "- Aspekt (string oder 'NULL'): Das genaue Wort oder die genaue Phrase im Text, das/ die "
20 "eine bestimmte Entität/ Idee oder ein bestimmtes Ereignis/ Thema bezeichnet, die/ das von "
21 "öffentlichem Interesse ist. Der Aspektbegriff ist 'NULL', falls kein expliziter Aspekt "
22 "vorhanden ist.\n"
23 "- Sentimentbegriff (string oder 'NULL'): Das genaue Wort oder die genaue Phrase im Text, "
24 "das/ die das Sentiment/ die Einstellung/ Haltung gegenüber dem Aspekt zum Ausdruck bringt. "
25 "Der Sentimentbegriff ist 'NULL', falls das Sentiment/ die Einstellung/ Haltung nicht explizit "
26 "ausgedrückt wird.\n"
27 "- Valenz (Zahl): Wert, der den den Grad der Positivität oder Negativität misst. Ein Wert von "
28 "1.00 steht für eine extrem negative Valenz, 9.00 für eine extrem positive Valenz und 5.00 für "
29 "eine neutrale Valenz. Der Valenzwert muss auf genau zwei Dezimalstellen gerundet sein.\n"
30 "- Erregung (Zahl): Wert, der die Intensität des Sentiments/ der Emotion misst. Ein Wert von "
31 "1.00 steht für sehr geringe Erregung, 9.00 für sehr hohe Erregung und 5.00 für mittlere "
32 "Erregung. Der Erregungswert muss auf genau zwei Dezimalstellen gerundet sein.\n"
33 "Gib NUR das JSON-Array zurück und formatiere es NICHT als Codeblock (```json ... ```)."},
34 {"role": "user",
35 "content": f"Text: {text_to_annotate}"}],
36 max_new_tokens=512, return_full_text=False
37 )[0]
38print(output["generated_text"])
39# [{"Aspect": "Schulen",
40# "Opinion": "auf ihre Kernaufgabe konzentrieren",
41# "Valence": 5.40,
42# "Arousal": 3.80}]Stage1: The train-split of the sandh/SemEval-2026 dataset was used for finetuning. The training data exclusively contains human-annotated German political texts.Stage2:: Additionally, the train-split of the sandh/AfD-CCC dataset was used for finetuning. This data exclusively contains synthetically labeled German texts, focusing onrank: 16alpha: 32dropout: 0.05bias: nonetarget_modules: q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_projuse_rslora: trueseed: 42max_length: 1024packing: trueassistant_only_loss: falsegradient_checkpointing: trueper_device_train_batch_size: 2gradient_accumulation_steps: 4num_train_epochs: 1learning_rate: 2e-5lr_scheduler_type: "linear"weight_decay: 0.001warmup_steps: 5optim: "adamw_8bit"