secretflow / secretflow

A unified framework for privacy-preserving data analysis and machine learning
https://www.secretflow.org.cn/docs/secretflow/en/
Apache License 2.0
2.33k stars 386 forks source link

在 SecretFlow 中实现水平联邦生成模型 #750

Closed Candicepan closed 7 months ago

Candicepan commented 1 year ago

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)第二期任务 ISSUE,欢迎社区开发者参与共建~ 若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

详细要求

能力要求

操作说明

认领说明

本任务可有多种实现方式,故支持有多位开发者进行认领,请在认领任务后,在本 issue 下 comment 你的具体设计思路。

设计思路需要包括以下内容:

  1. 计划在什么样的数据集上实现哪一个模型
  2. 计划如何进行数据拆分
  3. 计划如何处理联邦数据预处理:如 NLP 任务中需要 tokenize,那么在水平分布式下要怎样做
  4. 计划选择哪一个联邦策略,是如何考虑的

当同一任务有多位开发者提交设计思路时:

  • 若多位开发者的设计思路均类似,则将按照 comment 的时间 assign 给第一位 comment 的开发者;
  • 若多位开发者的设计思路均不同,则该 issue 将会拆分为以不同设计思路进行实现的子 issue,并 assign 给对应开发者。
github-actions[bot] commented 1 year ago

Stale issue message. Please comment to remove stale tag. Otherwise this issue will be closed soon.

Mingbo-Lee commented 1 year ago

Mingbo-Lee Give it to me

Mingbo-Lee commented 1 year ago

设计思路: 基于https://keras.io/examples/generative/vae/#variational-autoencoder为例改写成隐语的联邦学习教程,体现隐语对 keras example的兼容,充分展现隐语的易用性和兼容性 数据分割:按照参与方均匀分割 模型: Variational AutoEncoder 数据集:MNIST digits 联邦策略:充分对齐隐语现有API,只要隐语支持的,理论上都可以支持

Mingbo-Lee commented 1 year ago

设计思路: 基于https://tensorflow.google.cn/tutorials/audio/music_generation?hl=zh-cn为例改写成隐语的联邦学习教程,体现隐语对 keras example的兼容,充分展现隐语的易用性和兼容性 数据分割:按照参与方均匀分割 模型: RNN 数据集:MAESTRO 数据集 联邦策略:充分对齐隐语现有API,只要隐语支持的,理论上都可以支持

Candicepan commented 1 year ago

设计思路: 基于https://tensorflow.google.cn/tutorials/audio/music_generation?hl=zh-cn为例改写成隐语的联邦学习教程,体现隐语对 keras example的兼容,充分展现隐语的易用性和兼容性 数据分割:按照参与方均匀分割 模型: RNN 数据集:MAESTRO 数据集 联邦策略:充分对齐隐语现有API,只要隐语支持的,理论上都可以支持

感谢认领~可以在下方的子 issue 中再次认领,将把该任务的该种实现方式 assign 给你哈~ https://github.com/secretflow/secretflow/issues/913

Mingbo-Lee commented 1 year ago

设计思路: 基于 https://github.com/pytorch/examples/tree/main/vae 为例改写成隐语的联邦学习教程,体现隐语对 PyTorch example的兼容,充分展现隐语的易用性和兼容性 数据分割:按照参与方均匀分割 模型: Variational AutoEncoder 数据集:MNIST digits 联邦策略:充分对齐隐语现有API,只要隐语支持的,理论上都可以支持

Candicepan commented 1 year ago

设计思路: 基于https://keras.io/examples/generative/vae/#variational-autoencoder为例改写成隐语的联邦学习教程,体现隐语对 keras example的兼容,充分展现隐语的易用性和兼容性 数据分割:按照参与方均匀分割 模型: Variational AutoEncoder 数据集:MNIST digits 联邦策略:充分对齐隐语现有API,只要隐语支持的,理论上都可以支持

感谢认领~可以在下方的子 issue 中再次认领,将把该任务的该种实现方式 assign 给你哈~ https://github.com/secretflow/secretflow/issues/958

Candicepan commented 1 year ago

设计思路: 基于 https://github.com/pytorch/examples/tree/main/vae 为例改写成隐语的联邦学习教程,体现隐语对 PyTorch example的兼容,充分展现隐语的易用性和兼容性 数据分割:按照参与方均匀分割 模型: Variational AutoEncoder 数据集:MNIST digits 联邦策略:充分对齐隐语现有API,只要隐语支持的,理论上都可以支持

感谢认领,该实现方式的实现可以直接关联这个 issue 哈~

Mingbo-Lee commented 1 year ago

目前遇到的问题是,VAE在PyTorch的损失函数会用到一个 混合损失函数,但是目前感觉Ray 对它的识别有一定的问题,可能需要封装一下? 2023-10-16_154406

zhangxingmeng commented 11 months ago

image 这个函数warp一层,目前支持的loss fn 的输入时pred_y 和target_y,其他参数通过partical_func传进来试试