Offcanvas

AI / How To / 머신러닝|딥러닝

'데이터 입력, 지능 출력' 알기 쉽게 설명하는 머신러닝 파이프라인

2017.06.14 Serdar Yegulalp  |  InfoWorld


데이터 흡수 및 준비 단계를 진행하면서 감안해야 할 또 다른 점은 데이터, 데이터의 정규화, 또는 두 가지 모두를 통해 모델에 편견이 유입될 수 있다는 것이다. 머신러닝의 편견은 현실적인 결과로 이어진다. 따라서 편견이 존재할 수 있는 부분에서 편견을 찾아 제거하는 방법을 알면 도움이 된다. 정돈된(읽을 수 있으며 일관적인) 데이터는 곧 편견 없는 데이터라는 전제는 절대 금물이다.

머신러닝 모델 교육
데이터 집합을 완성했다면 다음 단계는 교육 과정이다. 교육 과정에서는 데이터를 사용해 예측을 위한 모델을 생성한다.

일련의 데이터로 한 번에 교육하는 모델이 필요한지, 증분 재교육되는 모델이 필요한지에 따라 예측 작업의 유형과 사용되는 알고리즘의 종류가 중요하다는 점은 앞서 언급했다. 그러나 모델 교육에 있어 또 한가지 중요한 측면은 결과 모델의 정확도 향상을 위해 교육을 튜닝하는 방법이다. 이것을 하이퍼파라미터화(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

CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.