PondLLM Qwen3.5 0.8B Base action adapter V4.1
This is the rich-context and reachability V4.1 LoRA action-policy adapter for
PondLLM. It maps an organism's local observation and
lifetime memory to one strict JSON action. The frozen shared base model is
Qwen/Qwen3.5-0.8B-Base at revision
dc7cdfe2ee4154fa7e30f5b51ca41bfa40174e68.
V4.1 was trained from deterministic simulator observations and transitions. Its curriculum targets
four-agent/two-food information asymmetry, coordinate signalling, recipient behavior, food
reachability, safe rescue sharing, and rescued versus unrescued child behavior.
Evaluation
Greedy disjoint evaluation produced:
- 100% strict JSON and 100% observation-legal actions;
- 75.5% useful rich-context signalling and 75.5% correct payload coordinates;
- 18% redundant rich-context signalling, which fails the predetermined 10% ceiling;
- 98.29% exact accuracy over 1,050 reachability and rescue cases;
- 91.33% unreachable-food waiting, 100% safe rescue sharing, and 100% unrescued-child waiting;
- 99% useful and 6% redundant signalling on the retained V4 communication suite;
- 99.9% exact accuracy on the retained V4 survival suite.
In 16 richer paired simulator layouts, recipients foraged in 56.25% of normal-channel worlds and
0% with delivery blocked or coordinates corrupted. The normal-minus-blocked causal effect is
+56.25 percentage points. The reset-per-condition heuristic and unadapted base both have zero
paired effect.
This adapter is a meaningful controlled improvement over V4, but it does not pass every gate.
Population-scale RL remains intentionally deferred.
The complete methodology, gates, baselines, hashes, ordinary-world failures, and V4.2
recommendations are in the
V4.1 results report.
Use
1from peft import PeftModel
2from transformers import AutoModelForCausalLM, AutoTokenizer
3
4base_id = "Qwen/Qwen3.5-0.8B-Base"
5adapter_id = "Xnizzorg/pondllm-qwen3.5-0.8b-base-v4-1-rich-reachability"
6
7tokenizer = AutoTokenizer.from_pretrained(base_id)
8base = AutoModelForCausalLM.from_pretrained(base_id, device_map="auto")
9model = PeftModel.from_pretrained(base, adapter_id)
Use PondLLM's prompt builder and strict action parser rather than treating this as a general chat
adapter. Evaluation used greedy decoding.
Training
The adapter was trained fresh for two epochs on 43,322 records with seed 7, 4-bit NF4 base-model
loading, BF16 compute, completion-only loss, LoRA rank 8 and alpha 16 over all linear layers,
learning rate 2e-4, micro-batch size 16, and gradient accumulation 2. Training took 22,753
seconds on an NVIDIA GeForce RTX 5070 Ti.
Dataset SHA-256:
84F5BAE00FCD2A1A98737E9A98371DD534961DD01E0F704E6A4356DFEA585815
Adapter SHA-256:
40353DF97BD33FCCD894F18EE32DA6973DCD14C7D357577DA13EBB0D56666A05
Training provenance is recorded in run_manifest.json, including the exact clean Git commit,
base-model revision, package versions, prompt hash, dataset hash, and adapter hash.
Limitations
This is a narrow research action policy, not a general-purpose language model. It over-signals in
rich redundant cases and signals in only nine of 16 rich live sender scenes. Across ordinary seeds
7–10, it emits three signals in 26 strict information-asymmetry opportunities, but three
energy-one organisms still move to their deaths. Static counterfactual accuracy therefore does not
establish long-trajectory competence or population fitness.
This is supervised adapter training only. It is not evidence of emergent language, and
population-scale reinforcement learning remains blocked.