SLM RL models
Collection
Workshop LoRA adapters for playground adapter URL. • 4 items • Updated
How to use BLANK/slm-rl-freeway with PEFT:
Task type is invalid.
How to use BLANK/slm-rl-freeway with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-generation", model="BLANK/slm-rl-freeway") # Load model directly
from transformers import AutoModel
model = AutoModel.from_pretrained("BLANK/slm-rl-freeway", device_map="auto")How to use BLANK/slm-rl-freeway with vLLM:
# Install vLLM from pip:
pip install vllm
# Start the vLLM server:
vllm serve "BLANK/slm-rl-freeway"
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:8000/v1/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "BLANK/slm-rl-freeway",
"prompt": "Once upon a time,",
"max_tokens": 512,
"temperature": 0.5
}'docker model run hf.co/BLANK/slm-rl-freeway
How to use BLANK/slm-rl-freeway with SGLang:
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
--model-path "BLANK/slm-rl-freeway" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "BLANK/slm-rl-freeway",
"prompt": "Once upon a time,",
"max_tokens": 512,
"temperature": 0.5
}'docker run --gpus all \
--shm-size 32g \
-p 30000:30000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HF_TOKEN=<secret>" \
--ipc=host \
lmsysorg/sglang:latest \
python3 -m sglang.launch_server \
--model-path "BLANK/slm-rl-freeway" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "BLANK/slm-rl-freeway",
"prompt": "Once upon a time,",
"max_tokens": 512,
"temperature": 0.5
}'How to use BLANK/slm-rl-freeway with Docker Model Runner:
docker model run hf.co/BLANK/slm-rl-freeway
PEFT LoRA adapter that warm-starts Freeway play for LiquidAI/LFM2.5-350M in the SLM-RL workshop.
| Game | freeway |
| Base model | LiquidAI/LFM2.5-350M |
| Adapter layout | adapter/ (PEFT adapter_config.json + weights) |
| Training | reject_sft on DQN teacher demos |
| Champion generation | 1 |
| Promoted | True (baked pack / SFT adopted as RL initialization) |
| Dataset pack | BLANK/slm-rl-freeway |
| DQN teacher | BLANK/slm-rl-freeway-dqn |
Paste BLANK/slm-rl-freeway as the playground adapter URL (and usually the same id
as the dataset URL).
pip install "transformers>=4.46" peft accelerate torch
Weights live under the adapter/ subfolder — pass subfolder="adapter".
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
BASE = "LiquidAI/LFM2.5-350M"
ADAPTER = "BLANK/slm-rl-freeway" # this repo
device = (
"cuda" if torch.cuda.is_available()
else "mps" if torch.backends.mps.is_available()
else "cpu"
)
dtype = torch.bfloat16 if device != "cpu" else torch.float32
tokenizer = AutoTokenizer.from_pretrained(BASE)
if tokenizer.pad_token is None:
tokenizer.pad_token = tokenizer.eos_token
model = AutoModelForCausalLM.from_pretrained(BASE, torch_dtype=dtype)
model = PeftModel.from_pretrained(model, ADAPTER, subfolder="adapter")
model.to(device).eval()
messages = [
{"role": "system", "content": "You play Freeway. Reply with ACTION: <id>."},
{"role": "user", "content": "Legal actions: 1) NOOP 2) UP\nChoose."},
]
prompt = tokenizer.apply_chat_template(
messages, add_generation_prompt=True, tokenize=False,
)
inputs = tokenizer(prompt, return_tensors="pt").to(device)
with torch.inference_mode():
out = model.generate(**inputs, max_new_tokens=24, do_sample=False)
print(tokenizer.decode(out[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))
from huggingface_hub import snapshot_download
path = snapshot_download("BLANK/slm-rl-freeway", allow_patterns="adapter/*")
# then: PeftModel.from_pretrained(base_model, f"{path}/adapter")
slm-rl evolve --game freeway \
--dataset-url BLANK/slm-rl-freeway \
--adapter-url BLANK/slm-rl-freeway \
--dqn-url BLANK/slm-rl-freeway-dqn \
--generations 2
{
"eval": {
"skipped": true
},
"gate": {
"promoted": true,
"reason": "baked pack / SFT adopted as RL initialization"
},
"train": {
"loss": 0.093,
"mean_token_accuracy": 1.0,
"num_pairs": 20357
}
}
Trained with SLM-RL.