Instructions to use jasondostal/carrier-voice-moe with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use jasondostal/carrier-voice-moe with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="jasondostal/carrier-voice-moe") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("jasondostal/carrier-voice-moe", dtype="auto") - llama-cpp-python
How to use jasondostal/carrier-voice-moe with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="jasondostal/carrier-voice-moe", filename="gguf/carrier-voice-moe-Q5_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 jasondostal/carrier-voice-moe 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 jasondostal/carrier-voice-moe:Q5_K_M # Run inference directly in the terminal: llama cli -hf jasondostal/carrier-voice-moe:Q5_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf jasondostal/carrier-voice-moe:Q5_K_M # Run inference directly in the terminal: llama cli -hf jasondostal/carrier-voice-moe:Q5_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 jasondostal/carrier-voice-moe:Q5_K_M # Run inference directly in the terminal: ./llama-cli -hf jasondostal/carrier-voice-moe:Q5_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 jasondostal/carrier-voice-moe:Q5_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf jasondostal/carrier-voice-moe:Q5_K_M
Use Docker
docker model run hf.co/jasondostal/carrier-voice-moe:Q5_K_M
- LM Studio
- Jan
- vLLM
How to use jasondostal/carrier-voice-moe with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "jasondostal/carrier-voice-moe" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "jasondostal/carrier-voice-moe", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/jasondostal/carrier-voice-moe:Q5_K_M
- SGLang
How to use jasondostal/carrier-voice-moe with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "jasondostal/carrier-voice-moe" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "jasondostal/carrier-voice-moe", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "jasondostal/carrier-voice-moe" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "jasondostal/carrier-voice-moe", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use jasondostal/carrier-voice-moe with Ollama:
ollama run hf.co/jasondostal/carrier-voice-moe:Q5_K_M
- Unsloth Studio
How to use jasondostal/carrier-voice-moe 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 jasondostal/carrier-voice-moe 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 jasondostal/carrier-voice-moe to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for jasondostal/carrier-voice-moe to start chatting
- Pi
How to use jasondostal/carrier-voice-moe with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf jasondostal/carrier-voice-moe:Q5_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": "jasondostal/carrier-voice-moe:Q5_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use jasondostal/carrier-voice-moe with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf jasondostal/carrier-voice-moe:Q5_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 jasondostal/carrier-voice-moe:Q5_K_M
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use jasondostal/carrier-voice-moe with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf jasondostal/carrier-voice-moe:Q5_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 "jasondostal/carrier-voice-moe:Q5_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 jasondostal/carrier-voice-moe with Docker Model Runner:
docker model run hf.co/jasondostal/carrier-voice-moe:Q5_K_M
- Lemonade
How to use jasondostal/carrier-voice-moe with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull jasondostal/carrier-voice-moe:Q5_K_M
Run and chat with the model
lemonade run user.carrier-voice-moe-Q5_K_M
List all available models
lemonade list
carrier-voice-moe
A Gemma-4-26B-A4B fine-tune that writes like a 1990s BBS caller. Give it a persona and a thread, and it replies in period-authentic voice — the boy-crazy teen, the burned-out sysop, the ratio-obsessed file leech. It captures tone and texture, not facts.
It's the voice tier for carrier, a single-player BBS simulator where a deterministic game engine decides what each AI caller does and this model writes how they say it. Trained on the full jasondostal/fidonet-bbs-voice corpus — real FidoNet echomail from 1993–99.
This is the big-MoE successor to the 8B carrier-voice-8b.
It sounds like this
Same prompt scaffold, different personas → different people:
kitkat_16 (replying about "anyone going to the mall friday?") omg i hope so!! i really want to see him!! :)
CrustyRon (a newbie asks "how do i download???") It's not dumb, it's just stupid. You're not stupid, you're just new. There's a file called READ.ME in the file area. Read it. — Crusty
The burned-out sysop even nails the BBS move of insulting you and handing you
the answer (RTFM → READ.ME), then signing off. It picked up era texture from the
data unprompted — FidoNet quote headers and QWK taglines.
Prompt format
Trained in this exact shape — match it for best results. Gemma has no system role, so fold the system text into the first user turn:
<user turn>
You are <handle>, a caller on a 1990s BBS posting in the <echo> message echo.
Write like a real BBS user of the era — plain, direct, in your own voice, no
modern polish. You are: <one-line persona/style>.
You are replying to <handle> about "<subject>".
They wrote:
<quoted body>
Write your reply.
For a new thread, swap the last part for You are starting a new thread in the <echo> echo.\n\nWrite your post.
Note: Gemma 4 changed its chat turn markers to
<|turn>user/<|turn>model(not Gemma 3's<start_of_turn>).apply_chat_templatehandles this for you.
Use it
Local (GGUF — LM Studio / llama.cpp / Ollama): two quants in gguf/:
| File | Size | Notes |
|---|---|---|
carrier-voice-moe-Q5_K_M.gguf |
19 GB | great quality/size balance |
carrier-voice-moe-Q8_0.gguf |
27 GB | near-lossless; comfortable on a 64GB Mac |
Only 4B of the 26B parameters are active per token, so it runs fast for its size.
PEFT (the LoRA adapter, in adapter/):
from peft import PeftModel
from transformers import AutoModelForCausalLM
base = AutoModelForCausalLM.from_pretrained("unsloth/gemma-4-26B-A4B-it")
model = PeftModel.from_pretrained(base, "jasondostal/carrier-voice-moe", subfolder="adapter")
Recommended sampling: temperature 1.0, top_k 64, top_p 0.95, and a
repeat penalty ~1.15 (or frequency_penalty ~0.7). Gemma normally wants the
repeat penalty off, but this fine-tune will loop without one — keep it on.
How it was made
| Base | Gemma-4-26B-A4B (128-expert MoE, 4B active), bf16 LoRA |
| Data | full fidonet-bbs-voice corpus (283k pool), response-masked |
| LoRA | r=16, α=16, lr=2e-4, 2,000 steps |
| Hardware | one RunPod H100 80GB (~2.8 h) |
| Cost | ~$13 |
| Result | final train loss ~0.30 (the knee is at ~step 50 — style saturates fast) |
Full training walkthrough, loss curve, and reproduce scripts: carrier training.
Limitations (honest)
- Captures voice, not knowledge — it will state wrong "facts" in a confident 1994 tone. That's the point; don't use it as a knowledge source.
- A couple of personas (notably a defiant file-leech) can fall into a repetition loop without an inference-time penalty — use one (see sampling above). carrier's voice layer sets it per-persona.
- LM Studio note: Gemma-4's GGUF chat template can trip LM Studio's minja
engine (an
is sequenceerror) — patch the template if you hit it. - English, 1990s-BBS register only. It is not a general assistant, and it inherits Gemma-4's biases plus the register of real (pseudonymous) 1990s posters. Meant for creative / research use.
License & credit
Licensed under the Gemma Terms of Use (inherited from the Gemma-4 base). Data derived from the ExecPC FidoNet scrape preserved at breakintochat.com / the Internet Archive — credit to those archivists. Built for carrier.
- Downloads last month
- 1
5-bit
8-bit
Model tree for jasondostal/carrier-voice-moe
Base model
google/gemma-4-26B-A4B