Instructions to use netprojects/Laplace-1-Atlas-MLX-8bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use netprojects/Laplace-1-Atlas-MLX-8bit with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("netprojects/Laplace-1-Atlas-MLX-8bit") prompt = "Write a story about Einstein" messages = [{"role": "user", "content": prompt}] prompt = tokenizer.apply_chat_template( messages, add_generation_prompt=True ) text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use netprojects/Laplace-1-Atlas-MLX-8bit with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "netprojects/Laplace-1-Atlas-MLX-8bit"
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "netprojects/Laplace-1-Atlas-MLX-8bit" } ] } } }Run Pi
# Start Pi in your project directory: pi
- MLX LM
How to use netprojects/Laplace-1-Atlas-MLX-8bit with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "netprojects/Laplace-1-Atlas-MLX-8bit"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "netprojects/Laplace-1-Atlas-MLX-8bit" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "netprojects/Laplace-1-Atlas-MLX-8bit", "messages": [ {"role": "user", "content": "Hello"} ] }' - Hermes Agent
How to use netprojects/Laplace-1-Atlas-MLX-8bit with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "netprojects/Laplace-1-Atlas-MLX-8bit"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default netprojects/Laplace-1-Atlas-MLX-8bit
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use netprojects/Laplace-1-Atlas-MLX-8bit with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "netprojects/Laplace-1-Atlas-MLX-8bit"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "netprojects/Laplace-1-Atlas-MLX-8bit" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Laplace-1-Atlas for Apple Silicon (MLX, 8-bit)
An MLX conversion of JuneoAI/Laplace-1-Atlas (revision cf6ea86),
Juneo Lab's 27B decision model built on Qwen3.8-27B. Hand it a state, a question and a set of candidates, and it
returns a probability for each candidate from one forward pass: who should own a task, who may see what, whether to
act or ask first, whether a result meets the standard. It can also predict the next state of an environment
you describe. This build quantises the language model to 8-bit (affine, group 64) and keeps the vision tower in bf16. Size: 29.5 GB.
Published by NetProjects (Internet Projects Ltd). Not affiliated with Juneo Lab or Alibaba Cloud.
| Build | Size | JevBench (231 public items) | Same top answer as bf16 |
|---|---|---|---|
| netprojects/Laplace-1-Atlas-MLX-6bit (recommended) | 22.8 GB | 91.8% | 231 / 231 |
| netprojects/Laplace-1-Atlas-MLX-8bit | 29.5 GB | 92.2% | 230 / 231 |
| netprojects/Laplace-1-Atlas-MLX-4bit | 16.1 GB | 91.3% | 224 / 231 |
| netprojects/Laplace-1-Atlas-MLX-bf16 | 54.7 GB | 91.8% | reference |
The 6-bit build gives the same top answer as bf16 on every JevBench item at less than half the size. The 4-bit build peaks at about 17 GB of memory in these tests.
Score candidates
A decision is one forward pass: the model reads the candidates as letters and the next-token logits of those letters
give the distribution. This is Juneo's score_candidates helper, ported to mlx-lm with the same prompt.
pip install -U mlx-lm
import json, string
import mlx.core as mx
from mlx_lm import load
model, tokenizer = load("netprojects/Laplace-1-Atlas-MLX-8bit")
SYSTEM = ("Choose the supported answer from the supplied candidates. Output only its letter.\n"
"Return exactly one supplied candidate label.")
def score_candidates(state, question, choices):
"""choices maps your own keys to candidate descriptions (up to 26)."""
keys, letters, ids = list(choices), [], []
for name in string.ascii_uppercase:
t = tokenizer.encode(name, add_special_tokens=False)
if len(t) == 1 and t[0] not in ids:
letters.append(name); ids.append(t[0])
if len(letters) == len(keys):
break
payload = {"state": state, "question": question,
"candidates": [{"letter": l, "description": choices[k]} for l, k in zip(letters, keys)]}
messages = [{"role": "system", "content": SYSTEM},
{"role": "user", "content": json.dumps(payload, ensure_ascii=False)}]
prompt = tokenizer.apply_chat_template(messages, add_generation_prompt=True,
enable_thinking=False, tokenize=False)
tokens = mx.array(tokenizer.encode(prompt, add_special_tokens=False))[None]
logits = model(tokens)[0, -1].astype(mx.float32)
probs = mx.softmax(logits[mx.array(ids)]).tolist()
best = max(range(len(keys)), key=probs.__getitem__)
return {"choice": keys[best], "probabilities": dict(zip(keys, probs))}
print(score_candidates(
state={"permissions": ["read_records"], "request": "Delete a record."},
question="Which decision is supported by the supplied permissions?",
choices={"allow": "Allow the request.", "deny": "Deny the request."},
))
The probabilities are relative to the candidates you supply, not a calibrated chance of being correct. Put the rules that govern the decision in the state.
Predict the next observation
For outcome prediction, give the environment rules as the system message and the state and action as JSON, with thinking off:
mlx_lm.generate --model netprojects/Laplace-1-Atlas-MLX-8bit --max-tokens 256 \
--chat-template-config '{"enable_thinking": false}' \
--system-prompt 'Predict the next environment observation after the supplied action. Return only JSON.' \
--prompt '{"state": {"owner": "operator", "open": true}, "history": [], "action": {"kind": "resolve"}}'
mlx_lm.server serves the model with an OpenAI-compatible API. The vision tower is included, so the model also loads
in mlx-vlm; Juneo reports its decision results on text. Tested with mlx 0.32.4, mlx-lm 0.32.2 and mlx-vlm 0.7.11.
What was checked
On a MacBook Pro M5 Max (128 GB), 11 November 2026.
JevBench. The 231 public items of JevBench (easy, original and hard tiers; MIT). Each item is one candidate-scoring pass with thinking off, using a system prompt of the same form as the helper above; the highest-probability candidate is compared with the expected answer:
Build Accuracy easy original hard Peak memory bf16 91.8% 48 / 48 71 / 72 93 / 111 53.2 GB 8-bit 92.2% 48 / 48 71 / 72 94 / 111 29.2 GB 6-bit 91.8% 48 / 48 71 / 72 93 / 111 23.0 GB 4-bit 91.3% 48 / 48 71 / 72 92 / 111 16.7 GB Agreement with bf16. On the same items, mean KL divergence from the bf16 distribution is 0.006 (8-bit), 0.008 (6-bit) and 0.079 (4-bit). On 24 further decision cases written for this check, every build picks the same candidate as bf16.
Source files. All 20 weight files of the upstream revision match the Hub's SHA-256 hashes.
Images. The 4-bit, 6-bit and 8-bit builds each describe a test image correctly in mlx-vlm.
Intended use
Laplace advises; your system decides. As Juneo's card says, keep deterministic permission checks, authentication and audit logging in place, calibrate thresholds on your own held-out decisions before automating on them, and keep a person on the final decision for irreversible, safety-critical, financial, medical or legal actions. See the original model card for the training data (Decision Forge), the full evaluation and the limitations.
License
Apache-2.0, as the original model and Qwen3.8-27B. LICENSE is the Apache-2.0 text from the upstream repository and
NOTICE describes the conversion and credits Juneo Lab and Alibaba Cloud. If you use the model, please cite Juneo Lab:
@misc{juneo2026laplace1,
title = {Laplace-1: Causal-Interventional Decision Models for Trustworthy Agent Delegation},
author = {{Juneo Lab}},
year = {2026},
howpublished = {\url{https://huggingface.co/JuneoAI/Laplace-1-Atlas}},
note = {Model family: Laplace-1-Atlas (27B), Laplace-1-Vector (4B)}
}
More MLX builds from NetProjects: huggingface.co/netprojects ยท netprojects.com
- Downloads last month
- -
8-bit