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
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. |
--ollama-base-model |
-m |
gemma4:12b-mlx |
Base model registered in Ollama. |
--ollama-target-name, --name |
-n |
gemma4-adapted |
Name for the new model 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+
- macOS on Apple Silicon
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lora_ollama_bridge-0.1.1.tar.gz.
File metadata
- Download URL: lora_ollama_bridge-0.1.1.tar.gz
- Upload date:
- Size: 13.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b97579675b943922e33cf828c346533b7d9f33dbe201f0370f682c73db7055b5
|
|
| MD5 |
592a358204261a45e97f8f36e4916c00
|
|
| BLAKE2b-256 |
5348d3095eed975ff356b016e24cf3ea6cd93a39c7605aaf969f03171b488055
|
File details
Details for the file lora_ollama_bridge-0.1.1-py3-none-any.whl.
File metadata
- Download URL: lora_ollama_bridge-0.1.1-py3-none-any.whl
- Upload date:
- Size: 14.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ad3f1b0e54e2466dd76baeed125d8119c5eb2917023c2fedf19e64da5961b79
|
|
| MD5 |
54e5ec2ded8713d53e880f159f737d34
|
|
| BLAKE2b-256 |
48df5e5056e32edbf7be833310e9f0e9a4853184a2fc9e24cd1651b69645fe03
|