Instructions to use AmarettoLabs/Amaretto-3B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use AmarettoLabs/Amaretto-3B with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="AmarettoLabs/Amaretto-3B", filename="amaretto-3b-Q4_K_M.gguf", )
llm.create_chat_completion( messages = [ { "role": "user", "content": "What is the capital of France?" } ] ) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use AmarettoLabs/Amaretto-3B with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf AmarettoLabs/Amaretto-3B:Q4_K_M # Run inference directly in the terminal: llama cli -hf AmarettoLabs/Amaretto-3B:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf AmarettoLabs/Amaretto-3B:Q4_K_M # Run inference directly in the terminal: llama cli -hf AmarettoLabs/Amaretto-3B:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf AmarettoLabs/Amaretto-3B:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf AmarettoLabs/Amaretto-3B:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf AmarettoLabs/Amaretto-3B:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf AmarettoLabs/Amaretto-3B:Q4_K_M
Use Docker
docker model run hf.co/AmarettoLabs/Amaretto-3B:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use AmarettoLabs/Amaretto-3B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "AmarettoLabs/Amaretto-3B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "AmarettoLabs/Amaretto-3B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/AmarettoLabs/Amaretto-3B:Q4_K_M
- Ollama
How to use AmarettoLabs/Amaretto-3B with Ollama:
ollama run hf.co/AmarettoLabs/Amaretto-3B:Q4_K_M
- Unsloth Studio
How to use AmarettoLabs/Amaretto-3B with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for AmarettoLabs/Amaretto-3B to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for AmarettoLabs/Amaretto-3B to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for AmarettoLabs/Amaretto-3B to start chatting
- Pi
How to use AmarettoLabs/Amaretto-3B with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf AmarettoLabs/Amaretto-3B:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "AmarettoLabs/Amaretto-3B:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use AmarettoLabs/Amaretto-3B with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf AmarettoLabs/Amaretto-3B:Q4_K_M
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 AmarettoLabs/Amaretto-3B:Q4_K_M
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use AmarettoLabs/Amaretto-3B with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf AmarettoLabs/Amaretto-3B:Q4_K_M
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 "AmarettoLabs/Amaretto-3B:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use AmarettoLabs/Amaretto-3B with Docker Model Runner:
docker model run hf.co/AmarettoLabs/Amaretto-3B:Q4_K_M
- Lemonade
How to use AmarettoLabs/Amaretto-3B with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull AmarettoLabs/Amaretto-3B:Q4_K_M
Run and chat with the model
lemonade run user.Amaretto-3B-Q4_K_M
List all available models
lemonade list
Amaretto 3B
Amaretto 3B is a fine-tuned language model by AmarettoLabs, built for literary writing and writing assistance. It is fine-tuned from Ministral 3 3B Instruct using QLoRA.
The Amaretto line is designed to run on everyday hardware. Amaretto 3B is the lightest model in the family — well-suited for constrained devices, edge deployments, and local use.
Website: amaretto.ai · Contact: hello@amarettolabs.com
What it's good at
- Literary prose — scene writing, character voice, emotional interiority
- Writing assistance — editing, tone adjustment, conciseness, clarity, line editing
- Continuation — picking up a passage and extending it in the same register
- Style transfer — shifting a piece between registers (formal ↔ casual, journalistic ↔ personal)
Intended use
Amaretto 3B is a general-purpose writing companion. It works out of the box with no system prompt. For the strongest literary output, you can use the system prompt it was trained with:
You are a skilled literary fiction writer. Write with precision,
emotional depth, and a strong sense of voice. Favor showing over telling.
Use plain, direct language — avoid similes, forced comparisons, and
decorative imagery.
You can replace or extend this prompt for your own use case.
Usage
With llama.cpp / Ollama (GGUF)
GGUF quantized versions are available in this repository:
| File | Size | Notes |
|---|---|---|
amaretto-3b-Q8_0.gguf |
~3.6 GB | Near-lossless; recommended where memory allows |
amaretto-3b-Q5_K_M.gguf |
~2.4 GB | Strong quality on everyday hardware |
amaretto-3b-Q4_K_M.gguf |
~2.1 GB | Smallest recommended quantization |
llama-cli -m amaretto-3b-Q8_0.gguf \
--ctx-size 4096 \
-sys "You are a skilled literary fiction writer." \
-p "Write the opening of a scene where a woman returns to her childhood home."
Sampling: --temp 0.8 --min-p 0.1 works well for creative writing. min-p sampling is recommended over top-k/top-p — it noticeably reduces token-level glitches on small models.
With transformers
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "AmarettoLabs/Amaretto-3B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype="auto", device_map="auto")
messages = [
{"role": "system", "content": "You are a skilled literary fiction writer. Write with precision, emotional depth, and a strong sense of voice."},
{"role": "user", "content": "Write the opening of a scene where a woman returns to her childhood home after many years away."},
]
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).to(model.device)
output = model.generate(input_ids, max_new_tokens=512, temperature=0.8, do_sample=True)
print(tokenizer.decode(output[0][input_ids.shape[-1]:], skip_special_tokens=True))
Training details
| Property | Value |
|---|---|
| Base model | mistralai/Ministral-3-3B-Instruct-2512 |
| Method | QLoRA (4-bit NF4) |
| Framework | Unsloth + TRL SFTTrainer |
| LoRA rank / alpha | 16 / 16 |
| Epochs | 2 |
| Sequence length | 2048 |
| Training examples | ~14,300 |
| Eval loss | 1.671 |
Training data consists of semi-synthetic and full-synthetic literary prose examples, writing assistance examples (editing, tone, clarity, continuation).
The base model is multimodal (3.4B language model + 0.4B vision encoder). Amaretto 3B's fine-tuning targets text only; vision capability is not a focus of this release.
Limitations
- Optimized for English prose; other languages are not a focus
- A 3B-class model has clear knowledge and reasoning limits — it is a writing tool, not a factual reference
- The model may occasionally ignore system prompt instructions on complex or conflicting requests
- Outputs can reflect biases present in the base model and training data
About AmarettoLabs
AmarettoLabs is a small independent group based in California, USA, specializing in small language models and AI on the edge. The Amaretto line is released free and open.
Website: amaretto.ai · Contact: hello@amarettolabs.com
License
This model is released under the Apache 2.0 License, inherited from the base model. Base model: Ministral 3 3B by Mistral AI.
- Downloads last month
- 762