데이터 흡수 및 준비 단계를 진행하면서 감안해야 할 또 다른 점은 데이터, 데이터의 정규화, 또는 두 가지 모두를 통해 모델에 편견이 유입될 수 있다는 것이다. 머신러닝의 편견은 현실적인 결과로 이어진다. 따라서 편견이 존재할 수 있는 부분에서 편견을 찾아 제거하는 방법을 알면 도움이 된다. 정돈된(읽을 수 있으며 일관적인) 데이터는 곧 편견 없는 데이터라는 전제는 절대 금물이다.
머신러닝 모델 교육
데이터 집합을 완성했다면 다음 단계는 교육 과정이다. 교육 과정에서는 데이터를 사용해 예측을 위한 모델을 생성한다.
일련의 데이터로 한 번에 교육하는 모델이 필요한지, 증분 재교육되는 모델이 필요한지에 따라 예측 작업의 유형과 사용되는 알고리즘의 종류가 중요하다는 점은 앞서 언급했다. 그러나 모델 교육에 있어 또 한가지 중요한 측면은 결과 모델의 정확도 향상을 위해 교육을 튜닝하는 방법이다. 이것을 하이퍼파라미터화(hyperparameterization)라고 한다.
머신러닝 모델을 위한 하이퍼파라미터는 알고리즘에서 결과 모델을 생성하는 방법을 좌우하는 설정이다. 예를 들어 K-평균 클러스터링 알고리즘의 경우 특정 측면에서의 상호 유사성을 기반으로 데이터를 그룹으로 조직한다. K-평균 알고리즘에서는 검색할 클러스터의 수가 하이퍼파라미터 중 하나가 될 수 있다.
일반적으로 최선의 하이퍼파라미터 선택은 알고리즘에 대한 경험에서 비롯된다. 경우에 따라서는 몇 가지 변형을 시험해 보고 어느 것이 당면한 문제에 대해 실천 가능한 결과를 산출하는지 확인해야 한다. 그러나 일부 알고리즘 구현에서 하이퍼파라미터의 자동 튜닝이 가능해지고 있다. 예를 들어 머신러닝을 위한 레이(Ray) 프레임워크에는 하이퍼파라미터 최적화 기능이 있다.
모델 교육을 위한 라이브러리에서 병렬성을 활용할 수 있는 경우가 많다. 병렬성을 활용하여 여러 CPU와 GPU 또는 노드로 작업을 분산하면 교육 과정의 속도가 빨라진다. 병렬 교육에 하드웨어를 사용할 수 있다면 사용하라. 많은 경우 컴퓨팅 장비를 추가할 때마다 속도는 거의 선형적으로 향상된다.
현재 교육에 사용하는 머신러닝 프레임워크도 병렬 교육을 지원할 수 있다. 예를 들어 MXNet 라이브러리는 병렬 모델 교육이 가능하다. 또한 MXNet은 교육 병렬화의 두 가지 핵심 방법론인 데이터 병렬성과 모델 병렬성을 모두 지원한다,
구글 브레인 팀 소속 알렉스 크리체브스키는 네트워크 교육 병렬화에 관한 논문에서 데이터 병렬성과 모델 병렬성의 차이에 대해 설명했다. 데이터 병렬성에서는 “서로 다른 작업자가 서로 다른 데이터 예제를 교육[모델링]한다…[그러나] 일관적인 모델 교육을 보장하기 위해 모델 파라미터(또는 파라미터 변화도)를 동기화해야 한다.” 즉, 데이터를 나눠서 여러 장비에서 교육을 수행하되, 그 결과로 도출되는 각 모델이 서로 동기화되도록 해야 한다.
모델 병렬성에서는 “서로 다른 작업자가 모델의 서로 다른 부분을 교육”하지만 “한 작업자가 교육한 모델 부분에 다른 작업자가 교육한 모델 부분의 출력이 필요할 때마다” 작업자 간 동기화가 필요하다. 일반적으로 이 접근 방법은 모델 교육에 예를 들어 순환 신경망과 같이 상호 데이터를 공급하는 여러 계층이 있는 경우 사용된다.
이 두 가지 접근 방법을 사용해 파이프라인을 구성하는 방법은 익힐 만한 가치가 있다. 토치(Torch) 프레임워크를 포함한 많은 프레임워크가 현재 이 두 가지를 모두 지원하기 때문이다.
머신러닝 모델 배치
파이프라인의 마지막 단계는 교육된 모델을 배치하는 단계, 또는 길버트가 논문 “머신러닝 파이프라인: 중국식 빌딩 블록 메뉴(Machine Learning Pipeline: Chinese Menu of Building Blocks)”에서 표현한 대로라면 “예측해서 제공하는” 단계다. 교육된 모델은 수신되는 데이터를 대상으로 작동하여 예측을 생성한다. 예를 들어 얼굴 인식 시스템이라면 수신 데이터는 얼굴 사진 또는 셀카가 될 것이고, 예측은 다른 얼굴 사진에서 추론한 모델을 통해 이루어지게 된다.
이 예측을 어디에, 어떻게 제공하느냐가 파이프라인의 또 다른 부분을 형성한다. 가장 일반적인 시나리오는 RESTful API를 통해 클라우드 인스턴스에서 예측을 제공하는 것이다. 클라우드에서 예측을 제공함으로써 얻는 이점을 모두 누릴 수 있다. 예를 들어 수요를 충족하기 위해 인스턴스를 추가로 가동할 수 있다.
또한 클라우드에 호스팅되는 모델의 경우 파이프라인의 더 많은 부분, 즉 교육 데이터, 교육된 모델, 예측 인프라 등을 한 곳에 둘 수 있다. 따라서 데이터를 많이 이동할 필요가 없고 모든 작업이 더 빠르게 진행된다. 모델을 같은 환경에서 재교육하고 배치할 수 있으므로 모델의 증분 재교육을 더 신속히 수행할 수 있다.
그러나 클라이언트에 모델을 배치해서 예측을 제공하는 편이 더 적합한 경우도 있다. 이 접근 방법이 어울리는 예는 대역폭이 귀한 모바일 앱, 네트워크 연결이 보장되거나 안정적이지 않은 앱 등이다.
한 가지 주의할 점은 로컬 머신에서 수행된 예측은 상대적으로 질이 떨어질 수 있다는 것이다. 로컬 저장 공간의 제약으로 인해 배치된 모델의 규모가 작으면 이것이 예측의 질에 영향을 미칠 수 있기 때문이다. 그러나 속도를 위해 정확도를 약간 타협하는 수준에서 꽤 정확한 모델을 스마트폰과 같은 보편적인 기기에 배치하는 방안이 점점 더 실현 가능해지고 있다. 원격 API를 통해 접근하는 방법보다 클라이언트에 교육된 모델을 배치하고 주기적으로 갱신하는 방법이 더 나을지 여부는 해당 애플리케이션의 성격에 따라 판단하면 된다.
또 다른 잠재적인 장애물도 있다. 모델을 배치할 수 있는 위치가 많은 만큼 배치 프로세스가 복잡해질 수 있다는 것이다. 앱 별로 생성하는 모델을 제외하면 하나의 교육된 모델에서 하나의 대상 하드웨어, 운영체제 또는 애플리케이션으로 이어지는 일관적인 경로는 없다. 머신러닝 모델을 사용하는 앱 개발 방식이 확산 중인 만큼 일관적인 배치 파이프라인을 찾기 위한 움직임이 활발해지겠지만, 빠른 시일 내에 이 복잡성이 사라질 가능성은 희박하다.
머신러닝 파이프라인은 사실 파이프라인이 아니다
파이프라인이라는 용어는 한쪽에서 다른 한쪽으로의 일방 흐름을 암시한다. 그러나 현실에서 이 흐름은 순환 흐름에 더 가깝다. 데이터가 들어오면 이 데이터는 모델을 교육하는 데 사용된다. 이후 새 데이터가 들어오고 데이터의 상태가 변함에 따라 모델의 정확도가 평가되고 필요 시 재교육을 받게 된다.
현재로서는 머신러닝 파이프라인이라고 하면 ‘각자의 특성을 감안해야 하는 개별적인 여러 조각’ 말고는 달리 표현할 방법이 마땅치 않다. 각 단계가 기능적으로 서로 달라서가 아니라 이러한 모든 조각을 포괄적으로 통합할 방법이 사실상 없기 때문이다. 즉, 파이프라인은 없다. 다만 우리가 파이프라인으로 생각하는 경향이 있는 일련의 연속된 활동이 있을 뿐이다.
그러나 진정한 파이프라인에 대한 요구를 충족하기 위한 프로젝트들이 진행되고 있다. 예를 들어 하둡 업체인 맵알(MapR)은 맵알 하둡 배포판의 1년 6노드 라이선스와 CPU/GPU 지원이 포함된 통합 신경망 라이브러리, 그리고 전문 컨설팅 서비스를 묶어 “분산 딥러닝 퀵 스타트 솔루션(Distributed Deep Learning Quick Start Solution)”이라는 이름으로 제공한다.
이상적인 솔루션이라면 파이프라인의 모든 단계를 포괄하고 현재 소프트웨어 분야에 존재하는 지속적 전달(continuous-delivery) 시스템과 같은 끊김 없는 경험을 제공하는, 완전한 오픈소스 설계 패턴일 것이다. 위키본 길버트의 표현대로 “데이터 과학자를 위한 데브옵스 툴”이 될 만한 무엇이 필요하다. 바이두(Baidu)는 퀴베르네티스(Kubernetes)를 주 요소로 한 데이터 과학자를 위한 데브옵스 툴을 추진할 것이라고 발표했지만(맵알도 시스템 내의 여러 노드에 걸쳐 작업을 오케스트레이션하기 위해 퀴베르네티스를 사용한다), 아직 구체적인 결과물은 없다.
그 날이 올 때까지는 파이프라인을 구석구석 익히는 방법에 의존할 수밖에 없다. editor@itworld.co.kr
Surfshark
VPN (가상 사설 네트워크, Virtual Private Network)은 인터넷 사용자에게 개인 정보 보호와 보안을 제공하는 중요한 도구로 널리 인정받고 있다. VPN은 공공 와이파이 환경에서도 데이터를 안전하게 전송할 수 있고, 개인 정보를 보호하는 데 도움을 준다. VPN 서비스의 수요가 증가하는 것도 같은 이유에서다. 동시에 유료와 무료 중 어떤 VPN을 선택해야 할지 많은 관심을 가지고 살펴보는 사용자가 많다. 가장 먼저 사용자의 관심을 끄는 것은 별도의 예산 부담이 없는 무료 VPN이지만, 그만큼의 한계도 있다. 무료 VPN, 정말 괜찮을까? 무료 VPN 서비스는 편리하고 경제적 부담도 없지만 고려할 점이 아예 없는 것은 아니다. 보안 우려 대부분의 무료 VPN 서비스는 유료 서비스에 비해 보안 수준이 낮을 수 있다. 일부 무료 VPN은 사용자 데이터를 수집해 광고주나 서드파티 업체에 판매하는 경우도 있다. 이러한 상황에서 개인 정보가 유출될 우려가 있다. 속도와 대역폭 제한 무료 VPN 서비스는 종종 속도와 대역폭에 제한을 생긴다. 따라서 사용자는 느린 인터넷 속도를 경험할 수 있으며, 높은 대역폭이 필요한 작업을 수행하는 데 제약을 받을 수 있다. 서비스 제한 무료 VPN 서비스는 종종 서버 위치가 적거나 특정 서비스 또는 웹사이트에 액세스하지 못하는 경우가 생긴다. 또한 사용자 수가 늘어나 서버 부하가 증가하면 서비스의 안정성이 저하될 수 있다. 광고 및 추적 일부 무료 VPN은 광고를 삽입하거나 사용자의 온라인 활동을 추적하여 광고주에게 판매할 수 있다. 이 경우 사용자가 광고를 보아야 하거나 개인 정보를 노출해야 할 수도 있다. 제한된 기능 무료 VPN은 유료 버전에 비해 기능이 제한될 수 있다. 예를 들어, 특정 프로토콜이나 고급 보안 기능을 지원하지 않는 경우가 그렇다. 유료 VPN의 필요성 최근 유행하는 로맨스 스캠은 인터넷 사기의 일종으로, 온라인 데이트나 소셜 미디어를 통해 가짜 프로필을 만들어 상대를 속이는 행위다. 이러한 상황에서 VPN은 사용자가 안전한 연결을 유지하고 사기 행위를 방지하는 데 도움이 된다. VPN을 통해 사용자는 상대방의 신원을 확인하고 의심스러운 활동을 감지할 수 있다. 그 외에도 유료 VPN만의 강점을 적극 이용해야 하는 이유는 다음 3가지로 요약할 수 있다. 보안 강화 해외 여행객이 증가함에 따라 공공 와이파이를 사용하는 경우가 늘어나고 있다. 그러나 공공 와이파이는 보안이 취약해 개인 정보를 노출할 위험이 있다. 따라서 VPN을 사용하여 데이터를 암호화하고 개인 정보를 보호하는 것이 중요하다. 서프샤크 VPN은 사용자의 개인 정보를 안전하게 유지하고 해킹을 방지하는 데 유용하다. 개인 정보 보호 인터넷 사용자의 검색 기록과 콘텐츠 소비 패턴은 플랫폼에 의해 추적될 수 있다. VPN을 사용하면 사용자의 IP 주소와 로그를 숨길 수 있으며, 개인 정보를 보호할 수 있다. 또한 VPN은 사용자의 위치를 숨기고 인터넷 활동을 익명으로 유지하는 데 도움이 된다. 지역 제한 해제 해외 여행 중에도 한국에서 송금이 필요한 경우가 생길 수 있다. 그러나 IP가 해외 주소이므로 은행 앱에 접근하는 것이 제한될 수 있다. VPN을 사용하면 지역 제한을 해제해 해외에서도 한국 인터넷 서비스를 이용할 수 있다. 따라서 해외에서도 안전하고 편리하게 인터넷을 이용할 수 있다. 빠르고 안전한 유료 VPN, 서프샤크 VPN 뛰어난 보안 서프샤크 VPN은 강력한 암호화 기술을 사용하여 사용자의 인터넷 연결을 안전하게 보호한다. 이는 사용자의 개인 정보와 데이터를 보호하고 외부 공격으로부터 사용자를 보호하는 데 도움이 된다. 다양한 서버 위치 서프샤크 VPN은 전 세계 곳곳에 여러 서버가 위치하고 있어, 사용자가 지역 제한된 콘텐츠에 액세스할 수 있다. 해외에서도 로컬 콘텐츠에 손쉽게 접근할 수 있음은 물론이다. 속도와 대역폭 서프샤크 VPN은 빠른 속도와 무제한 대역폭을 제공하여 사용자가 원활한 인터넷 경험을 누릴 수 있도록 지원한다. 온라인 게임, 스트리밍, 다운로드 등 대역폭이 필요한 활동에 이상적이다. 다양한 플랫폼 지원 서프샤크 VPN은 다양한 플랫폼 및 디바이스에서 사용할 수 있다. 윈도우, 맥OS, iOS, 안드로이드 등 다양한 운영체제 및 디바이스에서 호환되어 사용자가 어디서나 안전한 인터넷을 즐길 수 있다. 디바이스 무제한 연결 서프샤크 VPN은 무제한 연결을 제공하여 사용자가 필요할 때 언제든지 디바이스의 갯수에 상관없이 VPN을 사용할 수 있다.