Instructions to use ukisai/Swift-1.5-5bit-MLX with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use ukisai/Swift-1.5-5bit-MLX 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("ukisai/Swift-1.5-5bit-MLX") 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 ukisai/Swift-1.5-5bit-MLX with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "ukisai/Swift-1.5-5bit-MLX"
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": "ukisai/Swift-1.5-5bit-MLX" } ] } } }Run Pi
# Start Pi in your project directory: pi
- MLX LM
How to use ukisai/Swift-1.5-5bit-MLX with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "ukisai/Swift-1.5-5bit-MLX"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "ukisai/Swift-1.5-5bit-MLX" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ukisai/Swift-1.5-5bit-MLX", "messages": [ {"role": "user", "content": "Hello"} ] }' - Hermes Agent
How to use ukisai/Swift-1.5-5bit-MLX 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 "ukisai/Swift-1.5-5bit-MLX"
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 ukisai/Swift-1.5-5bit-MLX
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use ukisai/Swift-1.5-5bit-MLX with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "ukisai/Swift-1.5-5bit-MLX"
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 "ukisai/Swift-1.5-5bit-MLX" \ --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"
Download compatibility/enable-5bit.patch from ukisai/Swift-1.5-5bit-MLX: direct link, hf CLI and curl.
- Browser
- Download file 2.23 kB
-
https://huggingface.co/ukisai/Swift-1.5-5bit-MLX/resolve/main/compatibility/enable-5bit.patch
- Command line
-
hf download hf://ukisai/Swift-1.5-5bit-MLX/compatibility/enable-5bit.patch
-
curl -L -o enable-5bit.patch https://huggingface.co/ukisai/Swift-1.5-5bit-MLX/resolve/main/compatibility/enable-5bit.patch
2.23 kB
| diff --git a/mlx_lm/models/qwen3_5_full.py b/mlx_lm/models/qwen3_5_full.py | |
| --- a/mlx_lm/models/qwen3_5_full.py | |
| +++ b/mlx_lm/models/qwen3_5_full.py | |
| class Model(nn.Module): | |
| settings.get("group_size"), | |
| settings.get("mode", "affine"), | |
| ) | |
| - if (bits, group, mode) != (4, 64, "affine"): | |
| + if bits not in (4, 5) or group != 64 or mode != "affine": | |
| raise ValueError( | |
| - "This extension only prepares affine/4-bit/group-64 native checkpoints" | |
| + "This extension only prepares affine/4-or-5-bit/group-64 native checkpoints" | |
| ) | |
| original = shapes[f"{path}.weight"] | |
| if original[-1] % group: | |
| diff --git a/tests/test_qwen3_5_full.py b/tests/test_qwen3_5_full.py | |
| --- a/tests/test_qwen3_5_full.py | |
| +++ b/tests/test_qwen3_5_full.py | |
| def test_official_nonquantized_convert_and_reload_preserve_all_tensors( | |
| load_model(output, lazy=True) | |
| -def test_fixed_affine_quantized_roundtrip_preserves_component_tree(reference, tmp_path): | |
| +@pytest.mark.parametrize("bits", [4, 5]) | |
| +def test_fixed_affine_quantized_roundtrip_preserves_component_tree( | |
| + reference, tmp_path, bits | |
| +): | |
| from mlx_lm.utils import quantize_model, save_model | |
| config, _, _, state, _ = reference | |
| model = Model(ModelArgs.from_dict(config)) | |
| model.load_weights(list(model.sanitize(state).items()), strict=True) | |
| original_names = set(dict(tree_flatten(model.parameters()))) | |
| - model, quantized_config = quantize_model(model, config, 64, 4, mode="affine") | |
| + model, quantized_config = quantize_model(model, config, 64, bits, mode="affine") | |
| save_model(tmp_path, model) | |
| save_config(quantized_config, tmp_path / "config.json") | |
| loaded, saved_config = load_model(tmp_path, lazy=False, strict=True) | |
| def test_fixed_affine_quantized_roundtrip_preserves_component_tree(reference, tm | |
| assert set(actual) == set(expected) | |
| assert original_names <= set(actual) | |
| assert saved_config["quantization"] == { | |
| - "bits": 4, | |
| + "bits": bits, | |
| "group_size": 64, | |
| "mode": "affine", | |
| } | |