메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

인공지능 프로젝트의 자동화⋯머신러닝 파이프라인이 뭔데?

한빛미디어

|

2021-11-01

|

by 하네스 하프케 외

15,614

 

 

언젠가 영화 속에서 등장했던 인공지능이란 단어가 어느덧 우리 곁에 가까이 다가와 자연스럽게 생활 속으로 스며들고 있습니다. 

 

활발하게 연구되고 있는 자율주행차에도, 빠르게 확장되고 변화하고 있는 물류센터에도, 스마트 공장이나 스마트 시티라는 개념 속에도 인공지능 기술은 빠지지 않습니다. 비단 산업뿐 아니라 가깝게는 인공지능 스피커가, 누구나 들고 다니는 스마트폰 속에, 다양한 웹이나 애플리케이션 서비스에 이르기까지, 인공지능은 우리 삶에 빠르게 일반화되어가고 있습니다. 

 

그래서 머신러닝딥러닝을 이야기하는 사람들이 늘어나고, 기술을 이해하고 공부하려는 사람도 많아졌습니다. 어쩌면 미래의 먹거리는 인공지능에 있기 때문일 것입니다. 인공지능은 사람의 손으로 연구되고 개발됩니다. 그런 인공지능을 만드는 데도 자동화 프로세스를 적용할 수 있습니다. 머신러닝 파이프라인이 그 역할을 수행합니다. 

 

국내외 인공지능 분야에서 일하는 전문가들의 입을 통해 '인공지능의 미래'와 인공지능 개발과 관리를 자동화하는 '머신러닝 파이프라인'에 대해 들어봅니다. 

 

 

  

 인공지능의 미래 

- 송호연, 뤼이드 VP of AIOps -

 

프로젝트를 진행하면 항상 자동화를 먼저 생각합니다. 계속 자동화에 집중하다 보니, 자동화할 수 있는 업무의 패턴을 익히기 시작했습니다. 그리곤 인공지능(AI) 프로젝트는 상당히 많은 부분을 자동화 소프트웨어로 대체할 수 있다는 사실을 깨달았습니다.

 

인공지능 회사의 핵심 역량은 ‘탐색’과 ‘학습’의 영역에 있다고 믿습니다. 지금은 어려워 보이지만, 사실 지도 학습(supervised learning)으로 분류되는 대부분의 문제는 쉬운 편입니다. 시간과 돈의 문제일 뿐이죠. 그리고 대부분 자동화될 것입니다.

 

mockup-g487cf6f77_640.jpg

 

제가 생각하는 인공지능 프로젝트의 미래는 이렇습니다. 

 

1) 인공지능 비즈니스를 하는 프로젝트 매니저가 문제를 정의하여 프로젝트를 등록합니다. 

2) AutoML을 수행하는 인공지능 에이전트가 해당 문제를 확인합니다.

3) 해당 태스크에 얼마만큼의 리소스를 사용할지 사람에게 컨펌받습니다.

4) 결국 사람이 문제정의만 해두면 인공지능 에이전트가 스스로 모델을 디자인합니다. 

5) 피처 엔지니어링을 수행해 사용할 기능을 정의합니다.

6) 하이퍼파라미터를 최적화합니다.

7) 학습한 모델을 평가합니다.

8) 가장 좋은 모델을 배포합니다.

9) 라이브 모델의 성능을 지속해서 모니터링합니다.

 

우리는 문제를 정의해주고, 데이터와 목푯값을 정해주면 됩니다. 너무 이상적인가요? 하지만 분명히 미래에는 대부분의 간단한 문제가 다 저렇게 풀릴 겁니다. 

 

사실 위의 시나리오를 가능하게 하려면, 기본적으로 ‘머신러닝 파이프라인’을 세팅해야 합니다. 또한 메타 방법이라고 볼 수 있는 AutoML 기술에도 신경 써야 하죠. 

 

      

자동차와 파이프라인 

- 오렐리앙 제롱(Aurélien Géron), 전 유튜브 동영상 분류 팀장, 『핸즈온 머신러닝』의 저자 -

 

1913년, 헨리 포드 회사에서 포드의 전설적인 모델 T 생산용 첫 조립 라인을 만들었습니다. 조립 라인 덕분에 자동차 조립 시간이 12시간에서 3시간으로 줄었습니다. 비용이 대폭 절감되어 모델 T는 최초의 저렴한 자동차가 되었습니다. 또한 대량 생산이 가능해져서 도로에 모델 T가 넘쳐났습니다.

 

생산 공정을 ‘잘 정의한 단계(파이프라인, pipeline)’로 정립했기 때문에 여러 단계 중 일부를 자동화해서 시간과 비용을 절감했습니다. 현재 자동차는 대부분 기계로 만듭니다. 

 

cars-g03983e047_640.jpg

 

그러나 시간과 비용만의 문제는 아닙니다. 반복 작업에 있어서는 기계가 인간보다 일관된 결과를 만들어 예측 가능하고 신뢰할 수 있는 제품을 만들 수 있습니다. 노동자가 중장비를 다루는 업무를 줄일 수 있어서 안전하면서 더 높은 수준의 작업을 수행하게 되었습니다.

 

지난 몇십 년 동안 소프트웨어 업계에서 자동차 제조의 역사는 반복됐습니다. 현재 중요한 소프트웨어는 대부분 젠킨스(Jenkins)나 트래비스(Travis)와 같은 자동화 도구를 사용하여 제작하고 테스트하여 배포합니다. 소프트웨어는 단순히 배포한 뒤 끝나는 것이 아니라 정기적으로 모니터링, 유지 관리, 업데이트되어야 합니다. 

 

소프트웨어 파이프라인은 정적 생산 라인보다는 동적 루프에 가깝습니다. 소프트웨어(파이프라인 자체)를 손상하지 않고 신속하게 업데이트할 수 있어야 합니다. ‘전통적인’ 자동화 도구는 전체 머신러닝 파이프라인을 처리하기에 적합하지 않습니다. 머신러닝 모델은 일반적인 소프트웨어가 아니기 때문입니다.

 

1) 대부분의 작업은 훈련된 데이터에 의해 구동되기에 학습 데이터 자체를 코드로 취급해야 합니다(예: 버전 관리). 새로운 데이터는 매일 (자주 대량으로) 나타나며, 시간이 지나면서 진화하고 표류하며, 개인 데이터를 포함하며, 감독된 학습 알고리즘에 공급하기 전에 레이블을 표시해야 하므로 까다로운 문제입니다.

 

2) 모델의 동작은 매우 불투명합니다. 모델은 일부 데이터에서는 모든 테스트를 통과하지만 다른 데이터에서는 완전히 실패할 수 있습니다. 따라서 테스트에서 모델이 프로덕션에 사용될 모든 데이터 도메인을 포함하는지 확인해야 합니다. 특히 일부 사용자를 차별하지 않도록 해야 합니다.

 

이런 이유로 데이터 과학자와 소프트웨어 엔지니어는 먼저 머신러닝 모델을 수동으로 제작하고 학습하기 시작했습니다. TFX(TensorFlow Extended)와 쿠브플로와 같은 새로운 자동화 도구가 점차 개발되어 머신러닝 파이프라인의 과제를 해결했습니다. 더 많은 조직에서 이런 도구를 사용하여 머신러닝 모델 구축 및 학습에 관련된 대부분의 단계를 자동화하는 머신러닝 파이프라인을 만들기 시작했습니다. 

 

이런 자동화의 이점은 대부분 자동차 업계와 같습니다. 시간과 비용을 절약할 수 있죠. 또한 더 우수하고 더 안정적이고 안전한 모델을 제작하며, 데이터를 복사하거나 학습 곡선을 보는 일보다 더 유용한 작업을 수행하는 데 더 많은 시간을 할애할 수 있도록 합니다. 

 

 

        

머신러닝 파이프라인이란 무엇인가?

- 하네스 하프케(Hannes Hapke), SAP Concur의 Concur Labs 수석 데이터 과학자, wunderbar.ai 창시자 -

- 캐서린 넬슨(Catherine Nelson), SAP Concur의 Concur Labs 수석 데이터 과학자 -

 

지난 몇 년 동안 머신러닝 분야는 놀랍게 발전했습니다. 그래픽 처리 장치(GPU)의 광범위한 가용성과 BERT(Bidirectional Encoder Representations from Transformers)와 같은 트랜스포머(transformer)나 DCGAN(Deep Convolutional GAN)과 같은 GAN(sGenerative Abidarical Networks) 등 새로운 딥러닝 개념의 등장으로 AI 프로젝트의 수가 급증했습니다. 

 

AI 스타트업의 수는 어마어마게 많아졌습니다. 최신 머신러닝 개념은 각 조직의 모든 종류의 비즈니스 문제에 더욱 많이 적용되고 있습니다. (그래서인지) 가장 뛰어난 머신러닝 솔루션 사용에 급급해진 가운데, 관심을 덜 받은 몇 가지 상황을 관찰할 수 있었습니다.

 

데이터 과학자와 머신러닝 엔지니어가 개발 속도를 높이고, 재사용하고, 관리 및 배포하는 데 활용할 개념과 도구에 관한 좋은 자료가 부족함을 확인할 수 있었습니다. 지금 필요한 것은 머신러닝 파이프라인의 표준화입니다. 

 

머신러닝 파이프라인

머신러닝 파이프라인은 머신러닝 모델을 가속, 재사용, 관리 및 배포하는 프로세스를 구현하고 표준화합니다. 10여 년 전쯤에는 지속적인 통합(CI, Continuous Integration)과 지속적인 배포(CD, Continuous Deployment)를 도입하면서 앞서 언급했던 것과 동일한 변화를 겪었습니다. 예전에는 웹 앱을 테스트하고 배포하는 데 오랜 시간이 걸렸습니다. 오늘날 이런 프로세스는 몇 개의 도구와 개념 덕분에 크게 간소화되었습니다. 

 

이전에는 웹 앱을 배포할 때 데브옵스(DevOps) 엔지니어와 소프트웨어 개발자 간의 협업이 필요했습니다. 오늘날에는 몇 분만에 앱을 안정적으로 테스트하고 구현할 수 있습니다. 데이터 과학자와 머신러닝 엔지니어는 소프트웨어 엔지니어링에서 워크플로에 대해 여러 가지를 경험하고 배울 수 있습니다.

 

개인적인 경험으로 볼 때, 모델을 프로덕션에 배포하는 것을 목표로 하는 대부분의 데이터 과학 프로젝트는 대규모 팀을 갖추지 못한 경우가 많습니다. 따라서 처음부터 사내 파이프라인을 구축하기가 어렵습니다. 

 

이는 '시간이 지나면서 머신러닝 프로젝트의 성능이 저하'되거나, '기본 데이터가 변경되었을 때 데이터 과학자가 오류를 수정하는 데 많은 시간을 할애'하거나, '모델이 널리 사용되지 않는 일회성 작업으로 변한다'는 뜻과 같습니다. 

 

dominoes-gf30a4d3c0_640.jpg

 

자동화되고 재현 가능한 파이프라인은 모델의 배포를 도와줍니다. 파이프라인에는 다음 단계가 있어야 합니다.

 

● 데이터를 효율적으로 버전화하고 새로운 모델 학습 실행을 시작

● 새로운 데이터의 유효성을 확인하고 데이터 드리프트를 확인 

● 모델 학습 및 검증을 위해 데이터를 효율적으로 전처리 

● 머신러닝 모델을 효과적으로 학습 

● 모델 학습을 추적 

● 학습시키고 튜닝된 모델을 분석하고 검증 

● 검증된 모델을 배포 

● 배포된 모델을 스케일링 

● 피드백 루프를 사용해 새로운 학습 데이터를 수집하고 성과 지표를 모델링 

 

머신러닝 파이프라인의 필요성

모델 생애 주기(Model Lifecycle) 단계를 자동화할 수 있다는 점은 머신러닝 파이프라인의 주요 이점입니다. 

 

새로운 훈련 데이터를 사용하려면 데이터 검증, 전처리, 모델 훈련, 분석 및 배포를 포함하는 워크플로를 재설정해야 합니다. 많은 데이터 과학팀이 이런 단계를 수작업으로 수행합니다. 하지만 비용이 많이 들고 오류를 발생시키기도 하죠. 

 

머신러닝 파이프라인의 이점을 살펴보면 다음과 같습니다. 

 

기존 모델 유지보수에서 벗어나 새 모델에 집중할 수 있는 능력

자동화된 머신러닝 파이프라인을 사용하면 데이터 과학자가 기존 모델을 유지보수하지 않아도 됩니다. 많은 데이터 과학자가 이전에 개발한 모델을 최신 상태로 유지하는 데 많은 시간을 소비합니다. 스크립트를 수동으로 실행하여 학습 데이터를 전처리하거나, 일회성 배포 스크립트를 작성하거나, 모델을 수동으로 조정해왔죠. 자동화된 파이프라인을 사용하면 불필요한 반복 작업에서 벗어나 본질적인 업무인 새로운 모델 개발에 더 많은 시간을 투자할 수 있습니다. 궁극적으로는 직업 만족도가 높아지고 구직 시장에서 높은 경쟁력을 유지하게 해줍니다.

 

버그 예방

자동화된 파이프라인은 버그를 예방합니다. 새로 생성된 모델은 버전이 지정된 데이터셋에 연결되고 전처리 단계는 개발된 모델에 연결됩니다. 즉, 새 데이터가 수집되면 새 모델이 생성됩니다. 전처리 단계가 업데이트되면 학습 데이터가 무효화되고 새 모델이 생성됩니다. 수동 머신러닝 워크플로에서 버그는 일반적으로 모델이 학습된 후 변경되는 전처리 단계 때문에 발생합니다. 이때 모델을 학습할 때와 다른 처리 지침으로 모델을 배포합니다. 여전히 모델은 추론하지만, 부정확하기 때문에 이런 버그는 디버깅하기 어렵습니다. 자동화된 워크플로를 사용하면 이런 오류를 방지할 수 있습니다.

 

버전 관리 문서화

실험 추적과 모델 배포 관리는 모델 변경에 관한 버전 관리 문서를 생성합니다. 실험 추적은 모델의 하이퍼파라미터, 사용된 데이터셋과 결과 모델 측정 항목(예: 오차, 정확도)의 변경 사항을 기록합니다. 모델 배포 관리는 궁극적으로 어떤 모델을 선택하고 배포했는지를 추적합니다. 이런 버전 관리 문서는 데이터 과학팀이 모델을 다시 생성하거나 모델의 성능을 추적할 때 특히 유용합니다.

 

표준화

표준화된 머신러닝 파이프라인은 데이터 과학팀의 경험을 개선합니다. 표준화된 설정 덕분에 업무 적응이 빨라지고 팀 간 이동 시에도 동일한 개발 환경에서 일을 이어갈 수 있습니다. 따라서 효율성이 높아지고 새 프로젝트를 설정하는 데 소요되는 시간이 줄어듭니다. 머신러닝 파이프라인을 구축하는 데 시간을 투자하면 프로젝트의 수명을 높이는 데도 도움을 줄 수 있습니다.

 

파이프라인의 비즈니스 사례

자동화된 머신러닝 파이프라인의 구현이 데이터 과학팀에 미치는 주요 영향은 다음과 같습니다.

 

- 새로운 모델 개발 시간 확보

- 기존 모델을 더 간단한 프로세스로 업데이트

- 모델 재현에 소요되는 시간 단축

 

이런 측면은 데이터 과학 프로젝트의 비용을 절감해줍니다. 또한 자동화된 머신러닝 파이프라인은 다음을 수행합니다.

 

1) 데이터셋이나 학습된 모델에서 잠재적인 편향을 감지하는 데 도움이 됩니다. 편향을 발견하면 모델과 상호 작용하는 사람들의 피해를 방지할 수 있습니다. 예를 들어, 아마존의 머신러닝 기반 이력서 평가 시스템은 여성에 대한 안 좋은 선입견을 가지고 있었습니다.

 

2) EU의 일반 데이터 보호 규정(GDPR)과 같은 데이터 보호법과 관련한 질문이 있을 때 도움이 되는 문서 추적을 (실험 추적과 모델 배포 관리를 통해) 만듭니다. 

 

3) 데이터 과학자의 개발 시간을 확보하고 업무 만족도를 높입니다.

 

머신러닝 파이프라인을 고려해야 할 시기는?

머신러닝 파이프라인은 다양한 이점을 제공하지만, 모든 데이터 과학 프로젝트에 필요하지는 않습니다. 데이터 과학자들은 때때로 단순히 새로운 모델을 실험하거나, 새로운 모델 아키텍처를 조사하거나, 최신 논문을 재현합니다. 이런 때에는 파이프라인이 유용하지 않습니다. 

 

그러나 모델에 사용자가 있다면(예: 앱에서 사용 중) 지속적인 업데이트와 세부 조정을 해야 합니다. 이런 상황에서는 모델을 지속적으로 업데이트하고 데이터 과학자의 작업 부담을 줄여야 한다는 점에서 머신러닝 파이프라인이 유용합니다.

 

머신러닝 프로젝트의 수가 증가할수록 머신러닝 파이프라인이 더욱 중요해집니다. 데이터셋이나 리소스 요구 사항이 크다면 앞에서 논의한 접근 방식을 사용해 인프라를 쉽게 확장할 수 있습니다. 반복성이 중요할 때는 머신러닝 파이프라인의 자동화와 감사 추적을 통해 이를 제공합니다.

 

머신러닝 파이프라인 단계

머신러닝 파이프라인은 새로운 학습 데이터 수집으로 시작하여 새로 학습된 모델이 어떻게 작동하는지에 관한 피드백 받기로 끝납니다. 이 피드백은 프로덕션 성능 지표나 제품 사용자의 피드백일 수 있습니다. 

 

파이프라인에는 데이터 전처리, 모델 학습과 모델 분석, 모델 배포 등 다양한 단계가 포함됩니다. 이런 단계를 수동으로 수행하기란 번거롭고 오류가 발생하기 쉽습니다. 

 

머신러닝 파이프라인 아키텍처)_500.png

[그림 : 머신러닝 파이프라인 아키텍처]

 

파이프라인은 반복되는 주기입니다. 데이터를 지속적으로 수집할 수 있으므로 머신러닝 모델도 지속적으로 업데이트할 수 있습니다. 

 

일반적으로 데이터가 많을수록 모델이 개선됩니다. 이런 지속적인 데이터 유입 때문에 자동화가 핵심입니다. 실제 애플리케이션에서는 모델을 자주 재학습합니다. 그렇지 않으면 모델이 예측하는 새 데이터와 학습 데이터가 달라서 정확도가 낮아지겠죠. 

 

재학습이 새로운 학습 데이터를 수동으로 검증하거나 업데이트된 모델을 분석해야 하는 수동 프로세스일 때, 데이터 과학자나 머신러닝 엔지니어는 전혀 다른 비즈니스 문제에 적용할 새로운 모델을 개발할 시간을 내기 어렵습니다.

 

 


 

이 글은 <살아 움직이는 머신러닝 파이프라인 설계> 도서 내용 일부를 발췌 편집하여 작성되었습니다. 머신러닝 파이프라인에 대한 보다 자세한 정보는 하기 책에서 만나볼 수 있습니다. 

 

표지_살아 움직이는 머신러닝 파이프라인 설계_300.jpg

『살아 움직이는 머신러닝 파이프라인 설계

댓글 입력
자료실