OpenMined/PySyft

Perform data science on data that remains in someone else's server

PySyft – 개인정보 보호 데이터 과학 플랫폼

기능
PySyft를 사용하면 데이터 소유자는 원시 데이터를 자신의 기기에 유지하고 데이터 과학자는 해당 개인 데이터에서 실행되는 Python 작업을 제출할 수 있습니다. 소유자 기기를 떠나는 것은 소유자가 명시적으로 승인한 결과뿐입니다. 일반적인 클라우드 파일 서비스(Google Drive, Microsoft 365)를 통해 작동하므로 특별한 서버가 필요하지 않습니다.

주요 개념

  • 원격 데이터 과학(RDS) 클라이언트 – login_do / login_ds 객체는 데이터 소유자 및 데이터 과학자 역할을 나타냅니다.
  • 데이터셋 – 소유자는 모의 버전(공개)과 개인 버전(실제 데이터)을 만듭니다. 과학자는 모의 데이터를 탐색한 다음 개인 버전에서 자동으로 실행되는 작업을 제출할 수 있습니다.
  • 작업 – Python 스크립트가 업로드되고, 소유자 측의 가상 환경에서 샌드박스 처리되며, 실행되고, 승인된 출력이 다시 동기화됩니다.
  • 권한 및 피어 투 피어 인증 – 데이터 교환 전에 각 협력자를 추가하고 승인해야 합니다.
  • 전송 독립적, 오프라인 우선 – 현재 Google Drive를 통해 구현되지만 동기화 계층은 교체할 수 있습니다. 피어가 오프라인일 때도 작업은 계속되며 나중에 동기화됩니다.
  • 엔클레이브 – 추가 보안을 위한 선택적 격리 실행 환경(예: 이중 맹검 LLM 평가).

시작 방법

  1. 핵심 라이브러리와 RDS 클라이언트를 설치합니다:
    uv pip install "syft>=0.10.0" "syft-rds>=0.6.0"
    
    데이터 소유자는 백그라운드 서비스를 위해 syft-bg도 추가합니다.
  2. Google Cloud OAuth 토큰으로 로그인합니다(Colab은 자동으로 수행).
  3. 소유자 측에서 데이터셋을 만들고 동기화한 다음 과학자가 카탈로그를 가져오도록 합니다.
  4. syft.resolve_dataset_file_path를 통해 데이터셋을 읽고 결과를 쓰는 일반 Python 스크립트(analysis.py)를 작성합니다.
  5. 스크립트를 작업으로 제출하고, 소유자가 승인하고, 작업이 샌드박스에서 실행되고, 과학자가 출력을 검색합니다.

주요 패키지

패키지 역할
syft-rds 원격 데이터 과학 클라이언트 – 로그인, 데이터셋 및 작업 API
syft-datasets 데이터셋 생성, 버전 관리, 모의/개인 분리
syft-job 작업 정의, 제출, 샌드박스 실행
syft-permissions / syft-perms 세분화된 액세스 제어
syft-bg 백그라운드 서비스, 이메일 알림, TUI 대시보드
syft-notebook-ui Jupyter 내에서 결과 표시를 위한 도우미

일반적인 사용 사례
병원(데이터 소유자)은 Google Drive의 개인 폴더에 환자 기록을 저장합니다. 연구원(데이터 과학자)은 통계 요약을 계산하는 분석 스크립트를 작성합니다. 스크립트는 병원으로 전송되고 격리된 가상 환경에서 실행되며 승인된 요약만 반환됩니다 – 원시 환자 데이터는 병원을 떠나지 않습니다.

커뮤니티 및 지원
OpenMined 재단이 개발한 이 프로젝트는 오픈 소스(Apache 2.0)이며 도움을 위한 활발한 Slack 커뮤니티가 있습니다. 저장소에는 단위 및 통합 테스트 스위트가 포함되어 있으며 기여자는 로컬 테스트에 just test-* 명령을 사용하는 것이 좋습니다.


위의 모든 세부 사항은 저장소의 README에서 직접 가져온 것입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트