diff --git a/docs/all-in-one/deployment_package.md b/docs/all-in-one/deployment_package.md
index c7e8e62..54262c7 100644
--- a/docs/all-in-one/deployment_package.md
+++ b/docs/all-in-one/deployment_package.md
@@ -1,10 +1,12 @@
# 什么是 SecretPad All In One
-SecretPad all in one 包是隐语平台部署包,可快速部署成隐语平台。目前隐语提供了基于 x86 和基于 arm 芯片的安装包,其中 arm 的安装包暂未集成 TrustedFlow。
+SecretPad all in one 包是隐语平台部署包,可快速部署成隐语平台。目前隐语提供了基于 x86 和基于 arm 芯片的安装包,其中 arm 的安装包暂未集成 TrustedFlow。
+![allinone_x86](./imgs/download_image.png)[点此下载 x86_64 安装包](https://secretflow-public.oss-cn-hangzhou.aliyuncs.com/mvp-packages/secretflow-allinone-linux-x86_64-v1.9.0.tar.gz)
-![allinone_x86](./imgs/download_image.png)[点此下载 x86_64 安装包](https://secretflow-public.oss-cn-hangzhou.aliyuncs.com/mvp-packages/secretflow-allinone-linux-x86_64-v1.8.0.tar.gz)
+![allinone_arm](./imgs/download_image.png)[点此下载 arm_64安装包](https://secretflow-public.oss-cn-hangzhou.aliyuncs.com/mvp-packages/secretflow-allinone-linux-aarch_64-v1.9.0.tar.gz)
+如果您需要下载历史版本[请点击](history_download.md)
-![allinone_arm](./imgs/download_image.png)[点此下载 arm_64安装包](https://secretflow-public.oss-cn-hangzhou.aliyuncs.com/mvp-packages/secretflow-allinone-linux-aarch_64-v1.8.0.tar.gz)
all in one 包最大的特色是提供了从算法到调度,到平台页面的一整套系统,可视化操作平台是最大的特点。根据业务本身要求不同,隐语提供中心化模式和 p2p 模式的安装部署能力。在部署安装包的时候,可选择不同的部署模式,如部署成 P2P 的模式(无需可信第三方,无 Center 平台)或者中心化的模式(有 Center 平台)。安装部署完成后,可在隐语平台快速体验隐语核心能力。
+all in one 包最大的特色是提供了从算法到调度,到平台页面的一整套系统,可视化操作平台是最大的特点。根据业务本身要求不同,隐语提供中心化模式和 p2p 模式的安装部署能力。在部署安装包的时候,可选择不同的部署模式,如部署成 P2P 的模式(无需可信第三方,无 Center 平台)或者中心化的模式(有 Center 平台)。安装部署完成后,可在隐语平台快速体验隐语核心能力。
## 平台简介
diff --git a/docs/all-in-one/history_download.md b/docs/all-in-one/history_download.md
new file mode 100644
index 0000000..01e212d
--- /dev/null
+++ b/docs/all-in-one/history_download.md
@@ -0,0 +1,11 @@
+# 历史版本下载
+这里是SecretPad all in one 包的历史版本下载页面。
+## v1.6.0
+[点此下载 x86_64 安装包](https://secretflow-public.oss-cn-hangzhou.aliyuncs.com/mvp-packages/secretflow-allinone-linux-x86_64-v1.6.0.tar.gz)
+[点此下载 arm_64 安装包](https://secretflow-public.oss-cn-hangzhou.aliyuncs.com/mvp-packages/secretflow-allinone-linux-aarch_64-v1.6.0.tar.gz)
+## v1.7.0
+[点此下载 x86_64 安装包](https://secretflow-public.oss-cn-hangzhou.aliyuncs.com/mvp-packages/secretflow-allinone-linux-x86_64-v1.7.0.tar.gz)
+[点此下载 arm_64 安装包](https://secretflow-public.oss-cn-hangzhou.aliyuncs.com/mvp-packages/secretflow-allinone-linux-aarch_64-v1.7.0.tar.gz)
+## v1.8.0
+[点此下载 x86_64 安装包](https://secretflow-public.oss-cn-hangzhou.aliyuncs.com/mvp-packages/secretflow-allinone-linux-x86_64-v1.8.0.tar.gz)
+[点此下载 arm_64 安装包](https://secretflow-public.oss-cn-hangzhou.aliyuncs.com/mvp-packages/secretflow-allinone-linux-aarch_64-v1.8.0.tar.gz)
\ No newline at end of file
diff --git a/docs/all-in-one/index.rst b/docs/all-in-one/index.rst
index 2b6c94b..645ad83 100644
--- a/docs/all-in-one/index.rst
+++ b/docs/all-in-one/index.rst
@@ -11,3 +11,4 @@ All in one 文档
./more_tutorials/index
definition.md
./version_update/index
+ history_download
diff --git a/docs/all-in-one/more_tutorials/new_components.md b/docs/all-in-one/more_tutorials/new_components.md
index 24961eb..4fcda6b 100644
--- a/docs/all-in-one/more_tutorials/new_components.md
+++ b/docs/all-in-one/more_tutorials/new_components.md
@@ -56,7 +56,7 @@
- 修改隐语代码
- 打包隐语镜像
- 更新隐语SecretPad平台组件列表
-- 在调度框架Kusica中注册新的组件镜像
+- 在调度框架Kuscia中注册新的组件镜像
# 需求描述
@@ -97,28 +97,17 @@ bob:
![Structure](../imgs/structure.png)
-1.Kuscia
-Adapter:将kuscia的数据结构转化为SecretFlow组件数据结构。代码位于:https://github.com/secretflow/secretflow/blob/main/secretflow/kuscia/entry.py。
-你不需要修改这里。
+1.Kuscia Adapter:将kuscia的数据结构转化为SecretFlow组件数据结构。代码位于:https://github.com/secretflow/secretflow/blob/main/secretflow/kuscia/entry.py 你不需要修改这里。
-2.SecretFlow Comp
-Entry:读取SecretFlow组件数据结构,调用对应的组件。代码位于:https://github.com/secretflow/secretflow/blob/main/secretflow/component/entry.py。
-你需要在这里声明组件。
+2.SecretFlow Comp Entry:读取SecretFlow组件数据结构,调用对应的组件。代码位于:https://github.com/secretflow/secretflow/blob/main/secretflow/component/entry.py 你需要在这里声明组件。
-3.SecretFlow
-Comps:所有隐语组件。代码位于:https://github.com/secretflow/secretflow/tree/main/secretflow/component。 你需要在这个文件夹下创建你的新组件。
+3.SecretFlow Comps:所有隐语组件。代码位于:https://github.com/secretflow/secretflow/tree/main/secretflow/component 你需要在这个文件夹下创建你的新组件。
-4.SecretFlow
-Libraries:隐语API。你可以利用所有隐语现有的各类算法来构造组件。你可以在这个[链接](https://www.secretflow.org.cn/zh-CN/docs/secretflow/v1.4.0b0/user_guide)
-了解隐语的第一方库。你可能需要调整这部分代码。
+4.SecretFlow Libraries:隐语API。你可以利用所有隐语现有的各类算法来构造组件。你可以在这个[链接](https://www.secretflow.org.cn/zh-CN/docs/secretflow/v1.4.0b0/user_guide)了解隐语的第一方库。你可能需要调整这部分代码。
-5.SecretFlow Devices:
-隐语设备,隐语将本地明文计算抽象为PYU运算,密态计算抽象为密态设备的运算:SPU(MPC,多方安全计算),HEU(HE,同态加密),TEEU(TEE,可信执行环境),如果你不了解,请阅读这个[文档](https://www.secretflow.org.cn/zh-CN/docs/secretflow/v1.4.0b0/developer/design/architecture)
-。你一般不需要修改这部分代码。
+5.SecretFlow Devices:隐语设备,隐语将本地明文计算抽象为PYU运算,密态计算抽象为密态设备的运算:SPU(MPC,多方安全计算),HEU(HE,同态加密),TEEU(TEE,可信执行环境),如果你不了解,请阅读这个[文档](https://www.secretflow.org.cn/zh-CN/docs/secretflow/v1.4.0b0/developer/design/architecture)。你一般不需要修改这部分代码。
-6.Ray/RayFed。[Ray](https://www.ray.io)
-是隐语的底座,负责在一个kuscia拉起的隐语节点中调度资源,每一个计算参与方都是一个Ray集群。[RayFed](https://rayfed.readthedocs.io/en/latest)
-负责Ray集群之间的通信和协调。
+6.Ray/RayFed:[Ray](https://www.ray.io)是隐语的底座,负责在一个kuscia拉起的隐语节点中调度资源,每一个计算参与方都是一个Ray集群。[RayFed](https://rayfed.readthedocs.io/en/latest)负责Ray集群之间的通信和协调。
## 开发环境
@@ -132,24 +121,23 @@ Libraries:隐语API。你可以利用所有隐语现有的各类算法来构
- bazel==5.4.1
- golang
-你可以参考[release-ci.DockerFile](https://github.com/secretflow/devtools/blob/main/dockerfiles/release-ci.DockerFile)
-来配置你的环境。
+你可以参考[release-ci.DockerFile](https://github.com/secretflow/devtools/blob/main/dockerfiles/release-ci.DockerFile)来配置你的环境。
2.当你配置好环境之后,请拉取代码
```shell
$ git clone https://github.com/secretflow/secretflow.git
-$ git checkout release/1.5.x
+$ git checkout release/1.9.x
$ cd secretflow
```
-注:git clone后,需要切换至已发版的稳定分支(隐语每次正式发版的分支),分支号查看方法如下:
-a、点击https://github.com/secretflow/secretpad/blob/main/README.md#versions 查看你使用的 SecretPad 对应 SecretFlow 版本
+注:git clone后,需要切换至已发版的稳定分支(隐语每次正式发版的分支),分支号查看方法如下:
+a、点击https://github.com/secretflow/secretpad/blob/main/README.md#versions 查看你使用的 SecretPad 对应 SecretFlow 版本
eg:如你使用的是 0.6.0b0 的 SecretPad ,对应 SecretFlow 版本为 1.5.0b0
-![secretpad_version](../imgs/secretpad_version.png)
-b、点击https://github.com/secretflow/secretflow 查看 SecretFlow 的稳定分支号
+![secretpad_version](../imgs/secretpad_version.png)
+b、点击https://github.com/secretflow/secretflow 查看 SecretFlow 的稳定分支号
eg:如使用 SecretPad 对应 SecretFlow 版本为 1.5.0b0,则分支号为 release/1.5.x
-![secretflow_release](../imgs/secretflow_release.png)
+![secretflow_release](../imgs/secretflow_release.png)
3.尝试编译并安装隐语
@@ -178,7 +166,7 @@ $ pip uninstall secretflow
### 新建文件
-在 secretflow/component/ 文件夹下新建文件 compare.py
+在 secretflow/component/ 文件夹下新建文件 compare.py
```shell
$ cd secretflow/component/
@@ -207,10 +195,10 @@ ss_compare_comp = Component(
这段代码表明了:
-- 组件名称: ss_compare
-- domain: user ,可以理解为命名空间/分类
-- version: 0.0.1
-- desc: compare two tables. 组件描述。
+- 组件名称: ss_compare
+- domain: user ,可以理解为命名空间/分类
+- version: 0.0.1
+- desc: compare two tables. 组件描述。
### 定义组件参数
@@ -228,7 +216,7 @@ ss_compare_comp.int_attr(
)
```
-在这里,我们为 ss_compare 定义了一个参数 tolerance
+在这里,我们为 ss_compare 定义了一个参数 tolerance
,为了一定程度上保护两位富翁的隐私,我们可以认为在一定范围的区别可以认为是相等的。
int_attr 代表了 tolerance 是一个integer参数。
@@ -244,7 +232,7 @@ ss_compare_comp.int_attr(
- upper_bound:上限。这里是None,代表了没有上限。
组件还可以设置其他类型的参数,请参阅:
-https://github.com/secretflow/secretflow/blob/main/secretflow/component/component.py#L132-L556
+https://github.com/secretflow/secretflow/blob/main/secretflow/component/component.py#L256-L719
### 定义输入输出
@@ -286,8 +274,7 @@ ss_compare_comp.io(
)
```
-我们在这里定义了两个输出: alice_outputbob_output 和一个输入
-input_table
+我们在这里定义了两个输出: alice_out put/bob_output 和一个输入 input_table
输入和输出的定义是类似的:
@@ -298,7 +285,7 @@ input_table
- INDIVIDUAL_TABLE:单方表。
- VERTICAL_TABLE:垂直切分表,联合表。
-可以看到nput参数还包含col_params,它是一个TableColParam 列表。每一个TableColParam表示用户需要在表中选择一些cols:
+可以看到input参数还包含col_params,它是一个TableColParam 列表。每一个TableColParam表示用户需要在表中选择一些cols:
- name:cols的名称。这里我们填写了alice_value, 意思是我们需要用户选择一些col作为alice_value列。
- desc:描述。
@@ -330,7 +317,7 @@ def ss_compare_eval_fn(
from secretflow.device.device.pyu import PYU
from secretflow.device.device.spu import SPU
from secretflow.device.driver import wait
- from secretflow.protos.component.data_pb2 import (
+ from secretflow.spec.v1.data_pb2 import (
DistData,
IndividualTable,
TableSchema,
@@ -338,8 +325,9 @@ def ss_compare_eval_fn(
)
# only local fs is supported at this moment.
- local_fs_wd = ctx.local_fs_wd
-
+ data_dir = ctx.data_dir
+ #local_fs_wd = ctx.local_fs_wd
+
# get spu config from ctx
if ctx.spu_configs is None or len(ctx.spu_configs) == 0:
raise CompEvalError("spu config is not found.")
@@ -425,7 +413,7 @@ def ss_compare_eval_fn(
alice_ids,
res.partitions[alice].data,
['result'],
- os.path.join(local_fs_wd, alice_output),
+ os.path.join(data_dir, alice_output),
)
)
@@ -444,7 +432,7 @@ def ss_compare_eval_fn(
bob_ids,
res.partitions[bob].data,
['result'],
- os.path.join(local_fs_wd, bob_output),
+ os.path.join(data_dir, bob_output),
)
)
@@ -462,7 +450,7 @@ def ss_compare_eval_fn(
features=['result'],
feature_types=['bool'],
),
- num_lines=-1,
+ line_count=-1,
)
alice_db.meta.Pack(alice_meta)
@@ -480,7 +468,7 @@ def ss_compare_eval_fn(
features=['result'],
feature_types=['bool'],
),
- num_lines=-1,
+ line_count=-1,
)
bob_db.meta.Pack(bob_meta)
@@ -488,10 +476,10 @@ def ss_compare_eval_fn(
return {"alice_output": alice_db, "bob_output": bob_db}
```
-1.组件执行函数使用decorator @ss_compare_comp.eval_fn 修饰
+1.组件执行函数使用decorator @ss_compare_comp.eval_fn 修饰
-2.组件执行函数的signature必须为 fn(*,ctx,attr1, attr2, attr3, io1, io1_col1, io1_col2,..., io3,..,
-ioN) :
+2.组件执行函数的signature必须为 fn(*,ctx,attr1, attr2, attr3, io1, io1_col1, io1_col2,..., io3,..,
+ioN) :
1.attr1, attr2, attr3指的是组件的attribute的值
@@ -540,7 +528,7 @@ ALL_COMPONENTS = [
```shell
$ cd docker/
-$ pip install requirements.txt
+$ pip install -r requirements.txt
$ env PYTHONPATH=$PYTHONPATH:$PWD/.. python update_meta.py
Using region server backend.
@@ -566,7 +554,7 @@ $ git diff translation.json
![Check_Translation](../imgs/check_translation.png)
-请注意脚本目前是利用公开的翻译API进行处理的,如果有不合理的地方,请自行修改 translation.json
+请注意脚本目前是利用公开的翻译API进行处理的,如果有不合理的地方,请自行修改 translation.json
## 打包镜像
@@ -592,7 +580,7 @@ docker image inspect secretflow/sf-dev-anolis8:test_compare
# 注册隐语镜像
-在注册隐语镜像前,需保证已部署隐语SecretPad平台和调度框架Kuscia节点。具体部署教程,请参考[中心化组网模式部署Kuscia和平台](https://www.secretflow.org.cn/docs/kuscia/latest/zh-Hans/getting_started/quickstart_cn)
+在注册隐语镜像前,需保证已部署隐语SecretPad平台和调度框架Kuscia节点。
## 1.更新隐语SecretPad平台组件列表
@@ -600,7 +588,9 @@ docker image inspect secretflow/sf-dev-anolis8:test_compare
### 1.1. 获取工具脚本
+
```shell
+
# ${USER}: 表示部署secretpad时使用的用户名称,可以通过命令"docker ps"查看secretpad容器名称
docker cp ${USER}-kuscia-secretpad:/app/scripts/update-sf-components.sh . && chmod +x update-sf-components.sh
```
@@ -610,6 +600,10 @@ docker cp ${USER}-kuscia-secretpad:/app/scripts/update-sf-components.sh . && chm
```shell
# -u: 指定 ${USER}。若不指定,则使用系统默认${USER},通过命令echo ${USER}查看
# -i: 指定自定义Secretflow组件镜像为 "secretflow/sf-dev-anolis8:test_compare"
+# 中心化部署
+sed -i 's/SECRETPAD_CONTAINER_NAME="${DEPLOY_USER}-kuscia-secretpad"/SECRETPAD_CONTAINER_NAME="${DEPLOY_USER}-kuscia-master-secretpad"/g' update-sf-components.sh
+./update-sf-components.sh -u ${USER} -i secretflow/sf-dev-anolis8:test_compare
+# P2P部署
./update-sf-components.sh -u ${USER} -i secretflow/sf-dev-anolis8:test_compare
# 查看更多帮助信息
@@ -618,15 +612,13 @@ docker cp ${USER}-kuscia-secretpad:/app/scripts/update-sf-components.sh . && chm
## 2. 在Kuscia中注册自定义算法镜像
-有关将自定义Secretflow组件镜像注册到Kuscia ,请参考
-[注册自定义算法镜像](https://www.secretflow.org.cn/docs/kuscia/latest/zh-Hans/development/register_custom_image)
+有关将自定义Secretflow组件镜像注册到Kuscia ,请参考[注册自定义算法镜像](https://www.secretflow.org.cn/docs/kuscia/latest/zh-Hans/development/register_custom_image)
⚠️**注意事项**
-- 使用 -n secretflow-image 指定注册在Kuscia中的算法镜像AppImage名称为
- secretflow-image 。
-- 使用 -i docker.io/secretflow/sf-dev-anolis8:
- test_compare 指定打包的自定义Secretflow组件镜像。由于默认打包的镜像Repo为docker.io,因此在导入镜像时需填写完成的镜像信息。
+- 使用 -n secretflow-image 指定注册在Kuscia中的算法镜像AppImage名称为
+ secretflow-image 。
+- 使用 -i docker.io/secretflow/sf-dev-anolis8: test_compare 指定打包的自定义Secretflow组件镜像。由于默认打包的镜像Repo为 docker.io,因此在导入镜像时需填写完成的镜像信息。
```shell
# -u: 指定 ${USER}
diff --git a/docs/all-in-one/version_update/202408.md b/docs/all-in-one/version_update/202408.md
new file mode 100644
index 0000000..12b5271
--- /dev/null
+++ b/docs/all-in-one/version_update/202408.md
@@ -0,0 +1,11 @@
+# 2024年8月更新记录
+
+**更新时间: 2024年08月30日**
+**更新内容:**
+**新功能:**
+
+1. 支持部署并管理多计算节点,支持用户隔离研发和生产环境
+2. 新增ODPS数据源,并支持模型发布到oss、odps数据源
+3. 支持在新增数据时,对空值进行自定义
+4. 隐私求交组件支持数据仅输出导某一方
+5. 行级过滤算子支持过滤空值行
\ No newline at end of file
diff --git a/docs/all-in-one/version_update/index.rst b/docs/all-in-one/version_update/index.rst
index 555fc9b..b86c48d 100644
--- a/docs/all-in-one/version_update/index.rst
+++ b/docs/all-in-one/version_update/index.rst
@@ -5,6 +5,7 @@
.. toctree::
:maxdepth: 2
+ 202408
202406
202405
202404