AI+ Vision

AI 앱 개발을 위한 학습용 데이터 구축기

본 글은 반려동물 전용 갤러리 앱 ‘포에버(PAWEVER)’를 예시로, 이스트소프트가 인공지능 앱 개발을 위해 데이터를 구축하는 전 과정을 소개하려고 합니다.

‘데이터’ 없는 인공지능(AI)은 무용지물이라는 말, 들어 보셨나요? AI는 데이터 학습에서부터 시작되고 데이터의 양과 질이 AI의 성능을 좌우할 만큼, AI에서 데이터는 중요한 역할을 하는데요. 지난 9일 데이터의 효율적인 활용을 위해 추진된 ‘데이터 3법(개인정보보호법, 신용정보법, 정보통신망법)’이 국회 본회의를 통과하면서 관련 산업 발전에 대한 기대가 커지기도 했죠.

이스트소프트 또한 2016년부터 AI 신사업을 전개하면서 AI 데이터의 중요성을 여실히 느꼈습니다. AI 앱 개발에 필요한 데이터를 지속적으로 수집하고, 필요한 형태로 가공하는 일이 쉽지 않았기 때문입니다. 이러한 이유로, AI 연구소가 설립된 지 1년만에 데이터 구축 업무를 전담하는 ‘데이터인텔리전스팀‘을 신설하여 전문인력을 양성하고 있습니다.

실제로 AI 분야의 글로벌 리더인 미국, 중국에는 이미 유사한 Data Collection / Annotation Service 를 주요 비즈니스 모델로 하여 성장한 기업들이 꽤 있습니다. Scale AI 는 2016년 미국에서 22살의 MIT 졸업생이 창업한 데이터 구축 전문 스타트업인데요. 지난 8월에 1억 달러의 series C 펀딩을 완료하여 총 10억 달러(약 1조 2천억 원)의 기업 가치를 달성했습니다. Grand View Research에 따르면 2025년에는 전 세계 데이터 어노테이션 툴의 시장 규모만 해도 16억 달러(약 1조 9천억원)에 이를 것이라고 합니다.

그림1. The AI development cycle depends on labeling high-quality data. (Source: Scale AI)

앞서 ‘메트릭러닝 기반 안경 검색 서비스 개발기‘에서도 ‘데이터인텔리전스팀과의 협업으로 데이터셋을 구축했다’는 내용이 언급된 적이 있었는데요. 이번 글에서는 반려동물 전용 갤러리 앱 ‘포에버(PAWEVER)’ 프로젝트 사례를 통해, 우리가 어떻게 AI 데이터를 수집하고, 가공하고, 활용하는지에 초점을 맞춰 이스트소프트의 AI 데이터 구축 과정 전반을 소개하려 합니다.


# 포에버(PAWEVER)의 기획

데이터 이야기를 하기에 앞서, 포에버(PAWEVER)에 대한 간단한 소개를 하겠습니다. 앱의 특성과 기획의도를 먼저 알아야 데이터 구축 과정에 대해 보다 쉽게 이해할 수 있기 때문입니다.

이스트소프트는 ‘실용주의 인공지능’을 지향하며 AI 기술이 보다 쉽고 재미있게 사용자들의 삶에 스며들 수 있는 서비스를 늘 고민하고 있습니다. 그 시작은 딥러닝 기술로 이미지에서 하늘 영역을 인지하여 원하는 하늘로 바꿔주는 카메라앱 ‘피크닉’ 입니다. 대대적인 마케팅 투자 없이도 글로벌 1,000만 다운로드를 돌파한 이스트소프트의 효자 앱이죠.

그림2. 포에버(PAWEVER) 앱 

피크닉이 승승장구하고 있을 때, 우리는 다시 우리가 가진 AI 기술을 가지고 어떤 새로운 서비스를 만들 수 있을지 치열하게 고민했고, 포에버(PAWEVER)를 기획하게 됩니다. 포에버(PAWEVER)는 내 스마트폰 사진첩의 다양한 사진들 중 강아지 사진만을 모아 보여주는 갤러리앱입니다. 포에버(PAWEVER) 속 AI 기술은 많고 많은 사진 중에 우리 반려견의 얼굴을 인지하고, 분류해낼 수 있는 능력을 가진 것인데요. 이러한 AI 모델과 포에버(PAWEVER) 탄생의 이면에는 여러 단계에 걸친 방대한 데이터의 구축 과정이 있었습니다.


# 포에버(PAWEVER) 앱 개발을 위한 AI 데이터 구축

(1)  훈련 데이터셋 수집(Collection of Training Data set)

포에버(PAWEVER)의 기획을 실현시키기 위해서는 우리 AI 연구소에서 보유한 AI 모델 중 ‘분류모델’을 활용해야 했습니다. 말 그대로 다양한 사진 속에서 반려견의 사진만 ‘분류’해내는 것입니다. 분류모델이 반려견의 이미지를 잘 구분해낼 수 있도록 학습시키려면 다양한 카테고리의 반려견 이미지를 수집하는 것이 최우선입니다. AI 모델을 ‘훈련’시키기 위한 데이터이기 때문에 ‘훈련세트’ 라고 부릅니다. 

카테고리는 강아지의 종 / 색깔 / 크기 등 기본적인 것부터 시작해서 표정 / 자세 / 개체수 / 사람 유무 / 얼굴 유무 등 점차 세부적으로 넓혀 나갔고, 하나의 카테고리당 최소 2천 장의 데이터를 수집했습니다.

그림3. 훈련세트 수집을 위한 카테고리 분류 및 샘플데이터

데이터를 수집할 때는 단순히 검색을 통해 수집하기도 하지만, 수집을 맡은 팀원들이 데이터의 목적, 즉 앱의 방향성에 대해 앱 기획자와 충분한 논의를 한 후에 진행하는 것이 좋습니다. 우리는 실제로 사용자의 스마트폰에 있는 반려견의 사진을 분류해내야 했기 때문에, ‘일반 사용자들이 직접 찍었을 법한 이미지’라는 기준을 두고 데이터 수집을 진행했습니다. 현재는 크롤러를 활용한 이미지 수집도 병행하고 있지만, 초기에는 카테고리와 앱 기획의도에 맞는 데이터들을 사람이 직접 판단하여 수집하고, 축적하는 과정이 필요했습니다.

(2)  데이터 멀티태깅 (Multi-tagging of Data)

수집해서 쌓아놓은 데이터를 그대로 활용하기는 어렵습니다. 데이터를 수집했다면, 이 데이터가 무엇을 의미하는지도 함께 알려줘야 AI가 스스로 익히고 훈련할 수 있겠죠. 예를 들어 이 강아지의 종은 진돗개고, 앉아있고, 얼굴은 보이고, 등 다양한 태그 또는 라벨을 붙일 수 있습니다. 하나의 데이터에 여러 개의 태그를 붙이는 작업을 우리는 ‘멀티태깅(Multi-tagging)’이라고 부릅니다. 

단순해 보이지만 대량의 데이터를 적게는 수십 개, 많게는 수백 개의 태깅 기준에 따라 정확히 멀티태깅하는 작업의 난이도는 상당히 높아 그만큼 인력과 시간이 많이 필요합니다. 이러한 멀티태깅 작업을 보다 효율적으로 할 수 있도록 우리는 직접 어노테이션 툴(태깅툴)을 개발하게 됩니다. 크라우드소싱 기반의 데이터 가공 플랫폼에서 볼 수 있는 데이터 가공툴을 우리의 데이터 태깅 기준과 목적에 맞게, 빠르고 편리하게 작업할 수 있도록 개발한 것입니다.

그림4. 데이터 멀티태깅을 위한 어노테이션 툴

어노테이션 툴을 통해 멀티태깅이 완료된 이미지 데이터들은 필요에 따라 한 차례에서 수차례까지 검수와 후처리를 거치게 됩니다. 수집에서 멀티태깅까지의 과정이 모두 사람이 직접 하는 작업이기 때문에 혹시 실수로 잘못 태깅하거나 빠뜨린 것은 없는지, 또는 편향된 판단에 의해 태깅하지는 않았는지 등을 확인하며 데이터를 보완하는 검수 과정입니다. 흔히 남이 범한 오류는 눈에 더 잘 띄기 때문에, 서로의 데이터를 크로스체킹하면서 전체적인 데이터의 품질을 높이는 것이죠. 검수까지 마친 양질의 훈련세트는 DB파일로 만들어져 AI 학습에 적용할 수 있게 됩니다. 

(3)  평가 데이터셋과 데이터 보완(Training Data set and Complementation)

멀티태깅까지 마친 데이터를 활용해 AI 분류모델을 만들었다면 이제 ‘평가세트’ 데이터를 통해 분류모델의 퍼포먼스를 ‘평가’해봐야 합니다. 다양한 데이터를 최대한 많이 수집했던 훈련세트와 달리, 평가세트는 보다 명확한 기준을 가지고 데이터를 수집하여 과연 이런 사진도 분류 가능할까? 라는 질문을 AI 모델에게 지속적으로 던지는 과정입니다.

초기 평가에서는 분류모델의 판단 오류에 의한 다양한 오분류 데이터들이 나오게 됩니다. 예를 들어, 강아지만큼 귀여운 우리 아기 사진, 인형 사진, 또는 다른 동물을 강아지 사진으로 잘못 분류하는 경우들이 발생했습니다.

오분류 데이터를 줄이기 위해서는 ‘강아지가 아니다’ 데이터를 AI에게 학습시켜주어야 합니다. 강아지가 아닌 이미지들도 최대한 많이, 다양하게 수집하여 ‘이런 건 강아지가 아니다’ 혹은 ‘이 사진엔 강아지가 없다’ 라고 태깅한 후 학습시키는 것입니다. 초기에는 강아지 데이터만 대량 수집하는 것만으로도 많은 리소스가 사용되었기 때문에 강아지가 아닌 데이터들은 상대적으로 적었습니다. 그 때문에 강아지가 아닌 데이터도 강아지로 분류해 결과값이 나오는 오분류 경우의 수가 많았는데, 이러한 오분류 확률을 줄이기 위해 강아지가 아닌 이미지 데이터도 충분히 수집하는 또 한번의 데이터 수집 과정을 거치게 됩니다.

그림5. 오분류 데이터 예시 (왼쪽부터 인형, 아기, 어두운 사진)

또는 강아지가 맞지만, 종이나 표정 등 세부적인 특징을 잘 분류해내지 못한 경우에는, 그 실패 확률을 분석해서 오분류 확률이 높은 특징 카테고리의 데이터를 추가 수집, 태깅하여 재학습시키는 과정을 거칩니다. 부족한 데이터를 채워주는 데이터 보완의 과정이라고 할 수 있습니다.

분류모델의 정확도를 높이기 위한 수단으로, ‘임계치 조건’도 적용하기로 했습니다. 예를 들어서 강아지로 오인할 법한 사진들을 분류모델에 집어넣었더니, 강아지일 확률이 최대 0.5가 나왔다고 가정해보겠습니다. 이때 우리는 임계치 조건을 0.8로 설정해 두고, 확률값이 0.5가 나왔더라도 0.8에 미치지 못하기 때문에 강아지가 아닌 것으로 결론 짓고 포에버(PAWEVER) 앱에서 강아지로 분류하지 않도록 처리합니다. 쉽게 말해 강아지일 확률이 최소 80%는 되어야 강아지 사진으로 뽑아내도록 하는 것입니다.


# 마치며

지금까지 설명한 훈련세트 데이터 수집, 데이터 멀티태깅, 평가세트 구축과 데이터 보완의 과정을 아래 도식과 같이 정리해볼 수 있습니다. 여타 AI 데이터 구축 과정들도 많은 양의 데이터를 수집해서 가공한 후 학습을 거치는 유사한 프로세스로 진행될 것입니다. 이 과정 속에서 AI 연구자와 앱 기획자, 데이터 구축 인력들이 머리를 맞대고, 우리 앱의 퍼포먼스를 높이기 위한 최적의 데이터 구축 과정을 고민하여 커스터마이징하는 과정을 거치게 되죠.

그림6. AI데이터 구축과 활용 과정 (NIA 『2019년 AI 학습용 데이터 구축』 사업 방향 및 중점 사항 자료 참고)

포에버(PAWEVER) 프로젝트에는 동일 기간에 평균 15명 정도의 데이터 구축 인력이 작업에 참여했습니다. 여러명이 협업하는 과정에서 기존에는 기획자 혼자 고민했던, 크고 작은 아이디어와 인사이트가 계속해서 창출되었습니다. AI의 성능을 높여주는 AI 데이터 본연의 목적 달성과 더불어, 데이터 구축 과정에서 나오는 다양한 피드백은 기획자의 기획을 보다 촘촘하게 만들어주었습니다.

포에버(PAWEVER)는 이미 출시를 마치고 애견인들에게는 빠른 속도로 인기를 얻고 있으며, 앞으로 더 재미있는 프로젝트를 준비하고 있습니다. 그 뒤에서는 여전히 분류모델의 정확도 향상과 차기모델을 준비하며 더 많은 양질의 AI 데이터를 쌓아가고 있습니다. 포에버(PAWEVER)는 물론 앞으로 진행될 다양한 AI 데이터 프로젝트들도 관심 있게 지켜봐 주시기 바랍니다. 감사합니다.


참고

1. https://scale.com

2. https://play.google.com/store/apps/details?id=com.estsoft.pawever

3. https://wowtale.net/2019/08/09/scale-ai-100m-funding-unicorn/

4. https://www.grandviewresearch.com/industry-analysis/data-annotation-tools-market

5. https://medium.com/syncedreview/data-annotation-the-billion-dollar-business-behind-ai-breakthroughs-d929b0a50d23

One Reply to AI 앱 개발을 위한 학습용 데이터 구축기

  1. 딥러닝은 어차피 툴 쓰는거라 DB만 있어도 대충 어느정도 성능은 나오죠..

    돈되는 영역이 뭔지 정확히 파악하고 개발안하면 이미 돈되는 시장은 선점되어 있을거 같네요

댓글 남기기

이메일은 공개되지 않습니다.