Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature]: 有关于使用SPU验证其他文章方案时遇到的问题 #898

Open
TY-cc opened this issue Oct 31, 2024 · 6 comments
Open
Assignees

Comments

@TY-cc
Copy link

TY-cc commented Oct 31, 2024

Feature Request Type

Build/Install

Have you searched existing issues?

Yes

Is your feature request related to a problem?

由于想使用SPU来验证其他文章方案,在此过程中有一些疑问与问题,希望能提供一些帮助

1、论文的原文方案在这里

2、方案概述:(用户U与数据D,两个服务器S1与S2),该方案目的是使S1与S2共同训练一个神经网络模型(S1与S2模型相同且都具有相同的完整模型参数)。步骤上用户U对数据D进行秘密分享得到D1与D2,并将D1与D2分别发送给服务器S1与S2。S1与S2使用数据分片D1与D2对模型进行训练。需要注意的是,与你们官网提供的神经网络训练例子不同,在你们的例子中,模型参数也都被秘密分享,而在本例中模型未被分享,被S1与S2明文持有。

3、问题:是否可以使用SPU实现上述方案?我在尝试过程中遇到了问题,为了使用SPU实现上述方案,发现需要在SPU内部对数据分片自主进行控制管理,但是目前还未发现在SPU内部控制数据分片的方法。

Describe features you want to add to SPU

详细需求与描述如上所示,期待您的回复与讨论

Describe features you want to add to SPU

详细需求与描述如上所示,期待您的回复与讨论

@tpppppub
Copy link
Member

从你描述的场景来看似乎不需要用到 spu,就是分布式训练,只是每一方训练数据不是原始数据,而是秘密分享

@TY-cc
Copy link
Author

TY-cc commented Oct 31, 2024

对,就是分布式训练,不过每个服务器里模型是完全相同的。因为在模型训练过程中会设计到mpc协议,所以我想借助一个隐私计算工具来实现并验证这个方案。

本来想使用spu来进行试验,但是发现spu无法对数据分片操控。
您说不需要用到spu,您有其他隐私计算工具库推荐么?还是说试用ABY3或者SPDZ就可以?

@tpppppub
Copy link
Member

你可以使用 secretflow,把其中涉及 mpc 协议的部分用 spu 处理

@TY-cc
Copy link
Author

TY-cc commented Nov 14, 2024

额,我对secretflow的理解是一个综合性的隐私计算工具,包括了HEU(同态加密),PYU,SPU等。那么在secretflow下可以对秘密分析的分片自主操控么?

@tpppppub
Copy link
Member

如果想最大程度自主控制秘密分享,肯定还是修改 spu 运行时的 c++ 代码二次开发最为直接

@TY-cc
Copy link
Author

TY-cc commented Nov 19, 2024

需要在spu运行时的c++代码写底层代码实现并封装接口么?因为对分片需要的操作并不复杂,要做的只是需要在众多的数据分片中,指定某个特定分片,对这个特定分片进行spu之间交互,使得该数据分片变为spu之间的公共值,并参与后续与其他数据分片的计算。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants