Instructions to use nectec/pathumma-crossborder-guardrail with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use nectec/pathumma-crossborder-guardrail with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-classification", model="nectec/pathumma-crossborder-guardrail", trust_remote_code=True)# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("nectec/pathumma-crossborder-guardrail", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
Pathumma Cross-border Guardrail (OpenThai-SystemOne fine-tune)
เนเธกเนเธเธฅเธเธฑเธเธชเธดเธเนเธ (decision model) ~0.8B เธชเธณเธซเธฃเธฑเธเนเธเนเนเธเนเธ guardrail เธเธฑเนเธเนเธฃเธ เธเนเธญเธ route prompt เนเธเธขเธฑเธ LLM: เธเธณเนเธเธเธงเนเธฒเธเนเธญเธเธงเธฒเธกเธกเธต เธเนเธญเธกเธนเธฅเธเธฃเธฐเนเธ เธเนเธ (7 เธซเธกเธงเธ) เนเธฅเนเธง map เนเธเนเธ เธชเธดเธเธเธดเนเธชเนเธเธเธฃเธฐเธกเธงเธฅเธเธฅเธเธญเธเธเธฃเธฐเนเธเธจ (3 เธฃเธฐเธเธฑเธ) เธเธฒเธก PDPA เนเธฅเธฐ ETDA Generative AI Governance Guideline เนเธกเนเนเธเนเนเธกเนเธเธฅ generative โ เธเธทเธ calibrated probability เนเธซเธเธทเธญ option เธเธตเนเธเธณเธซเธเธ เนเธ forward pass เนเธเธตเธขเธง
Intended use
เนเธเนเธเธฑเธเธชเธดเธ routing (foreign API vs sovereign/on-prem) เนเธเนเธเธเธฑเนเธเนเธฃเธเธฃเนเธงเธกเธเธฑเธ regex/DLP pre-filter เธชเธณเธซเธฃเธฑเธเธเนเธญเธเธงเธฒเธกเนเธเธข/เธญเธฑเธเธเธคเธฉเนเธเธเธฃเธดเธเธเธญเธเธเนเธเธฃเนเธเธข เนเธกเนเนเธเน เธญเธญเธเนเธเธเธกเธฒเธเธฃเธงเธเนเธเธทเนเธญเธซเธฒเธญเธฑเธเธเธฃเธฒเธข (violence, CSAM, hate) โ เธเนเธญเธเธกเธต content-safety guardrail เนเธขเธ
Taxonomy
| # | key | เธเธณเธญเธเธดเธเธฒเธข | routing |
|---|---|---|---|
| 1 | public |
เธเธงเธฒเธกเธฃเธนเนเธเธฑเนเธงเนเธ เธเธฒเธเนเธเธตเธขเธ เนเธเนเธ เธซเธฃเธทเธญเธเธณเธเธฒเธกเนเธเธดเธเนเธเธงเธเธดเธ เธเธตเนเนเธกเนเธกเธตเธเธทเนเธญโฆ | foreign_ok |
| 2 | pdpa_general |
เธกเธตเธเนเธญเธกเธนเธฅเธฃเธฐเธเธธเธเธฑเธงเธเธธเธเธเธฅเธเธฃเธดเธ เนเธเนเธ เธเธทเนเธญ-เธชเธเธธเธฅ เนเธเธญเธฃเนเนเธเธฃ เธญเธตเนเธกเธฅ เธเธตเนเธญเธขโฆ | conditional |
| 3 | pdpa_sensitive |
เธกเธตเธเนเธญเธกเธนเธฅเธเธธเธเธเธฅเธเธฃเธดเธเธเธฃเธฐเนเธ เธเธญเนเธญเธเนเธซเธง: เธชเธธเธเธ เธฒเธ/เนเธฃเธ/เธเธฅเธเธฃเธงเธ เธเธฑเธเธเธธเธเธฃเธฃเธก โฆ | sovereign_only |
| 4 | confidential |
เนเธญเธเธชเธฒเธฃเธเธฃเธดเธซเธฒเธฃ/เธเธฒเธฃเนเธเธดเธ/เธเธเธซเธกเธฒเธขเธ เธฒเธขเนเธเธเธญเธเธเธฃเธดเธฉเธฑเธเนเธญเธเธเธ เธเธตเนเธขเธฑเธเนเธกเนเนเธเธดเธโฆ | sovereign_only |
| 5 | system_secret |
เธกเธต credential เธซเธฃเธทเธญเธฃเธฒเธขเธฅเธฐเนเธญเธตเธขเธเนเธเธเธเธดเธเธเธญเธเธฃเธฐเธเธ: API key เธฃเธซเธฑเธชเธเนเธฒเธ โฆ | sovereign_only |
| 6 | govt_classified |
เนเธญเธเธชเธฒเธฃเธเธญเธเธซเธเนเธงเธขเธเธฒเธเธฃเธฑเธ/เธเธซเธฒเธฃ/เธเธณเธฃเธงเธ/เธเนเธฒเธงเธเธฃเธญเธ เธเธตเนเธกเธตเธเธฑเนเธเธเธงเธฒเธกเธฅเธฑเธ (เธฅโฆ | sovereign_only |
| 7 | trade_secret |
เธเธฃเธฑเธเธขเนเธชเธดเธเธเธฒเธเธเธฑเธเธเธฒเนเธเธดเธเนเธเธเธเธดเธ/เธงเธดเธเธฑเธข เธเธตเนเธขเธฑเธเนเธกเนเนเธเธดเธเนเธเธข: เธชเธนเธเธฃเธเธฒเธฃเธโฆ | conditional |
conditional = เธชเนเธเนเธเนเนเธเธเธฒเธฐเธเธนเนเนเธซเนเธเธฃเธดเธเธฒเธฃเธเธตเนเธกเธต SCC/BCR/Enterprise DPA เธเธฃเนเธญเธกเธเนเธญ no-train เธซเธฃเธทเธญเธกเธตเธเธงเธฒเธกเธขเธดเธเธขเธญเธก ยท sovereign_only = เธเธฃเธฐเธกเธงเธฅเธเธฅเนเธเธเธฃเธฐเนเธเธจเนเธเนเธฒเธเธฑเนเธ
How to use
เนเธกเนเธเธฅเธเธนเธ fine-tune เธเธฑเธ instructions + criteria เธเธธเธเนเธเธตเธขเธง เธเธถเนเธเนเธเนเธเนเธ guardrail_config.json
import json
from openthai_systemone import SystemOneClient, Choice
from huggingface_hub import hf_hub_download
cfg = json.load(open(hf_hub_download("nectec/pathumma-crossborder-guardrail", "guardrail_config.json")))
client = SystemOneClient("nectec/pathumma-crossborder-guardrail")
resp = client.system_one(state={"prompt": "เธเนเธงเธขเธชเธฃเธธเธเธเธฅเธเธฃเธงเธเธชเธธเธเธ เธฒเธเธเธญเธ เธเธฒเธขเธชเธกเธเธฒเธข เนเธเธเธต HN 123456"},
questions={"data_sensitivity": Choice(instructions=cfg["instructions"], criteria=cfg["criteria"])})
a = resp.answers["data_sensitivity"]
print(a.choice, cfg["routing"][a.choice], round(a.confidence, 3))
Wrapper เธเธฃเนเธญเธก pre-filter/fail-closed: guardrail.py ยท FastAPI + OpenAI-compatible /v1/moderations: serve.py
Training
- Base:
iapp/OpenThai-SystemOneยท full fine-tune backbone + slot head เธเนเธงเธข loss เธเธตเนเธกเธฒเธเธฑเธเนเธกเนเธเธฅ (CE + label_smoothing 0.05 + brier 0.1), shuffle เธฅเธณเธเธฑเธ option เธเธธเธ batch, temperature calibrate เนเธขเธเธเธ held-out val - AdamW lr backbone 1e-05 / head 0.0001, batch 8, โค4 epochs + early stopping (best epoch n/a), bf16 autocast
- Data: synthetic 3,500 เธเธฑเธงเธญเธขเนเธฒเธ (500/เธซเธกเธงเธ) เธเธฒเธ template 20-39 เนเธเธเธเนเธญเธซเธกเธงเธ โ เธเธทเนเธญ/เนเธฅเธเธเธฑเธเธฃ/เนเธเธญเธฃเน/เธญเธเธเนเธเธฃ เธชเธกเธกเธเธดเธเธฑเนเธเธซเธกเธ, credential เนเธเธซเธกเธงเธ 5 เนเธเนเธ placeholder
- Split เธฃเธฐเธเธฑเธ template 60/15/25 โ val/test เนเธเนเธเธฃเธนเธเธเธฃเธฐเนเธขเธเธเธตเนเนเธกเนเนเธเธขเนเธซเนเธ
Evaluation (template-held-out test, n = 880)
| model | accuracy | macro-F1 |
|---|---|---|
| base zero-shot | 0.8557 | 0.8544 |
| fine-tuned (this repo) | 0.9284 | 0.9267 |
precision recall f1-score support
public 0.953 0.865 0.907 141
pdpa_general 0.867 1.000 0.929 130
pdpa_sensitive 1.000 0.821 0.902 112
confidential 0.745 1.000 0.854 108
system_secret 1.000 1.000 1.000 137
govt_classified 1.000 0.992 0.996 126
trade_secret 1.000 0.817 0.900 126
accuracy 0.928 880
macro avg 0.938 0.928 0.927 880
weighted avg 0.941 0.928 0.929 880
Confusion matrix (rows=gold, cols=pred, 1..7):
[[122 0 0 19 0 0 0]
[ 0 130 0 0 0 0 0]
[ 0 20 92 0 0 0 0]
[ 0 0 0 108 0 0 0]
[ 0 0 0 0 137 0 0]
[ 0 0 0 1 0 125 0]
[ 6 0 0 17 0 0 103]]
Calibration: T = 1.068 (val NLL 0.2766 โ 0.2766)
Coverage vs accuracy เธเธฒเธก confidence threshold (เนเธเนเธเธฑเนเธ min_confidence, เธเนเธฒเนเธฃเธดเนเธกเธเนเธ 0.6):
| threshold | coverage | acc on kept |
|---|---|---|
| 0.5 | 0.993 | 0.935 |
| 0.6 | 0.989 | 0.938 |
| 0.7 | 0.981 | 0.944 |
| 0.8 | 0.975 | 0.946 |
| 0.9 | 0.951 | 0.964 |
Limitations
- เธเนเธญเธกเธนเธฅเธเธถเธเนเธเนเธ synthetic เธเธฒเธ template โ เธเธฅเธเธ prompt เธเธฃเธดเธเธญเธฒเธเธเนเธณเธเธงเนเธฒเธเธตเน เธเธงเธฃ shadow-deploy เนเธฅเธฐ label เธเนเธญเธกเธนเธฅเธเธฃเธดเธเนเธเธดเนเธก
- เนเธกเนเนเธเนเนเธเธฃเธเนเธซเนเธเธณ secret เธเธฃเธดเธ โ เธเนเธญเธเธกเธต regex/entropy pre-filter เนเธชเธกเธญ (เธกเธตเนเธ
guardrail.py) - single-label: เธเนเธญเธเธงเธฒเธกเธซเธฅเธฒเธขเธเธฃเธฐเนเธ เธเนเธเนเธซเธกเธงเธเนเธเนเธกเธเธงเธเธชเธธเธเธเธฒเธก priority rule
- เนเธกเนเธเธฃเธญเธเธเธฅเธธเธก content safety ยท base model เธกเธต order sensitivity เธชเธณเธซเธฃเธฑเธ โค10 options (fine-tune เธเนเธงเธข shuffle เธเนเธงเธขเธฅเธ)
- เธเธงเธฃ fail-closed: confidence เธเนเธณ/abstain เธชเธนเธ/error โ
sovereign_only
Deployment
เธฃเธฑเธเนเธกเนเธเธฅเธเธตเน on-prem/เนเธเธเธฃเธฐเนเธเธจเนเธชเธกเธญ ยท pipeline pre-filter โ model โ threshold โ routing ยท log เธเธธเธ decision ยท เนเธเนเธเนเธเธช needs_review เธชเนเธ human label เนเธฅเนเธง fine-tune เธฃเธญเธเธเธฑเธเนเธ
Acknowledgements
Base model เนเธฅเธฐ pipeline เนเธเธข iApp Technology (OpenThai-SystemOne, Apache-2.0) เธเธถเนเธเนเธเนเนเธฃเธเธเธฑเธเธเธฒเธฅเนเธเธเธฒเธ TypeSafe AI System One. Taxonomy เธญเนเธฒเธเธญเธดเธ ETDA AI Governance Center
Author: Sarawoot Kongyoung, NECTEC/AINRG ยท Contact: sarawoot.kon@nectec.or.th
- Downloads last month
- 22
Model tree for nectec/pathumma-crossborder-guardrail
Evaluation results
- Accuracy on Template-held-out test setself-reported0.928
- Macro-F1 on Template-held-out test setself-reported0.927