Fine-tuning
- Method: QLoRA (rank 16, scale 32.0, dropout 0.05, 4 layers) with MLX-LM 0.31.2 / MLX 0.32.0
- Trainable parameters: 4.058M (0.096%)
- Optimizer: AdamW, learning rate 1.0e-5, effective batch size 4, 200 iterations
- Maximum sequence length: 3,072 tokens; prompt masking enabled
- Hardware: Apple M3 Max; peak memory 191 GB (including swap)
- Checkpoint selection: iteration 75 (validation loss 0.020); test loss 0.074 (perplexity 1.077)
- Training data: CodeXomics-ToolCalling-v1 (373/123/30 train/validation/test examples)
Evaluation
On the CodeXomics Benchmark (172 automatic tests: 143 single-operation, 29 multi-step), evaluated
in the real application loop with task-completion scoring plus execution evidence. Both the
fine-tuned model and the un-fine-tuned Qwen3.5-4B baseline were evaluated in three independent
complete sessions; results were identical across sessions for both models.
Table with columns: Suite, Qwen3.5-4B (base), CodeXomics-ToolAgent-4B-v1| Suite | Qwen3.5-4B (base) | CodeXomics-ToolAgent-4B-v1 |
|---|
| Simple | 139/143 | 143/143 |
| Complex | 26/29 | 29/29 |
| Total | 165/172 (95.9%) | 172/172 (100%) |
Fine-tuning improved the overall accuracy by 7 tests (+4 simple, +3 complex). Inference settings:
temperature 0, thinking enabled.
Inference speed (mean ± SD over three independent runs; offline harness, 172 tests, Ollama Q4_K_M
on Apple M3 Max):
Table with columns: Metric, Qwen3.5-4B (base), CodeXomics-ToolAgent-4B-v1| Metric | Qwen3.5-4B (base) | CodeXomics-ToolAgent-4B-v1 |
|---|
| Average latency per test (s) | 12.0 ± 0.1 | 10.7 ± 0.9 |
| Simple suite (s) | 9.2 ± 0.1 | 8.6 ± 0.7 |
| Complex suite (s) | 25.8 ± 0.3 | 21.5 ± 1.9 |
| Average latency per tool call (s) | 7.9 ± 0.1 | 7.3 ± 0.6 |
| Generation throughput (tokens/s) | 33.9 ± 0.4 | 33.9 ± 2.8 |
| Generated tokens per test |

Figure 1. Two-panel comparison between the un-fine-tuned Qwen3.5-4B baseline and
CodeXomics-ToolAgent-4B-v1. Left: CodeXomics Benchmark pass rates (simple/complex/total; three
sessions each, identical results). Right: average inference latency per test with error bars
(mean ± SD over three runs; Ollama Q4_K_M, Apple M3 Max). Latency values are the mean of the
per-suite rows above; error bars show the run-to-run SD.
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("CodeXomics-ToolAgent-4B-v1")
tokenizer = AutoTokenizer.from_pretrained("CodeXomics-ToolAgent-4B-v1")
For deployment in CodeXomics, the model is served through Ollama as qwen3.5:4b-codexomics-tools-v5
(Q4_K_M, 2.7 GB) with native tool calling and thinking enabled.
Limitations
- The model is specialized for CodeXomics genomic workflows; generalization to other tool-calling
domains was not evaluated.
Citation
@software{codexomics-toolagent-v1,
title = {CodeXomics-ToolAgent-4B-v1},
author = {Song, Lifu},
year = {2026},
license = {Apache-2.0},
publisher = {Hugging Face},
base_model = {Qwen/Qwen3.5-4B}
}