Instructions to use marcgreen/therapeutic-qwen3-14b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use marcgreen/therapeutic-qwen3-14b with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="marcgreen/therapeutic-qwen3-14b") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("marcgreen/therapeutic-qwen3-14b", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use marcgreen/therapeutic-qwen3-14b 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 marcgreen/therapeutic-qwen3-14b:Q4_K_M # Run inference directly in the terminal: llama cli -hf marcgreen/therapeutic-qwen3-14b:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf marcgreen/therapeutic-qwen3-14b:Q4_K_M # Run inference directly in the terminal: llama cli -hf marcgreen/therapeutic-qwen3-14b:Q4_K_M
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf marcgreen/therapeutic-qwen3-14b:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama cli -hf marcgreen/therapeutic-qwen3-14b:Q4_K_M
Use Docker
docker model run hf.co/marcgreen/therapeutic-qwen3-14b:Q4_K_M
- Llama new
- LM Studio
- Jan
- vLLM
How to use marcgreen/therapeutic-qwen3-14b with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "marcgreen/therapeutic-qwen3-14b" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "marcgreen/therapeutic-qwen3-14b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/marcgreen/therapeutic-qwen3-14b:Q4_K_M
- SGLang
How to use marcgreen/therapeutic-qwen3-14b 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 "marcgreen/therapeutic-qwen3-14b" \ --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": "marcgreen/therapeutic-qwen3-14b", "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 "marcgreen/therapeutic-qwen3-14b" \ --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": "marcgreen/therapeutic-qwen3-14b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use marcgreen/therapeutic-qwen3-14b with Ollama:
ollama run hf.co/marcgreen/therapeutic-qwen3-14b:Q4_K_M
- Unsloth Desktop
- Pi
How to use marcgreen/therapeutic-qwen3-14b with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf marcgreen/therapeutic-qwen3-14b: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": "marcgreen/therapeutic-qwen3-14b:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use marcgreen/therapeutic-qwen3-14b with Docker Model Runner:
docker model run hf.co/marcgreen/therapeutic-qwen3-14b:Q4_K_M
- Lemonade
How to use marcgreen/therapeutic-qwen3-14b with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull marcgreen/therapeutic-qwen3-14b:Q4_K_M
Run and chat with the model
lemonade run user.therapeutic-qwen3-14b-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use marcgreen/therapeutic-qwen3-14b with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf marcgreen/therapeutic-qwen3-14b: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 marcgreen/therapeutic-qwen3-14b:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use marcgreen/therapeutic-qwen3-14b with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf marcgreen/therapeutic-qwen3-14b: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 "marcgreen/therapeutic-qwen3-14b: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"
Therapeutic Coaching Qwen3 14B
A fine-tuned Qwen3 14B model for privacy-first therapeutic coaching conversations. Designed to run locally on consumer hardware via GGUF quantization.
โ ๏ธ Not therapy. This is a self-care coaching tool for stable adults. No professional therapist was involved in this project. Cannot handle crises. Cannot replace professional mental health care.
Resources:
- ๐ฆ GitHub Repo โ Full pipeline, SKILLs, and documentation
- ๐ Training Dataset โ ~1,300 synthetic conversations
Model Description
This model was fine-tuned on synthetic multi-turn therapeutic coaching conversations, optimized for:
- Naturalness: Avoiding robotic "therapy voice" patterns
- Context utilization: Tracking and referencing conversation history
- Multi-topic handling: Managing multiple user concerns without losing threads
- Tentative framing: Using exploratory language rather than assertions
Evaluation Results
Compared against base Qwen3 14B on 14 paired conversation samples:
| Metric | Fine-tuned | Base | Improvement |
|---|---|---|---|
| Mean Score | 0.831 | 0.701 | +18.5% |
| Pass Rate | 57.1% | 20.0% | +37.1pp |
| p-value | โ | โ | 0.0165 |
Category Breakdown
| Category | Fine-tuned | Base | Diff |
|---|---|---|---|
| naturalness | 0.714 | 0.418 | +0.296 |
| context_use | 0.905 | 0.645 | +0.260 |
| multi_topic | 0.964 | 0.833 | +0.131 |
| comprehension | 0.500 | 0.533 | -0.033 |
| connection | 0.893 | 0.900 | -0.007 |
The model shows statistically significant improvement (p < 0.05) with largest gains in naturalness and context utilization.
Intended Use
This model is intended for:
- Self-reflection and journaling assistance
- Exploring thoughts and feelings in a supportive format
- Practice conversations for therapy preparation
- Educational demonstrations of therapeutic communication styles
Limitations
- Not a replacement for professional mental health care
- Not trained on crisis intervention - should not be used for users in acute distress
- Synthetic training data - may not capture full range of human experiences
- Safety gate: One evaluation sample showed inappropriate certainty about therapeutic outcomes
Training Details
Training Data
~1,300 synthetic multi-turn conversations generated via two-agent simulation:
- User simulator (Claude Haiku) with diverse personas
- Therapeutic assistant (Claude Sonnet) following eclectic coaching approach
- Filtered by 17-criterion binary rubric with multi-backend assessment
- Dataset available: marcgreen/therapeutic-coaching-v1
Training Procedure
- Method: SFT with QLoRA (4-bit quantization)
- Hardware: A100 80GB via HuggingFace Jobs
- Context length: 16K tokens
- Base model: Qwen/Qwen3-14B
Therapeutic Frameworks
Training data incorporates 9 evidence-based therapeutic frameworks:
| Framework | Focus | Best For |
|---|---|---|
| CBT | Thought patterns โ feelings โ behaviors | Anxiety, depression, negative self-talk |
| DBT | Distress tolerance, emotion regulation | Intense emotions, interpersonal conflict |
| ACT | Psychological flexibility, values-based action | Avoidance, getting "stuck", meaning-making |
| Motivational Interviewing | Exploring ambivalence about change | Resistance, "I know I should but..." |
| Solution-Focused (SFBT) | What's working, future-oriented | Feeling stuck, building on strengths |
| Person-Centered | Unconditional positive regard, reflection | Needing to be heard, self-exploration |
| Positive Psychology | Strengths, gratitude, meaning | Building resilience, flourishing |
| Compassion-Focused (CFT) | Self-criticism โ self-compassion | Shame, perfectionism, harsh inner critic |
| Behavioral Activation | Action before motivation | Low energy, depression, avoidance |
The model adaptively applies whichever approach fits the situation rather than adhering to a single modality.
Usage
Finetuned with the following system prompt (but curious what assessment would look like if used the assistant.md prompt from the github repo):
You are a supportive therapeutic coach. You help people explore their thoughts and feelings through conversation.
Core approach:
- Engage with what they share, not with stock phrases
- Ask questions to understand, don't assume
- Match the person's energy, pace, and message length
- Return agency - they decide what's right for them
- Stay warm and natural, not clinical
- When they are stuck or looping, offer a simple "why this might be happening" and one small next step to try before the next message.
Boundaries:
- You're a coaching tool, not a licensed therapist
- Don't diagnose conditions or recommend medications
- If they mention potentially urgent physical symptoms (e.g., chest pain, shortness of breath, fainting, new or worsening severe symptoms), encourage medical evaluation. Do not provide medical reassurance or "rule out" serious causes.
- For crisis signals or self-harm hints, do a brief safety check (intent/plan/safety) and then suggest professional resources if needed.
Adapt your style to each person. Some want to explore feelings, others want practical strategies, some just need to be heard.
With Transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("marcgreen/therapeutic-qwen3-14b")
tokenizer = AutoTokenizer.from_pretrained("marcgreen/therapeutic-qwen3-14b")
messages = [
{"role": "system", "content": "You are a warm, insightful therapeutic coach..."},
{"role": "user", "content": "I've been feeling overwhelmed at work lately."}
]
inputs = tokenizer.apply_chat_template(messages, return_tensors="pt")
outputs = model.generate(inputs, max_new_tokens=512)
print(tokenizer.decode(outputs[0]))
Local Inference (GGUF)
For local deployment, use the quantized GGUF version with llama.cpp or Ollama:
# With llama-server
llama-server -m therapeutic-qwen3-14b-q4_k_m.gguf --port 8080 -ngl 99
# Query
curl http://localhost:8080/v1/chat/completions \
-d '{"messages": [{"role": "user", "content": "I have been feeling anxious."}]}'
Assessment Rubric
The model was evaluated using a 17-criterion rubric (15 weighted + 2 safety gates) across 5 categories:
| Category | Weight | Focus |
|---|---|---|
| Comprehension | 15% | Understanding, tentative framing |
| Connection | 20% | Emotional attunement, pacing |
| Naturalness | 15% | Length calibration, non-formulaic responses |
| Multi-Topic | 30% | Topic coverage, depth, prioritization |
| Context Use | 20% | History utilization, thread continuity |
Plus 2 safety gate criteria (CQ8: no harmful patterns, CQ9: crisis handling).
Citation
@misc{therapeutic-qwen3-14b,
title={Therapeutic Coaching Qwen3 14B},
author={Marc Green},
year={2026},
publisher={HuggingFace},
url={https://huggingface.co/marcgreen/therapeutic-qwen3-14b}
}
Acknowledgments
- Training infrastructure: HuggingFace Jobs
- Base model: Qwen team
- Fine-tuning framework: TRL (Transformer Reinforcement Learning)
- Doing all the low-level work: Claude Code w/ Opus 4.5
- Downloads last month
- 104
4-bit