더북(TheBook)

데이터 프라이버시: 훈련과 추론 데이터를 클라이언트에서 처리하면 사용자의 프라이버시를 보호하는 또 다른 장점이 있습니다. 데이터 프라이버시 주제는 오늘날 점점 더 중요해지고 있습니다. 어떤 종류의 애플리케이션에서는 데이터 프라이버시가 절대적인 요구 사항입니다. 건강과 의료 데이터를 다루는 애플리케이션이 대표적인 예입니다. 웹캠으로 환자의 피부 이미지를 입력받고 딥러닝을 사용해 피부 상태를 진단하는 ‘피부 질환 진단 보조 장치’를 생각해 보죠. 많은 나라에서 건강 정보에 대한 프라이버시 규정은 추론을 위해 이미지를 중앙 서버로 전송하는 것을 허락하지 않습니다. 브라우저에서 모델 추론을 실행하면 데이터가 사용자의 휴대폰을 떠나거나 다른 곳에 저장되기 않기 때문에 사용자의 건강 데이터에 대한 프라이버시를 보장할 수 있습니다. 딥러닝을 사용해 사용자가 작성한 글을 향상시키기 위해 추천을 제공하는 또 다른 브라우저 기반 애플리케이션을 생각해 보죠. 어떤 사용자는 이 애플리케이션을 사용해 법률 문서와 같은 민감한 콘텐츠를 작성하며 공개 인터넷을 통해 원격 서버로 데이터가 전송되는 것을 꺼릴 수 있습니다. 모델을 클라이언트 측 브라우저 자바스크립트에서 실행하는 것이 이런 문제를 해결하는 효과적인 방법입니다.

WebGL 가속: 데이터 가용성 외에도 웹 브라우저에서 머신 러닝 모델을 실행하기 위해서는 GPU 가속을 통한 충분한 컴퓨팅 성능이 필요합니다. 앞서 언급했듯이 많은 최첨단 딥러닝 모델들은 계산 집약적이기 때문에 GPU의 병렬 계산을 이용한 가속이 필수적입니다(하나의 추론 결과를 위해 사용자를 몇 분 동안 기다리게 하는 경우는 실제 애플리케이션에서는 거의 없습니다). 다행히 최신 웹 브라우저는 WebGL API를 제공합니다. 이 API는 원래 2D와 3D 그래픽 렌더링을 가속하기 위해 고안되었지만 신경망을 가속하기 위해 필요한 병렬 계산에 활용할 수 있습니다. TensorFlow.js 개발자들이 딥러닝 구성 요소를 WebGL 기반의 가속을 위해 공들여 재정의했기 때문에 한 줄의 자바스크립트 문장으로 GPU 가속을 활용할 수 있습니다. 신경망의 WebGL 기반 가속은 (텐서플로(TensorFlow)와 파이토치(PyTorch) 등의 파이썬 딥러닝 라이브러리에서 사용하는) NVIDIA의 CUDA와 CuDNN 같은 맞춤형 네이티브 GPU 가속과 완벽하게 동등하지 않을 수 있습니다. 하지만 신경망의 속도를 크게 높이고 사람의 포즈를 감지하는 PoseNet과 같이 실시간 추론을 가능하게 합니다. 사전 훈련된 모델의 추론에 많은 비용이 든다면, 이런 모델의 훈련이나 전이 학습(transfer learning)은 훨씬 더 많은 비용이 듭니다. 훈련과 전이 학습은 딥러닝 모델의 개인화, 딥러닝 모델의 프런트엔드 시각화, (많은 장치에서 동일한 모델을 훈련하고 그 결과를 수집하여 좋은 모델을 만드는) 연합 학습(federated learning) 같은 흥미로운 애플리케이션을 가능하게 만듭니다. TensorFlow.js의 WebGL 가속은 웹 브라우저만으로 충분한 속도로 신경망의 훈련과 미세 조정을 가능하게 만듭니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.