Views
No views yet
gen9vgc2026regi (Showdown ladder). The metagame shifts each
regulation, so judgments are calibrated to this format only.| metric | base Qwen2.5-7B | + this adapter |
|---|---|---|
| groundedness (claims that verify) | 88.3% | 93.8% |
| flaw-detection recall | 70.8% | 81.2% |
| unsupported claims about Top-8 teams | 12.6% | 5.1% |
| points per critique | 10.3 | 5.9 |
1from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
2from peft import PeftModel
3import torch
4
5BASE = "Qwen/Qwen2.5-7B-Instruct"
6bnb = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_quant_type="nf4",
7 bnb_4bit_compute_dtype=torch.float16)
8tok = AutoTokenizer.from_pretrained(BASE)
9model = AutoModelForCausalLM.from_pretrained(BASE, quantization_config=bnb,
10 device_map="auto")
11model = PeftModel.from_pretrained(model, "Rendred/vgc-critique-qlora") # <- this adapter
12
13team = """- Incineroar @ Assault Vest (Ability: Intimidate) | Moves: Fake Out, Knock Off, Flare Blitz, U-turn
14- ..."""
15prompt = ("You are an experienced competitive Pokemon player writing a "
16 "'Rate My Team' critique. Identify the team's real weaknesses and "
17 f"explain why each matters. Be specific.\n\nTeam:\n{team}")
18text = tok.apply_chat_template([{"role":"user","content":prompt}],
19 tokenize=False, add_generation_prompt=True)
20out = model.generate(**tok(text, return_tensors="pt").to(model.device),
21 max_new_tokens=400, do_sample=False)
22print(tok.decode(out[0], skip_special_tokens=True))(team, critique) pairs (1,775 real + 4,602 synthetic flaw-injected). Every
training label is verified against the type chart, base stats, and Smogon usage
stats — no ungrounded matchup claims.verify.py that
drops any claim the computed facts contradict before display.