Instructions to use atenareply/lfm2.5-1.2b-asterion-agentic with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use atenareply/lfm2.5-1.2b-asterion-agentic with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="atenareply/lfm2.5-1.2b-asterion-agentic") 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("atenareply/lfm2.5-1.2b-asterion-agentic") model = AutoModelForCausalLM.from_pretrained("atenareply/lfm2.5-1.2b-asterion-agentic", 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 atenareply/lfm2.5-1.2b-asterion-agentic with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "atenareply/lfm2.5-1.2b-asterion-agentic" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "atenareply/lfm2.5-1.2b-asterion-agentic", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/atenareply/lfm2.5-1.2b-asterion-agentic
- SGLang
How to use atenareply/lfm2.5-1.2b-asterion-agentic 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 "atenareply/lfm2.5-1.2b-asterion-agentic" \ --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": "atenareply/lfm2.5-1.2b-asterion-agentic", "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 "atenareply/lfm2.5-1.2b-asterion-agentic" \ --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": "atenareply/lfm2.5-1.2b-asterion-agentic", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use atenareply/lfm2.5-1.2b-asterion-agentic with Docker Model Runner:
docker model run hf.co/atenareply/lfm2.5-1.2b-asterion-agentic
# pip install -U transformers accelerate
# Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("atenareply/lfm2.5-1.2b-asterion-agentic")
model = AutoModelForCausalLM.from_pretrained("atenareply/lfm2.5-1.2b-asterion-agentic", 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]:]))LFM2.5-1.2B Asterion — Agentic (SFT v2)
Verifiable satellite-operations assistant: telemetry alert triage + native tool-calling + raw-log extraction. LoRA SFT on the ParamΔ model with the v2 confound-free dataset.
Overview
- Stage: Agentic SFT v2 (LoRA, merged)
- Lineage: Base → CPT (asterion) → ParamΔ (instruct) → Agentic SFT v2 (this model)
- Method: Supervised fine-tuning (LoRA r=32/α=64, all-linear; merged) [lora] on the v2 dataset: raw-vs-clean tool output decorrelated from difficulty (independent coin flip 0.5 — kills the v1 'raw ⇒ genuine' shortcut), Track C multi-QA, teacher reasoning re-wrapped as with assistant-only loss [apigen]; ≥50% general blend against collapse [collapse].
- Domain: fictional — Orbital Mining Corporation (OMC) technical docs + Mars Express telemetry.
Training
| Dataset | asterion-agentic-sft — train 18,837 / val 991 (Track A 2,997 / B 6,000 / C 917 + equal general blend) |
| Adapter | LoRA r=32, α=64, dropout 0.05, target all-linear (merged at push) |
| LR / epochs | 1e-4 cosine, warmup 0.05, 2 epochs, max_len 4096, eff_batch 64 |
Evaluation
| Metric | Value | Note |
|---|---|---|
| pass@1 | 0.986 | ParamΔ baseline: 0.002 |
| triage recall (genuine) | 1.00 | v1 round was 0.63 |
| triage precision (genuine) | 1.00 | zero false alarms |
| pass@1 by difficulty L1-L4 | 0.98 / 0.99 / 0.98 / 1.00 | v1's L2 dip is gone |
| action accuracy | 0.986 | maintenance loop |
| grounding rate | 0.72 | verbatim numbers in reasoning |
Eval is a held-out, deterministic verifiable harness (synthetic tasks); baseline = the pre-SFT ParamΔ model. See noval-corp/scripts/eval_agentic.py.
Intended use & limitations
Satellite-operations assistant for the Asterion fleet: classify an ALERT (routine vs genuine), run the maintenance loop on genuine anomalies, extract values from raw logs. Use INSIDE a tool-execution loop.
Limitations:
- The verifiable task is SATURATED (pass@1 0.986 > the 0.85 RL gate) — no RL round was run on this model by design (RLVR needs headroom).
- Fictional domain; the genuine class is largely synthetic.
- Tool-calling REQUIRES a multi-turn loop that executes tools and feeds results back.
Innovations tested
- Confound-free v2 data — raw/clean tool-output format is an independent per-task coin flip, decoupled from difficulty and label.
Usage
Use inside a tool-execution loop (the model emits calls; you run the tools and feed results back):
from transformers import AutoModelForCausalLM, AutoTokenizer
tok = AutoTokenizer.from_pretrained("atenareply/lfm2.5-1.2b-asterion-agentic")
model = AutoModelForCausalLM.from_pretrained("atenareply/lfm2.5-1.2b-asterion-agentic")
TOOLS = [...] # the 8 OpenAI-style tool schemas (see noval-corp/config/curation.py: TOOL_SCHEMA)
messages = [{"role": "system", "content": "You are an OMC operations assistant."},
{"role": "user", "content": "ALERT on NPWD2531: 1.12A. Routine or genuine?"}]
inputs = tok.apply_chat_template(messages, tools=TOOLS, add_generation_prompt=True, return_tensors="pt", return_dict=True)
# parse <|tool_call_start|>[...]<|tool_call_end|>, execute, append a {"role":"tool",...} message, repeat.
Reference loop: noval-corp/scripts/eval_agentic.py::run_episode.
Citations
- LoRA — Hu et al., LoRA: Low-Rank Adaptation of LLMs, 2021. arXiv:2106.09685
- APIGen / xLAM (execution-grounded tool data) — Liu et al., 2024. arXiv:2406.18518
- Model collapse (≥50% real data) — Shumailov et al., 2024. arXiv:2404.01413
Card generated by noval-corp/scripts/gen_model_cards.py (standardized across the noval-corp model family).
- Downloads last month
- 20
Model tree for atenareply/lfm2.5-1.2b-asterion-agentic
Base model
LiquidAI/LFM2.5-1.2B-Base
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="atenareply/lfm2.5-1.2b-asterion-agentic") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)