Liquid Harness – customize Liquid AI foundation models into task-specific models.
Project description
Closed beta — visit lqh.ai to request access.
lqh — Liquid Harness
From zero to a fine-tuned LFM in under an hour.
Liquid Harness is a terminal agent that turns a plain-English task description into a deployable model. It writes the data pipeline, scores and filters samples, runs baselines, fine-tunes, and iterates. No ML experience required. Built and maintained by Liquid AI as the official way to customize Liquid Foundation Models, powered by LQH Cloud.
pip install lqh
lqh
✨ Features
💬 Fully agentic
You chat, the agent works. It interviews you about your task, writes and manages the specifications, then drives every downstream stage end-to-end.
📝 Specify in plain English
No DSL, no boilerplate, no ML jargon. Just describe what you want the model to do — the agent captures requirements through dialogue and turns them into structured specs you can refine over time.
🧪 Synthetic data, scored & filtered
The agent authors a per-task data generation pipeline, generates samples concurrently on LQH Cloud, and scores each one with an LLM judge against your rubric. The dataset that hits training is already curated.
🏋️ Fine-tune locally or in the cloud
Eval and data generation run on LQH Cloud. Training can run locally on your own GPUs, or hand off to a beefier machine — just sync the dataset and continue.
🤗 HuggingFace integration
Push and pull datasets from the Hub. Set HF_TOKEN to enable private dataset access and dataset publishing.
🤖 Hands-off --auto mode
Point lqh at a directory and walk away. It either delivers a checkpoint that beats baseline or returns an explicit failure with the reason — never a hang, never a prompt.
🖥️ Interactive TUI
Provide input, guide the agent, visualize progress, and inspect dataset samples — all from a single terminal session with a slash-command palette and a live status bar.
📦 Project-as-directory
Any directory is a project — fully git-compatible, so you can version, branch, and collaborate on specs, datasets, and runs like any other code. cd to switch projects.
🚀 The pipeline
One command runs all nine stages. Each is a real component you can inspect, stop at, or hand off.
spec → rubric → data gen → filter → baseline → SFT → DPO → eval → checkpoint
$ lqh --auto ./my-task
[stage: rubric] writing scorer from spec
[stage: data_gen_draft] 5 samples generated, all valid
[stage: filter_validation] 1,427 / 2,000 kept
[stage: sft_initial] score 6.8/10 (baseline 4.1)
[stage: dpo] iter 3/5, score 7.4/10
[final: success] DPO checkpoint beats baseline by +3.3
🔧 Requirements
- Python 3.10+
- A Liquid Harness account (request access)
- Optional:
torch+transformersfor local fine-tuning - Optional:
HF_TOKENfor HuggingFace dataset sync
🔐 Authentication
lqh
> /login
The CLI stores your token in ~/.lqh/config.json and authenticates all requests to LQH Cloud.
🧬 Base model
Default: LFM2-1.2B-Instruct — small, capable, runs anywhere.
🗺️ Roadmap / work in progress
Things we're actively building or planning. Open an issue if you want to weigh in.
- Quantized evals — run the local evaluation using a quantized model (llama.cpp) so we measure the exact artifact that will be deployed (e.g. Q4_0). Includes checkpoint → GGUF conversion as part of the pipeline.
- Quantization-aware training (QAT) — once quantized evals are in place, train against the quantization noise so the deployed quantized model matches the full-precision score.
- Sub-agent spawning — today there's a single main agent loop. We're adding the ability for the agent to fork or spawn sub-agent processes in parallel for independent subtasks (e.g. drafting multiple data pipelines, running evals concurrently).
- Training via API or SLURM — local and direct-SSH training work today. The training backend is already abstracted so SSH+SLURM cluster submission and a hosted training API can drop in, but neither is implemented or end-to-end tested yet.
- Multi-modal support — scaffolding for image and audio inputs is in place, but the concrete pipelines, data generators, and end-to-end tests have not been written yet.
🤝 Contributing
Please read CONTRIBUTING.md before opening a pull request. Random PRs will be rejected — discuss first via an issue, and the discussion will usually conclude with a prompt (not a patch) that a coding agent will execute. Security hot fixes are the one exception. See the contribution policy for details.
Made with care by Liquid AI.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lqh-0.2.tar.gz.
File metadata
- Download URL: lqh-0.2.tar.gz
- Upload date:
- Size: 2.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32764da86a6ef034fc53489ee56c70c66ef18c0cdb511a5c2e17f808c5d3169a
|
|
| MD5 |
fcfa6631be001084654ac1e4c8c2497c
|
|
| BLAKE2b-256 |
bfea4eefeb12e97d7184acf33ea3076606458556ca2ad03a9606b9e6a752547c
|
File details
Details for the file lqh-0.2-py3-none-any.whl.
File metadata
- Download URL: lqh-0.2-py3-none-any.whl
- Upload date:
- Size: 228.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91307b7950f7c8a7246e8afdc98c5e8a8fea5cd744cc276a199152dfa6937cad
|
|
| MD5 |
4a0b316a0cbd78f2929565d926e0bdcf
|
|
| BLAKE2b-256 |
c7badd698b02faa9f55ee260336716b3377127e2e955ee6f6cd2101e0ed5b37b
|