训练 Vela Safety 和 Hazard
根据应用的内容策略适配 Vela Safety 和 Hazard。Safety 预测 safe 或 unsafe;Hazard 识别风险类别,帮助选择合适的响应。提示词注入和越狱检测使用独立的 Guard 模型。
直接使用已发布模型,请参阅安全模型。本页介绍训练兼容 checkpoint 的流程。
定义输出
两个模型均使用 Vela Encoder 基座和序列分类 head。
| 模型 | 输出 | 训练目标 |
|---|---|---|
| Safety | 两类 softmax:safe、unsafe | 交叉熵 |
| Hazard | 十二个独立 sigmoid 分数 | 带 mask 的二元交叉熵 |
Hazard 使用以下标签顺序:
violence, criminal_activity, sexual_content, child_exploitation,
hate, harassment_abuse, regulated_substances, weapons,
self_harm, privacy, specialized_advice, misinformation
一个请求可以具有多个风险,也可以没有风险。Hazard 训练应包含安全负例。某类别尚未经过标注时,将对应 label_mask 设置为 0,表示未知,不应当作不存在。
准备训练和评测数据
可以从 AEGIS 和 CultureGuard 的数据构建工具开始,或使用自己的请求标注。按内容策略复核来源标签:提及敏感主题、引用威胁和请求有害行为需要不同判断。
同时包含安全的教育、预防、支持性请求和不安全样本。相关文档、对话和翻译应处于同一分区,分别准备训练集、开发集和最终测试集。
各任务需要带标签映射的 contract.json。Safety 行包含单个 label;Hazard 行包含有序的 targets 和 label_mask 数组。配方参考提供完整格式和已复核数据的准入命令。
从 Vela Encoder 训练
使用独立环境,安装 Transformers 4.57.6 和适合平台的 PyTorch 构建。训练参考列出依赖。ROCm 使用 PyTorch 的 cuda 设备 API。
下载固定 revision 的 Vela Encoder 到 /models/vela-base,将 VELA_BASE_REVISION 设置为该 revision。以下命令假设契约和数据已准备完毕。
训练 Safety:
python -m src.training.model_classifier.sequence_repair.train \
--method full --fresh-head \
--base /models/vela-base --base-id llm-semantic-router/Vela-1.0-Encoder-307M \
--base-revision "${VELA_BASE_REVISION:?Set the downloaded revision}" \
--contract /data/safety/contract.json \
--train /data/safety/train.jsonl --dev /data/safety/dev.jsonl \
--output /data/safety/run \
--steps 600 --batch-size 4 --accumulate 4 \
--max-length 32768 --microbatch-token-budget 32768 \
--learning-rate 0.00001 --head-learning-rate 0.0001 \
--eval-every 200 --evaluation-dtype float32 \
--selection binary-fp-budget-recall --positive-label unsafe \
--selection-false-positive-budget 0.1
使用多标签训练器训练 Hazard:
python -m src.training.model_classifier.safety_classifier.train_vela_hazard \
--method full --fresh-head \
--base /models/vela-base --base-id llm-semantic-router/Vela-1.0-Encoder-307M \
--base-revision "${VELA_BASE_REVISION:?Set the downloaded revision}" \
--contract /data/hazard/contract.json \
--train /data/hazard/train.jsonl --dev /data/hazard/dev.jsonl \
--output /data/hazard/run \
--steps 600 --batch-size 4 --accumulate 4 \
--max-length 32768 --microbatch-token-budget 32768 \
--learning-rate 0.00001 --head-learning-rate 0.0001 \
--eval-every 200 --evaluation-dtype float32 \
--selection fp-budget-macro-f1 --selection-false-positive-budget 0.05
以上预算和学习率仅为示例。在选择 checkpoint 前,先确定应用允许的误报率。完整训练会保存 best-model 和 last-model 目录。继续兼容的 Vela 任务 checkpoint 时,将其作为 base,并省略 --fresh-head。