SecretFlow学习指南(2)学习路径

目录

一、模块架构

二、模块详解

三、算法协议

四、学习路线


一、模块架构

良好的分层设计可以提高开发效率和可维护性,满足不同用户的需求。隐语从上到下一共分为六层。
●产品层:通过白屏化产品提供隐语整体隐私计算能力的输出,让用户简单直观体验隐私计算,屏蔽隐私计算底层细节,节约开发成本;
●调度层:提供隐私计算任务的编排与资源调度能力;
●AI & BI 算法层:屏蔽隐私计算技术细节,提供一些通用的算法能力,比如 MPC 的 LR/XGB/NN,联邦学习算法等;
●设备层:提供了统一的可编程设备抽象,将 MPC、HE 等隐私计算技术抽象为密态设备,将单方本地计算抽象为明文设备;
●安全协议层:提供密码原语能力,支持高安全、高性能的协议;
●硬件层:支持TEE可信硬件。

二、模块详解


隐语各模块的侧重点不同,下表是模块的详解以及相关文档:

层级

模块

模块简介

模块依赖关系

产品层

SecretPad

隐语打造的 AI 与数据分析平台,可快速帮助用户体验隐语核心能力。

SecretPad 集成了 SecretFlow 和 TrustedFlow 的能力,在使用时通过 Kuscia 调用下层模块。

Easy PSI

独立 PSI 轻量级白屏产品,满足用户想要单独使用 PSI 的需求。具有轻量化部署、使用门槛低等优点。

Easy PSI 依赖 PSI 模块中的隐私求交能力,在使用时通过 Kuscia 调用下层模块 PSI 。

调度层

Kuscia

基于 K3s 的轻量级隐私计算任务编写框架,旨在增强基础设施和协议,并提供统一的隐私计算基础

目前已支持 SecretFlow 、TrustedFlow 、 Serving 在 Kuscia 上运行,对 SCQL 的支持正在建设中。

Kuscia Envoy

Envoy 是一个开源的边缘和服务代理。在控制平面中,Envoy 是节点与 Master、Master 与 Master 之间的流量代理,从 DomainRoute Controller 接收路由规则和身份认证、鉴权策略。

Envoy 将发送给互联互通合作方 Master 的请求转发到对端的 Envoy(若对端非 Kuscia 架构,则转发给对端网关),同时对来自节点和互联互通合作方 Master 的请求进行身份认证和鉴权,将合法请求转发给 K3s 的 ApiServer 或 Kuscia Storage 。

AI&BI 算法层

PSI

隐语 PSI 和 PIR 的仓库,为 SecretFlow 、SCQL 、SecretPad 和 Easy PSI 提供隐私求交和隐匿查询功能。

PSI 为 Easy PSI 提供隐私求交能力、为 SecretFlow 提供隐私求交和隐匿查询能力; PSI 依赖于 YACL 的密码能力。

SecretFlow

隐语核心算法模块,为用户提供了丰富的隐私集合求交、隐匿查询、预处理、MPC机器学习、联邦学习(含拆分学习)等核心算法。

SecretFlow 依赖于 PSI 的能力;依赖于Serving,Secretflow 目前的算子可以导出的模型遵循的是 Serving 的设计,这样的模型可以被 Serving 服务化;SecretFlow 将 MPC、HE 抽象为 SPU、HEU 设备。

Serving

用于保护隐私的机器学习模型的服务系统,主要提供模型预测能力。

Serving 依赖了 YACL 中的一些基础功能,为 SecretPad 提供加载模型服务化的能力。

SCQL

将 SQL 语句转换为明密文混合执行图,并在联合数据库系统上执行。是一个允许多个互不信任参与方在不泄露各自隐私数据的条件下进行联合数据分析的系统。

SCQL 依赖 PSI、SPU、HEU、YACL 模块。

TrustedFlow

隐语基于可信硬件的隐私保护引擎,立足于可信执行环境技术,提供受保护和隔离的环境,其中封装了敏感数据,并且提供数据安全存储和计算能力。

TrustedFlow 由 TeeAPPs、CapsuleManager、CapsuleManager SDK 三个模块组成,依赖 TEE 硬件。

设备层

SPU

基于 MPC 的密态计算设备,旨在提供具有可证明安全性的安全计算服务。SPU 可以被视为可编程设备,它并不是为直接使用而设计的。通常我们使用 SecretFlow 框架,该框架使用 SPU 作为底层安全计算设备。

SPU 为 SecretFlow、SCQL 提供安全计算能力,依赖于 YACL 的密码协议。

HEU

基于 HE 的隐语密态设备,实现了高性能的同态加密算法,降低同态加密的使用门槛,使得用户无需专业知识就能利用同态加密算法构建任意程序。

HEU 为 SecretFlow、SCQL 提供同态加密能力,依赖于YACL的密码协议。

安全协议层

YACL

安全密码库,包含其他 SecretFlow 代码所依赖的常见密码学、网络和 io 模块。Yacl 中的加密模块实现了许多最先进的安全计算协议,包括 OT、VOLE、TPRE 等原语以及 PRG、RO 等工具。

YACL 为 PSI、SPU、HEU、SCQL、Serving 提供基础密码能力。

三、算法协议

隐语结合最新的隐私计算领域研究成果,提供了一系列高效、强大的算法。以下是我们支持的主要算法列表:

分类

算法

协议/算法

算法说明

PSI & PIR

PSI

ECDH-PSI (2PC)

基于半诚实 ECDH 的两方 PSI 协议

ECDH-PSI (3PC)

基于半诚实 ECDH 的三方 PSI 协议(存在已知泄漏)

KKRT16-PSI

基于半诚实 OT 的两方 PSI 协议

BC22 PCG-PSI

基于半诚实 PCG/VOLE 的两方 PSI 协议(提高了通信效率)

DP-PSI

差分隐私 PSI 协议

EDCH-OPRF PSI

基于 ECDH-OPRF 的非平衡两方 PSI 协议

RR22 PSI

基于半诚实和 VOLE 的高效 PSI 协议

PIR

SealPIR

基于同态加密的 PIR 协议

Labeled PSI

基于同态加密的 PIR 协议

MPC

LR

SS-SGD

基于秘密分享实现的针对垂直划分数据集的线性回归和二分类回归算法

HESS-SGD

基于同态加密和秘密分享的逻辑回归算法

SS-GLM

基于秘密分享的广义线性回归算法

XGB

SS-XGB

基于秘密分享的 XGB 算法

特征工程

SSVertPearsonR

基于秘密分享实现的探查垂直划分数据集的皮尔逊积矩相关系数算法

SSVertVIF

基于秘密分享实现的探查垂直划分数据集的方差扩大因子算法

SSPValue

基于秘密分享实现的 P-Value 算法

groupby_statistics

获取分组统计信息算法

FL

LR

FL-LR-MIX

基于随机梯度下降的混合联邦逻辑回归算法

XGB

SFXGBoost

水平场景下的 XGB 模型算法

SGB

基于同态加密的纵向联邦树模型算法 SGB

水平 NN

FedSCR

基于梯度下降的分布式联邦学习策略(选择性将部分重要更新回传)

Fed-Prox

基于梯度下降的分布式联邦学习策略(解决数据和设备异构性)

FedSTC

基于梯度下降的分布式联邦学习策略(压缩 client 和 server 之间的通讯)

垂直 NN

DNN

深度神经网络

CNN

卷积神经网络

GNN

图神经网络

垂直 NN -推荐模型

MMoe

基于拆分学习的多任务学习模型算法

BST

基于拆分学习的捕捉用户行为序列信息模型算法

DeepFM

基于拆分学习的 CTR 预估模型算法

TEE

原则上支持任意算法

四、学习路线

欢迎来到隐语的学习之旅,我们为您规划了详细的学习路线,帮助您快速体验隐语能力,由浅入深了解隐语。

分类

学习内容

学习素材

初识隐语

隐语建设背景

通过本课程您可以初步了解隐私计算的概念,隐私计算在数据要素市场的关键作用,隐语建设的背景等内容。

●构建纵深分域数据要素市场运营体系
●数据要素流通中三权分置法律法规解读
●数据要素流转中三权分置框架及实践
●隐私计算开源助力数据要素流通

了解隐语

了解隐语的理念、价值、优势、实践以及隐语的后续规划

●深度解读隐语
●隐语开源社区新年规划及寄语
●2023 数据要素发展大会|激发数据价值 共促要素发展,隐语带来多行业实战应用案例

快速开始

SecretPad

从零开始学习使用隐语白屏化产品,通过拖拉拽形式让您快速体验隐私计算,从上层角度了解平台层是如何集成隐语各层能力。

●SecretPad 开源发布
●SecretPad 从安装部署到使用
●SecretPad 快速开始

Kuscia

学习了解 Kuscia 如何进行任务调度,以及如何通过 Kuscia 实现不同算子的自由组合

●Kuscia 入门教程-快速开始
●Kuscia 入门课程-了解 KusciaJob
●Kuscia 架构介绍与部署

SecretFlow

学习通用的隐私计算框架 SecretFlow,快速体验 SecretFlow 的包容性和可扩展性

●SecretFlow 简介
●SecretFlow 快速开始
●SecretFlow 安装部署

开发

SecretPad

SecretPad 前端及后端代码结构并上手实践

●SecretPad 前端介绍及开发实践
●SecretPad 后端介绍与开发实践

Kuscia

学习 Kuscia 相关概念、Kuscia API

●Kuscia 概念
●Kuscia API 文档
●Kuscia API 介绍

SecretFlow

学习 SecretFlow API 文档、用户指南及组件列表。

●SecretFlow API 文档
●SecretFlow 组件列表
●SecretFlow 开发者文档

实践

SecretPad

学习如何自定义新增 SecretPad 平台层组件。

●隐语 SecretPad 平台新增组件

Kuscia

学习如何应用实践 Kuscia,例如学习如何运行一个 FATE 作业。

●基于 Kuscia 的隐私计算应用研发实践
●如何使用 Kuscia 运行一个SecretFlow 作业
●如何运行一个互联互通银联 BFIA 协议作业
●如何运行一个 FATE 作业
●如何使用 Kuscia API 运行一个 SecretFlow Serving
●安全加固方案

SecretFlow

学习如何使用 SecretFlow 实现加载数据、数据预处理、数据编码、隐私求交等全链路流程。

●SecretFlow 教程
●SPU 框架整体结构
●如何基于 SPU 增加协议
●HEU 架构、协议介绍及开发实践
●TEEU 架构介绍及开发实践

进阶

算法实践

学习隐私求交、逻辑回归、XGBoost 等算法原理,以及这些算法在隐语中是如何实现的。

●隐私求交
●MPC 机器学习
○隐语 LR/GLM 介绍及开发实践
○隐语 SSXGB/SGB 介绍及开发实践
○SML 入门/基于 SPU 迁移机器学习算法
○PPML 入门/基于 SPU 机器学习建模实践
●联邦学习
○隐语联邦学习在水平场景的开发实践
○隐语联邦学习在垂直场景的开发实践
○隐语 SplitRec 介绍和开发实践
○隐语 SSXGB/SCG 介绍及开发实践

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4122.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZYNQ--PL读写PS端DDR数据

PL 和PS的高效交互是zynq 7000 soc开发的重中之重,我们常常需要将PL端的大量数 据实时送到PS端处理,或者将PS端处理结果实时送到PL端处理,常规我们会想到使用DMA 的方式来进行,但是各种协议非常麻烦,灵活性也比较差,本节课程讲解如何直接通过AXI总 线来读写PS端ddr的数据…

【Pytorch】(十三)模型部署: TorchScript

文章目录 (十三)模型部署: TorchScriptPytorch动态图的优缺点TorchScriptPytorch模型转换为TorchScripttorch.jit.tracetorch.jit.scripttrace和script的区别总结trace 和script 混合使用保存和加载模型 (十三)模型部署: TorchScr…

掌静脉识别关键技术研究综述

掌静脉识别作为一种新兴的红外生物识别技术,因其高安全性、活体检测性等优势已成为当前生物特征识别领域中的研究热点之一。近年来,该领域的大量研究通过引入深度学习方法推动了掌静脉识别技术的发展。为了掌握掌静脉识别领域最新研究现状及发展方向&…

ddos云服务器有哪些防御方法和优势

本文将介绍云服务器遇到DDoS攻击的应对方法,包括流量清洗、负载均衡、防火墙设置和CDN加速等。同时,文章还介绍了ddos云服务器的防御优势,包括高防护能力、自动化防御、实时监控和报警以及弹性扩展等。通过这些防御方法和ddos云服务器的应用&…

React复习笔记

基础语法 创建项目 借助脚手架,新建一个React项目(可以使用vite或者cra,这里使用cra) npx create-react-app 项目名 create-react-app是React脚手架的名称 启动项目 npm start 或者 yarn start src是源文件index.js相当于Vue的main.js文件。整个…

php 姓名加星号

以下是不同实现方法: 使用str_pad()函数: $name “张三”; s t a r r e d N a m e s t r p a d ( s u b s t r ( starredName str_pad(substr( starredNamestrp​ad(substr(name, 0, 1), mb_strlen($name), “*”, STR_PAD_RIGHT); echo $starredN…

vue3 ——笔记 (条件渲染,列表渲染,事件处理)

条件渲染 v-if v-if 指令用于条件性地渲染一块内容,只有v-if的表达式返回值为真才会渲染 v-else v-else 为 v-if 添加一个 else 区块 v-else 必须在v-if或v-else-if后 v-else-if v-else-if 是v-if 的区块 可以连续多次重复使用 v-show 按条件显示元素 v-sh…

Java去掉html标签

Java去掉html标签不需要正则&#xff0c;如果保存后不在前端回显原样式可以使用这个&#xff0c;否则不适用&#xff0c;使用的maven依赖如下&#xff1a; <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version…

【Linux系统化学习】生产者消费者模型(阻塞队列和环形队列)

目录 生产者消费者模型 什么是生产者消费者模型 为什么要使用生产者消费者模型 生产者消费者模型的优点 为什么生产者和生产者要互斥&#xff1f; 为什么消费者和消费者要互斥&#xff1f; 为什么生产者和消费者既是互斥又是同步&#xff1f; 基于BlockingQueue的生产者…

26版SPSS操作教程(高级教程第十六章)

目录 前言 粉丝及官方意见说明 第十六章一些学习笔记 第十六章一些操作方法 多维尺度分析 不考虑个体差异的多维尺度分析模型 假设数据 具体操作 结果解释 选择不同距离的排列方式 考虑个体差异的多维尺度分析模型&#xff08;INDSCAL&#xff0c;individual differ…

[C++ QT项目实战]----系统实现双击表格某一行,表格数据不再更新,可以查看该行所有信息,选中表更新之后,数据可以继续更新

前言 在需要庞大的数据量的系统中&#xff0c;基于合适的功能对数据进行观察和使用至关重要&#xff0c;本篇在自己项目实战的基础上&#xff0c;基于C QT编程语言&#xff0c;对其中一个数据功能进行分析和代码实现&#xff0c;希望可以有所帮助。一些特殊原因&#xff0c;图片…

车道分割YOLOV8-SEG

车道分割YOLOV8-SEG&#xff0c;训练得到PT模型&#xff0c;然后转换成ONNX&#xff0c;OPENCV的DNN调用&#xff0c;支持C,PYTHON,ANDROID开发 车道分割YOLOV8-SEG

数据污染对大型语言模型的潜在影响

大型语言模型&#xff08;LLMs&#xff09;中存在的数据污染是一个重要问题&#xff0c;可能会影响它们在各种任务中的表现。这指的是LLMs的训练数据中包含了来自下游任务的测试数据。解决数据污染问题至关重要&#xff0c;因为它可能导致结果偏倚&#xff0c;并影响LLMs在其他…

python三维交互可视化工具plotly使用

三维数据可视化工具使用 import plotly.graph_objects as go import numpy as np# 生成随机点 data np.random.uniform(-3,3,(100000, 2)) Z np.exp(-((data[:, 0] - 0)**2 / (2*1**2) (data[:, 1] - 0)**2 / (2*1**2)))scatter1 go.Scatter3d(xdata[:, 0], ydata[:, 1], …

Windows Server2019安全基线等保参考要求

Windows Server的基线安全(等保要求)检查项类别名称方式检查项预期是否达标加固建议文档IP协议防火墙TCP/IP筛选配置手动业务所需的TCP,UDP端口和IP协议是否开放0开放业务所需的TCP,UDP端口和IP协议是否启用Windows系统自带的防火墙自动启用windows自带的防火墙0更改允许接…

【项目】仿muduo库One Thread One Loop式主从Reactor模型实现高并发服务器(Http板块)

【项目】仿muduo库One Thread One Loop式主从Reactor模型实现高并发服务器&#xff08;Http板块&#xff09; 一、思路图二、Util板块1、Splite板块&#xff08;分词&#xff09;&#xff08;1&#xff09;代码&#xff08;2&#xff09;测试及测试结果i、第一种测试ii、第二种…

Spark java.io.NotSerializableException

文章目录 源代码错误原因错误信息方案一方案一具体代码 方案二方案二具体代码 源代码 //编写SQL语句 val sql "insert into province_browser_cnt(province,browser,operator_cnt) values(?,?,?)" //获取mysql的连接 val conn JDBCUtil.getConn() //将如下的结…

关于discuz论坛网址优化的一些记录(伪静态)

最近网站刚上线&#xff0c;针对SEO做了些操作&#xff0c;为了方便网站网页被收录&#xff0c;特此记录下 1.开启伪静态 按照操作勾选所有项&#xff0c;然后点击查看伪静态规则 2.打开宝塔&#xff0c;找到左侧列表的网站&#xff0c;然后找到相应站点的设置。把discuz自动…

STM32的端口引脚的复用功能及重映射功能解析

目录 STM32的端口引脚的复用功能及重映射功能解析 复用功能 复用功能的初始化 重映射功能 重映射功能的初始化 复用功能和重映射的区别 部分重映射与完全重映射 补充 STM32的端口引脚的复用功能及重映射功能解析 复用功能 首先、我们可以这样去理解stm32引脚的复用功能…

SD-WAN怎样助力企业网络升级

随着企业规模的持续扩张&#xff0c;其网络建设的重要性日益凸显&#xff0c;成为业务成功的基石。尤其对于中小企业而言&#xff0c;信息化和电脑化已成为推动生产力和竞争力提升的关键所在。办公室自动化、数据库、ERP、CRM、物流供应链等关键业务应用的不断增加&#xff0c;…