隐语SML0.1.0版本发布!SPU开源机器学习Python算法库

打开链接点亮社区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 是事实上的传统机器学习标准库,但它有一个前提假设:

  • 数据集中在一处
  • 运行在 NumPy / SciPy 的中心化计算环境中
  • 不考虑多方协作与数据隐私

而在真实世界中,越来越多场景是:

  • 数据分散在多方
  • 原始数据不能共享
  • 合规要求高(金融、医疗、政企等)

直接将 scikit-learn 的实现"翻译"为 MPC 版本,会遇到一些问题:

  • 浮点数在 MPC 下精度和性能不可控
  • 大量 CPU 友好算子 并不适合安全计算
  • 简单移植会导致效率极低,无法落地

SML 的愿景是建立一个通用的隐私保护机器学习 (PPML) 库,旨在成为安全版本的 scikit-learn

支持的算法

在首个开源版本中,SML 已支持 数十种核心算法,覆盖传统机器学习的主要领域:

监督学习

  • 线性模型(Logistic / Ridge / GLM 等)
  • 支持向量机(SVC)
  • KNN
  • Gaussian Naive Bayes
  • 决策树(基于 GTree 的 MPC 实现)
  • 集成模型:Random Forest、AdaBoost

无监督学习与降维

  • KMeans 聚类
  • PCA(多种实现方式:power iteration、Jacobi、RSVD)
  • NMF
  • T-SNE
  • ISOMAP、Spectral Embedding 等流形学习方法

数据预处理

  • 标准化 / 归一化(MinMax、Standard、Robust 等)
  • OneHotEncoder、KBinsDiscretizer
  • QuantileTransformer
  • LabelBinarizer 等

模型评估指标

  • 分类指标: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 反馈
  • 分享真实应用场景

未来我们将持续推进:

  • 算法覆盖与稳定性增强
  • API 设计持续对齐 scikit-learn 使用习惯
  • 更完善的文档、示例与最佳实践
  • 与 SecretFlow / SPU / SCQL 的深度协同
相关推荐
专注仿真4 小时前
引擎扩展性与集成设计深度剖析:从 14 个扩展点到 DIS→HLA 演进之路
开发语言·算法·仿真引擎·推演引擎
码爸4 小时前
支持向量机介绍与示例
算法·机器学习·支持向量机
怕浪猫4 小时前
2028编程圈很火的10个Skills
算法·面试·github
Smoothcloud润云5 小时前
PyTorch大模型权重加载与启动耗时优化实战:定位磁盘、内存与显存瓶颈
人工智能·pytorch·python·深度学习·gpu算力
databook5 小时前
从循环到向量化:NumPy提速的7个关键思维
python·数据分析·numpy
别动我齐刘海6 小时前
Linux 系统调试学习1
linux·运维·服务器·c++·学习·机器学习·机器人
棉猴6 小时前
玩游戏学Python1-Python和pgzero库的安装
python·pygame·玩游戏·pgzero·pgzrun
诺伦6 小时前
GEO优化数据实证:78%引用流向官网的机制拆解与小品牌三步管线实战教程 | RiseClaw玄策
python·seo·geo·内容营销·ai搜索
oooost6 小时前
pytorch学习笔记1
python·学习方法
数字融合7 小时前
透明化视频孪生虚实映射一体化融合技术
人工智能·python·数码相机