你花了大半年训练的大模型,性能指标漂亮得惊人。但上线第一天,监管约谈、用户投诉、合作方发函——因为你的AI产品没做风险分级、没留训练日志、连一份模型说明都拿不出来。这像什么?像你造了一辆马力强劲的跑车,却忘了挂牌照、没装行车记录仪、没配安全气囊,上了路才发现交规已经改了好几轮。 AI法规不是法务部门单独消化的文件,它已经渗进了开发者的日常。全球范围内,欧盟《人工智能法案》、中国《生成式AI服务管理暂行办法》相继落地,“代码要怎么写”第一次有了合规的答案。这篇文章,我用“开车上路”当一条主线:法规是交规,AI产品是车,你是司机,数据是乘客,留痕是行车记录仪,透明度是仪表盘,安全防护是安全带,合规工具链是4S店保养。把这一整套“上路逻辑”讲清楚,你就能明白AI法规到底在逼你改什么。
AI从业者学习法规,不是为了应付检查,而是把自己从“能写代码”升级为“能写合规代码”,成为团队里既懂技术又懂监管的稀缺角色。
目录
可视化演示
动态演示AI法规对开发者影响的核心机制,通过入门/进阶/实战/优化四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
AI法规对开发者影响:AI法规 AI法规对开发者影响的全局图景 法规对AI开发流程的合规要求改 核心机制可视化 AI法规对开发者影响整体架构与关键组件
法规背景认知:交规不是突发奇想
十九世纪的英国,汽车刚上路,法律规定车前面必须有人举红旗开道,时速不超4公里。今天看这很荒诞,但底层逻辑没变:新工具出现,社会必定用规则来驯化它。AI正在经历同一个过程,只是这次不再需要真人举红旗,而是成文的法规——欧盟《人工智能法案》、中国《生成式AI服务管理暂行办法》相继落地,直接管到代码层。
作为开发者,你可能觉得“合规离我很远,那是法务的事”。但法规的落点恰恰是开发链条:模型备案要提交训练数据说明,高风险AI要保留完整日志,生成内容要能溯源,违规最高面临全球营业额几个百分点的处罚。换句话说,司机就是责任人,不能出了事故甩锅给驾校。
所以,把合规风险量化是第一步。你可以拆出一个个风险项:数据来源是否合法、内容安全是否过关、用户隐私保护是否到位。给每项设定权重和严重度,然后算总分:
聪明的司机不会等交警敲窗才研究交规。法规已经上路,你现在就把风险清单列出来、逐项打分,比事后收到罚单划算得多。下一节,我们看看这些分数如何变成开发流程里的“科目考试”。
- 风险总分 R全部风险因素加权求和后的总分,数值越高,项目离“红线”越近。
- 求和符号 Σ从第 1 项一直累加到第 n 项,表示“每个风险因素都要算进来,不许漏”。
- 权重 w_i第 i 个风险项的重要程度系数,权重越大,对总分影响越大。
- 严重程度 s_i第 i 个风险项一旦爆发的危害等级,通常取 1 到 5 的整数值。
开发流程融合:科目一到科目四
考驾照要过科目一理论、科目二场地、科目三路考、科目四安全文明,每个环节考的是不同的能力。AI合规开发也是一样:需求阶段、数据阶段、训练阶段、上线阶段,各有各的“考点”。
最容易被忽略的是需求阶段。你以为从需求到代码只是写 if-else,但第一步就要做 AI 风险分级:你的系统会不会影响人的生命、健康、基本权利?比如做一个招聘简历筛选 AI,它会直接影响候选人工作机会,属于高风险应用。这时就必须提前规划“人类最终决定权”、“公平性测试”等硬性要求。
数据阶段是第二个考点:训练数据不是爬下来就能用。个人信息必须获得授权,用户不同意,数据就不能进入训练集。训练阶段要保存每个版本的模型、参数和评测记录;上线前还要通过安全测试,模拟“恶意输入越狱”、“生成违规内容”等场景。这些要求落到代码上,就有一个很好用的量化指标——数据脱敏覆盖率:
把每个“科目”的考点提前埋进开发流程,就不会到了路考才发现没系安全带。这四个阶段的检查点,是后续所有合规动作的骨架。
- 脱敏覆盖率 M表示敏感字段中被脱敏处理的比例,越高说明数据保护越到位。
- 已脱敏字段数 n_masked被替换、打码或加密过的敏感字段数量,这是分子。
- 全部敏感字段数 n_total项目中所有需要保护的敏感字段总量,这是分母。
- 乘以 100%把小数比例换算成更直观的百分比,方便设定阈值和验收。
代码留痕规范:装好行车记录仪
行车记录仪的重要性,只有出过事故的人最懂。它不直接影响你开车,但一旦有纠纷,它能讲清楚每一秒发生了什么。代码留痕,就是 AI 项目的行车记录仪。
法规要求可追溯性,落到代码层就是一连串追问:这个数据集是哪来的?有没有授权记录?这个模型版本用了什么超参数?当时评测结果是多少?出问题后监管来查,你拿什么自证清白?答案只有:留痕。
具体动作包括三件事。第一,注释里记录关键决策的理由——“这里为什么用 Focal Loss 而不是 CE Loss”,不是写给同事看的,是写给未来的审计看的。第二,用 git 的 tag 和分支保留每次实验的状态,让“版本”二字不是嘴上说说。第三,建立数据集卡片(Dataset Card),写清数据来源、授权方式、去标识化情况,并让关键操作输出结构化日志。留痕完整度同样可以量化:
没有行车记录仪,再好的驾驶技术也可能被一次追尾拖下水。有了留痕,你才有底气在审计时说一句“我当时是合规的”。
- 留痕完整度 L关键事件中真正留下日志记录的比例,越接近 1 越可信。
- 已记录事件数 n_logged代码里实际写入了日志或审计记录的关键事件数量。
- 应记录事件总数 n_events按照法规和公司制度应当留痕的事件总数量。
模型透明度:仪表盘与挡风玻璃
你开车时不需要懂发动机内部原理,但仪表盘清楚告诉你转速、油量、车速。AI 用户也一样,不一定能看懂神经网络内部,但至少要知道:这个系统能干什么、不能干什么、它凭什么给出某个结论。
法规里反复出现的“透明度”三个字,落到开发者身上,不是要求你把深度学习模型全部开源——那是吓唬人的理解。真正要做的是三件事:一是提供可解释性接口,比如用 SHAP、注意力权重等方法,向用户或审计方说明一次决策的依据;二是上线时附一份“模型卡”,类似汽车说明书,写清训练数据范围、评测指标、已知限制;三是在产品界面做风险告知,明确标注“本回答由 AI 生成,仅供参考”。
此外还有公平性指标:不同性别、年龄、地域的用户,模型输出是否明显偏颇?这些指标也要在透明度的框架下公开。把它们综合起来,就得到一个可计算的透明度覆盖率:
车里放一台能看懂的仪表盘,比引擎盖下面贴满公式更有用。透明度做的不是“开源”,而是“开诚布公”。
- 透明度覆盖率 T需要提供解释的模型中,已经具备可解释能力或说明文档的比例。
- 已具备可解释性的模型数 n_explainable已经有模型卡、可解释接口或公平性报告的模型数量。
- 需要解释的模型总数 n_total面向外部用户、可能影响用户权益的全部模型数量。
隐私数据保护:乘客的信息不容侵犯
乘客上了你的车,你就有义务保障他的个人信息安全。司机不能乱打听乘客隐私,更不能把乘客信息广播出去。AI 开发中的“乘客”,就是用户的个人数据。
法规对数据采集有一套明确要求:合法、正当、必要、最小化。翻译成开发语言,第一是只收集完成任务所必需的字段,能存手机号尾部四位,就不存完整手机号;第二是脱敏和去标识化,身份证号、真实姓名、精确位置这些敏感字段,进入训练集前必须处理;第三是加密,数据在存储和传输过程中都不能裸奔;第四是给“下车”留通道——用户提出删除请求时,得有对应的删除接口,不能嘴上说“支持删除”,代码里却永远留着备份。
这四条做下来,很多 AI 项目会发现自己根本不需要那么多数据。少收集、勤打码、重加密、可删除,乘客才会放心长期乘坐你开发的这辆车。隐私保护不是把数据锁进保险柜就完事,而是让每一次数据流动都有规矩。
安全防护设计:安全带和气囊
安全带和安全气囊平时用不上,但设计师必须装。AI 系统的“安全带”,就是内容安全与对抗防护。法规明确要求生成式 AI 具备内容安全能力,不能生成违法违规内容,还要能防住恶意用户的“越狱”尝试。
从代码层面,需要落地的安全能力有四类。第一,敏感内容过滤层:输入侧屏蔽恶意指令,输出侧拦截违规内容,这是最基础的护栏。第二,训练素材版权审查:不能把侵权图片、盗版文本喂给模型,否则训练出来的模型天然带着“原罪”。第三,防提示注入攻击:用户输入必须被当作不可信数据处理,不能直接拼接进系统提示词,否则模型容易被操纵。第四,内容水印溯源:给生成的图片或文本加不可见水印,出了问题能追溯到是哪个模型、哪个版本、哪次会话产生的。
这些安全组件就像车上的被动安全配置:没有人为了体验气囊的弹出而故意撞车,但事故来临时,它们决定你是擦伤还是重伤。提前装好,永远值得。
合规代码实践:标准件与应急刹车
同一款车进入不同国家,会针对当地法规调整配置:车道保持、自动紧急制动、数据记录仪。AI 产品的合规能力也应该是代码里的标准配置,而不是事后打补丁。
开发者在写代码时就要预留四样东西。第一,配置开关(feature flag):运营人员不用改代码就能临时关闭某个高风险功能,比如“AI 生成评论功能突发乱说话,一键先关掉”。第二,审计接口(audit API):面向监管或企业审计方,提供查询留痕数据、导出合规报告的能力。第三,把合规检查写进 CI 流水线:每次代码提交自动跑检查,不过关就不允许合并。第四,应急下线通道:发现模型输出异常时,一条命令或一个按钮就能把服务从线上摘除。
这四样东西合起来,可以用一个合格率来度量:
把合规能力做成标准件,新车出海就不用从零开始适应另一个国家的路况;即使出问题,也有应急刹车可以踩。
- 合规检查通过率 P自动合规检查中通过的项目占全部检查项的比例。
- 通过项数量 n_passed本次检查中满足合规要求的代码项或配置项数量。
- 检查项总数 n_all本次检查所覆盖的全部合规检查项数量。
- 乘以 100%把通过率换算成百分数,便于团队设定“必须达到 95% 才能上线”之类的门槛。
合规工具链:4S店定期保养
到了 4S 店,师傅有一套标准保养流程和一排检测设备。AI 团队也需要这样一套“保养工具箱”,把合规从手忙脚乱的救火变成例行公事。
工具箱里至少要有四件。第一,合规检查清单(Checklist):沉淀成仓库里的 Markdown 或 YAML 文件,每次上线逐项确认,像飞机起飞前的检查单一样机械而可靠。第二,静态扫描工具:自动扫描代码仓库,识别硬编码的密钥、未脱敏的日志字段、缺少注释和文档的模块。第三,合规测试集:把“生成违规内容”、“泄露个人信息”、“越狱成功”等失败用例写进测试集,让它们在 CI/CD 中每次提交都被执行。第四,持续监控告警:线上模型跑起来之后,监控某些指标的异常波动——比如某类输出触发率突然飙升,立刻告警。
这套工具链的妙处在于:它把“合规”从“某个人记得做”变成“系统自动化保证”。定期保养的车才敢开长途,而且 4S 店的保养记录让每一笔维护都有据可查,这正是法规想要的“过程可证明”。
AI 应用场景
场景一:CI/CD 流水线里的“合规安检站”
阶段:开发测试 / 持续集成
解决的问题:传统方式是代码合并后才人工审查,发现问题时成本已经很高。AI 方式把合规检查脚本插入 CI 流水线,每次提交自动扫描硬编码密钥、检查日志模块、验证数据脱敏,不通过就阻止合并,相当于在每条车道入口设了自动检查站。
具体案例:某 AI 创业团队把合规检查工具接入 GitHub Actions,每次 Pull Request 自动执行四类检查:密钥硬编码、日志存在性、脱敏模块引用、注释覆盖率。上线半年后,因隐私问题被约谈的次数降为零,因为问题在合并前就已被挡住。
场景二:模型发布前的“车主说明书”
阶段:模型部署 / 透明度披露
解决的问题:过去模型上线没有系统化的文档,出了事解释不清。AI 方式用模型卡生成器自动收集训练数据范围、评测指标、已知限制、公平性测试结果,生成一份《模型卡》,成为上生产的“准生证”。
具体案例:某银行风控团队规定,信贷审批模型必须附带模型卡并通过“合规发布门禁”才能上线。模型卡由工具自动生成,包含训练集时间范围、拒绝率、各群体通过率差异等关键指标,监管抽查时直接打印提交,轻松通过审计。
场景三:数据管道里的“乘客信息打码机”
阶段:数据工程 / 隐私保护
解决的问题:原始用户日志直接进入训练集,存在严重的隐私泄露风险。AI 方式在数据管道中嵌入自动脱敏模块,对身份证号、手机号、地址等敏感字段实时打码,并统计脱敏覆盖率作为数据质量指标。
具体案例:某智能客服公司改造数据管道,在写入训练集之前强制执行脱敏规则:手机号保留前三位后四位,姓名替换成随机代号,位置信息降级到城市级别。改造后数据泄露风险大幅下降,且脱敏覆盖率稳定在 99% 以上。
Python 演示
#!/usr/bin/env python3# -*- coding: utf-8 -*-"""AI项目合规自查工具: 像驾考考官一样逐项检查代码仓库""" import reimport sysfrom pathlib import Path class ComplianceChecker: """对指定代码仓库做四项合规体检, 输出得分和问题清单""" def __init__(self, repo_path): self.repo_path = Path(repo_path) self.result_map = {} self.issue_list = [] def check_hardcoded_secrets(self): """检查是否把密钥或密码硬编码在源码中""" pattern = r'(?i)(api[_-]?key|password|passwd|secret|token)' issues = [] for file in self.repo_path.rglob('*.py'): text = file.read_text(encoding='utf-8', errors='ignore') for line_no, line in enumerate(text.splitlines(), 1): if re.search(pattern, line) and '=' in line and 'getenv' not in line: issues.append(f"{file.name}:{line_no}: {line.strip()[:50]}") self.result_map['secrets'] = len(issues) == 0 self.issue_list.extend(issues) return issues def check_logging_exists(self): """检查项目是否引入日志模块, 缺少日志则无法审计""" has_logging = False for file in self.repo_path.rglob('*.py'): content = file.read_text(encoding='utf-8', errors='ignore') if 'import logging' in content or 'from loguru' in content: has_logging = True break self.result_map['logging'] = has_logging return has_logging def check_mask_feature(self): """检查是否存在数据脱敏相关实现""" mask_files = list(self.repo_path.rglob('*mask*')) self.result_map['mask'] = len(mask_files) > 0 return self.result_map['mask'] def check_comment_coverage(self): """统计注释行占比, 注释过少会导致决策不可追溯""" total_lines = 0 comment_lines = 0 for file in self.repo_path.rglob('*.py'): lines = file.read_text(encoding='utf-8', errors='ignore').splitlines() total_lines += len(lines) comment_lines += sum(1 for ln in lines if ln.strip().startswith('#')) ratio = comment_lines / max(total_lines, 1) self.result_map['comment_ratio'] = round(ratio, 3) self.result_map['doc_comment'] = ratio >= 0.1 return ratio def show_report(self): """输出合规体检报告, 计算综合得分""" passed_count = sum(1 for value in self.result_map.values() if value is True) score = passed_count / 4 * 100 print("=" * 46) print(" AI 项目合规体检报告") print("=" * 46) print(" 密钥硬编码检查: " + ("PASS" if self.result_map.get('secrets') else "FAIL")) print(" 日志模块检查: " + ("PASS" if self.result_map.get('logging') else "FAIL")) print(" 脱敏功能检查: " + ("PASS" if self.result_map.get('mask') else "FAIL")) print(" 注释覆盖率(" + format(self.result_map.get('comment_ratio', 0), '.1%') + "): " + ("PASS" if self.result_map.get('doc_comment') else "FAIL")) if self.issue_list: print(" [!] 发现 " + str(len(self.issue_list)) + " 个硬编码风险:") for issue in self.issue_list[:5]: print(" - " + issue) print(" 合规得分: " + format(score, '.1f') + " / 100") return score def main(): target = sys.argv[1] if len(sys.argv) > 1 else "." checker = ComplianceChecker(target) checker.check_hardcoded_secrets() checker.check_logging_exists() checker.check_mask_feature() checker.check_comment_coverage() checker.show_report() if __name__ == "__main__": main()
class ComplianceChecker:定义合规检查器,像“驾考考官”一样逐项记录项目表现。self.result_map = {}用于保存每项检查的通过状态,后续报告从这张表读取结果。def check_hardcoded_secrets(self):检查源码中是否把 API Key、密码等敏感信息直接写死在代码里,这是最常见的合规红灯。pattern = r'(?i)(api[_-]?key|password|passwd|secret|token)'用正则匹配敏感字段名,(?i)表示不区分大小写,避免漏网之鱼。if 'import logging' in content确认项目引入了日志模块,没有日志就等于没有行车记录仪,出事后无法解释。list(self.repo_path.rglob('*mask*'))在仓库中查找含 mask 的文件,用来推断是否有脱敏功能,简单但也实用。sum(1 for ln in lines if ln.strip().startswith('#'))统计以#开头的代码行,覆盖注释覆盖率检查。passed_count / 4 * 100四项检查各占 25 分,算出百分制合规得分,方便团队设定上线门槛。if __name__ == "__main__":让脚本既能被作为模块导入(被别人调用),也能以命令行方式独立运行。
常见误区
误区我就是一个写代码的,合规不合规是法务和合规部门要操心的,跟我没关系。产品要上线,我写就完了。
正解法规的落点恰恰就是代码。数据采集有没有授权、日志有没有记录、敏感信息有没有脱敏、模型有没有模型卡,这些全是代码仓库里的具体产物。法务能写制度,但制度要变成代码里的 feature flag、审计接口、检查脚本,只能靠开发者。把合规当法务的事,相当于把行车记录仪扔给交警帮你装。
为何常见:因为“开发”和“合规”在过去是两条线,传统的软件开发确实不需要开发者过问法律;但 AI 法规把“过程责任”压到了开发链路,很多人的认知还没跟上。
误区用户手机号、身份证号我都打码了,隐私合规肯定没问题了,可以安心训练模型了。
正解脱敏只是隐私保护的一小步。法规还要求最小化采集——你压根不该收集那么多字段;要求明确告知并获得用户同意;要求加密存储和传输;还要能响应用户的删除请求。脱敏是一个技术动作,但合规是一整套流程。你给车牌打了马赛克,不代表你超速就没被拍。
为何常见:因为“脱敏”是技术圈最常听到的隐私词汇,很多人把最显眼的那一个动作当成了全部,忽略了其余三四个同等重要的义务。
误区合规要求留痕,那我让所有代码都堆满注释,每行日志都记录下来,这样肯定合规了吧?
正解留痕的质量比数量重要。写日志的目的是回答“谁、何时、做了什么、为什么”,对应到代码里是有结构的事件记录,而不是流水账。注释的价值在于记录关键决策的“为什么”,无关紧要的废话注释反而会淹没重点,让审计者找不到真正有用的信息。行车记录仪记录的是关键画面,不是每分每秒的整段废片。
为何常见:因为“多”总是比“少”看起来更安全,初学者容易把合规理解为堆积材料,而不是构建证据链。
误区深度学习模型内部就是一堆参数,谁也没法完全解释它为什么这么决策,所以法规里的透明度要求是不切实际的。
正解透明度不等于“完全可解释每一个神经元”。法规要求的透明度,落在实践上是分层级的:模型卡说明训练数据范围、能力边界和已知限制;可解释性工具(SHAP、attention)给出决策的主要依据;产品界面告知用户“这是 AI 生成的内容”。这些都不是“打开黑箱”,而是“给黑箱装仪表盘和说明书”,完全可落地。
为何常见:因为很多人把“透明”和“可完全解释”画了等号,于是得出一个做不到的结论,然后干脆什么都不做,这是最危险的回应。
面试题
Q1. 全球 AI 法规趋势下,开发者最直接面对的新要求是什么?
- A.追求模型参数量更大
- B.证明代码与数据合规← 正确答案
- C.使用更新的深度学习框架
- D.尽可能降低服务器功耗
答案:B。全球 AI 法规(欧盟 AI 法案、中国生成式 AI 办法)把责任主体下沉到开发链路,要求开发者能证明代码与数据的合规性,而不是一味追求参数量或框架新。A、C、D 都不属于法规对开发者的直接要求。
Q2. 代码留痕合规通常包括哪些具体措施?
- A.记录数据集来源与授权← 正确答案
- B.保留训练版本与参数配置← 正确答案
- C.注释中说明关键决策理由← 正确答案
- D.删除旧代码避免被审查
答案:ABC。留痕的核心是证据链:数据来源可溯源、版本可重现、关键决策有依据,三个选项都对应这三个方面。删除旧代码反而破坏了可追溯性,等于销毁行车记录仪,是典型错误做法。
Q3. 数据脱敏的核心目标是什么?
- A.压缩存储空间优化成本
- B.保护个人隐私降低泄露风险← 正确答案
- C.提高模型训练迭代速度
- D.让数据集内容更加精确
答案:B。脱敏的目的是让敏感字段在训练、共享、存储过程中不暴露个人隐私,对应法规中的“去标识化”要求。压缩、提速、改精度都只是可能的附带效果,不是合规语境下的目标。
Q4. 开发者满足 AI 透明度要求的典型做法是?
- A.完整公开所有模型源码
- B.提供模型卡与可解释接口← 正确答案
- C.停用所有预训练基础模型
- D.用注释代替全部功能文档
答案:B。法规要求的透明度是“让用户和审计方看得懂”,模型卡(懂边界)+ 可解释接口(懂依据)是落地组合。公开源码与透明度无必然关系,停用预训练模型不解决问题,注释不能替代正式文档。
Q5. AI 模型安全防护合规通常包括哪些方面?
- A.部署敏感内容过滤机制← 正确答案
- B.为生成内容添加水印溯源← 正确答案
- C.防御提示注入与对抗攻击← 正确答案
- D.关闭日志功能保护隐私
答案:ABC。内容过滤、水印溯源、防注入都是安全防护的标准动作。关闭日志反而破坏了留痕审计能力,属于舍本逐末。安全防护和隐私保护不是“关掉一切记录”,而是“该记的记,该挡的挡”。
Q6. “应急下线通道”的正确理解是什么?
- A.物理切断机房所有电力供应
- B.预留一键停用异常 AI 功能机制← 正确答案
- C.删除全部训练与微调数据
- D.清空在线服务的所有缓存记录
答案:B。应急下线通道是一个软件层面的安全开关,让运营人员在不改代码、不重启全站的前提下,快速停用出问题的 AI 功能模块。切断电源、删数据、清缓存都是粗暴且不可逆的做法,会带来更大损失。
Q7. 合规工具链中静态扫描主要能发现什么问题?
- A.代码中的硬编码密钥风险← 正确答案
- B.模型推理性能瓶颈问题
- C.前端界面视觉交互缺陷
- D.移动端设备兼容性问题
答案:A。静态扫描在不运行代码的情况下审查源码,最擅长发现硬编码的密钥、未脱敏日志字段、缺失注释等红线问题。性能、界面、兼容性属于其他工具链的范畴。
Q8. “审计接口预留”的合规设计通常包含哪些能力?
- A.开放外部审计查询 API← 正确答案
- B.记录关键操作日志供追溯← 正确答案
- C.支持一键导出审计报告← 正确答案
- D.拒绝存储任何系统运行数据
答案:ABC。审计接口的设计目标是“让监管和合作方能查得到、拿得到证据”:查询 API、操作日志、报告导出缺一不可。拒绝存储数据表面上保护了隐私,实际上让审计无据可查,反而不合规。
Q9. 为什么 AI 开发者要关注生成式 AI 管理办法?
- A.它会规定编程语言语法规范
- B.直接约束数据采集和内容安全← 正确答案
- C.它只约束平台运营方责任
- D.它与算法开发流程无关联
答案:B。《生成式 AI 服务管理暂行办法》直接规定了数据来源合法、内容安全、标识义务等要求,这些都是开发阶段要落实的设计输入。它不规定编程语言,也不只约束运营方,和开发流程的关联比大多数人以为的更深。
Q10. 数据最小化采集原则包含哪些要求?
- A.只收集完成任务必需数据← 正确答案
- B.明确告知用途并取得同意← 正确答案
- C.提供用户数据删除机制← 正确答案
- D.尽可能多收集更多数据
答案:ABC。最小化采集 = 少收集(必要字段)+ 明告知(用途与同意)+ 可删除(用户行使权利)。多收集数据与最小化原则直接矛盾,且会推高合规风险评分中的严重程度项。