Liquid AI's 350M model nails structured output after 100 GRPO steps

Liquid AI has published a technical walkthrough showing how its tiny LFM2.5-350M model dramatically improves structured-output capability through Group Relative Policy Optimization — just 100 training steps. The core insight: structured output, meaning valid JSON or YAML that parses directly into downstream systems, is measurable separately from general reasoning, and that's exactly where small models can close the gap with giants without massive compute budgets.
The benchmark is IFStruct, an open-source suite (Liquid4All/ifstruct) with a public dataset on Hugging Face that focuses exclusively on schema compliance — does the output validate against the required structure. Evaluation runs locally on a MacBook Pro with an M5 Max chip and 36 GB unified memory, served via llama.cpp's OpenAI-compatible API endpoint. Training itself runs on a free GPU in Colab or Kaggle, using uv for environment management.
Before fine-tuning, the base BF16 GGUF model passed 22.6% of samples (452 of 2,000), slightly above the originally reported 21.1%. The breakdown reveals clear weak spots: YAML at 27.2% success versus 18% for JSON; a wrapper-key structure hits 28.5% while a bare list stalls at 16.6%. Average latency was 1.45 seconds per sample with four concurrent requests.
The pipeline isn't trying to reproduce the RL results from the IFStruct blog. It demonstrates that task-focused GRPO on accessible hardware is enough to bring a 350M model within striking distance of far larger ones. Code lives in an accompanying notebook, and the split between training environment (cloud GPU) and evaluation environment (local llama.cpp) enables rapid iteration without managed-service lock-in.
The takeaway for developers building real systems: when the bottleneck is parser-ready output that doesn't need post-processing fixes, you don't have to pay for 70B-model inference. A fine-tuned 350M model running locally on a MacBook via llama.cpp can be a practical, cheap solution for extraction and API-calling tasks — provided you accept the knowledge and reasoning limits that come with a model of this scale.