如何把《个人信息保护法》第6条转化为状态-动作屏蔽函数?
解读
面试官想验证三件事:
- 你是否真正理解《个人信息保护法》第6条的合规红线;
- 能否把法律文本抽象成可计算约束;
- 能否在Agent状态-动作空间里落地为运行时屏蔽机制,而非事后审计。
第6条核心要求:“最小必要”+“正当合法”+“直接相关”+“最小影响”。转化为工程语言就是:
在任何状态s下,若动作a会采集、存储、传输、推断超出当前任务闭环所必需的个人信息,则立即屏蔽该动作,并给出可解释日志。
知识点
- 状态-动作屏蔽函数(State-Action Masking):在策略网络输出π(a|s)之前,加一层可微或不可微的掩码M(s,a)∈{0,1},非法动作为0,直接阻断梯度与执行。
- PIPL 第6条四要素
- 目的限定:与“产品或服务正常闭环”直接相关;
- 最小范围:字段、精度、频次、存储周期均取最小集;
- 最小影响:不得降低用户权益或造成歧视;
- 合法基础:需存在同意、合同履行、法定义务、公共利益、已公开、合法公开六选一。
- 工程映射
- 把“字段级”映射为动作空间维度(如a=“读取通讯录”对应维度i);
- 把“目的-范围-频次”映射为状态特征(如当前任务task_id、已收集字段向量f_t、用户授权掩码auth_t);
- 把“合法基础”映射为外部知识图谱边权,运行时查询。
- 实现模式
- 白名单模式:M(s,a)=1 当且仅当a∈Whitelist(task_id,auth_t);
- 动态评估模式:基于规则引擎+轻量模型实时计算必要性得分,低于阈值即掩码;
- 双向绑定:掩码函数与模型解释模块联动,被屏蔽动作必须回写原因到日志与UI,满足“可解释合规”。
- 部署要点
- 在强化学习环境里,屏蔽函数必须放在env.step()之前,防止Agent通过奖励黑客绕过;
- 在大模型Tool-use场景,屏蔽函数注册为工具调用钩子,由GuardLayer在token生成阶段拦截;
- 更新机制:当法律或业务变更时,通过热更新配置或知识图谱边权推送,无需重启Agent。
答案
给出一个可直接落地的状态-动作屏蔽函数伪代码与配置示例,兼顾解释性与性能:
-
定义状态特征向量
s = {task_id, auth_mask, collected_fields, user_type, timestamp}
其中auth_mask是用户授权位图,collected_fields是已采字段位图。 -
定义动作空间
每个动作a_j对应一次个人信息操作(读、写、传、推断),附带字段列表fields(a_j)与目的purpose(a_j)。 -
掩码函数
M(s, a_j) =
0,如果以下任一条件为真:
– fields(a_j) 与当前task_id的最小必要字段集Necessary(task_id)无交集;
– fields(a_j) ⊈ auth_mask(超授权);
– purpose(a_j) ≠ 备案目的(查询合规知识图谱返回false);
– 频次限制freq(a_j, sliding_24h) > MaxFreq(task_id);
– 用户类型为未成年人且字段含敏感个人信息却无单独同意标志;
否则为1。 -
工程嵌入
– 在PPO的MaskablePPOWrapper里,把M(s,a)作为logits掩码,非法动作概率强制为0;
– 在LangChain工具调用里,把M注册为ToolGuard,返回错误码**“PIPL-6-BLOCKED”与原因字符串**;
– 日志格式统一为**{“block_reason”: “PIPL6-超授权-通讯录”, “legal_basis”: “缺失单独同意”, “timestamp”: …}**,方便监管抽检。 -
线上验证
– 用合规单元测试集每日回归:构造边界授权、字段漂移、频次突增三类Case,屏蔽率必须100%;
– 引入对抗Agent尝试通过多步组合间接收集超必要信息,若成功则自动新增规则到知识图谱,实现持续演化。
拓展思考
- 多Agent协作场景:A Agent调用B Agent的接口时,屏蔽函数需跨Agent传递auth_mask与collected_fields,防止权限逃逸。
- 强化学习奖励冲突:若屏蔽动作导致任务失败,需设计替代奖励路径(如引导Agent请求增量授权),否则Agent会奖励黑客试图绕过掩码。
- 大模型涌现能力:当模型通过推理链把非敏感字段组合成敏感画像时,传统字段级掩码失效,需引入结果级敏感度量(如再训练一个轻量脱敏判别器)并回写到屏蔽函数。
- 监管沙盒:在自贸区或浦东数据交易所的沙盒环境内,可临时下调屏蔽阈值做创新实验,但须实时回传日志至地方监管节点,实现合规弹性。