3 月 29 日,首届隐语开源社区开放日上,隐语 SecretFlow 开源框架发布了新版本,推出了一项业界期待的重要功能——多方安全数据分析系统 SCQL(Secure Collaborative Query Language)。这是业内首个把 SQL 做到多方安全计算(MPC)技术上的应用,实现了工业级的多方安全数据分析功能,目前在隐语 GitHub 社区开源,面向全球开发者免费开放。
隐语框架 SecretFlow 负责人王磊在隐语开源社区开放日现场发布隐语 SCQL 系统
这也是隐语团队历时三年,经历多轮技术验证,在性能、安全性上满足工业级应用场景之后才开源释放的重要产品功能,希望进一步延展数据安全协同的链路、拓展数据价值流通的场景,特别是满足长尾的和广大中小机构的数据分析需求。
隐语框架负责人、蚂蚁集团隐私智能计算技术部总经理王磊在接受机器之心专访时表示,当隐私计算落到行业中,解决大规模的用户的实际问题时,相比 AI 数据分析,BI 的应用场景会更广,SQL 是目前大家最熟悉的 BI 分析工具,隐语此次发布 SCQL 系统,就是希望用户能够在熟悉的工作流程基础上,低成本的去理解和使用隐私计算技术。
当前,隐私计算正在进入一个新的阶段,单点技术的安全合规已经经过了试点验证,特别是数据二十条颁布以来,实现大数据和隐私计算的结合,实现隐私计算 BI 的可用和易用,降低技术门槛,成为当前阶段的核心挑战,只有持续拓展技术应用的广度和深度,才能够真正迎接未来大规模数据要素全面密态化的时代。
王磊表示,隐语团队在 SQL 语言解析、MPC 计算性能优化和结果反推的安全性方面取得了技术上的突破,在一些问题上提供了一些非常好的新的解决思路,并且做了工程实现,取得了不错的效果。他同时强调,还有更多具有挑战性的和开放性的问题,期待更多人参与共建隐私计算开源社区,共同探索更多应用场景。
隐语 SCQL:首个开源的工业级
多方安全数据分析统
根据中国信息通信研究院今年 1 月发布的《中国企业智能化成熟度报告(2022)》,目前有 84% 的企业仍然处于数字化建设的基础阶段,距离实现智能运营和创新发展有一定距离。对于这部分企业而言,存在大量的 BI 业务需求。
目前可用的大多数 BI 技术都能够在存储或传输数据时保护数据,但缺乏保护数据计算过程安全性的功能,对于有隐私和安全相关诉求的机构而言,这恰好拓宽了传统 BI 技术的边界,可以适用更多场景。随着数据要素市场化进程的推进,隐私计算 BI 分析将出现严重的产业空白。
在这样的背景下,隐语启动了 SCQL 项目,将 BI 分析中最常用的 SQL 和隐私计算中的多方安全计算(MPC)结合起来,作为让隐私计算落到行业,在整个大的复杂生态中大规模应用化的第一步。
聚焦多方数据联合分析的场景,是因为相比于可信执行环境(TEE)技术路线对硬件信任根有要求,而且当前国产化的成熟度尚需时间验证打磨,多方安全计算(MPC)技术路线有特有的优势:数据控制力更强、不依赖特殊硬件等。此外,在一些单方数据比较单薄的场景,也可以通过样本或数据维度的扩充来提升数据分析的质量,也即结合多方数据进行联合决策,最终在业务效果分析、业务策略升级、业务模式创新中取得更优的效益。例如:
- 金融场景下:不同金融机构间进行合作,在不泄露用户隐私的前提下,通过贷款次数、贷款额度、守信记录等规则的查询,来辨别潜在客群是否为高风险客户;
- 营销场景下:不同平台之间进行合作,实现用户画像互补,分析用户对内容的偏好,通过更合理的内容推荐提升用户的活跃度;
- 医疗场景下:不同医院甚至同家医院内的不同科室之间,联合分析患者的就医记录,对挂号或预诊提供决策指导,提高医疗服务效率。
然而,要实现 SQL 与 MPC 的结合有很大的技术挑战。首先 SQL 作为一种复杂的架构,将其引用到隐私计算场景,如何解决架构设计上的复杂性问题,这就涉及到对 SQL 语言进行解析,而这个解析的技术门槛是非常高的。其次,在 SQL 使用场景下,用户对 query 提交后的响应时间有很高的要求,一般都期望立马看到结果,而 MPC 的计算性能很低,如何针对这一点做优化?第三,如何避免灵活的 SQL 查询语言导致查询出用户不希望看到的敏感信息。
隐语团队基于 MPC 技术内核的底层抽象 SPU 设备(SecretFlow Processing Unit,简称 SPU,是隐语平台的密态计算单元,为隐语框架提供安全计算服务),创新实现了多方安全数据分析系统 SCQL。SCQL 支持类SQL的查询语言,这种语言继承了 SQL 作为常用数据分析语言的普及性、易学性和高成熟度,在用户几乎不感知多方安全计算语义的情况下,即可完成联合分析的统计结果生成。
SCQL 架构如下图所示,总体分为两个部分,上层的 SCDB 可以被视为 SCQL 的数据库,负责将 query 翻译成密态执行图,下发给部署在数据参与方的 SCQL Engine 执行;SCQL Engine 是 SCQL 的执行引擎,将协同其他参与方的 SCQL Engine 一起完成密态图的执行,并将结果上报至 SCDB。
具体说,外部用户可以直接发起一个传统的 SQL 请求,这个请求首先会经过 Parser,转化成一个抽象的语法树,通过 Planner,变成 Logical plan。最大的一个挑战是 Logical plan 到 Execution Graph,Translator 在这里需要执行一个多约束条件下最优协议的选择,这是将 SQL 做到隐私计算的一个关键,因为整个计算中有安全性的约束,需要综合考虑数据类型、数据来源、数据状态,而且数据状态还会随计算过程不断发生迁移和改变。
在这里,隐语团队创新性地实现了 CCL(Column Control List)机制,作为多方安全计算场景下对 SQL 灵活性和功能性的一种巧妙的解决思路。CCL 提供了一个辅助性的工具,使得数据拥有者可以在事前审核之前,使用 CCL 描述每列数据在使用过程中的约束,只有严格满足约束条件的,数据分析引擎才会执行。
当前提供了 6 种约束条件,未来隐语框架还将在这方面继续完善和细化。
总结来说,针对正确性、及时性和安全性等技术挑战,隐语 SCQL 方案都做了非常好的尝试,在功能特性上实现了:
- 易于使用与集成:SCQL 支持类 SQL的查询语言,简单易用,上手成本低。除此之外,SCQL 提供简单易用的 API 接口,便于集成封装,且支持常用的数据源(目前支持MySQL,未来计划支持CSV、Postgres、Hive 等数据源),可以低成本满足业务的多方数据协同分析需求;
- 精细的数据授权机制:SCQL 创新性地提出了 CCL(Column Control List) 机制,让数据方可以对自己的数据如何被使用进行授权,控制粒度可精细到数据表字段(列);
- 功能丰富场景灵活:支持大部分常用的SQL语法和函数,可满足大部分场景的联合分析需求;
- 满足实际生产性能需求:在保护数据隐私的前提下,以尽可能减少密态下的计算量为优化思路,进行了多层面的优化。
目前,蚂蚁保就已经在与保险公司的合作中,面向核赔勘查场景,使用了隐语 SCQL 功能。基于理赔科技平台和隐语框架,打造了「理赔大脑」智能理赔系统,在整个系统中,多方数据联合分析解决方案是核心模块之一,帮助保险公司及其外部医疗数据ISV在原始数据不离开本地、数据价值有保护的前提下,进行联合分析。
在该方案中,保司提供「用户赔案数据」,包含了出险疾病类型、保单生效时间、出险时间等维度,此外保司提供的「既往症免责规则」还包含了出险疾病类型及其对应的免责规则,ISV 提供「用户就医数据」包含确诊疾病类型、就诊时间等维度。在联合分析中,通过 “SELECT FROM”、“INNER JOIN”、“Where” 从句,以及比较运算表达式等组合搭配,即可完成联合分析任务的描述以及执行,在保障保司和 ISV 数据隐私的前提下,分析用户是否满足理赔条件。
这一健康险定制多方数据联合分析解决方案,能够帮助有效发现阳性线索、降低错赔风险,通过数字化调查审核控制了理赔运营成本。
未来,隐语开源社区也将发布 SCQL 的共建任务,包括丰富数据源(如支持 csv 文件)、完善语法和功能,增强易用性等,欢迎大家持续关注隐语 GitHub 社区,甚至将你的共建计划通过 pull request 的方式提交,成为共建任务的组成部分,共同持续建设完善这一功能。
拓展数据流通应用场景
需要易用、好用的隐私计算
王磊认为,当前隐私计算整体技术和市场仍处在起步阶段,行业对隐私计算技术的认识不够充分。隐语希望能够树立一个易用、通用的标杆,希望能够帮助激活整个隐私计算行业的应用。当然,「安全是隐私计算的核心,只有在保证安全的前提下,才能够去谈精度、性能、好用,不然完全可以用其他的技术实现。」
通用的理念贯穿在隐语研发的始终。
王磊介绍,蚂蚁集团从 2016 年开始探索隐私计算,并通过内部业务和行业调研进行实践和思考。在此过程中,技术人员发现隐私计算技术路线多且架构不同,因此,一个理想的隐私计算架构首先应具备完备性,支持主流技术框架,并且考虑到新技术的发展。其次,为了方便持续迭代,架构上要做到底层和上层解耦。此外,架构还应具备良好的分层设计,使安全和算法分开,方便应用,提高隐私计算技术的应用广泛度和参与门槛。业务集成和规模化生产能力也很重要,需要有良好的接口设计和规模化生产的能力,如灰度、回滚、弹性扩容和多版本管理。
在这样的理念下,隐语框架 SecretFlow 作为一种通用的隐私计算框架被提出,坚持以下原则,使框架具有最大的包容性和可扩展性,以应对未来隐私计算技术和应用的发展。
- 完备性:支持多种隐私计算技术,可灵活组装,满足不同场景需求。
- 透明性:构建统一的技术框架,尽量让底层技术迭代对上层透明应用,具有高内聚和低耦合。
- 开放性:不同专业方向的人可以轻松参与框架的建设,共同加速隐私计算技术的发展。
- 连接性:不同底层技术支持的场景中的数据可以相互连接。
隐语框架支持目前主流的隐私计算技术路线,以便更好地适应不同的场景需求,这样也可以更方便地进行多技术路线的融合和迁移,取长补短。同时,在一个更高的规划层面,隐语正在设计支持数据要素持有权、使用权、经营权「三权分置」的技术方案,以从技术上实现数据二十条里提出的数据持有权、使用权和经营权「三权分置」的指导思想。
隐私计算不是绣花功夫,而是真正想产业所想,王磊团队也一直在琢磨如何提供更安全、更高效、性能更强、更灵活的解决方案。目前行业中的大型应用主要分为 BI 和 AI 两大类,BI 又可以细分为许多子类,例如针对传统 SQL 数据分析和基于 Python 的数据分析,以及大数据处理、流批处理等。针对 AI 场景的隐私保护机器学习,目前行业已经较成熟,且市面上有很多可选的技术解决方案和产品。
隐语想到了那些小规模数据机构,倾向于优先从规模较小的、百万或千万级别的数据量开始入手,因为这样的处理能够覆盖许多应用场景,并且在投入和产出方面也更具有可行性。
「由于中小机构的数字化水平处于初期,数据量属于小样本阶段,Al 机器学习的方式不必要也不具性价比,而以 SQL 语言为主要手段的 BI 分析是最具可行性的方案。」
对于大规模数据场景来说,BI 数据分析也是不可或缺的重要分析手段。「从大数据到小数据,SCQL 都能满足密态数据安全分析的需求,」王磊强调。
当然,对于 AI 应用,隐语也会持续进行迭代,如行业中广泛应用 XGB算法,也会有更快的版本开放出来。
王磊表示,隐私计算未来的趋势一定是包含技术融合的,这不仅包含不同技术领域之间的融合,也包括技术工具之间的融合。从整个隐私计算的技术栈来看,最终的解决方案一定是多种技术交叉解决各种不同的问题,根据部署场景的适用性,根据安全要求,选择不同场景的隐私计算技术。
隐语希望通过技术的方式,构建起行业对隐私计算作为数据要素流通基础设施的信任,通过枢纽模式和管道模式共同支撑各种应用,以期在未来支撑全行业的规模化扩展。
隐语开源有两个目的:一是希望更多人能够使用隐私计算;二是希望有更多人能够共建社区。目前参与共建的人数相对较少,隐语计划在今年增加共建方向和完善共建流程,期待与大家积极探索隐私计算更多可能。
隐语官网:
https://www.secretflow.org.cn
隐语社区:
https://github.com/secretflow
https://gitee.com/secretflow