Tài liệu

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