Skip to main content
LEAP Finetune (leap-finetune) is Liquid’s repo for the full model customization loop: data preparation, training, evals, checkpointing, and export for Liquid Foundation Models (LFMs). Use it when you want a repo-driven workflow that Claude Code or Codex can operate end to end from intent to runnable configs, tests, launches, and follow-up evals.

What it includes

Agent quickstart

Clone the repo and install the locked environment:
For AMD/ROCm machines, sync the ROCm dependency group instead:
Start Claude Code or Codex from the repo root:
The repo includes AGENTS.md, CLAUDE.md, and mirrored skills under .agents/skills/ and .claude/skills/. Those files help the agent choose the right workflow for data prep, training configs, eval suites, rewards, backend launch, checkpoint inspection, and export. Good starter prompts:
  • “Train LFM2-1.2B with SFT LoRA on the Hugging Face HuggingFaceTB/smoltalk dataset, sweep learning rate and LoRA rank, and tell me which run looks best.”
  • “Fine-tune an LFM vision model on a chart question-answering dataset from Hugging Face, add a small eval suite, and show me the launch command.”
  • “Evaluate my latest support_sft checkpoint with vLLM, compare it against the base model, and write the metrics to results.json.”
  • “Set up a GRPO experiment that rewards valid JSON answers, run a small smoke test, and suggest the next config to try.”

CLI usage

Run from the repo environment when you are developing configs or changing LFT itself:
For repeated use from any directory, install the CLI as a uv tool:
To import leap_finetune from another uv project, add it as a dependency:

Python usage

run_config accepts YAML paths or typed config objects. A config with slurm, modal, or kuberay submits to that backend; otherwise local training expects visible CUDA devices.
Eval-only runs use EvalRunConfig, not JobConfig, because they do not include a training dataset or training settings.
Evaluation data uses the same messages-style format as training data. For generation metrics such as short_answer, the final assistant turn is treated as the ground truth.