Instructions to use chadstthomas/Paraphase-2B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use chadstthomas/Paraphase-2B 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 chadstthomas/Paraphase-2B:Q4_K_M # Run inference directly in the terminal: llama cli -hf chadstthomas/Paraphase-2B:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf chadstthomas/Paraphase-2B:Q4_K_M # Run inference directly in the terminal: llama cli -hf chadstthomas/Paraphase-2B: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 chadstthomas/Paraphase-2B:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf chadstthomas/Paraphase-2B: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 chadstthomas/Paraphase-2B:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf chadstthomas/Paraphase-2B:Q4_K_M
Use Docker
docker model run hf.co/chadstthomas/Paraphase-2B:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use chadstthomas/Paraphase-2B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "chadstthomas/Paraphase-2B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "chadstthomas/Paraphase-2B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/chadstthomas/Paraphase-2B:Q4_K_M
- Ollama
How to use chadstthomas/Paraphase-2B with Ollama:
ollama run hf.co/chadstthomas/Paraphase-2B:Q4_K_M
- Unsloth Desktop
- Pi
How to use chadstthomas/Paraphase-2B with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf chadstthomas/Paraphase-2B:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "chadstthomas/Paraphase-2B:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use chadstthomas/Paraphase-2B with Docker Model Runner:
docker model run hf.co/chadstthomas/Paraphase-2B:Q4_K_M
- Lemonade
How to use chadstthomas/Paraphase-2B with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull chadstthomas/Paraphase-2B:Q4_K_M
Run and chat with the model
lemonade run user.Paraphase-2B-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use chadstthomas/Paraphase-2B with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf chadstthomas/Paraphase-2B: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 chadstthomas/Paraphase-2B:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use chadstthomas/Paraphase-2B with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf chadstthomas/Paraphase-2B: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 "chadstthomas/Paraphase-2B: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"
Paraphase-2B — the small AI humanizer for email
Paraphase-2B is the 2.5B-parameter member of the Paraphase family: an AI humanizer for English email that runs on a 4–6 GB device. It rewrites AI-sounding drafts into plain prose, keeps every fact, and is 100% local — works offline, no API, no upload. It is a QLoRA fine-tune of MiniCPM5-2B, shipped as GGUF.
The short version: use the 2B when you have 4–6 GB of RAM and want a small, fast, offline rewriter. Use the 4B when you can spare 4.5 GB — it is 100% valid out of the box and keeps slightly more facts. The 2B needs the retry wrapper (below) to reach its best validity.
Quick start
- Download
paraphase-2b-Q8_0.gguf(2.68 GB). - Serve it:
llama-server -m paraphase-2b-Q8_0.gguf -c 2048 - Send the rewrite prompt below. No thinking flag is needed.
On-device guide ↓ · Interactive comparison → · Try the 4B live →
Before and after
One synthetic draft from the 2B Q8 + retry. The measured numbers are below; this is a demo, not a benchmark.
- Before: Furthermore, it is important to note that all expense reports for the month of September must be submitted by October 15. Late submissions will not be processed until the following cycle.
- After: Also, remember that all September expense reports need to be submitted by October 15. Late ones won't be processed until the next cycle.
Which one should I run?
| 2B Q8 + retry | 4B Q8 + retry | |
|---|---|---|
| file size | 2.68 GB | 4.48 GB |
| free RAM (approx.) | ~3.5 GB | ~5.5 GB |
| valid on voice50 | 48/50 | 50/50 |
| copy reuse | 0.294 | 0.260 |
| AI tells | 6.3% | 8.0% |
| numeric facts | 96.1% | 97.0% |
| tool calls | 65% | 65% |
| Pangram, 13 flagged drafts | 10/13, median −0.503, 7 rescues | 10/13, median −0.588, 9 rescues |
| Pangram gate (11/13) | missed | missed |
Pick the 2B when:
- The device has 4–6 GB of RAM (phone, small laptop, Raspberry Pi-class box).
- You want the fewest AI tells (6.3% vs 8.0%) and the smallest download.
- You are rewriting batches offline and can run the retry wrapper.
- The 4B does not fit, or its 4.5 GB download is impractical.
Pick the 4B when:
- The device has 6 GB+ free and you want the best validity and fact fidelity.
- You want 50/50 valid greedy without relying on resampling.
- You are publishing or automating and want the stronger default.
Don't use either for: non-English text, long documents, legal/medical advice, unattended sending, or claims of guaranteed detector evasion.
Measured stats (voice50, 50 paired items)
| configuration | valid | AI tells | facts | copy reuse | length | tool |
|---|---|---|---|---|---|---|
| 2B Q8, greedy | 41/50 | 2.4% | 97.5% | 0.301 | 0.82 | 65% |
| 2B Q8 + retry | 48/50 | 6.3% | 96.1% | 0.294 | 0.95 | 65% |
| 2B Q4, greedy | 41/50 | 7.3% | 93.9% | 0.219 | 0.77 | 60% |
Greedy output is only 82% valid: the base model's instruction-recitation habit returns on some inputs. The retry wrapper fixes 7 of the 9 bad rows. Q4 is the smallest rung (1.56 GB) and copies the least, but its fact fidelity and tool calls fall below the Q8 release bar.
Pangram
Two pre-registered tests, both from the same 186-probe mission:
- 12-item human-source gate: the 2B passed 12/12 vs the base model's 11/12 (one discordant item, McNemar p = 1.0; continuous median −0.213, p = 0.052). Descriptive only.
- 13 flagged drafts: 10/13 improved, median
fraction_ai−0.503 (95% CI [−0.588, 0.000]), 7 crossed below 0.5, 0 pass→fail flips, exact sign test p = 0.039. The pre-registered gate required 11/13, so this is suggestive, not confirmed.
The broad product-path arm of the mission was control-invalid: only 13 of 50
voice50 drafts were flagged by Pangram, so the drafts were too easy. The numbers
above are the flagged subset where the question is meaningful. Raw aggregates
are in pangram/.
On-device help
Memory
| rung | file | free RAM (approx.) | typical device |
|---|---|---|---|
| Q4_K_M | 1.56 GB | ~2.3 GB | 4 GB phone (tight), 4 GB laptop |
| Q8_0 | 2.68 GB | ~3.5 GB | 6 GB phone, 8 GB laptop |
These are working estimates: weights + 2048-token KV cache + runtime overhead.
On a 4 GB device use Q4 and -c 1024; leave the OS some room. The model is
English email, so a 2048 context is plenty for a single draft.
llama.cpp
llama-server -m paraphase-2b-Q8_0.gguf -c 2048 --host 0.0.0.0 --port 8080
Then send the rewrite prompt:
import requests
PROMPT = (
"Rewrite the email below so it reads like a real person wrote it quickly at work. "
"Keep every fact, number, name, and commitment exactly the same. "
"Use plain, direct language. No em dashes. Keep it about the same length. "
"Output only the rewritten email.\n\nEMAIL:\n"
)
resp = requests.post("http://127.0.0.1:8080/v1/chat/completions", json={
"messages": [{"role": "user", "content": PROMPT + draft}],
"temperature": 0,
"max_tokens": 1024,
})
print(resp.json()["choices"][0]["message"]["content"])
Unlike the 4B, the 2B does not need a thinking-disable flag.
Ollama
FROM ./paraphase-2b-Q8_0.gguf
PARAMETER temperature 0
PARAMETER num_ctx 2048
ollama create paraphase-2b -f Modelfile
ollama run paraphase-2b
Android and iOS
- Build llama.cpp for the device (Termux on Android, Xcode on iOS) and load the GGUF; the file is architecture-independent.
- Prefer Q4 on 4 GB phones, Q8 on 6 GB+. Pass
-t 4(big cores) and-c 1024on small devices; expect thermal throttling on long batches. - Keep the model on internal storage; keep the app in the foreground for the first runs.
- Any GGUF-compatible app that uses llama.cpp can load the file; the prompt and retry policy below are what matter.
Retry wrapper (recommended)
Take the greedy output. If it is empty, meta, an instruction echo, shorter than
max(20, 0.5 × input) words, or copies more than 70% of the input's 5-grams,
resample at temperature 0.9 (at most twice) and keep the first acceptable
candidate. This is what turns 41/50 valid into 48/50 and is how the 0.294 reuse
number was measured.
Files
| file | size | notes |
|---|---|---|
paraphase-2b-Q8_0.gguf |
2.68 GB | recommended when RAM allows |
paraphase-2b-Q4_K_M.gguf |
1.56 GB | 4 GB devices; below the Q8 quality bar |
adapter/ |
43 MB | LoRA adapter (r=16) |
pangram/ |
small | aggregate mission results, no email text |
Training
- Base:
openbmb/MiniCPM5-2B(Apache-2.0). - Method: 4-bit QLoRA, 200 steps, LR 1e-4, r=16.
- Data mix: 502 low-overlap paraphrase pairs ×2, 175 notes→email pairs, 475 real AI-draft/human pairs, 412 persona rows, 26 tool-replay rows ×2.
- Human source text is AESLC-derived and is not redistributed.
- No detector was used in training.
Limitations
- 18% invalid greedy; use the retry wrapper (4% in the measured policy).
- The 2B is less valid and keeps fewer facts than the 4B; Q4 is weaker still.
- One detector vendor (Pangram 4.1), one run per probe; the flagged-subset result is suggestive, and it is conditional on drafts Pangram flags.
- English email only; no human prose-quality evaluation.
License
Apache-2.0, inherited from the base model. See LICENSE.
Compare interactively: Paraphase Explorer · Larger sibling: Paraphase-4B
- Downloads last month
- -
4-bit
8-bit
Model tree for chadstthomas/Paraphase-2B
Base model
openbmb/MiniCPM5-2B