Downloads · 30 days
0
bdougie/smollm3-forest-lora
smollm3-forest-lora is a text generation model from bdougie. Use it when you need the model to write or continue text. It is set up for mlx. The card lists the license as apache-2.0.
A small experimental LoRA adapter that fine-tunes SmolLM3-3B to act as the genome proposer for a Pokémon Red agent trying to cross Viridian Forest to Pewter City.
Downloads · 30 days
0
Access
Public
Updated Jul 7, 2026
Repo size
53.8 MB
Likes
0
Public
Click a slice to open those files.
.safetensors53.8 MB · 100%
From the Hugging Face model README
A small experimental LoRA adapter that fine-tunes SmolLM3-3B to act as the genome proposer for a Pokémon Red agent trying to cross Viridian Forest to Pewter City.
Given a rollout situation (current position, sub-beats reached, catchers beaten, and the current
genome), the model is trained to respond with only a JSON genome — the battle/survival
parameters (hp_run_threshold, hp_heal_threshold, move-pick weights, etc.) that decide whether
the agent flees or fights wild encounters and when it heals. Navigation along the route is
hand-driven; the genome controls survival.
It was produced by the autotune Try → Check → Reward → Nudge loop in
pcc-labs/empirical-evidence as the only step where
weights are updated.
⚠️ Scope: this is a proof-of-concept adapter trained on a tiny rejection-sampled set (4 train / 1 validation example, 8 iterations). It demonstrates the pipeline; it is not a general-purpose or heavily-tuned model.
| Base model | EricFillion/smollm3-3b-mlx (MLX build of HuggingFaceTB/SmolLM3-3B) |
| Method | LoRA (fine_tune_type: lora) |
| Trainer | mlx_lm lora (Apple-Silicon backend) |
| LoRA rank / scale / dropout | 16 / 16.0 / 0.05 |
| Layers adapted | 16 |
| Learning rate | 2e-5 |
| Max sequence length | 4096 |
| Optimizer | adam |
| Iterations | 8 |
| Data | rejection-sampled chat SFT (system/user/assistant JSONL) |
Files: adapter_config.json + adapters.safetensors (~54 MB).
pip install mlx-lm huggingface_hub
hf download bdougie/smollm3-forest-lora --local-dir ./smollm3-forest-lora
from mlx_lm import load, generate
# Side-load the adapter against the base model
model, tokenizer = load(
"EricFillion/smollm3-3b-mlx",
adapter_path="./smollm3-forest-lora",
)
prompt = tokenizer.apply_chat_template(
[
{"role": "system", "content": "You tune a Pokemon Red agent's battle/survival genome to cross Viridian Forest to Pewter City. Respond with ONLY the JSON genome."},
{"role": "user", "content": "This rollout reached forest beat 1 'Enter Viridian Forest' (reward 2.0 sub-beats, 1 catchers beaten, crossed=False). Current genome: {\"hp_run_threshold\": 0.2, \"hp_heal_threshold\": 0.3}"},
],
add_generation_prompt=True,
)
print(generate(model, tokenizer, prompt=prompt, max_tokens=256))
To fuse the adapter into a standalone model instead of side-loading:
python -m mlx_lm fuse \
--model EricFillion/smollm3-3b-mlx \
--adapter-path ./smollm3-forest-lora \
--save-path ./smollm3-forest-fused
Inherits the base model's license (Apache-2.0).