Text Generation
GGUF
English
Portuguese
jq
json
text-to-jq
natural-language-to-code
code-generation
text-to-code
qwen3
ollama
llama.cpp
offline
privacy
structured-data
portuguese
Eval Results (legacy)
conversational
Instructions to use DominuZ/jq-coder-0.6B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use DominuZ/jq-coder-0.6B with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="DominuZ/jq-coder-0.6B", filename="jq-coder-v13-release-Q8_0.gguf", )
llm.create_chat_completion( messages = [ { "role": "user", "content": "What is the capital of France?" } ] ) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use DominuZ/jq-coder-0.6B with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf DominuZ/jq-coder-0.6B:Q8_0 # Run inference directly in the terminal: llama cli -hf DominuZ/jq-coder-0.6B:Q8_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf DominuZ/jq-coder-0.6B:Q8_0 # Run inference directly in the terminal: llama cli -hf DominuZ/jq-coder-0.6B:Q8_0
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf DominuZ/jq-coder-0.6B:Q8_0 # Run inference directly in the terminal: ./llama-cli -hf DominuZ/jq-coder-0.6B:Q8_0
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf DominuZ/jq-coder-0.6B:Q8_0 # Run inference directly in the terminal: ./build/bin/llama-cli -hf DominuZ/jq-coder-0.6B:Q8_0
Use Docker
docker model run hf.co/DominuZ/jq-coder-0.6B:Q8_0
- LM Studio
- Jan
- vLLM
How to use DominuZ/jq-coder-0.6B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "DominuZ/jq-coder-0.6B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "DominuZ/jq-coder-0.6B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/DominuZ/jq-coder-0.6B:Q8_0
- Ollama
How to use DominuZ/jq-coder-0.6B with Ollama:
ollama run hf.co/DominuZ/jq-coder-0.6B:Q8_0
- Unsloth Studio
How to use DominuZ/jq-coder-0.6B with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for DominuZ/jq-coder-0.6B to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for DominuZ/jq-coder-0.6B to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for DominuZ/jq-coder-0.6B to start chatting
- Atomic Chat new
- Docker Model Runner
How to use DominuZ/jq-coder-0.6B with Docker Model Runner:
docker model run hf.co/DominuZ/jq-coder-0.6B:Q8_0
- Lemonade
How to use DominuZ/jq-coder-0.6B with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull DominuZ/jq-coder-0.6B:Q8_0
Run and chat with the model
lemonade run user.jq-coder-0.6B-Q8_0
List all available models
lemonade list
Upload README.md with huggingface_hub
Browse files
README.md
CHANGED
|
@@ -31,7 +31,7 @@ niche, [**jq-bench**](https://huggingface.co/datasets/DominuZ/jq-bench).
|
|
| 31 |
With [llama.cpp](https://github.com/ggml-org/llama.cpp):
|
| 32 |
|
| 33 |
```bash
|
| 34 |
-
llama-server -m jq-coder-
|
| 35 |
```
|
| 36 |
|
| 37 |
```bash
|
|
@@ -89,7 +89,7 @@ document correctly yields a different filter.
|
|
| 89 |
**Reverse generation with ground truth by execution** — the training data was never
|
| 90 |
written by an LLM guessing jq:
|
| 91 |
|
| 92 |
-
1. A grammar of **
|
| 93 |
StackOverflow `[jq]` questions, the llm-jq / jiq / gpt-jq corpora, the official jq
|
| 94 |
manual), samples candidate programs.
|
| 95 |
2. Each program is **executed with real jq 1.8** against families of synthetic JSON
|
|
@@ -102,7 +102,7 @@ written by an LLM guessing jq:
|
|
| 102 |
part). Teachers are locally served open-weights models (Apache 2.0, distillation
|
| 103 |
permitted).
|
| 104 |
|
| 105 |
-
Result: **
|
| 106 |
of Qwen3-0.6B-Base.
|
| 107 |
|
| 108 |
## Evaluation — jq-bench
|
|
@@ -115,18 +115,22 @@ The human slice of **jq-bench** is 30 real StackOverflow tasks, hand-curated,
|
|
| 115 |
independent of the training grammar, never seen in training (CC BY-SA 4.0, per-item
|
| 116 |
attribution).
|
| 117 |
|
| 118 |
-
| Artifact (
|
| 119 |
|---|---|---|---|
|
| 120 |
-
| f16 |
|
| 121 |
-
| **Q8_0 (recommended)** | **
|
| 122 |
|
| 123 |
¹ *strict* = byte-identical to gold after canonicalization; *task-solved* additionally
|
| 124 |
accepts equivalent output shapes (stream vs. array wrapper, etc.).
|
| 125 |
|
| 126 |
-
|
| 127 |
-
independently of the training pipeline)
|
| 128 |
-
|
| 129 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 130 |
|
| 131 |
## Quantization
|
| 132 |
|
|
@@ -138,10 +142,12 @@ unharmed — we measured instead of assuming, and we don't publish what failed t
|
|
| 138 |
|
| 139 |
## Honest limitations
|
| 140 |
|
| 141 |
-
- **Long compositions fail** (~2/3 of the human slice):
|
| 142 |
(`. - [...]`), `to_entries` with object reconstruction + `tonumber`, compound merges
|
| 143 |
-
with `del`. The model interpolates between neighboring
|
| 144 |
-
training; requests far from everything it saw come out wrong
|
|
|
|
|
|
|
| 145 |
- Aggregations under nested fields can come out as listings instead of sums.
|
| 146 |
- The request must mention fields by their real names in the JSON; the JSON sample in
|
| 147 |
the prompt is mandatory.
|
|
|
|
| 31 |
With [llama.cpp](https://github.com/ggml-org/llama.cpp):
|
| 32 |
|
| 33 |
```bash
|
| 34 |
+
llama-server -m jq-coder-v14-release-Q8_0.gguf --port 8091 -ngl 99
|
| 35 |
```
|
| 36 |
|
| 37 |
```bash
|
|
|
|
| 89 |
**Reverse generation with ground truth by execution** — the training data was never
|
| 90 |
written by an LLM guessing jq:
|
| 91 |
|
| 92 |
+
1. A grammar of **148 program families**, anchored in real-world usage (top-voted
|
| 93 |
StackOverflow `[jq]` questions, the llm-jq / jiq / gpt-jq corpora, the official jq
|
| 94 |
manual), samples candidate programs.
|
| 95 |
2. Each program is **executed with real jq 1.8** against families of synthetic JSON
|
|
|
|
| 102 |
part). Teachers are locally served open-weights models (Apache 2.0, distillation
|
| 103 |
permitted).
|
| 104 |
|
| 105 |
+
Result: **36,879 verified pairs**, bilingual EN/PT-BR 50/50, full fine-tune (not LoRA)
|
| 106 |
of Qwen3-0.6B-Base.
|
| 107 |
|
| 108 |
## Evaluation — jq-bench
|
|
|
|
| 115 |
independent of the training grammar, never seen in training (CC BY-SA 4.0, per-item
|
| 116 |
attribution).
|
| 117 |
|
| 118 |
+
| Artifact (v14) | human slice, strict | human slice, task-solved¹ | in-distribution (400) |
|
| 119 |
|---|---|---|---|
|
| 120 |
+
| f16 | 10/30 | 11/30 | 394/400 |
|
| 121 |
+
| **Q8_0 (recommended)** | **10/30** | **11/30** | **394/400** |
|
| 122 |
|
| 123 |
¹ *strict* = byte-identical to gold after canonicalization; *task-solved* additionally
|
| 124 |
accepts equivalent output shapes (stream vs. array wrapper, etc.).
|
| 125 |
|
| 126 |
+
Two internal diagnostics of ~200 realistic probes each (execution-verified, authored
|
| 127 |
+
independently of the training pipeline) track progress across data iterations: the v14
|
| 128 |
+
iteration scores **63.7%** on the older set (v13: 52.5%; v12: 31.4%) and **50.0%** on a
|
| 129 |
+
fresh, fully independent set (v13: 32.0%). The v14 data iteration targeted missing
|
| 130 |
+
*constructs* — `any`/`all`, filtered aggregations, `if-then-else` derived fields,
|
| 131 |
+
mid-level element paths (`.features[].properties.name`), string splitting — after the
|
| 132 |
+
v13 iteration had fixed the dominant envelope/root-shape failures. The human slice
|
| 133 |
+
remains the canonical metric.
|
| 134 |
|
| 135 |
## Quantization
|
| 136 |
|
|
|
|
| 142 |
|
| 143 |
## Honest limitations
|
| 144 |
|
| 145 |
+
- **Long compositions still fail** (~2/3 of the human slice): array subtraction
|
| 146 |
(`. - [...]`), `to_entries` with object reconstruction + `tonumber`, compound merges
|
| 147 |
+
with `del`, recursive descent (`..`). The model interpolates between neighboring
|
| 148 |
+
compositions it saw in training; requests far from everything it saw come out wrong
|
| 149 |
+
or hallucinated. (v14 added `any`/`all`, filtered aggregations and conditional field
|
| 150 |
+
derivation — those now work in typical shapes but still break inside longer chains.)
|
| 151 |
- Aggregations under nested fields can come out as listings instead of sums.
|
| 152 |
- The request must mention fields by their real names in the JSON; the JSON sample in
|
| 153 |
the prompt is mandatory.
|