mc2-project / mc2-project/secure-xgboost

Support for secure join of data and train/test targets

Open
#108 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C++
Stars
108
Forks
31
PR merge metrics
No merged PRs in 30d

Description

Hello,

the SMPC demo shows two clients joining to train a model, where both clients have identical train set format. Roughly speaking, client1 has one half of training set lines, and client2 has another half.
What about a scenario where client1 has data, and client2 has targets, and they would like to train a model? We assume that both data sets have a common id column to join data and targets securely, before proceeding to the training.

From inspecting the code I made a conclusion that this scenario is not supported, am I correct?
Do you plan to add this routine (secure join) anytime soon?
If you do not have in plans implementing it, is it hard to add this routine myself / outside of this project - if so, could you please give a couple of hints how you yourself would proceed to implementing it?

P.S. Do not want to start a holywar, but the scenario with joining data and targets seems to be much more common and rewarding, compared to the scenario where two parties already have both data and targets each, but simply want to improve the quality by increasing the train set size.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the SMPC multiclient distributed training demo linked in the issue and inspect the secure-xgboost code paths it exercises. Determine how two parties' common ID columns could be joined securely before training, then define completion as successful training when one client supplies data and the other supplies targets without exposing either set.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
machine-learning, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.