전문가칼럼

DBMS, DB 구축 절차, 빅데이터 기술 칼럼, 사례연구 및 세미나 자료를 소개합니다.

AI 서비스 상용화에 따른 운영 및 고도화 전략 - 티맥스에이아이 AI Education 연구본부 정대범 본부장

전문가칼럼
작성자
dataonair
작성일
2021-11-11 10:01
조회
125

AI 서비스 상용화에 따른 운영 및 고도화 전략 (부제: MLOps)

AI 서비스는 새로운 경험, 그러나 쉽지 않은 도입

4차 산업혁명이라는 큰 물결 속에서 디지털 트랜스포메이션(Digital Transformation, DT)이라는 변화의 파도를 몸소 겪고 있고 디지털 전환을 위해 필수적인 요소로 "1) 데이터(Data), 2) 클라우드 (Cloud), 3) 인공지능 (AI)"을 꼽을 수 있다. 그중에서도 AI 기술은 어떤 측면에서는 가장 핵심이라고 해도 과언이 아니다. 왜냐하면, AI 기술은 '새로운 고객 경험'을 제시할 수 있기 때문이다. 기존에 경험하지 못한 편리함을 주기도 하고, 더 나은 만족감을 주기도 한다. 명함 사진을 찍으면 자동으로 OCR을 해서 명함 데이터를 만들어주는 '리멤버' 서비스, 음성인식 기술을 적용한 네이버의 '클로바노트' 등은 일상 업무에서 정말 고마울 정도로 편리하고 행복한 고객 경험을 제공해준다.

그런데 이러한 AI 서비스들은 기존의 일반적인 서비스와는 조금 다른 면이 있는데, 그건 바로 SW 개발 과정에 AI 모델의 학습 과정이 들어간다는 것이다. 예컨대 우리가 영수증 인식 모델을 개발한다고 하자. 그러면 가장 먼저 하는 일이 영수증 이미지를 모으는 일(데이터 수집)일 것이다. 그다음에는 영수증 이미지에 각종 라벨을 다는 작업을 할 것(데이터 가공)이다. 잘 가공된 영수증 이미지를 가지고 모델을 학습한다. 여러 가지 모델을 실험과 평가라는 작업을 반복하면서 컴퓨팅 자원 비용이 저렴하면서 가장 최대의 추론 성능을 제공하는 모델을 선택할 것이다. 또 하이퍼파라미터 튜닝 등의 작업을 거쳐 모델 최적화 작업을 한다. 그리고 최적화된 모델을 서버에 탑재하는 서빙 작업을 통해 실제 AI 서비스 운영할 것이다.

이렇게 잘 알다시피 AI 모델은 수많은 데이터를 원료로 학습된다. 질 좋은 데이터가 풍부하면 풍부할수록 모델의 성능은 고도화된다. 하지만 처음부터 우리가 양질의 데이터를 풍부하게 확보하는 경우는 드물다. 초기 AI 서비스의 정확도가 떨어지는 이유가 바로 여기에 있다.

초기 스타트업에게는 서비스를 빠르게 런칭해서 시장의 반응을 검증하는 것이 매우 중요하다. 시간과 공을 들여 AI 모델의 정확도를 올리는 것도 중요하지만, 시장의 반응이 꼭 모델의 정확도에만 달린 것도 아니고, 검증해야 하는 것이 한둘이 아니다. 하지만 어쨌든 AI 서비스인 만큼 어느 정도 초기 모델 학습을 위해 데이터가 필요하긴 하다. 초기 서비스를 위해 잘 가공된 데이터를 얼마나 모을 수 있을까? 개인 혹은 팀의 역량에 따라 다르겠지만, 잘 가공된 데이터 1,000건을 모으는 것도 어려울 수 있다. 모델 추론에 부족함이 없는 정도의 데이터셋의 양은 모델이 하는 task에 따라 다르겠지만, 일반적인 이미지 인식 task에서 괜찮은 정확도를 가지는 모델을 가지기 위해서는 최소 10,000건의 학습 데이터셋이 필요하다는 걸 생각해보면 조금 부족할 수도 있겠다는 생각이 든다. 하지만 서비스 초창기에 개발하려는 AI 모델의 Feasibility를 검증한다는 차원에서는 충분할 수도 있다.

대신에 이러한 AI 서비스는 유저 데이터가 지속해서 쌓인다는 특징이 있다. 유저들은 영수증 인식 서비스를 사용하면서 자기가 가진 영수증을 제출할 것이다. 모델의 정확도가 떨어져 성능적으로는 불편하지만 그래도 조금씩 사용을 할 것이다. 서비스 시나리오상에서 사용자가 AI 추론 결과를 수정할 수 있도록 업무 흐름을 제공할 수도 있을 것이다. 그러다 보면 어느샌가 초기 모델을 한 단계 더 진화시키기 위한 추가적인 데이터셋을 확보하게 될 것이다.


AI 모델 운영 및 고도화 전략의 필요

이렇게 또 2차적으로 수집된 데이터를 가지고 우리는 처음에 했던 모델 학습 과정을 다시 해볼 수 있을 것이다. 상용화하기에는 부족했던 추론 능력을 한 단계 더 끌어올리기 위해 유저들이 제공한 더 많은 데이터를 활용해서 이제는 더 다양한 영수증을 학습시킬 것이다. 그렇게 향상된 AI 모델을 다시 서빙해서 서비스의 품질을 높였더니 더 많은 유저를 확보하게 되고, 더 많은 데이터셋을 수집하게 되는 선순환 구조가 이루어질 수 있다.

하지만 이렇게 점진적으로 데이터가 쌓이게 되면 상용화 이전에 고민하지 못했던 새로운 고민에 봉착하게 되는데 그것이 바로 지속적인 고도화 전략이다. 모델의 배포 과정(데이터 수집, 정제, 가공, 모델 학습, 평가, 최적화, 서빙)을 생각해보면, 더 나은 모델을 적용해서 실제 서비스하는 것은 꽤 손이 많이 작업임을 알 수 있다. 새로운 데이터를 학습하기 위해 준비해야 하는 작업도 필요하고, 또 여러 가지 모델들을 재학습해서 비교 평가하여 더 나은 모델을 선택해야 한다. 언뜻 보면 새롭지만, 꽤 비슷하고 지루한 작업을 지속해야 하는 것이다. 고객들은 항상 더 나은 서비스를 원하고, 고객의 이용 만족도를 더 높이기 위해서는 발 빠르게 서비스를 개선할 수 있어야 한다. 따라서 새로운 데이터가 나오면 모델을 발 빠르게 고도화할 수 있어야 한다. 단순 반복적인 부분은 자동화하고, 성능 좋은 모델은 바로 서비스로 배포할 수 있어야 한다. 그뿐만일까? SW 개발에서 발생하는 이슈를 관리하는 것처럼 상용화된 모델 서비스의 추론 결과도 실시간으로 모니터링하고 관측할 수 있어야 한다

실시간으로 쌓이는 유저 데이터를 어떻게 관리할 수 있을까? 또 쌓인 유저 데이터를 기반으로 어떻게 하면 모델을 자동으로 서빙까지 할 수 있을까? 서빙된 모델과 모델의 추론 결과는 어떻게 관리할 수 있을까? 이러한 질문들은 모두 AI 모델의 상용화 단계에서 고민하게 되는 것들이고, 그 질문에 대한 답으로 MLOps가 있다.


상용화를 고려한 AI 모델 서비스의 기술 부채; MLOps

위에서 언급했듯이, AI 서비스 개발은 일반적인 SW 개발과는 다르게 1)데이터를 기반으로 한 모델 학습 과정이 추가되고, 그러한 데이터는 2)서비스를 하는 도중에 점진적으로 확보되어 고도화의 재료로 활용된다. 이러한 차이점이 모델을 지속해서 관리해야 하는 사용자의 니즈를 발생시켰고, 그로 인해 모델의 지속적인 관리 및 고도화 관점에서 MLOps라는 기술이 등장했다.

MLOps는 DevOps에서 파생된 용어이다. DevOps는 SW의 지속적인 개발과 운영 단계에서 필요한 전략 혹은 기술을 의미한다. 마찬가지로, MLOps란 AI 모델의 상용화 단계에서 지속적인 고도화와 운영이 가능하게끔 하는 전략 혹은 기술을 의미한다. MLOps라는 용어가 처음 등장한 곳은 2015년 공개된 ‘ML 시스템에 숨겨진 기술 부채(Hidden Technical Debt in Machine Learning Systems)’ 논문이다. 논문의 제목에서도 알 수 있듯이 기존에는 AI 모델이라는 것이 그저 학계에서 진행되던 실험적인 기술이었기에 상용화 단계에서 고려하지 못한 기술적 부채가 있었음을 알 수 있다.

MLOps에서는 어떤 요소들이 있을까? 위에서 언급한 명함 인식 서비스 스타트업의 초기 서비스 런칭 과정을 생각해보면, 우리는 3가지 요소의 모델 운영 및 고도화 전략을 고민해 볼 수 있는데, 1) 데이터 엔지니어링, 2) 모델 엔지니어링, 3) 모델 배포가 그것이다.

'데이터 엔지니어링'은 데이터 측면의 운영 전략이다. 데이터 수집부터 학습을 위한 레이블링까지, 모델을 학습하기 전까지 필요한 자동화된 파이프라인을 만드는 것을 의미한다. 이 단계에서부터 참 많은 부분을 자동화 할 수 있다. 일정 수준의 데이터가 수집되면 자동으로 정제 과정을 진행 할 수 있을 것이며, 이미 초기에 개발된 AI 모델을 활용하여 auto-labeling 작업을 두어 가공 작업을 좀 더 수월하게 할 수 있을 것이다. 이렇게만 해도 초창기 데이터를 정제, 가공하는데 들었던 품보다 더 적은 비용으로 데이터를 정제, 가공할 수 있을 것이다. 그리고 이렇게 각 단계(수집, 정제, 가공)별로 얻은 데이터를 Versioning하여 관리함으로써 더 나은 모델을 위한 재료 관리를 철저하게 할 수 있을 것이다.

두 번째 요소인 '모델 엔지니어링'은 데이터 엔지니어링 단계에서 준비된 데이터를 가지고 모델을 학습하는 것부터 하여, 서빙하기 위한 모델을 준비하는 과정까지를 의미한다. 데이터 엔지니어링 단계에서 학습 데이터가 잘 준비되면 모델 학습은 여러 가지 측면에서 자동화 할 수 있는 여지가 많다. 적용하고 싶은 모델이 A, B, C 이렇게 3개가 있다고 할 때, 학습 데이터 준비가 완료되는 시점에 3가지 모델을 동시에 학습시킬 수 있을 것이다. 학습이 끝나면 각각의 모델에 대해 평가 과정을 자동화할 수 있을 것이다. 우리가 정한 성능 지표(AI 모델의 선택 기준이 되는 성능 지표)를 만족하는 모델만 선별할 수 있고, 각각의 모델의 성능 결과를 상호 비교하여 1개 모델 선택하는 등 선택 과정을 자동화 할 수 있을 것이다. 선택된 모델은 Automl과 같은 최적화 기법을 활용하여 서빙에 적합한 모델을 자동으로 준비할 수 있을 것이다.

세 번째 요소인 모델 배포는 이러한 모델을 자동으로 서빙하고 우리가 제공하고자 하는 서비스에 통합하는 작업을 수행하는 것을 의미한다. 모델을 이미지화하여 자동으로 배포하는 것은 물론이고, 그렇게 배포된 모델을 관리하고 모니터링하는 요소로 등록하는 것까지 자동화하여 관리하는 것을 의미한다.


그림1 MLOps 기반의 AI 서비스 운영 및 고도화 전략
<그림1> MLOps 기반의 AI 서비스 운영 및 고도화 전략


AI 기반 EduTech 서비스의 지속적인 고도화 사례

필자가 근무하고 있는 티맥스에이아이에서는 인공지능 기반의 수학 교육 서비스를 개발하고 있다. 그 결과 올해 10월에는 사용자들의 문제 풀이 확률을 예측하는 딥러닝 서비스를 탑재한 '와플수학'이라는 서비스를 런칭했다. 와플수학은 교육AI의 기본이라고 할 수 있는 DKT(Deep Knowledge Tracing)모델을 활용하고 있다. EduTech 분야에서 가장 큰 화두는 개인 맞춤형 교육을 제공하는 것이다. 이러한 목표하에 오랜 기간 사용자의 지식을 추적하는 KT(Knoweledge Tracing) 기술이 연구되어 왔고, 2015년 스탠포드에서는 DKT라는 이름으로 KT Task에 처음으로 딥러닝 모델을 적용한 것이다. 따라서 DKT는 EduTech 분야에서 하나의 BreakTrough(기술적 돌파구)의 의미를 지니고 그 후속 연구들이 기본적으로 DKT의 명맥을 이어오고 있다.

DKT는 RNN 계열의 모델로써, 특정 Skill(= 문제별로 labeling된 유형이나 개념)에 대한 유저의 문제 풀이 확률을 예측하는 task를 수행한다. 입력데이터로 유저의 문제풀이 정오답 시퀀스를 입력받는데, 해당 문제의 Skill 정보, 난이도 정보 등도 같이 입력받는다. 수많은 유저의 문제 풀이 히스토리를 기반으로 Skill 간의 Learninng Dependency를 학습(Training)하고 이를 기반으로 어떤 그다음 Skill의 정답률을 예측하는 것이다. 문제의 정답율 예측이라는 의미는, 해석하기에 그 문제가 담고 있는 Skill에 대한 이해도를 의미하기도 하므로, 궁극적으로는 학생 유저의 전체적인 개념 이해도를 추론해 내는 것이라 할 수 있다.

초창기 모델을 학습하고 이를 실제 비즈니스 서비스에 녹여내는 데에는 많은 실험 과정을 겪는 굴곡의 시간이 필요했다. 데이터를 정제하고 가공하는 방법론을 세워야 했으며, 여러 모델을 실험해서 데이터셋에 걸맞는 가장 성능이 높은 모델을 선택해야 했다. 추론 속도도 매우 중요했다. 모델 추론의 실시간성을 위해서 너무 오래 걸리지 않게 모델을 경량화하기도 해야 했다. 이렇게 1차 버전의 모델을 서비스화하는데 꽤 오랜 시간이 걸렸다. 하지만 지금은 모델을 어떻게 하면 지속해서 고도화할지가 더 큰 고민으로 다가왔다. VoC(Voice of Customer)는 지속적으로 들어오고, 피드백을 발 빠르게 적용하기 위해서라도 데이터와 모델의 지속적인 관리는 필수적이었다. 위에서 언급한 MLOps의 필요성을 몸소 느끼고 있던 것이다. 데이터 관리, 모델 관리, 모델 배포 등 MLOps의 모든 필수 요소 상에서 자동화된 파이프라인의 필요성이 두드러지고 있었다.

'데이터 엔지니어링' 측면에서 먼저 살펴보자. 먼저 모든 데이터를 수집할 수 있어야 한다. LRS(Learning Record System)는 이러한 중앙 집중식 수집 및 관리를 가능하게 한다. 기존의 서비스 로그와는 다른 학습 로그의 수집하는 방법론을 세우고 중앙 집중식 학습 로그 관리 플랫폼인 것이다. 모든 유저 데이터가 학습 데이터로 활용될 수는 없었기 때문에 데이터를 필터링하는 작업도 필요했다. 너무 특정 결과에 편중된 데이터셋은 오버피팅의 위험도 있기 때문이다. 그리고 학생들이 문제 풀이를 정말 제대로 풀었으면 모르지만, 그냥 찍기만 한 결과는 모델의 학습 측면에서 노이즈가 될 수도 있다. 데이터 정제의 측면에서 이러한 데이터들을 골라내는 것도 중요하다. Labeling 단계가 추가로 필요한 데이터는 아니지만, 학습 데이터로 활용하기 위해서는 모델의 입력 형태로 적절하게 pivoting하는 등 추가로 정제하는 작업도 필요했다. 이러한 과정을 전부 자동화할 수 있었다. 모든 유저는 비식별화되어 학년 별로 어떤 문제를 어떻게 풀었는지 수집하고 관리자 단에서 이를 모니터링할 수 있게 UI(User Interface)를 제공했다. 또 일정한 양이 수집되면 위와 같은 정제 작업을 자동화할 수 있게 triggering을 걸어 특정 정제 로직을 수행하게 했다.

준비된 학습 데이터는 바로 모델 재학습에 활용되게 했다. 정제가 완료되었다는 신호를 받으면 준비된 여러 모델을 학습시키고 바로 평가 결과를 도출할 수 있었다. 때로는 초기 모델보다 개선된 결과를 보여주기도 하고, 때로는 더 나은 모델을 발견하기도 했다. 물론 이러한 작업을 수동으로 할 수 있지만, 모델의 성능 결과를 바로바로 확인해서 더 나은 모델을 배포할 수만 있다면 품은 좀 들지만, 자동화 파이프라인을 준비해야 했다. 잘 학습된 모델은 최적화 및 경량화 작업을 거쳐 자동으로 배포하도록 했다.

잘 정의된 Ops 파이프라인은 지속적인 고도화를 가능하게 했다. 아니, 보다 효율적인 고도화가 가능했다는 게 맞는 표현일 것 같다. VoC에 따른 앱 로직의 개선 사항에 더욱 집중할 수 있었고, 지루하고 반복적인 작업에 드는 비용과 시간을 크게 단축할 수 있었다. 게다가 잘 구축된 모니터링 시스템은 유저들의 학습 과정과 모델의 추론 결과를 한눈에 파악할 수 있게 도와주어, 개선 포인트를 더욱더 빠르게 파악할 수 있게 되었다. 상용화 단계에서 많은 배움을 얻었고 또 그 배움을 기반으로 한 단계 도약할 수 있었다.


빅데이터 분석과 AI 서비스의 상용화에 필수 사항

디지털 트랜스포메이션(Digital Transformation, DT) 과정에서 빅데이터 분석과 AI 서비스는 이제 선택이 아닌 필수처럼 되어 가고 있다. 수많은 업무 서비스가 AI로 인해 자동화되고 있고, 실시간으로 쏟아지는 데이터는 그 속도에 맞춰 실시간으로 분석 결과를 내어야 한다. 그리고 내, 외부로 그러한 서비스를 운영하는 데 있어 MLOps는 선택이 아닌 필수사항으로 고려되고 있다. 금융, 교육, 의료 등 다방면의 도메인에서, 지금은 어떤 AI 모델이 좋은지, 어떤 데이터 분석 방법론을 택해야 하는지가 고려되고 있지만, 실제로는 쏟아지는 데이터를 잘 관리하는 것부터 시작해야 하지 않을까? MLOps는 그러한 모든 과정의 필수적인 엔지니어링 기법으로 대두되고 있어 DT시대에 필수적으로 고려해야 할 기술로 여겨지고 있다.






정대범 본부장
중앙대학교 전자전기공학 학사
중앙대학교 컴퓨터 공학 석사
현) 티맥스소프트 AI연구본부 본부장
전) 티맥스클라우드 laas 서비스개발팀