Skip to main content

Bridge between Unsloth and Ollama

A utility for registering LoRA adapters into Ollama without weight fusion or GGUF quantization. It's tested on MLX models so far, but it should support other variants as well.

Standard conversion paths from Unsloth tuned model (mlx_vlm.fuse $\rightarrow$ convert_hf_to_gguf) are CPU-bound and result in multi-gigabyte files for a 150MB adapter change. This tool bridge MLX/Unsloth adapters to the HF PEFT schema, allowing for ADAPTER registration in Ollama. It removes the need for de-quantization and re-quantization cycles which prevents additional quantization degradation.


Installation

pip install lora-ollama-bridge

Or install from source:

git clone https://github.com/filtercodes/LoRA-Ollama-Bridge.git
cd LoRA-Ollama-Bridge
pip install -e .

NOTE - bridge support is currently pending upstream review in Ollama PR #17377. To use this tool right now, run the patched Ollama built from source:

git clone https://github.com/filtercodes/ollama.git
cd ollama
go build .
./ollama serve

Quickstart

1. Register Adapter in Ollama

Point the tool to the adapter directory (containing adapters.safetensors and adapter_config.json). It converts the tensors to HuggingFace PEFT schema and registers the model in Ollama:

lora-ollama-bridge -i ./mlx_adapters --name new-fine-tuned-model

2. Convert Adapter Only (Skip Ollama)

To convert the adapter format without calling the Ollama API:

lora-ollama-bridge -i ./mlx_adapters -o ./converted_adapter --skip-ollama

3. Custom Checkpoint & System Prompt

Specify a checkpoint file, system prompt, or context length:

lora-ollama-bridge \
  -i ./mlx_adapters \
  -w 0000400_adapters.safetensors \
  --name gemma4-fine-tune \
  -s "You are a helpful assistant." \
  --num-ctx 65536

4. Passing Modelfile Template

Alternatively use Modelfile directly rather than typing CLI flags:

lora-ollama-bridge -i ./mlx_adapters -f my_custom.modelfile --name gemma4-custom

CLI Reference

Flag Short Default Description
--input-dir -i ./ Path to directory containing MLX or HF PEFT adapter files.
--output-dir -o ./converted_adapter Output directory for converted PEFT safetensors.
--modelfile -f None Path to a custom Modelfile template.
--ollama-base-model -m Auto-inferred Base model tag in Ollama.
--ollama-target-name, --name -n gemma4-adapted Name for the new model variant in Ollama.
--adapter-weights -w None Specific adapter weights file (e.g. 0000400_adapters.safetensors).
--system-prompt, --system -s None System prompt to include in the Modelfile.
--ollama-url -u http://localhost:11434 Ollama server URL.
--num-ctx 65536 Context window size (num_ctx).
--skip-ollama False Convert adapter format without calling Ollama API.
--force False Bypass safety checks.

Requirements

  • Python 3.10+
  • Dependencies: mlx, torch, safetensors, requests, jinja2

Testing

python3 -m unittest discover -s tests

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lora_ollama_bridge-0.1.4.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lora_ollama_bridge-0.1.4-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file lora_ollama_bridge-0.1.4.tar.gz.

File metadata

  • Download URL: lora_ollama_bridge-0.1.4.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for lora_ollama_bridge-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ab480d058ed3b3a73bb461aea3bfeb70651711320d5d5150d6495d1ad1fbdb72
MD5 ba922b9aefd41919ed396b76bf328c5d
BLAKE2b-256 b05b37ee65123453352600d398ab06e29afd434e6b8891eb9f330a0a638c3a82

See more details on using hashes here.

File details

Details for the file lora_ollama_bridge-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for lora_ollama_bridge-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ebb1e529954751fbd167fcf090febb53ff80ac45439b9fb66021d7391192dd30
MD5 d2f6858da08daff449794920e0c98fd1
BLAKE2b-256 840c3ac138a32ab4ebc2122530298cc2feb28d1231e3bad3aa362c8713b5da8f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page