Instructions to use heath0xFF/touch-grass-v0-MLX-8bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use heath0xFF/touch-grass-v0-MLX-8bit with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] hf download heath0xFF/touch-grass-v0-MLX-8bit --local-dir touch-grass-v0-MLX-8bit
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Atomic Chat
touch-grass v0 — MLX 8-bit
Antidoom, but for agents. An Apple Silicon export of the merged touch-grass v0 checkpoint, fine-tuned from Liquid AI d1-3B. It scores five next actions:
CONTINUE · RETRY · CHANGE_STRATEGY · ESCALATE · TOUCH_GRASS
Experimental and advisory only. Not a safety gate or authorization system. Use mlx-vlm's native d1 decision methods, not text generation or a generic chat interface. No replacement classifier head is added.
Run on Apple Silicon
Tested on Apple M5 Pro with MLX 0.32.4 and mlx-vlm 0.7.8, commit
73d366ecf9233b3fc6549531a7f2386726d09ff6.
mlx-vlm versions without d1 support will not work.
Save the following as judge_mlx.py:
import json
from pathlib import Path
from huggingface_hub import snapshot_download
from mlx_vlm import load
path = Path(snapshot_download("heath0xFF/touch-grass-v0-MLX-8bit", revision="v0"))
model, processor = load(path)
request = json.loads((path / "request.json").read_text())
question = request["questions"]["action"]
rows, tokens = model.probabilities(processor, request["state"], [question])
probabilities = dict(zip(question["criteria"], rows[0], strict=True))
print({"action": max(probabilities, key=probabilities.get), "probabilities": probabilities})
Run with uv:
uv run --with 'mlx-vlm @ git+https://github.com/Blaizzy/mlx-vlm.git@73d366ecf9233b3fc6549531a7f2386726d09ff6' \
--with 'mlx==0.32.4' --with 'transformers==5.19.0' python judge_mlx.py
request.json includes a demo task, chronological trajectory, and the exact
five-action question. Replace its state to judge another trajectory; retain
the question for comparable behavior. The code uses the native, unrounded
model.probabilities readout. The higher-level mlx_vlm.predict API also works,
but rounds its probabilities to four decimal places and calls the selected
label value. Neither API generates output tokens for these decisions.
Keep the complete rendered input within v0's 2,048-token limit; the native MLX method does not enforce this project-specific limit. The evaluation script checks it. The companion project's PyTorch CLI does not load these MLX weights.
Measured checks
Compared with the published CUDA BF16 checkpoint, using the same input files and per-case candidate orders. Both are held-out sets, not quantization data.
| Set | Accuracy | Macro F1 | Stop recall | False stops | Same top action as BF16 |
|---|---|---|---|---|---|
| Synthetic test: 150 rows / 10 families | 90.0% | 0.893 | 30/30 | 0/90 | 150/150 |
| Gold: 30 separately authored cases | 90.0% | 0.898 | 6/6 | 1/18 | 30/30 |
The largest candidate-probability change is 0.0371 on test and 0.1045 on gold. Mean absolute changes are 0.000351 and 0.002098 respectively. Differences include runtime, precision, batch shape, and quantization effects; this is not a measurement of quantization alone. Matching top actions does not mean matching probabilities or calibration. The original three gold errors remain.
False stops count TOUCH_GRASS predictions on true CONTINUE, RETRY, or
CHANGE_STRATEGY cases. The gold set is assistant-authored, not human-adjudicated.
Synthetic variants are correlated. No real-agent safety validation was done.
Never treat a high probability as permission to repeat a payment or take a
destructive action. No post-training probability calibration was performed.
Raw predictions and metrics · Conversion and evaluation recipe · Original training and limitations
Provenance and license
Source release: heath0xFF/touch-grass-v0@8cd6d51892d82b61db40f2ff4889a7dfe0755f89.
Converted with mlx-vlm: 8-bit affine quantization, group size 64, with other
tensors in float16. Language linear/embedding weights are quantized; the vision
tower and projector remain float16. Vision weights are retained but vision
use was not tested. No retraining or calibration dataset was used.
The upstream PyTorch modules are not bundled. config.json keeps its D1Model
marker so mlx-vlm selects its built-in native d1 implementation. These are MLX
weights, not a checkpoint to load through Transformers. export.json records
the tool revisions, source hash, and artifact hashes.
Weights use the LFM Open License v1.0, including its commercial-use
restrictions. LICENSE and NOTICE are included. The companion code's MIT
license does not relicense the weights. Not affiliated with or endorsed by
Liquid AI.
- Downloads last month
- 19
8-bit
Model tree for heath0xFF/touch-grass-v0-MLX-8bit
Base model
LiquidAI/LFM2.5-2.6B-Base