Instructions to use zack-r-s/hackring-LFM2.5-230M with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use zack-r-s/hackring-LFM2.5-230M with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="zack-r-s/hackring-LFM2.5-230M") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("zack-r-s/hackring-LFM2.5-230M") model = AutoModelForCausalLM.from_pretrained("zack-r-s/hackring-LFM2.5-230M", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use zack-r-s/hackring-LFM2.5-230M with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "zack-r-s/hackring-LFM2.5-230M" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "zack-r-s/hackring-LFM2.5-230M", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/zack-r-s/hackring-LFM2.5-230M
- SGLang
How to use zack-r-s/hackring-LFM2.5-230M with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "zack-r-s/hackring-LFM2.5-230M" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "zack-r-s/hackring-LFM2.5-230M", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
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 "zack-r-s/hackring-LFM2.5-230M" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "zack-r-s/hackring-LFM2.5-230M", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use zack-r-s/hackring-LFM2.5-230M with Docker Model Runner:
docker model run hf.co/zack-r-s/hackring-LFM2.5-230M
Hackring LFM2.5-230M: dataset/model v004
This merged full-weight checkpoint was fine-tuned from LiquidAI/LFM2.5-230M on the matching dataset v004. It does not continue the v002 or v003 checkpoints. The original LFM Open License v1.0 is included in LICENSE; use and redistribution remain subject to its terms. The shared repository's v002, v003, and v004 tags preserve their respective checkpoints; main serves v004.
What changed
The earlier checkpoints were trained to emit numerical channel_write PV setpoints. V004 is trained to convert an operator orbit-centering request into orbit_correct(plane, effort), where plane is X, Y, or both and effort is gentle, balanced, or aggressive. A separate deterministic bounded least-squares skill reads the fixed 24-PV simulated PyAT ring, computes corrector settings from the versioned response matrix, writes them, and measures the after-state. The model does not calculate kick values. The operator harness normalizes an unspecified effort to balanced and rejects a wrong explicit effort or wrong plane before writing. No Osprey or lattice configuration was changed for this pass.
The 432/72/72 train/validation/test conversations come from fresh seed-disjoint local PyAT disturbances; no GPT annotation was used. The Liquid Finetune run used assistant-only SFT, default rank-8 LoRA, two epochs and 108 optimizer steps on Apple M4 Pro MPS. Validation loss was 0.0381 then 0.0315. training_job.yaml, dataset_manifest.json, and training_results.json record the configuration and hashes. The source and version chart are in integration PR #8; the checkpoint's training commit remains on zrs-lfm-training.
Measured evaluation
Mark III is the complete PR #8 shared-fixture rerun. Its results index validates pinned model revisions, immutable case/task hashes, all seven full NeMo Gym runs (28 tasks × four repeats, zero rollout failures), and the separate local PyAT reports. The v001–v004 data were revalidated without regeneration. Mark I and the partial Mark II reports remain historical; the Mark II v004 Gym direct-write run used the wrong tool interface and is not a skill score.
| Measure | Base 230M | Base 1.2B Instruct | v004 |
|---|---|---|---|
| Local greedy CPU skill: exact plane and effort with measured improvement /28 | 0 | 0 | 12 |
| Local balanced-default replay: measured improvement /28 | 14 | — | 28 |
| Gym skill: measured improvement /112 | 73 | 28 | 72 |
| Gym skill: raw plane-and-effort selection /112 | 31 | 0 | 42 |
The local greedy replay shows a v004 routing improvement on these prompts, but the corrected stochastic Gym skill benchmark does not show a deployed control-success advantage over base 230M (72/112 versus 73/112). A paired bootstrap over 28 tasks estimates the v004-minus-base Gym success difference at −0.9 percentage points, with a 95% interval of −22.3 to +20.5 points. Raw intent selection is +9.8 points with a −10.7 to +29.5 point interval. These fixed-task descriptive intervals do not establish broader generalization. The 1.2B model made many extra tool attempts, which the one-attempt rule rejects.
The shared-fixture API smoke passed BPM reporting, an exact setpoint request, an orbit-correction request, and an over-limit refusal. The browser smoke verified that chat, the Agent & goal panel, displayed PV, and reset reflect one PyAT fixture. Exact numeric writes and over-limit refusals are bounded harness behavior; v004 chooses the orbit-correction skill, whose deterministic solver supplies numerical PV writes. These are simulated-plant results, not real accelerator evidence or model-only inverse-optics ability.
V002 and v003 target direct numerical writes and are compared on that separate interface in the training/version chart. Their local 56-case scores were 24 and 26, but Gym direct-write success was 12/112 and 6/112; this does not establish v003 as the better controller. Local direct uses greedy Transformers MPS inference and a forced write-tool name; Gym uses vLLM at temperature 0.2 with one-attempt enforcement. Cross-interface or cross-backend counts should not be treated as one score.
Serve
vllm serve zack-r-s/hackring-LFM2.5-230M --revision v004 \
--served-model-name LFM2.5-230M --enable-auto-tool-choice \
--tool-call-parser lfm2 --host 127.0.0.1 --port 8000
The lfm2 tool parser is required. The checked-in Hackring chat agent supplies the skill implementation and checks the operator intent; serving this checkpoint alone does not provide accelerator control.
- Downloads last month
- 83