메타 방법과 머신러닝 파이프라인이 필요한 이유
작년 글에서 제 커리어 방향성을 이야기하며 '업의 본질'에 대해서 이야기한 적이 있습니다.
https://brunch.co.kr/@chris-song/87
저는 제 삶의 방향성에 대해 고민을 많이 하는 편입니다. 어떤 질문을 머리 속에 넣고 끊임없이 고민하고 숙성시키다 보면, 어느 순간 머릿 속에서 나는 내 삶의 방향에 대한 어떤 힌트들을 얻게됩니다. 그 고민의 결과인 두 번째 커리어 주제, 컴퓨팅 성능에 기반한 인공지능 (AI leveraging computation)에 대해 이야기해보겠습니다.
저번 글에서 말씀 드렸듯이, 제 커리어의 방향은 크게 3 가지로 정의됩니다.
- 업의 본질 (The Essence of a Business)
- 컴퓨팅 성능에 기반한 AI (AI leveraging computation)
- 범용 인공 지능 (Artificial General Intelligence)
컴퓨팅 성능에 기반한 인공지능이라는 단어는 강화학습의 아버지, 리차드 서튼 교수님의 "쓰라린 교훈" 이라는 글에서 강한 영향을 받았습니다.
https://newsight.tistory.com/302
씁쓸한 교훈에서 배워야 할 한 가지는 일반적인 목적의 방법론, 즉 사용 가능한 계산이 매우 커짐에 따라 계속해서 확장되는 방법의 위대한 힘이다. 이렇게 마구 확장하는 것처럼 보이는 두가지 방법은 바로 탐색과 학습이다. - 리차드 서튼
저는 프로젝트를 진행하면 항상 자동화를 먼저 생각합니다. 계속 자동화에 집중하다보니, 자동화 가능한 업무의 패턴을 익히기 시작했습니다. 그리고 놀랍게도, 인공지능 프로젝트는 상당히 많은 부분이 자동화 소프트웨어로 대체할 수 있다는 사실을 깨달았습니다.
저는 인공지능 회사의 핵심 역량은 "탐색"과 "학습"의 영역에 있다고 믿습니다.
지금은 어려워보이지만, 사실 지도학습(Supervised Learning)으로 분류되는 대부분의 문제는 쉬운 편입니다. 사실, 시간과 돈의 문제입니다. 그리고 대부분 자동화될 것입니다.
제가 생각하는 인공지능 프로젝트의 미래는 이렇습니다.
1) 인공지능 비즈니스를 하는 프로젝트 매니저가 문제를 정의하여 프로젝트를 등록합니다.
2) AutoML을 수행하는 인공지능 에이전트가 해당 문제를 확인합니다.
3) 해당 태스크에 얼마만큼의 자원을 사용할 지 사람에게 컨펌받습니다.
(Resource Management)
4) 결국 사람이 문제정의만 해두면 인공지능 에이전트가 스스로 모델을 디자인하고
(Neural Architecture Search, NAS)
5) 피쳐 엔지니어링을 수행해 사용할 피쳐를 정의하고 (Feature Engineering)
6) 하이퍼파라미터를 최적화하여 (Hyper Parameter Optimization)
7) 학습한 모델은 평가한 후 (Model Evaluation)
8) 가장 좋은 모델을 배포하게 될 것입니다. (Model Deploy)
9) 그리고 라이브 모델의 성능을 지속적으로 모니터링 합니다.
우리는 문제를 정의해주고, 데이터와 목표값을 정해주면 됩니다. 너무 이상적인가요? ㅎㅎ
하지만, 미래에 대부분의 간단한 문제들은 분명히 저렇게 다 풀릴 겁니다.
사실 위의 시나리오를 가능하게 하려면, 기본적으로 세팅해야하는 것이 바로 "머신러닝 파이프라인"입니다. 또 신경써야 하는 기술은 메타 방법이라고 볼 수 있는 AutoML 기술이죠. 그리고 우리는 AutoML 에이전트에게 학습을 하는 방법을 가르쳐주게 됩니다. 우리는 메타 방법들을 만들어야 합니다.
우리는 AI agent들이 우리처럼 발견할 수 있기를 원하지, 우리가 여태까지 발견했던 것들을 담고 있기를 원하지 않는다. - 리차드 서튼
머신러닝 파이프라인에 대해서 아직 좋은 자료가 없었는데, 최근에 오라일리에서 'Building Machine Learning Pipelines: Automating Model Life Cycles with TensorFlow' 라는 책을 출간하였습니다.
아직 개념 정립이 제대로 되지 않은 기술 분야이고, 표준이 잡힌 상태가 아니기 때문에-
여러분이 Tensorflow를 쓰든 PyTorch를 쓰시든, 이 책을 통해서 머신러닝 파이프라인의 필요성에 대해서 이해하실 수 있게 되기를 바랍니다.
https://www.amazon.com/Building-Machine-Learning-Pipelines-Automating/dp/1492053198
Building Machine Learning Pipelines 이 책을 제가 자기 수양 용으로 번역을 시작해보려고 하는데, "왜 머신러닝 파이프라인이 필요한가요?" 이 부분은 많은 분들이 보시면 도움이 될 거 같아 공유드립니다.
머신러닝 파이프 라인의 주요 이점은 모델 라이프사이클 단계의 자동화에 있습니다. 새로운 훈련 데이터를 사용할 수 있게 되면 데이터 검증, 전처리, 모델 훈련, 분석 및 배포를 포함하는 워크 플로우가 같이 재설정되어야 합니다. 우리는 너무 많은 데이터 과학자 팀이 이러한 단계를 수작업으로 수행하는 것을 관찰했습니다. 이는 비용이 많이 들고 오류의 원인이기도합니다. 우선, 머신러닝 파이프 라인의 이점에 대해 자세히 살펴 보겠습니다.
자동화 된 머신러닝 파이프 라인을 통해 데이터 과학자가 기존 모델을 유지보수하지 않아도됩니다. 우리는 너무 많은 데이터 과학자들이 이전에 개발 된 모델을 최신 상태로 유지하는 데 시간을 보내는 것을 관찰했습니다. 데이터 과학자들은 스크립트를 수동으로 실행하여 학습 데이터를 사전 처리하거나 일회성 배포 스크립트를 작성하거나 모델을 수동으로 조정해왔습니다. 자동화된 파이프 라인을 통해 데이터 과학자는 불필요한 반복 작업에서 벗어나 본질적인 업무인 새로운 모델 개발에 더 많은 시간을 투자할 수 있게 됩니다. 궁극적으로 이것은 경쟁이 심화된 구직 시장에서 더 높은 직업 만족도와 커리어 발전으로 이어질 것입니다.
자동화 된 파이프 라인은 버그를 예방할 수 있습니다. 이후 장에서 볼 수 있듯이 새로 생성 된 모델은 버전이 지정된 데이터 세트에 연결되고 전처리 단계는 개발 된 모델에 연결됩니다. 즉, 새 데이터가 수집되면 새 모델이 생성됩니다. 전처리 단계가 업데이트되면 학습 데이터가 무효화되고 새 모델이 생성됩니다. 수동 머신러닝 워크플로에서 버그의 일반적인 원인은 모델 학습 후 전처리 단계의 변경입니다. 이 경우 모델을 학습 한 것과 다른 처리 지침으로 모델을 배포합니다. 이러한 버그는 모델 추론이 여전히 가능하기 때문에 디버깅 하기가 정말 어려울 수 있지만 단순히 잘못되었습니다. 자동화 된 워크 플로우를 통해 이러한 오류를 방지 할 수 있습니다.
실험 추적 및 모델 릴리스 관리는 모델 변경에 대한 문서 추적을 생성합니다. 실험은 모델의 초 매개 변수, 사용 된 데이터 세트 및 결과 모델 측정 항목 (예 : 손실 또는 정확도)에 대한 변경 사항을 기록합니다. 모델 릴리스 관리는 어떤 모델이 궁극적으로 선택되고 배포되었는지 추적합니다. 이 문서 추적은 데이터 과학 팀이 모델을 다시 생성하거나 모델의 성능을 추적해야하는 경우 특히 유용합니다.
표준화 된 머신러닝 파이프 라인은 데이터 과학자 팀의 경험을 개선합니다. 표준화 된 설정으로 인해 데이터 과학자는 빠르게 온보딩 되거나 팀 간에 이동하여 동일한 개발 환경에서 일을 이어갈 수 있습니다. 이렇게하면 효율성이 향상되고 새 프로젝트를 설정하는 데 소요되는 시간이 줄어 듭니다. 머신러닝 파이프 라인을 설정하는 데 시간을 투자하면 팀원의 잔존율을 높이는 데도 도움을 줄 수 있습니다.
자동화 된 머신러닝 파이프 라인의 구현은 데이터 과학 팀에 다음과 같은 세 가지 주요 영향으로 이어질 것입니다.
새로운 모델의 개발 시간 확보
기존 모델을 업데이트하는 더 간단한 프로세스
모델 재현에 소요되는 시간 감소
이러한 모든 측면은 데이터 과학 프로젝트의 비용을 절감 할 것입니다. 또한 자동화 된 머신러닝 파이프 라인은 다음을 수행합니다.
데이터 세트 또는 학습 된 모델에서 잠재적 인 편향을 감지하는 데 도움이됩니다. 편향을 발견하면 모델과 상호 작용하는 사람들의 피해를 방지 할 수 있습니다. 예를 들어, Amazon의 머신러닝 기반 이력서 스크리너는 여성에게 편향된 것으로 밝혀졌습니다.
유럽의 GDPR (일반 데이터 보호 규정)과 같은 데이터 보호법과 관련하여 질문이있을 경우 도움이되는 문서 추적 (실험 추적 및 모델 릴리스 관리를 통해)을 만듭니다.
데이터 과학자의 개발 시간을 확보하고 업무 만족도를 높입니다.