打开链接点亮社区Star,照亮技术的前进之路。每一个点赞,都是社区技术大佬前进的动力
Github 地址: https://github.com/secretflow/sml
我们很高兴地宣布,隐语 SML 0.1.0 版本正式发布!
SML 库目前支持约数十种核心算法,涵盖了机器学习的主要领域,如监督学习(线性模型、支持向量机等)、无监督学习(KMeans聚类算法,PCA等降维算法)、数据预处理(标准化、特征选择等)、模型评估(各种分类、回归指标)。
版本链接:https://pypi.org/project/sf-sml/#history
什么是 SML?
SML 是一个基于 Python 的机器学习模块,它利用 JAX 实现算法,并借助 SPU (SecretFlow Processing Unit) 的能力进行安全的训练和推理。
专注于隐私保护机器学习场景,致力于构建一个安全版本的 scikit-learn。
为什么需要一个“隐私版 scikit-learn”?
scikit-learn 是事实上的传统机器学习标准库,但它有一个前提假设:
而在真实世界中,越来越多场景是:
-
数据分散在多方
-
原始数据不能共享
-
合规要求高(金融、医疗、政企等)
直接将 scikit-learn 的实现“翻译”为 MPC 版本,会遇到一些问题:
-
浮点数在 MPC 下精度和性能不可控
-
大量 CPU 友好算子 并不适合安全计算
-
简单移植会导致效率极低,无法落地
SML 的愿景是建立一个通用的隐私保护机器学习 (PPML) 库,旨在成为安全版本的 scikit-learn
支持的算法
在首个开源版本中,SML 已支持 数十种核心算法,覆盖传统机器学习的主要领域:
监督学习
无监督学习与降维
数据预处理
模型评估指标
-
分类指标:accuracy、precision、recall、f1、roc_auc 等
-
回归指标:MSE、R²、explained variance
-
GLM 专用评估指标(Poisson / Gamma / Tweedie)
所有算法均围绕 MPC 场景下的安全性、精度与性能进行实现与权衡。
从 SPU 子模块到独立 Python 库
SML 最初是 SPU 库的一部分,随着算法数量增加和使用场景清晰,我们决定将其独立拆分为一个单独的 Python 包:
-
更清晰的定位:隐私保护机器学习算法库
-
更友好的使用方式:Python 原生 API
-
更利于社区共建与持续演进
快速开始
你可以通过 PyPI 快速体验 SML:
pip install sf-sml
从源代码安装
git clone https://github.com/secretflow/sml.git
cd sml
pip install -e .
安装完成后,您可以运行任何测试,例如:
# run single unit test
pytest tests/cluster/kmeans_test.py # run kmeans simulation
# run all unit tests
pytest tests
# run single emulation test
python emulations/run_emulations.py --module emulations.cluster.kmeans_emul # run kmeans emulation
# run all emulations
python emulations/run_emulations.py
# list all available emulations
python emulations/run_emulations.py --list-only
加入社区,一起共建生态
SML 是 SecretFlow 开源生态的重要组成部分。 我们期待与你一起探索 隐私计算时代的机器学习新范式:
-
贡献算法与实现
-
优化性能与数值稳定性
-
参与设计讨论与 Issue 反馈
-
分享真实应用场景
未来我们将持续推进: