Search

서비스 향 AI 모델 개발하기 (1) - 학습 데이터셋 준비


#AI서비스 #학습데이터셋 #기술모듈



안녕하세요~! 업스테이지입니다.


업스테이지는 Making AI Beneficial이라는 미션 아래 기업과 산업의 AI Transformation을 돕고 있습니다. 이 과정에서 얻은 귀한 인사이트가 많습니다. 업스테이지의 기술 블로그에서는 이 교훈들을 더 많은 분들이 AI를 깊이 이해하고 활용하시는데 도움을 드릴 수 있도록 공유합니다.


가장 첫 번째로 공유해드릴 것은 ‘서비스 향 AI 모델을 개발’입니다. 많은 분들께서 학교에서 경험한 AI 개발 프로세스와 실제 산업 현장에서의 AI 개발 프로세스의 차이에 대해서 궁금해 하십니다. AI 개발 프로세스에서 모델 개발은 (모델링) ‘주어진 학습 데이터셋을 활용하여 정해진 테스트 데이터셋과 테스트 방법 내에서 최고의 성능을 내는 AI 모델을 확보하는 일’이라 표현할 수 있습니다. 학교(혹은 연구 환경)에서는 이 일을 수행하기 위한 데이터셋, 테스트 방법이 미리 준비되어 있는 경우가 많습니다. 하지만 산업 현장에서는 이 중 그 무엇도 없는 경우가 대부분이며, 엔지니어들에게 주어진 것은 오직 서비스 요구사항뿐입니다. ‘이런 서비스를 만들고 싶은데 AI로 가능할까요?’라는 요청 사항만이 AI 기술팀에 주어지는 것이죠.


<AI 모델 개발 시 대부분 산업 현장에서의 상황>



앞으로 3회에 걸쳐 이러한 환경에서 어떻게 서비스에 사용될 수 있는 AI 모델을 개발할 수 있는지에 대한 업스테이지의 경험담을 정리해서 알려드리고자 합니다.


1) 첫 번째 글 (==이번 글)에서는 학습 데이터셋을 준비하는 방법을 공유할 예정입니다.

AI 모델을 학습시키기 위한 데이터셋을 준비하는 일은 생각보다 정말 많은 고민과 노동이 들어가는 복잡한 일입니다. AI 기술 팀에 주어지는 ‘서비스 요구사항’이라는 단 하나의 단서를 바탕으로 학습 데이터셋을 구축하는 작업을 어떻게 진행하는지에 대한 내용을 다룹니다.


2) 두 번째 글에서는 학습 데이터셋을 기반으로 만들어진 AI 모델을 평가할 수 있는 테스트 데이터셋, 테스트 방법 준비와 모델 요구사항 도출에 대해서 다룰 예정입니다.


3) 마지막 글에서는 앞의 두 과정을 효율적으로 달성하기 위해서는 어떤 AI 팀 조직 구성이 필요한지에 대해서 다루어 보겠습니다.


<서비스 향 AI 개발 과정 Overview>



[학습 데이터셋 준비: 종류/수량/정답]


서비스 향 AI 모델을 개발하기 위해 첫 번째로 해야 할 일은 바로 학습 데이터셋 준비입니다. 더 정확히는 학습 데이터셋의 종류, 수량, (대부분은 지도 학습 기법을 이용하기 때문에) 정답을 정해야 합니다. 이때 기준이 되는 것은 기술팀에게 주어진 단 하나의 단서, ‘서비스 요구사항’입니다. AI 기술팀은 서비스 기획팀과 함께 요구사항을 바탕으로 소통하며 최적화된 학습 데이터셋을 구축해나가야 합니다.


<서비스 요구사항을 바탕으로 학습 데이터셋 준비하기>



이 과정을 예시를 통해 자세하게 살펴보겠습니다.


‘수식을 사진으로 찍어서 인식하는 기술 서비스 개발’이 필요하다고 가정해봅시다. 기술팀은 기획팀과 커뮤니케이션을 통해 데이터셋 준비에 필요한 정보를 얻어 내야 합니다. 일례로 ‘종이에 인쇄되어 있거나 손글씨로 쓴 초중고 수학 수준의 수식을 인식하여, 학생들 대신 AI가 컴퓨터에 입력해주는 서비스 개발이 필요하다’ 정도로 서비스 요구 사항을 구체화해야 합니다.



<서비스 기획팀과의 커뮤니케이션 예시>



이렇게 해야 비로소 기술팀이 모아야 하는 데이터의 종류(프린트, 손글씨, 초중고 수학 수식)를 정의할 수 있습니다. 또한 ‘학생들 대신 AI가 컴퓨터에 (수식을) 입력해주는 서비스 개발’이라는 요구 사항을 바탕으로 학습 데이터셋의 정답은 Latex String 형태가 되어야 한다는 결정도 할 수 있습니다.


학습 데이터셋 구축 시 필요한 정보를 예를들어 표로 정리해보자면 아래와 같습니다.


<학습 데이터셋 구축 가이드라인>



이 예시에서는 데이터셋의 종류를 크게 수식이 작성한 소스가 손글씨인지 인쇄물인지를 고려하였고, 수식 자체의 난이도를 구분하기 위해서 해당 수식이 초등학교 수식인지, 중학교 수식인지, 고등학교 수식인지를 구분하여 총 6종류의 데이터셋을 모으고자 하였습니다. 각 종류 별로 모아야 할 데이터 수는 모델의 크기, 예산, 기간 등을 고려하여 정해야 합니다.


이 표를 통해 어떤 데이터를 모아야 하는지 조금씩 명확해지고 있는 것을 확인할 수 있습니다. 이처럼 AI 기술팀은 서비스 요구사항을 바탕으로 (데이터의 종류/수량에 대한) 가이드라인을 바탕으로 데이터를 수집하게 됩니다.

물론 직접 데이터를 수집하다 보면 기존에는 예상치 못했던 변수들이 등장하는 경우가 많습니다. 수식 인식을 예로 들면 하나의 이미지 내 수식이 한 줄만 있는 경우만을 예상했지만, 실제로는 한 번에 여러 줄의 수식이 찍히는 경우가 대부분인 것과 같은 상황입니다.


<여러 줄의 수식을 찍을 경우의 예시>



이런 상황이 발생하였을 때는 기술팀 내부, 서비스 기획팀과의 논의를 통해 데이터셋 모집 기준을 조금씩 수정해나가야 합니다. 하나의 이미지에 한 수식만 촬영하는 것은 이미지 획득의 효율성을 따져봤을 때 하나의 이미지에 여러 수식이 있는 경우가 허용될 때보다 비효율적입니다. 물론 하나의 이미지에 여러 수식이 존재한다고 가정할 경우에는 ‘수식 영역’을 검출해야 하는 기술 모듈이 추가로 개발되어야 합니다. 그래서 서비스 체험 관점, 데이터 제작 리소스, 추가 기술 모듈 개발 등을 고려하여 데이터 수집의 범위를 조절하게 됩니다. (수식 인식 예시에서는 여러 줄의 수식도 처리한다는 것으로 결정했다 가정하고 글을 전개하겠습니다)



[학습 데이터셋 준비: 기술 모듈 설계]


기술 모듈을 설계하는 것은 학습 데이터의 ‘정답’을 정확히 정의하는데 유용한 단서를 제공해주므로 매우 중요합니다.


수식 인식의 예시로 돌아와 봅시다. 지금까지의 서비스 기획 요구 사항을 정리해보면 아래와 같은 기술 모듈을 개발해야 합니다.


<기술 모듈 설계 예시>



학습 데이터셋에서 ‘정답’이란 곧 각 기술 모듈의 출력물을 의미합니다. 위 그림에 따르면 ‘수식 영역 검출’ 기술 모듈의 학습 데이터셋의 ‘정답’은 수식 영역들의 위치입니다.


하지만 수식 영역의 위칫값은 ‘수식 영역’을 어떻게 정의하느냐에 따라 달라집니다. 직사각형 모양으로 수식을 표시하고자 한다면 좌상단 점과 우하단 점 2개의 위치값을 통해 수식의 위치를 표시할 수 있으며 이것이 바로 수식 영역 검출 기술 모듈의 ‘정답’이 됩니다.


점이 아닌 픽셀 단위로 영역 정보를 표현하는 것도 가능합니다. 수식 영역에 해당하는 부분을 1의 값으로, 해당되지 않는 부분을 0의 값으로 표시하게 될 경우 수식 영역 검출 모듈은 일종의 Segmentation 태스크를 수행한다고 볼 수 있습니다. 이럴 경우 Image Segmentation의 결과물이 ‘정답’이 됩니다.


<기술 모듈 설계를 통한 데이터셋의 ‘정답’ 정의 과정 예시>



이외에도 직사각형과 각도를 함께 고려하는 방법, 임의의 사각형을 이용하는 방법 등 여러가지의 정의 방식이 존재합니다. 또 이러한 ‘정답’ 정의는 각 AI 모델별로 정해야 하기 때문에 (위 그림으로 예를 들자면 ‘수식 영역 검출’ 모델과 ‘Image To Latex’ 기술 모듈 각각의 ‘정답’을 정의해야 합니다) 수십, 수백가지의 조합에서 최적의 방안은 무엇인지 기술팀 내부에서 논의하며 정해야 합니다.


사실 이것은 AI 모델 구조의 설계의 영역이기도 한데, 설계를 검증하기 위해서는 어느 정도의 학습 데이터 셋이 필요합니다. 데이터를 학습시켜서 모델을 돌려봐야 원하는 방향대로 모델이 잘 만들어지고 있는지 알 수 있기 때문입니다.


따라서 현업에서는 ‘학습 데이터셋 수집’과 ‘모델 설계’ 이 두 과정이 반복적으로, 서로 맞물려 진행됩니다. 다시 말해 학습 데이터셋 구축과 모델 설계가 각각 독립적으로 이뤄지기 보다는 서비스 기획팀, 모델러, 학습 데이터셋 담당자들이 긴밀하게 소통하며 동시에 진행됩니다.


<학습 데이터셋 수집과 모델 설계의 연계과정>



어떤 학습 데이터를 얼마나 모을 것인가, 또 정답은 어떻게 할 것인가에 대한 논의가 마무리되면 이제 본격적으로 학습 데이터 제작에 들어가게 됩니다. 데이터를 직접 제작하는 경우도 있지만, 최근에는 대부분 외주 업체를 통해 제작합니다. 데이터셋의 종류, 수량, 정답에 관한 정보를 담은 어노테이션 가이드라인을 전달하면 외주 업체는 그 가이드라인을 바탕으로 데이터를 제작합니다. 이때 추가적으로 제작 작업 기간과 단가도 학습 데이터셋의 종류/수량/정답을 결정하는데 영향을 미칩니다. 예를 들어, 수식 영역을 지정할 때 직사각형으로 지정할 때는 점 두 개에 대한 작업이지만, 임의의 사각형으로 지정할 때 점 네 개에 대한 작업을 수행해야 하기 때문에 단가도 두 배로 올라가고, 작업 기간도 늘어나게 됩니다.


<학습 데이터셋 구축 과정 Review>



지금까지 서비스 요구사항에서 학습 데이터셋의 종류, 수량, 정답을 이끌어내고, 이를 바탕으로 어떻게 학습 데이터셋을 구축해나가는지에 대해 알아보았습니다. 다음 포스트에서는 어떻게 서비스 요구사항으로부터 AI 모델을 평가할 수 있는 테스트 방법, 테스트 데이터셋을 정의할 수 있을지, 모델의 요구 사항은 어떻게 도출하고 반영하는지에 대해 다루겠습니다.