Important Notice
This model is a research / prototype artifact. It is not an operational dispatch system and should not be used to create real balancing instructions without expert validation, deterministic rule checks, and operator approval.
In the PysAi prototype, the LLM is used primarily for:
- structured YAL/YAT recommendation output,
- natural-language reasoning,
- operator-readable explanation,
- scenario analysis.
Plant-level selection is handled with a hybrid deterministic scoring layer that considers price, available capacity, response time, source type, and urgency mode.
Base Model
- Base model:
Qwen/Qwen3.6-27B
- Adapter type: LoRA / PEFT
- Task type: causal language modeling
Training Data
The training corpus was generated from approximately two years of hourly market data from the EPIAS Transparency Platform.
Main feature groups:
- MCP / SMP price history,
- lagged balancing and price values,
- hourly and daily time buckets,
- peak / off-peak signals,
- generation deviation,
- source mix and planned generation features,
- Turkish YAL/YAT instruction-style labels,
- limited English bilingual augmentation.
Training Configuration
{
"base_model": "Qwen/Qwen3.6-27B",
"method": "LoRA SFT",
"r": 32,
"alpha": 64,
"dropout": 0.05,
"target_modules": ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],
"epochs": 2,
"learning_rate": 0.0002,
"max_seq_length": 1536,
"precision": "bf16",
"gpu": "NVIDIA A100-SXM4-80GB"
}
Evaluation Snapshot
Initial quick evaluation showed:
- JSON parse success: high in sampled tests
- Direction prediction accuracy: approximately 65%+ in early evaluation
These are early prototype metrics, not a final benchmark. Performance depends strongly on prompt quality and whether the prompt includes the right market context.
Expected Output Shape
The adapter is expected to answer with a compact JSON object similar to:
{
"yon": "YAL",
"miktar_mwh": 1150.0,
"fiyat_tl_mwh": 3150.0,
"agirlikli_kaynak": "DogalGaz",
"gerekce": "Generation deviation +2800 MW, high MCP, morning peak"
}
Example Use
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
base_model = "Qwen/Qwen3.6-27B"
adapter = "AliUlu/qwen36-27b-pysai-lora"
tokenizer = AutoTokenizer.from_pretrained(adapter, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
base_model,
device_map="auto",
torch_dtype="auto",
trust_remote_code=True,
)
model = PeftModel.from_pretrained(model, adapter)
messages = [
{
"role": "user",
"content": "2026-03-18 08:00 için YAL/YAT önerisi üret. MCP=3150, üretim sapması=2800 MW, sabah pik."
}
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=160, do_sample=False)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Limitations
- The model does not replace market operator judgment.
- It should be combined with deterministic validation rules.
- The model was trained on aggregate market features, not full confidential operational plant constraints.
- Real plant dispatch decisions require accurate real-time availability, ramping, minimum stable generation, network constraints, and operator approval.
Project
PysAi is a balancing power market decision-support prototype focused on explainable YAL/YAT recommendations for control-room style workflows.