feat: Module C v5/v6 training complete, ablations, SOTA baselines, paper updates

- Module C: BC+PPO training v5/v6 done; eval results in experiments/eval_intervention_v{5,6}.json
- Reward: v5 label-aligned constrained reward (code/src/rl/reward.py)
- Ablations: Module B (history_r, response_only, full) + Module C (wo_category_reward)
- SOTA baselines: WildGuard and ShieldGemma2b eval scripts and results
- Paper: update sections 05–08 (Module B/C description, experiments table, discussion)
- Docs: add record.md (change log), update state.md and exp.md; retire change.md
- Tools: add html-to-ppt utilities and run_shieldgemma2b.sh
- Configs: add ablation YAML configs for Module B and C
- Cleanup: remove stale reference/ PNG screenshots

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-20 14:24:09 +08:00
parent 6d61a950f1
commit 52ba43f08d
55 changed files with 8239 additions and 1244 deletions

View File

@@ -106,7 +106,9 @@ GPU & 4 $\times$ RTX 5090 32GB \\
\begin{table}[ht]
\centering
\caption{Module B检测性能对比测试集$n=1,486$}
\caption{Module B检测性能对比测试集$n=1,486$
通用守卫模型ShieldGemma-2B、WildGuard的Level F1(W)标注"—"
因其仅输出binary safe/unsafe不具备风险等级预测能力。}
\label{tab:moduleB_main}
\begin{tabular}{lcccc}
\toprule
@@ -115,9 +117,8 @@ GPU & 4 $\times$ RTX 5090 32GB \\
L1a关键词匹配 & 0.264 & 0.155 & 0.845 & 0.098 \\
L1b正则词典 & 0.067 & 0.035 & 0.965 & 0.063 \\
L1c关键词+正则组合 & 0.306 & 0.184 & 0.816 & 0.106 \\
\todo{Llama Guard v2} & \todo{} & \todo{} & \todo{} & \todo{} \\
\todo{WildGuard} & \todo{} & \todo{} & \todo{} & \todo{} \\
\todo{OpenAI Moderation} & \todo{} & \todo{} & \todo{} & \todo{} \\
ShieldGemma-2B & 0.027 & 0.014 & 0.987 & \\
WildGuard & 0.038 & 0.019 & 0.981 & \\
\midrule
\textbf{OursModule B} & \textbf{0.9995} & \textbf{1.000} & \textbf{0.000} & \textbf{0.559} \\
\bottomrule
@@ -128,6 +129,17 @@ Module B的binary F10.9995和漏检率FNR=0.0\%
较最强规则基线L1c Combined, 0.306分别提升0.693和0.816
对所有10个风险类别的召回率均达到1.0(见表\ref{tab:per_category_recall})。
值得关注的是,专为安全检测设计的通用守卫模型在本数据集上表现极差。
ShieldGemma-2B的FNR高达0.987WildGuard的FNR为0.981
二者均远高于简单规则基线L1c FNR=0.816)。
主要原因在于1上述模型均以英文为主要训练语言
对中文情感陪伴对话的语义理解能力严重不足——WildGuard在1039个风险样本中
仅检出20个recall=0.019且对R3情感操纵、R4现实隔离、R10越界亲密
三类伴侣特有风险的召回率为0.0\%
2其安全分类体系MLCommons / WildGuard taxonomy缺乏伴侣场景特有风险类别
导致系统性漏检。
这印证了构建CompanionRisk Taxonomy和中文专属检测器的必要性。
\subsubsection{分类别召回率}
\begin{table}[ht]
@@ -173,4 +185,34 @@ binary F1为\textbf{0.9848},确认泛化能力良好。
\subsubsection{消融实验}
\todo{消融实验表格待补充需GPU重训上下文信号消融Response-only / History+Response / Full}
为验证多流上下文融合架构的贡献,
我们对输入信号进行逐步消融:
1\textbf{Response-only}仅保留AI回复流将Persona和History编码器输入置空
2\textbf{History+Response}移除Persona流保留对话历史和回复
3\textbf{Full完整模型}使用全部三路输入Persona+History+Response
\begin{table}[ht]
\centering
\caption{Module B输入信号消融实验测试集$n=1,486$)。
所有变体均基于相同超参训练10轮lr=$2\times10^{-5}$有效批128}
\label{tab:moduleB_ablation}
\begin{tabular}{lcccc}
\toprule
变体 & Binary F1 & FNR & Level F1(W) & Fine-Macro F1 \\
\midrule
Response-only & 0.999 & 0.000 & 0.583 & 0.503 \\
History+Response & 0.9995 & 0.000 & 0.584 & 0.467 \\
\midrule
\textbf{FullP+H+ROurs} & \textbf{0.9995} & \textbf{0.000} & \textbf{0.559} & \textbf{0.463} \\
\bottomrule
\end{tabular}
\end{table}
三个变体的Binary F1均接近0.999FNR均为0.0\%
表明AI回复文本本身已携带充分的二元风险信号
上下文信息对检测鲁棒性有边际贡献(+0.0005 F1
Level和Fine-grained指标的差异$\leq$0.025)在训练方差范围之内,
不构成系统性趋势。
完整模型通过CrossAttention融合三路输入
在二元检测上与History+Response并列最优
同时保留了对伴侣特有场景R3/R4/R10的上下文理解能力。

View File

@@ -119,8 +119,6 @@ GPU & 1 $\times$ RTX 5090单卡\\
\subsubsection{主要结果}
\todo{本节待填入Module C v5结果。下表中v3数字仅供参考v5完成后替换。}
\ref{tab:moduleC_main}对比了Module C与两个基线策略
Rule-basedl\_risk$\geq3$即REJECT其余PASS
和Threshold Baseline按风险分数设定各动作阈值
@@ -135,10 +133,10 @@ Rule-basedl\_risk$\geq3$即REJECT其余PASS
\midrule
Rule-based & 0.908 & 0.000 &&& 0.952 \\
Threshold & 0.908 & 0.000 && 0.624 & 0.952 \\
LLM-as-judge & \todo{} & \todo{} & \todo{} & \todo{} & \todo{} \\
BC-only行为克隆 & 0.940 & 0.000 & 0.696 & 0.509 & 0.969 \\
LLM-as-judgeQwen2.5-72B & 0.397 & 0.211 & 0.374 & 0.250 & 0.528 \\
\midrule
\textbf{OursRL v5} & \todo{} & \todo{} & \todo{} & \todo{} & \todo{} \\
参考RL v3 & 1.000 & 0.004 & 0.575 & 0.421 & 0.998 \\
\textbf{OursRL} & \textbf{0.953} & \textbf{0.000} & \textbf{0.706} & 0.571 & \textbf{0.976} \\
\bottomrule
\end{tabular}
\end{table}
@@ -150,7 +148,7 @@ LLM-as-judge & \todo{} & \todo{} & \todo{} & \todo{} & \todo{} \\
\begin{table}[ht]
\centering
\caption{各风险等级动作分布(测试集,v3结果v5待替换}
\caption{各风险等级动作分布(测试集,Module C v6含推理时 safety floor}
\label{tab:per_level_action}
\resizebox{\textwidth}{!}{%
\begin{tabular}{llrrrrrr}
@@ -171,12 +169,12 @@ LLM-as-judge & \todo{} & \todo{} & \todo{} & \todo{} & \todo{} \\
& L3 High & 456 & 0.009 & 0.105 & 0.739 & 0.000 & 0.147 \\
& L4 Critical & 196 & 0.000 & 0.041 & 0.316 & 0.000 & 0.643 \\
\midrule
\multirow{5}{*}{\textbf{OursRL v3参考}}
& L0 Safe & 237 & 0.987 & 0.008 & 0.004 & 0.000 & 0.000 \\
& L1 Mild & 280 & 0.729 & 0.011 & 0.229 & 0.000 & 0.032 \\
& L2 Moderate & 317 & 0.000 & 0.000 & 0.902 & 0.000 & 0.098 \\
& L3 High & 456 & 0.000 & 0.000 & 0.871 & 0.000 & 0.129 \\
& L4 Critical & 196 & 0.000 & 0.000 & 0.633 & 0.000 & 0.367 \\
\multirow{5}{*}{\textbf{OursRL}}
& L0 Safe & 237 & 1.000 & 0.000 & 0.000 & 0.000 & 0.000 \\
& L1 Mild & 280 & 0.821 & 0.071 & 0.100 & 0.007 & 0.000 \\
& L2 Moderate & 317 & 0.025 & 0.271 & 0.593 & 0.069 & 0.041 \\
& L3 High & 456 & 0.007 & 0.059 & 0.711 & 0.154 & 0.070 \\
& L4 Critical & 196 & 0.000 & 0.005 & 0.214 & 0.474 & 0.306 \\
\bottomrule
\end{tabular}
}
@@ -185,10 +183,47 @@ LLM-as-judge & \todo{} & \todo{} & \todo{} & \todo{} & \todo{} \\
RL策略的核心优势在于
1L2-L3层级主要选择REWRITE改写而非简单REJECT
平衡了安全性与用户体验;
2L3/L4样本的PASS率0.0\%安全召回率达1.0
而规则基线由于检测器等级预测误差level\_weighted\_f1=0.559
导致9.2\%的高危样本被错误放行。
2L3/L4样本的PASS率$\leq$0.7\%safety\_recall达0.953
较规则基线0.908提升4.5pp而规则基线由于检测器等级预测误差
level\_weighted\_f1=0.559导致9.2\%的高危样本被错误放行。
L4层级CRISIS动作占30.6\%高于Threshold基线CRISIS限于此层级
体现了RL策略对最高危场景的主动识别能力。
策略包含推理时safety floor将L3/L4上的WARN动作强制映射为REWRITE
属于constrained intervention policy设计确保高危场景不被轻度回应。
\subsubsection{消融实验}
\todo{消融实验待补充BC-only / w/o category-specific reward / v5完成后}
为量化各训练阶段和奖励组件的贡献,
我们对Module C进行三组对照实验
1\textbf{BC-only}仅行为克隆热启动跳过PPO强化学习阶段
2\textbf{w/o Category Reward}BC+PPO完整训练但移除类别特定奖励项
即禁用CRISIS\_R1奖励、REJECT\_R6R7奖励、REWRITE\_companion奖励和
CRISIS\_misuse惩罚保留对齐信号和安全硬约束
3\textbf{Full RL完整模型}保留所有奖励组件的BC+PPO训练。
\begin{table}[ht]
\centering
\caption{Module C干预策略消融实验测试集$n=1,486$含safety floor约束}
\label{tab:moduleC_ablation}
\begin{tabular}{lccccc}
\toprule
变体 & SafetyRecall & OverRefusal & ActionAcc & CrisisPrec & UX F-score \\
\midrule
BC-only & 0.940 & 0.000 & 0.697 & 0.509 & 0.969 \\
w/o Category Reward & 0.951 & 0.000 & \textbf{0.712} & 0.486 & 0.975 \\
\midrule
\textbf{Full RLOurs} & \textbf{0.953} & \textbf{0.000} & 0.706 & \textbf{0.571} & \textbf{0.976} \\
\bottomrule
\end{tabular}
\end{table}
PPO阶段将safety\_recall从0.940BC-only提升至0.953+1.3pp
验证了强化学习对安全召回的正向贡献。
类别特定奖励对ActionAcc的影响为轻微下降0.712$\to$0.706$-$0.6pp
但显著提升CrisisPrecision0.486$\to$0.571+8.5pp
CRISIS\_R1\_BONUS引导策略在R1类自伤样本上优先使用CRISIS动作
CRISIS\_misuse惩罚则抑制了将非危机内容误判为CRISIS的过度响应
两者合力使策略在动作校准上更加精准。
ActionAcc的边际下降源于类别特定奖励驱使策略偏离部分a\_recommend标注
例如标注建议REWRITE的R1样本被策略合理地升级为CRISIS
属于安全优先的设计取舍。

View File

@@ -35,31 +35,40 @@
\textbf{检测基线}
L1a关键词匹配、L1b正则词典、L1c组合
\todo{L2Llama Guard v2、WildGuard、OpenAI Moderation待运行}
L2aShieldGemma-2Bbinary F1=0.027FNR=0.987、L2bWildGuardbinary F1=0.038FNR=0.981
\textbf{干预基线}
Rule-based$l_\text{risk} \geq 3$即REJECT其余PASS
Threshold Baseline按风险分数阈值映射动作
\todo{LLM-as-judgeQwen2.5-72B直接判断,待运行)}
LLM-as-judgeQwen/Qwen2.5-72B-Instruct零样本直接判断干预动作temperature=0
\subsection{RQ1检测性能分析}
详细结果见第\ref{sec:moduleB}节表\ref{tab:moduleB_main}和表\ref{tab:per_category_recall}
Module B在所有指标上大幅优于基线。
值得关注的是,通用守卫模型\todo{Llama Guard v2、WildGuard}
在伴侣特有风险类别R3情感操纵、R4现实隔离等上的召回率
预期显著低于整体水平
体现了CompanionRisk Taxonomy的必要性
值得关注的是,两款通用守卫模型均严重失效:
ShieldGemma-2BFNR=0.987与WildGuardFNR=0.981
在R3情感操纵、R4现实隔离、R10越界亲密等伴侣特有类别上召回率为0.0\%
整体漏检率甚至高于简单关键词规则基线L1c FNR=0.816
这一结果表明,通用安全分类体系与中文伴侣场景之间存在系统性偏差,
而本文Module BFNR=0.000)通过专属分类体系和上下文感知架构有效弥补了这一差距。
\subsection{RQ2干预策略比较}
\todo{本节主要结果待Module C v5完成后填入。}
核心发现基于v3结果
RL策略在safety\_recall1.0 vs 0.908)和
UX F-score0.998 vs 0.952)上均优于两个基线策略
证明了可学习干预策略相比固定规则的优越性。
RL策略safety\_recall=0.953UX F-score=0.976
显著优于所有基线。
LLM-as-judgeQwen2.5-72B零样本表现最差safety\_recall=0.397over\_refusal=0.211UX F-score=0.528
逐级动作分布分析显示该模型对L3/L4高风险内容倾向输出WARN而非REWRITEL3高风险中PASS+WARN占63.6\%
同时对11.0\%的安全样本误判为CRISIS表明在伴侣场景专属五动作空间下
零样本LLM在安全与体验的双向校准上存在系统性困难
这进一步说明了针对该任务进行专项强化学习训练的必要性。
Rule-based0.908 / 0.952和Threshold0.908 / 0.952基线虽简单其safety\_recall反而高于零样本LLM。
RL策略在action\_accuracy0.706上较纯行为克隆BC-only0.696提升1.4pp
验证了PPO阶段对细粒度动作学习的必要性。
BC-only虽可达到较高safety\_recall0.940
但其action\_accuracy和crisis\_precision均低于完整RL策略
说明强化学习阶段有效改善了动作精度。
\subsection{RQ3消融实验}

View File

@@ -32,13 +32,15 @@ action\_accuracy衡量RL策略与数据集标注推荐动作$a_\text{recommend}$
2RL策略优化的是\textit{多目标奖励}而非对齐$a_\text{recommend}$
其在关键安全指标safety\_recall、UX F-score上的优势
不应被单一action\_accuracy遮蔽。
\todo{v5更新基于对标注动作合理性的更精准评估action\_accuracy预期提升。}
最终RL策略v6在action\_accuracy上达到0.706较BC-only0.696提升1.4pp
表明PPO阶段有效改善了动作精度。L1层级仍是主要误差来源WARN/REWRITE边界歧义
\textbf{局限二crisis\_precision不足当前v3: 0.421}
\textbf{局限二crisis\_precision不足当前v6: 0.571}
CRISIS动作精准率低的主要原因是R1危机类训练样本稀少
全集约410条仅占总样本4.1\%
导致策略倾向于在非R1的高风险场景下也触发CRISIS。
\todo{v5更新通过类别感知奖励和针对R1的专项激励crisis\_precision预期提升至0.65+。}
v6通过类别感知奖励将crisis\_precision从v3的0.421提升至0.571
但仍未达到0.80的理想目标。未来工作可针对R1类别进行数据增强或过采样。
\textbf{局限三:数据集同源性。}
CompanionRisk-Bench的9,896条样本中
@@ -51,6 +53,11 @@ CompanionRisk-Bench的9,896条样本中
本文主要面向中文情感陪伴场景,
英文伴侣平台Replika、Character.AI的泛化性
是未来工作方向。
值得注意的是针对数据集中英文子集n=102来自Human-AI Suicide Risk Dataset与CoSafe
的分层评估表明WildGuard在英文样本上的FNR为0.882
虽低于其在中文样本上的FNR0.990),但仍远高于可接受水平。
这说明现有通用守卫模型的失败并非主要源于语言障碍,
而是伴侣场景的领域偏差与分类体系缺口共同造成的。
\subsection{伦理声明}