Skip to content

secretflow/secretnote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SecretNote

SecretNote 是为 SecretFlow (隐语) 学习者和开发者定制的高级工具套件,可帮助您快速开展隐语实验。它包括 SecretNote SF 和 SecretNote SCQL,均以 Notebook 的形式呈现。前者用于 Python 下的 SecretFlow 运行,支持多节点代码执行和文件管理;后者用于进行 SCQL 相关实验。

first-view

* SecretNote 的设计是为了学习和原型实验,请勿在生产环境中直接使用。

快速开始

隐语实训平台云 SecretNote (推荐)

SecretNote SF 现在隐语实训平台提供云端版本,开箱即用,无需环境配置直接拉起计算节点,欢迎 立即体验

本地启动 SecretNote SF

  • 安装 SecretNote Python 包,Python 版本需在 3.10 及以上、3.12 以下

    pip install secretnote
  • 根据需要拉起若干个计算节点

    secretflow/secretnote 提供了内置 SecretFlow 的、版本号相互对应的计算节点镜像。推荐使用 Docker Compose 拉起计算节点以便相互通信。SecretNote 提供了常用的拉起两个计算节点的 docker-compose.yml,可根据需要调整监听端口、镜像版本等配置

    cd docker/secretnote-sf-sim && docker compose up -d
  • 启动 SecretNote SF,在右上角添加计算节点,即可开始实验

    secretnote <work_dir> # 等价于 secretnote sf <work_dir>

    使用上述配置的节点地址为 127.0.0.1:8090127.0.0.1:8092。在代码中,节点间可通过 service 名相互访问;镜像使用 8888 作为 Notebook 服务端口,6379 作为 Ray 端口,8000 作为 SecretFlow 集群网络端口,8001 作为 SPU 端口

  • 如有需要,请查看更完整的具体示例

本地启动 SecretNote SCQL

SecretNote SCQL 提供了 P2P SCQL 的产品化封装,降低了开发者配置 CCL 和编写 Query 的难度。

  • 安装 SecretNote Python 包,Python 版本需在 3.10 及以上、3.12 以下

    pip install secretnote
  • 使用 P2P 方式 拉起 SCQL 环境,参考 scql/examples/p2p-tutorial,下载该文件夹,执行

    bash setup.sh && docker compose up -d

    可根据需要调整 SCQL Broker 服务的端口

  • 分别作为 Alice 方和 Bob 方启动 SecretNote,即可开始实验

    secretnote scql <work_dir> --party=alice --broker=http://127.0.0.1:8081
    secretnote scql <work_dir> --party=bob --broker=http://127.0.0.1:8082
  • 如有需要,请查看更完整的具体示例

高级

配置覆盖

命令行下 SecretNote 可以接受可传递给 Jupyter Notebook 的参数,具体可参考 开发配置文件

secretnote sf . --config=./secretnote/secretnote/sf/.jupyter/config_dev.py --no-browser

清理残留的计算节点记录

SecretNote 默认会在 ~/.jupyter 下存储计算节点的相关信息。如果遇到计算节点状态识别异常,可尝试手工清理:

rm ~/.jupyter/secretnote*

本地构建 SecretFlow 计算节点镜像

secretflow/secretnote 目前维护 1.7.0b0 至 1.10.0b0 的镜像,同时支持 amd64 和 arm64 架构。如有定制化的需求,可自行构建计算节点镜像,例如构建 1.9.0b0 (linux/arm64) 镜像的命令如下:

docker buildx build --build-arg SECRETFLOW_VERSION=1.9.0b0 --platform linux/arm64 -t secretflow/secretnote:1.9.0b0 -f ./docker/secretflow-secretnote/Dockerfile .

开发与贡献

SecretNote 的前端基于 ManaLibro 开发,开源后端基于 Jupyter Server 开发。

pnpm bootstrap && pnpm build # 安装依赖并初次构建

以开发 SecretNote SF 为例,需同时启动组件编译、Playground DevServer、本地 Jupyter Server:

pnpm run dev # 在 packages/secretnote-sf 下监视组件修改
pnpm run dev # 在 packages/secretnote-sf-site 下启动 DevServer
NODE_ENV=development python -m secretnote sf <work_dir> --config=./secretnote/secretnote/sf/.jupyter/config_dev.py --no-browser
# 在 pyprojects 下启动 Jupyter Server

请根据需要调整 Playground DevServer 的代理配置。进一步了解项目结构和 API 约定可查看 CONTRIBUTING

问题与反馈

请在 Issues 反馈,或访问 隐语实训平台 点击右上角 “反馈” 按钮加群咨询。