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:
@@ -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{Ours(Module B)} & \textbf{0.9995} & \textbf{1.000} & \textbf{0.000} & \textbf{0.559} \\
|
||||
\bottomrule
|
||||
@@ -128,6 +129,17 @@ Module B的binary F1(0.9995)和漏检率(FNR=0.0\%)
|
||||
较最强规则基线(L1c Combined, 0.306)分别提升0.693和0.816,
|
||||
对所有10个风险类别的召回率均达到1.0(见表\ref{tab:per_category_recall})。
|
||||
|
||||
值得关注的是,专为安全检测设计的通用守卫模型在本数据集上表现极差。
|
||||
ShieldGemma-2B的FNR高达0.987,WildGuard的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{Full(P+H+R,Ours)} & \textbf{0.9995} & \textbf{0.000} & \textbf{0.559} & \textbf{0.463} \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
三个变体的Binary F1均接近0.999,FNR均为0.0\%,
|
||||
表明AI回复文本本身已携带充分的二元风险信号,
|
||||
上下文信息对检测鲁棒性有边际贡献(+0.0005 F1)。
|
||||
Level和Fine-grained指标的差异($\leq$0.025)在训练方差范围之内,
|
||||
不构成系统性趋势。
|
||||
完整模型通过CrossAttention融合三路输入,
|
||||
在二元检测上与History+Response并列最优,
|
||||
同时保留了对伴侣特有场景(R3/R4/R10)的上下文理解能力。
|
||||
|
||||
@@ -119,8 +119,6 @@ GPU & 1 $\times$ RTX 5090(单卡)\\
|
||||
|
||||
\subsubsection{主要结果}
|
||||
|
||||
\todo{本节待填入Module C v5结果。下表中v3数字仅供参考,v5完成后替换。}
|
||||
|
||||
表\ref{tab:moduleC_main}对比了Module C与两个基线策略:
|
||||
Rule-based(l\_risk$\geq3$即REJECT,其余PASS)
|
||||
和Threshold Baseline(按风险分数设定各动作阈值)。
|
||||
@@ -135,10 +133,10 @@ Rule-based(l\_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-judge(Qwen2.5-72B) & 0.397 & 0.211 & 0.374 & 0.250 & 0.528 \\
|
||||
\midrule
|
||||
\textbf{Ours(RL v5)} & \todo{} & \todo{} & \todo{} & \todo{} & \todo{} \\
|
||||
(参考:RL v3) & 1.000 & 0.004 & 0.575 & 0.421 & 0.998 \\
|
||||
\textbf{Ours(RL)} & \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{Ours(RL 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{Ours(RL)}}
|
||||
& 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策略的核心优势在于:
|
||||
(1)L2-L3层级主要选择REWRITE(改写)而非简单REJECT,
|
||||
平衡了安全性与用户体验;
|
||||
(2)L3/L4样本的PASS率为0.0\%,安全召回率达1.0,
|
||||
而规则基线由于检测器等级预测误差(level\_weighted\_f1=0.559)
|
||||
导致9.2\%的高危样本被错误放行。
|
||||
(2)L3/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 RL(Ours)} & \textbf{0.953} & \textbf{0.000} & 0.706 & \textbf{0.571} & \textbf{0.976} \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
PPO阶段将safety\_recall从0.940(BC-only)提升至0.953(+1.3pp),
|
||||
验证了强化学习对安全召回的正向贡献。
|
||||
类别特定奖励对ActionAcc的影响为轻微下降(0.712$\to$0.706,$-$0.6pp),
|
||||
但显著提升CrisisPrecision(0.486$\to$0.571,+8.5pp):
|
||||
CRISIS\_R1\_BONUS引导策略在R1类自伤样本上优先使用CRISIS动作,
|
||||
CRISIS\_misuse惩罚则抑制了将非危机内容误判为CRISIS的过度响应,
|
||||
两者合力使策略在动作校准上更加精准。
|
||||
ActionAcc的边际下降源于类别特定奖励驱使策略偏离部分a\_recommend标注
|
||||
(例如:标注建议REWRITE的R1样本被策略合理地升级为CRISIS),
|
||||
属于安全优先的设计取舍。
|
||||
|
||||
@@ -35,31 +35,40 @@
|
||||
|
||||
\textbf{检测基线}:
|
||||
L1a(关键词匹配)、L1b(正则词典)、L1c(组合);
|
||||
\todo{L2:Llama Guard v2、WildGuard、OpenAI Moderation(待运行)}
|
||||
L2a(ShieldGemma-2B,binary F1=0.027,FNR=0.987)、L2b(WildGuard,binary F1=0.038,FNR=0.981)
|
||||
|
||||
\textbf{干预基线}:
|
||||
Rule-based($l_\text{risk} \geq 3$即REJECT,其余PASS)、
|
||||
Threshold Baseline(按风险分数阈值映射动作)、
|
||||
\todo{LLM-as-judge(Qwen2.5-72B直接判断,待运行)}
|
||||
LLM-as-judge(Qwen/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-2B(FNR=0.987)与WildGuard(FNR=0.981)
|
||||
在R3情感操纵、R4现实隔离、R10越界亲密等伴侣特有类别上召回率为0.0\%,
|
||||
整体漏检率甚至高于简单关键词规则基线(L1c FNR=0.816)。
|
||||
这一结果表明,通用安全分类体系与中文伴侣场景之间存在系统性偏差,
|
||||
而本文Module B(FNR=0.000)通过专属分类体系和上下文感知架构有效弥补了这一差距。
|
||||
|
||||
\subsection{RQ2:干预策略比较}
|
||||
|
||||
\todo{本节主要结果待Module C v5完成后填入。}
|
||||
|
||||
核心发现(基于v3结果):
|
||||
RL策略在safety\_recall(1.0 vs 0.908)和
|
||||
UX F-score(0.998 vs 0.952)上均优于两个基线策略,
|
||||
证明了可学习干预策略相比固定规则的优越性。
|
||||
RL策略(safety\_recall=0.953,UX F-score=0.976)
|
||||
显著优于所有基线。
|
||||
LLM-as-judge(Qwen2.5-72B零样本)表现最差(safety\_recall=0.397,over\_refusal=0.211,UX F-score=0.528):
|
||||
逐级动作分布分析显示,该模型对L3/L4高风险内容倾向输出WARN而非REWRITE(L3高风险中PASS+WARN占63.6\%),
|
||||
同时对11.0\%的安全样本误判为CRISIS,表明在伴侣场景专属五动作空间下,
|
||||
零样本LLM在安全与体验的双向校准上存在系统性困难;
|
||||
这进一步说明了针对该任务进行专项强化学习训练的必要性。
|
||||
Rule-based(0.908 / 0.952)和Threshold(0.908 / 0.952)基线虽简单,其safety\_recall反而高于零样本LLM。
|
||||
RL策略在action\_accuracy(0.706)上较纯行为克隆BC-only(0.696)提升1.4pp,
|
||||
验证了PPO阶段对细粒度动作学习的必要性。
|
||||
BC-only虽可达到较高safety\_recall(0.940),
|
||||
但其action\_accuracy和crisis\_precision均低于完整RL策略,
|
||||
说明强化学习阶段有效改善了动作精度。
|
||||
|
||||
\subsection{RQ3:消融实验}
|
||||
|
||||
|
||||
@@ -32,13 +32,15 @@ action\_accuracy衡量RL策略与数据集标注推荐动作$a_\text{recommend}$
|
||||
(2)RL策略优化的是\textit{多目标奖励}而非对齐$a_\text{recommend}$,
|
||||
其在关键安全指标(safety\_recall、UX F-score)上的优势
|
||||
不应被单一action\_accuracy遮蔽。
|
||||
\todo{v5更新:基于对标注动作合理性的更精准评估,action\_accuracy预期提升。}
|
||||
最终RL策略(v6)在action\_accuracy上达到0.706,较BC-only(0.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,
|
||||
虽低于其在中文样本上的FNR(0.990),但仍远高于可接受水平。
|
||||
这说明现有通用守卫模型的失败并非主要源于语言障碍,
|
||||
而是伴侣场景的领域偏差与分类体系缺口共同造成的。
|
||||
|
||||
\subsection{伦理声明}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user