동형 암호화를 이용한 암호화된 데이터에 대한 감성 분석

TL;DR

Hugging Face는 Concrete-ML 라이브러리를 통해 완전 동형 암호화(FHE)를 사용하여 암호화된 데이터에 대한 감성 분석을 수행하는 방법을 시연했습니다. BERT 트랜스포머 임베딩과 XGBoost 분류기를 결합함으로써, 시스템은 서버에서 사용자의 입력 데이터를 절대로 복호화하지 않고도 감성 예측을 제공할 수 있습니다.

동형 암호화를 이용한 프라이버시 보호 추론

동형 암호화는 사전 복호화 없이 암호화된 데이터에 대해 연산을 수행할 수 있게 합니다. 이는 사용자의 데이터가 추론 과정 중에도 기밀성을 유지해야 하는 개인 메시지 분석과 같은 민감한 애플리케이션에 매우 중요합니다.

이를 구현하기 위해 Hugging Face는 Concrete-ML 라이브러리를 활용했으며, 이 라이브러리는 데이터 과학자들이 암호학에 대한 깊은 전문 지식 없이도 FHE 환경에서 머신러닝 모델을 배포할 수 있게 합니다.

기술 아키텍처: 트랜스포머와 XGBoost

시스템은 원시 텍스트를 감성 예측으로 변환하면서 암호화 호환성을 유지하기 위해 두 단계 파이프라인을 사용합니다.

1. 트랜스포머를 통한 텍스트 표현

원시 텍스트는 FHE에 적합하지 않기 때문에, 시스템은 트랜스포머를 사용하여 텍스트의 은닉 표현(임베딩)을 생성합니다.

  • Model Used: Stanford Sentiment Treebank 데이터셋에 파인튜닝된 BERT 트랜스포머 (cardiffnlp/twitter-roberta-base-sentiment-latest).
  • Process: 텍스트를 토크나이즈한 뒤 트랜스포머에 전달합니다. 시스템은 마지막 은닉층 상태를 추출하고 모든 토큰의 표현을 평균내어 768 차원의 단일 텍스트 레벨 벡터를 생성합니다.
  • Client-Side Execution: 텍스트를 텐서로 변환하는 이 과정은 클라이언트 머신에서 수행되어야 하며, 암호화는 결과적인 트랜스포머 표현에 적용됩니다.

2. XGBoost를 통한 분류

768 차원 벡터는 이후 XGBoost 분류기에 입력되며, 이는 심층 신경망보다 FHE와 더 호환됩니다.

  • Training: 모델은 공개된 트위터 항공사 감성 데이터셋을 사용해 학습되었으며, 하이퍼파라미터 최적화를 위해 GridSearchCV를 활용했습니다.
  • Optimal Parameters: 최상의 성능을 보인 모델은 max_depth: 1, n_bits: 3, n_estimators: 50을 사용했습니다.
  • Performance: 최종 모델은 테스트 셋에서 85.04%의 정확도를 달성했습니다.

FHE 실행 및 성능

XGBoost 모델이 학습되면, Concrete-ML을 사용해 FHE 추론 엔진으로 컴파일됩니다.

  • Inference Consistency: 암호화된 데이터(execute_in_fhe=True)에 대해 수행된 예측은 명문 텍스트에 대한 예측과 동일합니다.
  • Execution Time: 단일 트윗에 대한 FHE 추론은 16코어 CPU에서 약 4.4초가 소요됩니다.
  • Compilation Time: 모델 컴파일 과정은 약 9.3초가 걸립니다.

배포 워크플로우

배포는 데이터 프라이버시를 보장하기 위해 클라이언트-서버 프로토콜을 따릅니다:

  1. Key Generation: 클라이언트는 개인키와 공개키 쌍을 생성합니다.
  2. Encryption: 클라이언트는 공개키를 사용해 텍스트의 트랜스포머 표현을 인코딩, 양자화 및 암호화합니다.
  3. Server-Side Prediction: 서버는 암호화된 데이터를 수신하고 공개 평가 키를 사용해 예측을 수행합니다. 서버는 복호화된 입력을 전혀 보지 못합니다.
  4. Decryption: 서버는 암호화된 예측 결과를 클라이언트에 반환하고, 클라이언트는 자신의 개인키로 이를 복호화합니다.

이 아키텍처는 클라이언트 애플리케이션에 Gradio, 서버에 FastAPI, ASGI 서버로 Uvicorn을 사용해 구현되었으며, Hugging Face Spaces에 호스팅되었습니다.

Sources