전체 글 127

SMPC-06. 연합학습에서 비밀 공유 적용 시 통신 부하

연합학습(Federated Learning)에서 보안 다자간 계산(Secure Multi-Party Computation, SMPC)의 한 기법인 덧셈 기반 비밀 공유를 적용할 때 발생하는 통신 오버헤드 증가에 대해 살펴보겠습니다.결론부터 말씀드리면, 통신 오버헤드는 참여하는 클라이언트(사용자) 수에 따라 이차적($O(N^2)$)으로 매우 크게 증가합니다.기본 연합학습 vs. 비밀 공유 적용 연합학습먼저 두 시나리오의 통신 방식을 비교해 보면 오버헤드 증가를 명확히 이해할 수 있습니다.기본 연합학습 (Federated Averaging):서버가 글로벌 모델을 클라이언트들에게 전송합니다.각 클라이언트는 자신의 로컬 데이터로 모델을 학습시킨 후, 업데이트된 모델 파라미터(또는 그래디언트)를 서버에만 전송합니..

SMPC-05. 다차원 벡터를 위한 덧셈 기반 비밀 공유 기법

보안 다자간 계산(Secure Multi-Party Computation, SMPC)에서 덧셈 기반 비밀 공유 기법을 다차원 벡터나 행렬에 적용하는 것은 기본적으로 벡터의 개별 요소 각각에 독립적으로 비밀 공유 기법을 적용하는 방식입니다.하나의 비밀 값을 여러 조각(share)으로 나누어 서로 다른 참여자에게 분배하는 것처럼, 다차원 벡터의 각 요소를 별개의 비밀 값으로 간주하고 각각에 대해 동일한 비밀 공유 절차를 진행하는 것입니다.작동 방식: 2x2 행렬 예시2차원 벡터 (행렬) $M$을 예로 들어보겠습니다.$$M = \begin{pmatrix} m_{11} & m_{12} \\ m_{21} & m_{22} \end{pmatrix} $$이 행렬 $M$을 세 명의 참여자(P1, P2, P3)에게 덧셈 ..

SMPC-04. 샤미르 비밀 공유(Shamir's Secret Sharing)를 이용한 평균 연봉 계산 방법

보안 다자간 계산(SMPC)은 여러 참여자가 각자 가진 비밀 정보를 노출하지 않으면서, 그 정보들을 종합하여 특정 함수(예: 합산, 평균)의 결과만을 얻고자 할 때 사용하는 암호 기술입니다.핵심 원리: 다항식의 덧셈 속성 활용각자의 비밀(연봉)을 $y$절편으로 하는 다항식을 만듭니다. 이 다항식들을 모두 더하면, 새로운 합계 다항식이 만들어지는데, 이 다항식의 $y$절편은 모든 비밀(연봉)의 합과 같습니다.계산 과정3명의 직원(철수, 영희, 민수)이 평균 연봉을 계산하는 상황을 예시로 들어보겠습니다.참여자($N$): 3명비밀 복원에 필요한 최소 인원($t$): 3명 (모두의 정보가 합산되어야 하므로)비밀 정보:철수 연봉: 5,000만 원영희 연봉: 6,000만 원민수 연봉: 7,000만 원1단계: 비밀 ..

BERT, GPT-2, XLNet 학습 방식 비교: 양방향, 단방향, 순열

주요 언어 모델 특징 비교: BERT, GPT-2, XLNet이 세 모델은 현대 자연어 처리(NLP) 분야에 혁명을 일으킨 대표적인 언어 모델들입니다. 모두 트랜스포머(Transformer)라는 강력한 아키텍처를 공유하지만, 마치 각기 다른 철학을 가진 라이벌처럼 언어를 학습하는 방식에서 뚜렷한 차이를 보입니다. 이 차이점을 이해하는 것은 NLP 기술을 올바르게 활용하는 데 매우 중요합니다.1. BERT (Bidirectional Encoder Representations from Transformers)BERT는 문장의 양쪽 문맥을 동시에 고려하여 단어의 의미를 파악하는 양방향(Bidirectional) 모델입니다. 이는 마치 우리가 문장을 읽을 때 특정 단어의 의미를 파악하기 위해 앞뒤 단어를 모두 ..

TR-03. 멀티-헤드 마스크드 셀프 어텐션(Multi-head Masked Self Attention)

멀티-헤드 마스크드 셀프 어텐션은 트랜스포머 디코더의 첫 번째 하위 계층에서 사용되는 메커니즘입니다. 핵심 기능은 문장을 생성할 때, 모델이 "미래의" 정답 단어를 미리 훔쳐보지 못하도록(cheating) 방지하는 것입니다.1. 왜 "Masked"가 필요한가?트랜스포머의 디코더는 자기회귀적(Autoregressive) 방식으로 작동합니다. 즉, 한 단어씩 순차적으로 문장을 생성합니다.예: "나는" $\rightarrow$ (다음 단어 예측) $\rightarrow$ "학생" $\rightarrow$ (다음 단어 예측) $\rightarrow$ "이다""학생"이라는 단어를 예측해야 하는 시점(Time Step 2)에서, 모델이 정답인 "학생"이나 그 뒤에 올 "이다"라는 정보를 미리 본다면, 그건 예측이 ..