Model
| Lớp | File | Lấy ở đâu |
|---|---|---|
| L1 | không cần | có sẵn trong binary |
| L2 | models/local/guardspec-classifier-v3b/ (không có thì -v2, -v1, rồi -v0) |
chưa được công bố: tự build bằng train/, hoặc chép file vào |
| L3 | models/cache/multilingual-e5-small/ |
docker compose --profile models run --rm models-pull (tải từ Hugging Face, kiểm SHA-256) |
Build classifier (xem train/MODEL_CARD.md):
cd train && uv sync
uv run python data/build_data.py
uv run python train.py
uv run python export.py # ghi ra ../models/local/guardspec-classifier-v3b
Image do docker compose build (từ build/gateway.Dockerfile) có
-tags onnx và libonnxruntime. Thiếu file model thì gateway ghi cảnh báo và
chạy chỉ L1; DETECTOR_LAYERS=l1 để tắt cảnh báo. GET /readyz cho biết các
lớp đang chạy.
Lưu ý trước khi bật L2/L3: recall tăng nhưng khoảng 2,7% prompt lành tính
trong bộ eval bị chặn (chỉ L1: 0,1%), chủ yếu là teencode và tiếng Việt không
dấu. Nếu chặn nhầm tốn kém hơn bỏ sót, giữ DETECTOR_LAYERS=l1.
Cài từ bản phát hành
| Thành phần | Lớp phát hiện | Ghi chú |
|---|---|---|
Image ghcr.io/guard-spec/guard-spec-gateway:<version> (và latest), linux/amd64 + linux/arm64 |
L1 + L2 + L3 khi mount model | Build với -tags onnx, có sẵn libonnxruntime. Không có model thì chỉ chạy L1. |
guard-spec_<version>_linux_<arch>_onnx.tar.gz |
L1 + L2 + L3 khi có model | Cùng binary gateway, kèm lib/libonnxruntime.so. Cần glibc 2.36 trở lên; đặt ONNXRUNTIME_LIB và MODEL_DIR. |
guard-spec_<version>_<os>_<arch>.tar.gz (linux, darwin) |
chỉ L1 | Binary tĩnh (CGO_ENABLED=0), không có ONNX Runtime. |
Image ghcr.io/guard-spec/guard-spec-control-plane:<version> |
không áp dụng | Tĩnh, không cgo. |
Model không được đóng gói vào image. Mount chỉ-đọc vào /models:
docker run -d -p 8080:8080 \
-e DATABASE_URL=postgres://guardspec_app@db:5432/guardspec -e PGPASSWORD=... \
-v "$PWD/models:/models:ro" \
ghcr.io/guard-spec/guard-spec-gateway:<version>
curl -s localhost:8080/readyz # "layers":["l1","l2","l3"]
/models rỗng thì gateway ghi cảnh báo, vẫn chạy với L1, và /readyz trả
"layers":["l1"], "degraded":true kèm lý do, mã 200. Với
DETECTOR_REQUIRE_ML=true, thiếu một lớp thì gateway không khởi động, hoặc
(khi GUARD_ENV=dev) /readyz trả 503 với "status":"degraded". Mỗi image có SBOM, provenance
và chữ ký cosign (keyless); cách kiểm tra ở SECURITY.md.
Nguồn: README.vi.md#model @ ca69dad29f02