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 평가).
시작 방법
- 핵심 라이브러리와 RDS 클라이언트를 설치합니다:
데이터 소유자는 백그라운드 서비스를 위해uv pip install "syft>=0.10.0" "syft-rds>=0.6.0"syft-bg도 추가합니다. - Google Cloud OAuth 토큰으로 로그인합니다(Colab은 자동으로 수행).
- 소유자 측에서 데이터셋을 만들고 동기화한 다음 과학자가 카탈로그를 가져오도록 합니다.
syft.resolve_dataset_file_path를 통해 데이터셋을 읽고 결과를 쓰는 일반 Python 스크립트(analysis.py)를 작성합니다.- 스크립트를 작업으로 제출하고, 소유자가 승인하고, 작업이 샌드박스에서 실행되고, 과학자가 출력을 검색합니다.
주요 패키지
| 패키지 | 역할 |
|---|---|
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에서 직접 가져온 것입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트