Text Generation
Transformers
Safetensors
English
lfm2
trl
openenv
harbor
agent
smoldataenvs
sft
opencode
conversational
Eval Results (legacy)
Instructions to use FineEnvs/LFM2.5-2.6B-opencode-SFT with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use FineEnvs/LFM2.5-2.6B-opencode-SFT with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="FineEnvs/LFM2.5-2.6B-opencode-SFT") 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("FineEnvs/LFM2.5-2.6B-opencode-SFT") model = AutoModelForCausalLM.from_pretrained("FineEnvs/LFM2.5-2.6B-opencode-SFT", 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 FineEnvs/LFM2.5-2.6B-opencode-SFT with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "FineEnvs/LFM2.5-2.6B-opencode-SFT" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "FineEnvs/LFM2.5-2.6B-opencode-SFT", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/FineEnvs/LFM2.5-2.6B-opencode-SFT
- SGLang
How to use FineEnvs/LFM2.5-2.6B-opencode-SFT 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 "FineEnvs/LFM2.5-2.6B-opencode-SFT" \ --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": "FineEnvs/LFM2.5-2.6B-opencode-SFT", "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 "FineEnvs/LFM2.5-2.6B-opencode-SFT" \ --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": "FineEnvs/LFM2.5-2.6B-opencode-SFT", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use FineEnvs/LFM2.5-2.6B-opencode-SFT with Docker Model Runner:
docker model run hf.co/FineEnvs/LFM2.5-2.6B-opencode-SFT
|
Download README.md from FineEnvs/LFM2.5-2.6B-opencode-SFT: direct link, hf CLI and curl.
- Browser
- Download file 8.62 kB
-
https://huggingface.co/FineEnvs/LFM2.5-2.6B-opencode-SFT/resolve/main/README.md
- Command line
-
hf download hf://FineEnvs/LFM2.5-2.6B-opencode-SFT/README.md
-
curl -L -o README.md https://huggingface.co/FineEnvs/LFM2.5-2.6B-opencode-SFT/resolve/main/README.md
8.62 kB
| base_model: LiquidAI/LFM2.5-2.6B | |
| base_model_relation: finetune | |
| library_name: transformers | |
| pipeline_tag: text-generation | |
| language: | |
| - en | |
| license: other | |
| tags: | |
| - trl | |
| - openenv | |
| - harbor | |
| - agent | |
| - smoldataenvs | |
| - sft | |
| - opencode | |
| datasets: | |
| - FineEnvs/SmolDataEnvs-multiharness-sft | |
| thumbnail: https://huggingface.co/spaces/AdithyaSK/multi-harness-rl/resolve/main/app/public/og/og-image.png | |
| model-index: | |
| - name: LFM2.5-2.6B-opencode-SFT (main, step 1208) | |
| results: | |
| - task: | |
| type: text-generation | |
| name: Agentic data analysis | |
| dataset: | |
| type: FineEnvs/SmolDataEnvs-harbor-test | |
| name: SmolDataEnvs (250 fixed test tasks) | |
| split: test | |
| args: | |
| harness: all four | |
| metrics: | |
| - type: pass_at_1 | |
| name: Pass@1 (%) — Overall | |
| value: 47.5 | |
| - task: | |
| type: text-generation | |
| name: Agentic data analysis | |
| dataset: | |
| type: FineEnvs/SmolDataEnvs-harbor-test | |
| name: SmolDataEnvs (250 fixed test tasks) | |
| split: test | |
| args: | |
| harness: opencode | |
| metrics: | |
| - type: pass_at_1 | |
| name: Pass@1 (%) — OpenCode | |
| value: 51.6 | |
| - task: | |
| type: text-generation | |
| name: Agentic data analysis | |
| dataset: | |
| type: FineEnvs/SmolDataEnvs-harbor-test | |
| name: SmolDataEnvs (250 fixed test tasks) | |
| split: test | |
| args: | |
| harness: claude-code | |
| metrics: | |
| - type: pass_at_1 | |
| name: Pass@1 (%) — Claude Code | |
| value: 33.2 | |
| - task: | |
| type: text-generation | |
| name: Agentic data analysis | |
| dataset: | |
| type: FineEnvs/SmolDataEnvs-harbor-test | |
| name: SmolDataEnvs (250 fixed test tasks) | |
| split: test | |
| args: | |
| harness: codex | |
| metrics: | |
| - type: pass_at_1 | |
| name: Pass@1 (%) — Codex | |
| value: 46.4 | |
| - task: | |
| type: text-generation | |
| name: Agentic data analysis | |
| dataset: | |
| type: FineEnvs/SmolDataEnvs-harbor-test | |
| name: SmolDataEnvs (250 fixed test tasks) | |
| split: test | |
| args: | |
| harness: mini-swe-agent | |
| metrics: | |
| - type: pass_at_1 | |
| name: Pass@1 (%) — Mini-SWE-Agent | |
| value: 58.8 | |
| license_name: lfm1.0 | |
| license_link: LICENSE | |
| [](https://huggingface.co/spaces/AdithyaSK/multi-harness-rl) | |
| # LFM2.5-2.6B-opencode-SFT | |
| A full fine-tune of [LiquidAI/LFM2.5-2.6B](https://huggingface.co/LiquidAI/LFM2.5-2.6B) for agentic data-analysis tasks, trained with supervised fine-tuning (TRL SFT) using **OpenCode**. This release is **step 1,208** on **`main`**, epoch 2, scoring **47.5% pass@1** across four evaluation harnesses. | |
| [Article](https://huggingface.co/spaces/AdithyaSK/multi-harness-rl) · [Collection](https://huggingface.co/collections/FineEnvs/multi-harness-rl-6abdfaaa8d74dacd481d5212) · [Evaluation tasks](https://huggingface.co/datasets/FineEnvs/SmolDataEnvs-harbor-test) · [Training dashboard](https://huggingface.co/spaces/FineEnvs/data-agent-training-comparison-trackio) | |
| ## Training and evaluation curves | |
| [](https://huggingface.co/spaces/AdithyaSK/multi-harness-rl) | |
| Training curves use a trailing 50-step mean (at least 10 observations). Evaluation markers show measured checkpoints; hollow markers and dotted segments indicate incomplete coverage. Faint background lines show the full recorded trajectory; colored lines reveal the measured checkpoints. The first frame shows the completed chart before replaying, so previews also contain the full curves. Tool-call savings compare tasks solved by both the base model and checkpoint, with a different matched cohort at each checkpoint. SFT evaluations were recorded at the end of each epoch only. The animation stops at this revision's step 1,208. | |
| [Static chart](https://huggingface.co/FineEnvs/LFM2.5-2.6B-opencode-SFT/resolve/main/assets/curves.png) · [Plotted data](https://huggingface.co/FineEnvs/LFM2.5-2.6B-opencode-SFT/resolve/main/assets/curves.json) · [Interactive article](https://huggingface.co/spaces/AdithyaSK/multi-harness-rl) | |
| ## Training | |
| TRL SFT on [FineEnvs/SmolDataEnvs-multiharness-sft](https://huggingface.co/datasets/FineEnvs/SmolDataEnvs-multiharness-sft), using the OpenCode subset only. The data contains successful Qwen3.8-27B teacher rollouts collected through OpenEnv × Harbor in Daytona sandboxes. Up to three teacher attempts were allowed per task/harness; the first successful trace was retained. | |
| This run uses 4,825 assistant-turn examples from 801 successful rollouts covering 801 distinct tasks. Loss is applied only to the next assistant response; user messages, tool outputs and prior history are context. Responses are tokenized for LFM, not trained against teacher token IDs or logprobs. | |
| | Setting | Value | | |
| |---|---| | |
| | Epochs / checkpoint | 2 / 1,208 | | |
| | Learning rate / schedule | 3e-6 / constant | | |
| | Effective batch size | 8 | | |
| | Optimizer / precision | paged AdamW 8-bit / bfloat16 | | |
| | Training harnesses | OpenCode | | |
| | Objective | Completion-only supervised fine-tuning | | |
| ## Evaluation | |
| 250 fixed SmolDataEnvs test tasks (33 easy, 118 medium, 99 hard), each evaluated under four harnesses: **1,000 graded task/harness cells**. Pass@1 uses the first graded attempt per cell; infrastructure retries do not turn it into pass@k. All cells below are graded. | |
| | Harness | Correct / evaluated | Pass@1 | | |
| |---|---:|---:| | |
| | OpenCode | 129 / 250 | 51.6% | | |
| | Claude Code | 83 / 250 | 33.2% | | |
| | Codex | 116 / 250 | 46.4% | | |
| | Mini-SWE-Agent | 147 / 250 | 58.8% | | |
| | **Overall** | **475 / 1,000** | **47.5%** | | |
| Harness versions: OpenCode 1.18.31, Claude Code 2.1.270, Codex 0.154.0, Mini-SWE-Agent 2.4.6. Full scores, including difficulty breakdowns, are in [eval_results.json](eval_results.json). | |
| These are single-run results on a specific task set and harness versions. Harness mix, training exposure and compute differ across runs; the scores do not isolate a causal effect of the harness or objective. | |
| ## Load the checkpoint | |
| The repository contains full saved model weights and the saved tokenizer/chat template, not a LoRA adapter. Training used Transformers 5.14.1; use a compatible Transformers release. | |
| ```python | |
| import torch | |
| from transformers import AutoTokenizer, AutoModelForCausalLM | |
| model_id = "FineEnvs/LFM2.5-2.6B-opencode-SFT" | |
| revision = "main" | |
| tokenizer = AutoTokenizer.from_pretrained(model_id, revision=revision) | |
| model = AutoModelForCausalLM.from_pretrained( | |
| model_id, revision=revision, dtype=torch.bfloat16, device_map="auto" | |
| ) | |
| ``` | |
| Reproducing the task scores requires the agent harness and tools described in the [article](https://huggingface.co/spaces/AdithyaSK/multi-harness-rl); a plain chat prompt is not the same evaluation. | |
| ## Related releases | |
| - [LFM2.5-2.6B-multiharness-RL](https://huggingface.co/FineEnvs/LFM2.5-2.6B-multiharness-RL) | |
| - [LFM2.5-2.6B-opencode-RL](https://huggingface.co/FineEnvs/LFM2.5-2.6B-opencode-RL) | |
| - [LFM2.5-2.6B-multiharness-SFT](https://huggingface.co/FineEnvs/LFM2.5-2.6B-multiharness-SFT) | |
| - [LFM2.5-2.6B-opencode-SFT](https://huggingface.co/FineEnvs/LFM2.5-2.6B-opencode-SFT) | |
| - [Qwen3.5-2B-multiharness-RL](https://huggingface.co/FineEnvs/Qwen3.5-2B-multiharness-RL) | |
| - [Qwen3.5-2B-opencode-RL](https://huggingface.co/FineEnvs/Qwen3.5-2B-opencode-RL) | |
| - [Qwen3.5-2B-opencode-standalone-RL](https://huggingface.co/FineEnvs/Qwen3.5-2B-opencode-standalone-RL) | |
| All models, datasets, environments and the article are linked in the [multi-harness RL collection](https://huggingface.co/collections/FineEnvs/multi-harness-rl-6abdfaaa8d74dacd481d5212). | |
| ## License and provenance | |
| Derived from [LiquidAI/LFM2.5-2.6B](https://huggingface.co/LiquidAI/LFM2.5-2.6B) under the LFM Open License v1.0. The base model's license is included unchanged in [LICENSE](LICENSE). FineEnvs modified the weights by supervised fine-tuning; this is not an official Liquid AI release. See [NOTICE](NOTICE) and [release_manifest.json](release_manifest.json) for modification notices, the pinned base revision, checkpoint identity and file checksums. Optimizer, scheduler, RNG and trainer state are excluded. | |
| ## Citation | |
| For the experiment, methodology and interpretation, cite the [main article](https://huggingface.co/spaces/AdithyaSK/multi-harness-rl): | |
| ```bibtex | |
| @misc{kolavi2026multiharnessrl, | |
| author = {Adithya S Kolavi}, | |
| title = {The ultimate guide to multi-harness RL}, | |
| year = {2026}, | |
| url = {https://huggingface.co/spaces/AdithyaSK/multi-harness-rl} | |
| } | |
| ``` | |