Instructions to use doryno/edr-ai-Qwen2.5-3B-Instruct 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 doryno/edr-ai-Qwen2.5-3B-Instruct 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 doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0 # Run inference directly in the terminal: llama cli -hf doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0 # Run inference directly in the terminal: llama cli -hf doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0
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 doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0 # Run inference directly in the terminal: ./llama-cli -hf doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0
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 doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0 # Run inference directly in the terminal: ./build/bin/llama-cli -hf doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0
Use Docker
docker model run hf.co/doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0
- LM Studio
- Jan
- vLLM
How to use doryno/edr-ai-Qwen2.5-3B-Instruct with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "doryno/edr-ai-Qwen2.5-3B-Instruct" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "doryno/edr-ai-Qwen2.5-3B-Instruct", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0
- Ollama
How to use doryno/edr-ai-Qwen2.5-3B-Instruct with Ollama:
ollama run hf.co/doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0
- Unsloth Desktop
- Pi
How to use doryno/edr-ai-Qwen2.5-3B-Instruct with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0
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": "doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use doryno/edr-ai-Qwen2.5-3B-Instruct with Docker Model Runner:
docker model run hf.co/doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0
- Lemonade
How to use doryno/edr-ai-Qwen2.5-3B-Instruct with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0
Run and chat with the model
lemonade run user.edr-ai-Qwen2.5-3B-Instruct-Q8_0
List all available models
lemonade list
- Hermes Agent
How to use doryno/edr-ai-Qwen2.5-3B-Instruct with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0
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 doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use doryno/edr-ai-Qwen2.5-3B-Instruct with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0
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 "doryno/edr-ai-Qwen2.5-3B-Instruct:Q8_0" \ --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"
EDR-AI β Qwen2.5-3B-Instruct
Fine-tuned Qwen2.5-3B-Instruct model for local Windows endpoint security analysis.
Full project: https://github.com/DoryNo/edr-ai
Dataset: https://huggingface.co/datasets/doryno/edr-ai-dataset
The model is designed to classify Sysmon events into:
BENIGNSUSPICIOUSMALICIOUSMINER
It also provides risk score, confidence, evidence, MITRE ATT&CK tactics/techniques, and recommended actions.
What's new in v9 (2026-09-01)
- Training data doubled and rebalanced: 4000 β 6400 records (BENIGN 2200 / SUSPICIOUS 1800 / MALICIOUS 1600 / MINER 800), 264 scenario families, 8 environment contexts. New wave-3 catalog targets the previous round's weak spots: SUSPICIOUS hard negatives across the full risk band 4β8, BENIGN lookalikes of suspicious shapes, more MALICIOUS/MINER diversity.
- Honest evaluation pipeline: the holdout is now frozen and excluded from training (320 records, 80 per class, leak-checked at train time). Earlier metrics were partially inflated by memorization and are not comparable.
- Repaired export: the shipped GGUF is now built from the QLoRA training composite. v9 Q8_0 reaches fp16 parity on the holdout β quantization no longer costs accuracy (see the QLoRA merge note below).
- Residual error pattern is now symmetric boundary noise instead of systematic over-escalation: MALICIOUSβSUSPICIOUS dropped from 11/80 (v8) to 2/80.
Evaluation
Frozen holdout evaluation β v9 β 2026-09-01 (Q8_0 GGUF, 320 records):
| Metric | Result |
|---|---|
| Accuracy | 97.8% |
| JSON validity | 100% |
| BENIGN | 97.5% |
| SUSPICIOUS | 96.2% |
| MALICIOUS | 97.5% |
| MINER | 100.0% |
Confusion matrix (80 records per class):
expected \ predicted | BENIGN | SUSPICIOUS | MALICIOUS | MINER
BENIGN | 78 | 1 | 1 | 0
SUSPICIOUS | 2 | 77 | 1 | 0
MALICIOUS | 0 | 2 | 78 | 0
MINER | 0 | 0 | 0 | 80
The model produced 0 MALICIOUS β BENIGN errors and 0 invalid JSON.
Previous round (v8 β 2026-08-27, leaky holdout, kept for history):
| Metric | Result |
|---|---|
| Accuracy | 87.2% |
| JSON validity | 99.7% |
| BENIGN | 85.0% |
| SUSPICIOUS | 78.8% |
| MALICIOUS | 86.3% |
| MINER | 98.8% |
Quantization note
The adapter is trained on the 4-bit base and partially compensates its quantization error, so GGUF must be exported from the QLoRA training composite (4-bit base + adapter, unsloth save_pretrained_gguf). Merging the adapter onto a full-precision base silently degrades MALICIOUS escalation while the output still looks well-formed and confident.
Available builds (same weights, different quantization):
| Build | Holdout accuracy |
|---|---|
| Q8_0 (recommended) | 97.8% |
| Q4_K_M (legacy) | 93.4% |
Local Inference
The model is intended for fully local inference using GGUF (Q8_0 recommended) with LM Studio or another OpenAI-compatible server.
No telemetry or event data needs to leave the host.
Use the system prompt shipped with the project (system_prompt.txt) β the model is trained and evaluated against it byte-for-byte. Recommended sampling: temperature = 0β0.1.
Measured latency on a consumer GPU (LM Studio, 8 parallel requests): mean ~22s, p95 ~27s per verdict.
Output Format
{
"reasoning": "...",
"classification": "SUSPICIOUS",
"risk_score": 6,
"tactics": ["Execution"],
"techniques": ["T1059.001"],
"confidence": 0.91,
"evidence": ["..."],
"recommended_actions": ["..."]
}
Risk bands: BENIGN 1β3, SUSPICIOUS 4β8, MALICIOUS 9β10, MINER 8β10.
Intended Use
This model is intended for security research, local endpoint monitoring, and AI-assisted Sysmon analysis. It is not a replacement for a production EDR or human security analyst.
Known limitations: evaluation holdout shares the generator distribution of the training data β behavior on out-of-catalog real-world telemetry should be spot-checked before production use; confidence is not calibrated.
Related Project
The model is part of EDR-AI, a local Windows endpoint monitoring system that collects Sysmon events, performs LLM classification, stores structured verdicts, and provides a Streamlit dashboard.
- Downloads last month
- 46
8-bit