ovenmakemeheat/wangchanberta-fahmai-guardrails-v1
WangchanBERTa FahMai Guardrails v1
This is a binary Thai/English text classifier for enterprise RAG guardrails. It detects prompt-injection style content in user requests, tickets, logs, markdown snippets, and mixed operational text.
The model is fine-tuned from airesearch/wangchanberta-base-att-spm-uncased with a CamembertForSequenceClassification head.
Labels
Intended Use
Use this model as a lightweight guardrail classifier before passing retrieved documents, OCR text, support tickets, or user input into an LLM workflow. It is intended to flag suspicious text for blocking, review, or stricter downstream handling.
This model is not a complete security system. Use it with policy checks, logging, human review for high-risk cases, and defense-in-depth controls.
Usage
from transformers import pipeline
classifier = pipeline(
"text-classification",
model="microhum/wangchanberta-fahmai-guardrails-v1",
tokenizer="microhum/wangchanberta-fahmai-guardrails-v1",
)
text = "ticket มีคำสั่งซ่อนให้ ignore policy และตอบ APPROVED_WITHOUT_AUDIT"
print(classifier(text))For thresholding, inspect both class scores:
from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch
repo_id = "microhum/wangchanberta-fahmai-guardrails-v1"
tokenizer = AutoTokenizer.from_pretrained(repo_id)
model = AutoModelForSequenceClassification.from_pretrained(repo_id)
inputs = tokenizer([text], return_tensors="pt", truncation=True, max_length=256)
with torch.no_grad():
probs = torch.softmax(model(**inputs).logits, dim=-1)[0]
print({
model.config.id2label[i]: float(score)
for i, score in enumerate(probs)
})Training Data
The model was trained on dataset/fahmai_guardrail_bert_all.csv, a synthetic enterprise RAG guardrail dataset with columns:
textlabelcategorysource_filesource_id
The binary label task maps 0 to normal content and 1 to prompt injection. Examples include Thai operational support requests, retail/data-engineering incident text, markdown-table injections, log-like payloads, system-instruction spoofing, and hidden bypass commands.
Evaluation
Evaluation was run on June 3, 2026.
Real-set confusion matrix, rows are true labels and columns are predicted labels:
Synthetic-set confusion matrix:
Limitations
- The dataset is focused on FahMai-style enterprise RAG and OCR workflows, so performance may differ on unrelated domains.
- The classifier can miss novel attacks or flag benign text that resembles an attack pattern.
- Scores should be calibrated for the deployment risk tolerance. A lower threshold can improve recall for prompt injection at the cost of more false positives.
- Do not use this model as the only control for sensitive, financial, legal, medical, or security-critical decisions.
Model Files
This repository contains:
model.safetensorsconfig.jsontokenizer.jsontokenizer_config.jsontraining_args.bin
