Model description
This is the replicated complementary generative model in the final technical portfolio. It is a PEFT adapter for
unsloth/Qwen3.5-9B at pinned revision
005429cee5cb648998cf2b70eebdd83175989c9a. The family claim is based on a locked ten-seed
Round 12 replication. TeslaXLM remains the primary publication encoder because the two systems use
different output mechanisms and the encoder retains higher Macro F1.
The adapter emits one strict JSON array containing zero, one, or two labels in the fixed order
anger, anticipation, disgust, fear, joy, sadness, surprise, trust. Prose, Markdown,
unknown labels, duplicates, noncanonical order, more than two labels, and neutral are invalid.
The retained release artifact is the prespecified seed 42 at validation-selected
checkpoint-2247. It was not chosen by test performance. Exact release-file sizes and SHA-256
hashes are in artifact_manifest.json.
Intended use
Use this adapter for research on direct structured Serbian social-media emotion generation and as
the complementary generator in the final model portfolio. Do not treat it as a clinical assessment,
an explanation of an author's mental state, or a basis for employment, law-enforcement, or other
high-impact decisions.
Data and preprocessing
Each training seed used cleaned text from 23,961 training rows. Checkpoint selection used 3,000
validation rows, followed by one locked evaluation of 3,000 test rows. The output space contains eight emotions
and excludes neutral. IDs, source metadata, annotations, disagreement, sentiment, and other metadata
were not model inputs. The adapter repository must not include training text or row identifiers.
Training
- Base loading: one CUDA device, unquantized BF16; no QLoRA, CPU offload, or disk offload.
- Adaptation: LoRA rank 16, alpha 16, dropout 0; 29,097,984 trainable parameters.
- Target modules:
q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj.
- Modalities: language, attention, and MLP trained; vision and audio frozen.
- Objective: assistant-only causal loss for the canonical JSON array.
- Sequence length: 1,024; learning rate:
2e-4; warmup: 0.05; weight decay: 0.01.
- Epochs: 3; physical batch: 1; gradient accumulation: 32; effective batch: 32.
- Family evidence seeds: 11, 23, 37, 42, 53, 67, 79, 83, 97, and 109. Checkpoints were saved each
epoch and selected on validation only. Seed 42 was reused exactly from Round 11.
Evaluation
Table with columns: Scope, Rows, Macro F1, Micro F1, Sample Jaccard, Exact set, Invalid rate| Scope | Rows | Macro F1 | Micro F1 | Sample Jaccard | Exact set | Invalid rate |
|---|
| Validation-selected checkpoint | 3,000 | 0.530407 | 0.614634 | 0.589722 | 0.498000 | 0.000000 |
| Test, seed 42 | 3,000 | 0.526192 | 0.614477 | 0.591056 | 0.505333 |
Across ten seeds, the sample SD is 0.007589 for Macro F1, 0.006172 for micro F1,
0.007793 for sample Jaccard, and 0.013807 for exact-set accuracy. All 30,000 test outputs were
valid under the strict parser.
The same 3,000 test rows were used in earlier rounds. These numbers are therefore adaptive internal
evidence, not an independent external replication. Descriptively, Qwen3.5 9B differs from the
Qwen3.5 4B five-seed mean by +0.000217 Macro F1, +0.014161 sample Jaccard, and +0.020900
exact-set accuracy. Versus the TeslaXLM ten-seed encoder mean, it is -0.042267 on Macro F1 and
+0.028654 on sample Jaccard. These are not inferential cross-system claims.
Inference
import torch
from peft import PeftModel
from unsloth import FastModel
base_id = "unsloth/Qwen3.5-9B"
revision = "005429cee5cb648998cf2b70eebdd83175989c9a"
adapter_id = "te-sla/serbian-emotion-qwen3.5-9b-lora"
model, tokenizer = FastModel.from_pretrained(
model_name=base_id,
revision=revision,
max_seq_length=1024,
dtype=torch.bfloat16,
load_in_4bit=False,
load_in_8bit=False,
load_in_16bit=True,
full_finetuning=False,
device_map={"": 0},
)
model = PeftModel.from_pretrained(model, adapter_id, is_trainable=False)
FastModel.for_inference(model)
Use the exact Serbian system prompt and strict parser from llm_prompting.py. Pass
enable_thinking=False, use deterministic greedy decoding, and reject malformed, duplicate,
unknown, noncanonical, neutral, or more-than-two-label outputs without repair.
Limitations
- The ten-seed result measures training-seed stability, but not external-dataset generalization.
- The test cohort is reused and adaptively analyzed.
- The model emits label sets, not calibrated probabilities.
- Strict parsing is part of the evaluated system and may count semantically plausible prose as invalid.
- The task domain is Serbian Reddit and Twitter text.
- The 9B adapter must not be placed in a pooled universal leaderboard with thresholded encoders.
- BF16 inference and training have a tight memory margin on a 24 GB GPU.
Reproducibility and evidence
The source repository retains the executed configuration, model revision, data fingerprints,
demonstration hash, selected validation checkpoint, aggregate metrics, per-label results,
descriptive compatible-cohort comparisons, runtime telemetry, code, tests, and SHA-256 provenance. Runtime predictions and
adapter weights remain outside Git.
Citation
The final paper identifier and citation are pending. The verified paper link and shared
portfolio citation will be added when available.