LFM2.5-1.2B-CodeAgent-LoRA
A LoRA fine-tuned adapter for LiquidAI/LFM2.5-1.2B-Instruct trained to follow the smolagents CodeAgent format.
Model Description
This adapter teaches LFM2.5-1.2B-Instruct to respond in the structured Thought + Code format required by smolagents CodeAgent:
Thought: I need to calculate this.
```python
result = 2 + 2
final_answer(result)
```
Key Features
- Base Model: LiquidAI/LFM2.5-1.2B-Instruct (2.6B parameter)
- Format Compliance: N/A with minimal prompt
- Answer Accuracy: N/A on evaluation tasks
- Adapter Size: ~49MB (LoRA rank=8, alpha=16)
Training Details
Training Data
- 130 successful CodeAgent trajectories generated using Claude 3.5 Sonnet as the teacher model
- Tasks include mathematical reasoning, string manipulation, and general problem-solving
- Each trajectory demonstrates the Thought -> Code -> Observation -> final_answer pattern
Training Configuration
| Parameter | Value |
|---|---|
| LoRA Rank | 8 |
| LoRA Alpha | 16 |
| Target Modules | q_proj, v_proj |
| Trainable Parameters | 12.2M (0.47% of base) |
| Training Steps | 30 |
| Learning Rate | 2e-4 |
| Batch Size | 4 |
| Max Sequence Length | 2048 |
| Hardware | NVIDIA RTX 3090 (24GB) |
| Training Time | ~5.5 hours |
Training Framework
Evaluation Results
Prompt Mode Comparison
| Prompt Mode | Format Compliance | Answer Accuracy |
|---|---|---|
| Minimal | N/A | N/A |
| Default | N/A | N/A |
| None | N/A | N/A |
The model performs best with the minimal prompt (~95 tokens), demonstrating successful prompt distillation.
Minimal Prompt Template
You are a CodeAgent that solves tasks by writing and executing Python code.
Always respond with Thought + Python code block. Example:
Thought: I need to calculate this.
```python
result = 2 + 2
final_answer(result)
```
Call final_answer(result) when done. Now Begin!
Usage
With PEFT
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
# Load base model
base_model = AutoModelForCausalLM.from_pretrained(
"LiquidAI/LFM2.5-1.2B-Instruct",
device_map="auto",
torch_dtype="bfloat16",
)
tokenizer = AutoTokenizer.from_pretrained("LiquidAI/LFM2.5-1.2B-Instruct")
# Load LoRA adapter
model = PeftModel.from_pretrained(base_model, "krzysztofwos/LFM2.5-1.2B-CodeAgent-LoRA")
# Generate
messages = [{"role": "user", "content": "What is 15 * 23?"}]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=512,
temperature=0.3,
min_p=0.15,
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
With smolagents
from smolagents import CodeAgent, FinalAnswerTool, TransformersModel
model = TransformersModel(
model_id="LiquidAI/LFM2.5-1.2B-Instruct",
peft_model="krzysztofwos/LFM2.5-1.2B-CodeAgent-LoRA",
)
agent = CodeAgent(
tools=[FinalAnswerTool()],
model=model,
)
result = agent.run("What is 15 * 23?")
print(result)
Intended Use
- Code-assisted problem solving
- Mathematical reasoning tasks
- Automated code generation following structured formats
- Research into prompt distillation and small model fine-tuning
Limitations
- Requires specific prompt format: Works best with minimal prompt template
- Limited reasoning depth: 2.6B parameter model has constrained reasoning capabilities compared to larger models
- English only: Trained on English-language tasks
Citation
If you use this model, please cite:
@misc{lfm2.5_1.2b_codeagent_lora,
author = {krzysztofwos},
title = {LFM2.5-1.2B-CodeAgent-LoRA},
year = {2025},
publisher = {Hugging Face},
url = {https://huggingface.co/krzysztofwos/LFM2.5-1.2B-CodeAgent-LoRA}
}
Acknowledgments
- LiquidAI for the LFM2.5-1.2B-Instruct base model
- Hugging Face for smolagents, TRL, and PEFT
- Training performed as part of CodeAgent prompt distillation research
- Downloads last month
- 15