인공지능 서비스를 지탱하는 기술(AIOps) : 인공지능 서비스 실현의 현실
당연히 받아들여지는 자연적인 현상에 따라, 서비스 사용자는 “건강한” 모델도 당연한 것이며 유지도 어렵지 않다고 간주하곤 합니다. 하지만 실제로 이는 기술적으로 꽤 어려운 문제입니다.
글ㆍ사진 박찬성(프로그래머)
2022.05.06
작게
크게

책 쓰는 프로그래머 박찬성이 IT 트렌드를 알려줍니다.
어렵게만 느껴졌던 IT 이슈를 쉽게 풀어주는 본 칼럼은 매달 연재됩니다.


이 칼럼은 세 편으로 구성된 시리즈 중 두 번째로, “인공지능과 테이터의 관계”를 다룬 첫 번째 칼럼은 여기에서 확인해 보기 바랍니다. 

첫 번째 칼럼에서는 데이터가 변하는 자연적 특성 때문에, 한 시점에 만든 인공지능 모델은 그 시점만 가장 잘 표현한 스냅샷에 불과하다는 것, 그리고 인공지능이 도입된 서비스는 모델을 항상 건강한 상태로 유지하는 책임과 노력이 필요하다는 것을 이야기했습니다. 한편 당연히 받아들여지는 자연적인 현상에 따라, 서비스 사용자는 “건강한” 모델도 당연한 것이며 유지도 어렵지 않다고 간주하곤 합니다. 하지만 실제로 이는 기술적으로 꽤 어려운 문제입니다. 


인공지능 서비스가 어려운 이유

매일 더 뛰어난 모델이 계속 등장한다는 뉴스가 사방에서 들려오기 때문에, 모델을 항상 최신 상태로 유지하는 것은 어렵지 않은 일처럼 들릴지도 모릅니다. 그리고 사실 서비스 사용자 입장에서는 “당연히" 그래야 한다고 느끼기 마련입니다. 하지만 실제로 모델을 건강한 상태로 유지하는 일은 그리 녹록지 않습니다. 그 이유는 인공지능 모델 자체보다 고려해야 할 부분이 더 많음은 물론, 점점 더 비대해지는 초거대 규모의 모델을 학습시키는 데 천문학적으로 많은 비용이 발생하기 때문입니다. 

인공지능을 서비스화 하는 데 필요한 다양한 요소, 모델링에 필요한 코드가 차지하는 부분이 극히 적다는 것을 강조하여 보여줌(출처: Hidden Technical Debt in Machine Learning Systems, NIPS 2015)

여기서는 그중 몇 가지 고려 사항을 살펴봅니다. 먼저 인공지능 모델을 만들고, 이를 알맞은 환경에 배포하는 데는 일련의 작업 흐름을 구성하는 각 구성 요소를 정의해야 합니다. 적어도 학습할 데이터를 수용하고, 데이터에 문제가 없음을 검증하고, 모델이 학습하기 좋은 형태로 변형하고, 모델을 학습시키고, 초매개변수(hyperparameter)를 튜닝하고, 원하는 환경으로 학습된 모델을 배포하는 과정이 필요하죠. 

이런 일련의 각 로직을 처리하는 코드를 작성하기만 하면 문제는 쉽게 풀릴 수 있을 것처럼 보일지도 모릅니다. 그러나 모델을 학습시키는 데 드는 비용은 계속 증가하는 추세이기 때문에, 모든 과정을 고가의 단일 하드웨어서 처리하는 것은 꽤 비효율적인 일입니다. 따라서 단계별 로직을 처리하는 데 가장 알맞은 하드웨어 자원을 할당해서 비용을 최소화하는 노력이 필요합니다. 

데이터 수용 및 검증에는 비교적 작은 계산 자원(하드웨어 리소스), 데이터의 변형 및 정제에는 비교적 큰 계산 및 메모리 자원, 모델의 학습 및 초매개변수, 튜닝에는 GPU/TPU와 같이 최적화된 매우 고가의 전용 하드웨어 자원이 추가로 필요합니다. 또한 빅데이터 처리와 초거대 규모의 모델을 학습시키려면 여러 계산 자원과 여러 GPU/TPU 자원을 병렬로 연결해 단일 자원의 한계를 극복해야 하는데, 그러려면 이들을 최적화하여 엮는 인프라 기술도 확보되어야만 합니다. 마지막으로 서비스 사용자 양에 따라, 모델의 예측을 처리하는 자원의 규모를 유연하게 키우고 줄일 수 있는 인프라도 지원되어야만 합니다.

인공지능 모델 학습에 특화된 전용 ASIC TPU 클러스터(좌), 단일 하드웨어(우) (출처: 구글)

각각의 목적에 알맞은 하드웨어 자원을 구축하는 일은 시작에 불과합니다. 이러한 자원들을 추상화하여 관리하고 필요에 따라 적재적소에 할당하기 위한 소프트웨어 인프라 기술이 뒷받침 되어야만, 실제 하드웨어 자원을 사용할 연구자 및 개발자가 최소한의 노력으로 최대의 결과를 얻을 수 있습니다. 또한 인공지능은 연구와 개발이 긴밀하게 연관된 분야인 만큼, 연구 결과를 실전에 매끄럽게 마이그레이션 할 수 있어야만 합니다. 더불어 각 파트가 각자의 부분에만 집중하면서 동시에 보안 이슈도 함께 다룰 수 있는 자원 격리 기술도 버무려져야 합니다. 그 외에도 고성능 자원으로 얻은 각 단계별 작업 결과를 재사용할 수 있도록 만드는 기술, 머신러닝 모델이 더 이상 신규 데이터에 대응할 수 없음을 감지하기 위한 모니터링 기술, 전사적으로 공유되면 유용한 모델 또는 피처 벡터를 공유할 수 있는 기술 등 정말 다양한 고려사항을 고민해야만 합니다. 

인공지능이 도입된 서비스를 세상에 내놓기까지는 모델링을 제외하고도 수많은 고민과 노력이 필요하다는 것을 조금이나마 엿볼 수 있었습니다. 한편 인공지능을 도입한 서비스에서 인공지능이 세상을(데이터를) 올바르게 바라보게끔 만들고, 항상 최신 상태로 유지하려는 다양한 방법론의 집합을 AIOps 또는 MLOps, 또는 머신러닝에서의 CI/CD라고 부르기도 합니다. 


인공지능 서비스를 지탱하는 기술, AIOps

그렇다면 실제로 AIOps를 실현하는 데 필요한 실제 기술에는 어떤 것이 있을까요? 앞서 살펴본 모든 고려 사항을 한 번에 다루는 올인원 솔루션은 존재하지 않습니다. 각 요소에 특화된 전문 서비스와 오픈소스 프로젝트 중 나의 비즈니스 요구사항을 가장 잘 반영한 것을 찾고, 이들이 하나인 것처럼 움직이도록 만드는 노력이 있어야만 합니다. 다만 그 종류가 너무나 다양하고, 비교적 신생 분야라는 한계 때문에 미성숙한 경우가 대부분이고 주기적으로 업데이트된 내용을 모니터링하는 등 어려움이 많습니다.

그렇다면 어떤 것을 사용해야 할까요? AIOps 실현에는 어떤 접근법이 좋을까요? 이 내용은 세 번째 칼럼에서 이어서 다루겠습니다.


추천 도서

『머신러닝 엔지니어링』

안드리 부르코프 저 / 구정회 역 | 제이펍(2021)



데이터 수집 및 준비, 특징 공학, 모델의 학습, 학습 결과의 평가, 모델의 배포, 모델의 모니터링과 유지보수에 걸쳐 머신러닝 프로젝트의 전반적인 내용을 포괄적으로 다룹니다. 

소스코드나 실습 위주로 작성된 책은 아니지만, 머신러닝을 도입한 서비스를 개발하는 기획자와 엔지니어가 머신러닝 프로젝트의 전 생애 주기를 이해하는 데 유용한 정보를 많이 담고 있습니다. 기획 중이거나, 진행중인 프로젝트를 점검하거나 자신이 현재 가진 지식을 점검하는 데 유용합니다.



『머신러닝 파워드 애플리케이션』

에마뉘엘 아메장 저 / 박해선 역 | 한빛미디어(2021)



이 책은 머신러닝이 탑재된 애플리케이션을 만들기 위해, End to End로(처음부터 끝까지) 들어가야 하는 노력을 정리해 보여주며, 간단한 실습도 포함되어 있습니다. 

애플리케이션 구축에 필요한 모든 요소에 동일한 가중치를 두고 설명합니다. 즉 데이터 수집, 모델링, 배포, 모니터링 등에서 한 부분에만 집중하지 않기 때문에, 성공적인 애플리케이션 구축을 위해서는 “모든 부분이 중요하다”라는 사실을 묵시적으로 뇌리에 잘 심어줍니다. 또한 머신러닝이 실패하는 상황을 “우아하게” 대처하기 위해 머신러닝의 도입 이전에 고려할 노력, 그리고 머신러닝을 도입한 후에는 이를 제대로 운용하기 위한 반복적인 노력의 중요성을 잘 보여주고 있습니다.



머신러닝 엔지니어링
머신러닝 엔지니어링
안드리 부르코프 저 | 구정회 역
제이펍
머신러닝 파워드 애플리케이션
머신러닝 파워드 애플리케이션
에마뉘엘 아메장 저 | 박해선 역
한빛미디어



추천기사





‘대한민국 No.1 문화웹진’ 예스24 채널예스
#채널예스 # 예스24 # 박찬성의쉽게읽는IT트렌드 #인공지능 #머신러닝엔지니어링 #머신러닝파워드애플리케이션 #eBook
0의 댓글
Writer Avatar

박찬성(프로그래머)