Views
No views yet
| Game | space-invaders |
| Base model | LiquidAI/LFM2.5-350M |
| Adapter layout | adapter/ (PEFT adapter_config.json + weights) |
| Training | reject_sft on DQN teacher demos |
| Champion generation | 3 |
| Promoted | True (primary 0.2500 -> 0.5000, invalid_rate 0.0000, intervention_rate 0.0000) |
| Dataset pack | jmandava/slm-rl-jay-slm-2-data |
jmandava/slm-rl-jay-slm-2 as the playground adapter URL (and usually the same id
as the dataset URL).pip install "transformers>=4.46" peft accelerate torchadapter/ subfolder — pass subfolder="adapter".1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer
3from peft import PeftModel
4
5BASE = "LiquidAI/LFM2.5-350M"
6ADAPTER = "jmandava/slm-rl-jay-slm-2" # this repo
7
8device = (
9 "cuda" if torch.cuda.is_available()
10 else "mps" if torch.backends.mps.is_available()
11 else "cpu"
12)
13dtype = torch.bfloat16 if device != "cpu" else torch.float32
14
15tokenizer = AutoTokenizer.from_pretrained(BASE)
16if tokenizer.pad_token is None:
17 tokenizer.pad_token = tokenizer.eos_token
18
19model = AutoModelForCausalLM.from_pretrained(BASE, torch_dtype=dtype)
20model = PeftModel.from_pretrained(model, ADAPTER, subfolder="adapter")
21model.to(device).eval()
22
23messages = [
24 {"role": "system", "content": "You play Space Invaders. Reply with ACTION: <id>."},
25 {"role": "user", "content": "Legal actions: 1) NOOP 2) UP\nChoose."},
26]
27prompt = tokenizer.apply_chat_template(
28 messages, add_generation_prompt=True, tokenize=False,
29)
30inputs = tokenizer(prompt, return_tensors="pt").to(device)
31with torch.inference_mode():
32 out = model.generate(**inputs, max_new_tokens=24, do_sample=False)
33print(tokenizer.decode(out[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))1from huggingface_hub import snapshot_download
2
3path = snapshot_download("jmandava/slm-rl-jay-slm-2", allow_patterns="adapter/*")
4# then: PeftModel.from_pretrained(base_model, f"{path}/adapter")1slm-rl evolve --game space-invaders \
2 --dataset-url jmandava/slm-rl-jay-slm-2-data \
3 --adapter-url jmandava/slm-rl-jay-slm-2 \
4 --generations 21{
2 "eval": {
3 "episodes": 2,
4 "intervention_rate": 0.0,
5 "invalid_rate": 0.0,
6 "mean_entropy": null,
7 "mean_score": 0.5,
8 "primary": 0.5,
9 "win_rate": 0.0
10 },
11 "gate": {
12 "promoted": true,
13 "reason": "primary 0.2500 -> 0.5000, invalid_rate 0.0000, intervention_rate 0.0000"
14 },
15 "train": {
16 "entropy": 0.24262098781764507,
17 "frac_reward_zero_std": 0.75,
18 "kl": 0.011351149369147606,
19 "loss": -0.03604373633861542,
20 "num_prompts": 32,
21 "reward": 0.6149248331785202
22 }
23}