리얼월드 머신러닝 애플리케이션을 위한 데이터 라벨링 접근법

리얼월드 머신러닝 애플리케이션을 위한 데이터 라벨링 접근법

들어가며

컴퓨터 비전과 머신 러닝 작업의 워크플로우에 있어서 데이터 라벨링은 필수적인 과정입니다. 이러한 데이터 라벨링이란 머신 러닝 모델 제작을 위해 이미지나 비디오, 오디오 파일 등을 식별하고 라벨링하는 작업을 말합니다. 이렇게 가공한 데이터는 실생활에 적용할 수 있는 예측 데이터로 활용할 수 있습니다. 자율 주행차를 예로 들면, 올바르게 라벨링 된 자율주행용 데이터셋은 AI 모델이 정지 신호 표지판과 보행자를 구분할 수 있게 해주지만 라벨링이 잘못되면 커다란 재해로 이어질 수 있습니다.

머신 러닝 모델이 가장 효과적인 성능을 내기 위해서는 고도의 디테일이 포함된 데이터셋과 정확하게 라벨링된 파일이 필요합니다. 팀이 모델을 구축하는 과정을 시작할 때, 자동화를 이용할지 매뉴얼 작업을 진행할지 여부를 결정하게 되죠. 음식 배달이나 수술, 물류용 로봇 등의 분야에서도 AI가 더욱 흔하게 사용되기 시작하면서 정확도가 높은 컴퓨터 비전 모델이 더욱 중요해지고 있습니다.

머신 러닝 모델을 구축할 때 가장 먼저 고려해야 하는 점은 ‘Human-in-the-loop(HITL)’이라고도 불리는 사람의 개입 수준을 결정하는 것입니다. 현재의 기술 수준에서는, 사람의 개입이 전혀 없이 완전 자동화로 머신 러닝을 진행하는 것은 불가능하며, 일정 수준의 사람의 검수를 거쳐야 정확도가 높은 모델을 만들 수 있습니다. 이러한 Human-in-the-loop의 필요성은 몇 년 사이 점점 줄어드는 추세입니다. 하지만 프로젝트의 원하는 접근 방식과 최종 목표에 따라 사람의 개입이 얼마나 필요한지가 결정되곤 합니다.

데이터 라벨링에 있어 옳고 그른 방식은 존재하지 않지만, 방식마다 분명한 장단점이 있으므로 진행하려는 프로젝트에 따라 신중하게 판단해서 프로젝트가 너무 많이 진행되기 전에 결정을 내리는 것이 중요합니다. 이 글에서는 주로 사용되는 데이터 라벨링 방식들을 ‘매뉴얼 라벨링(Manual Data labeling)’과 ‘라벨링 자동화(Automatic Data Labeling)’ 두 가지로 분류하고 각 방식의 이점과 한계점을 소개하고자 합니다.

1. 매뉴얼 라벨링(Manual Data labeling)

일반적인 라벨링 과정

아마 가장 번거로운 방법은 매뉴얼 라벨링일 것입니다. 매뉴얼 라벨링이란 이름에서 유추할 수 있듯이 데이터셋을 구축할 때 사람의 개입이 가장 많이 필요합니다. 머신 러닝 모델 학습용 데이터를 만들기 위해 이 방식을 이용하면 사람들이 이미지나 비디오 속의 객체를 직접 라벨링하게 됩니다. 시간과 비용도 많이 들지만, 이러한 매뉴얼 라벨링이 장점을 발휘할 수 있는 프로젝트도 있죠.

일관성이 없거나 특정 분야에서의 지식이 요구되는 데이터를 포함한 이미지를 다룰 때는 전문가들이 매뉴얼 라벨링하는 방법이 가장 적절한 선택입니다. 암 환자의 암 종양을 식별하는 컴퓨터 비전 모델을 예로 들자면 데이터셋을 제작할 때 의료 수련을 거친 영상의학과 의사들이 수동으로 라벨링을 해야 하겠죠. 하지만 이런 상황에서도 자동화와 커스텀 오토 라벨링을 사용할 수 있는 예외가 존재하는데, 이는 따로 글의 말미에서 설명할 예정입니다. 머신 러닝 모델을 학습시키기 위한 다양한 매뉴얼 라벨링 방법을 먼저 소개해드리겠습니다.

1 - 인하우스 작업

회사 내에서 단순 모델 제작을 진행하려는 경우 데이터 과학자와 일반적인 엔지니어를 비롯해 머신 러닝 엔지니어, 심지어 인턴까지 동원해서 수천 개의 이미지를 작업할 수 있기 때문에 효과적인 학습용 모델을 개발할 수 있습니다. 인하우스 팀을 활용하는 방법은 전문가의 의견이 필요할 때 유리하죠. 테슬라와 같은 거대 테크기업들은 주로 인하우스 팀을 활용해서 데이터셋을 제작합니다.


장점:

인하우스 작업 시 팀이 데이터 라벨링 작업 과정의 시작부터 완료까지 전체적으로 감독 가능하다는 장점이 있습니다. 신중한 라벨링이 요구되는 데이터셋을 다룰 때 팀은 본인들의 전문 역량을 발휘해서 데이터셋의 정확도를 올릴 수 있죠. 인하우스 작업의 최대 강점은 데이터셋을 완전히 이해하고 용도를 정확하게 파악하고 있는 전문가들이 작업을 맡는다는 점입니다. 대다수의 데이터셋은 계속 변화하는 현실에 맞춰 지속해서 업데이트 해줘야 합니다. 데이터를 다루는 인하우스 팀이 있다는 것은 이런 업데이트 과정을 신속하고 간단하게 할 수 있는 확실한 방법임에는 틀림없습니다. 자율주행차를 예로 들면, 도로 위 차종은 계속 바뀌기 때문에 데이터 드리프트 등 데이터 유지보수 관련 문제들을 피하고자 자주 데이터셋의 이미지를 업데이트해 줄 필요가 있죠. 게다가 인하우스 작업 방식은 기밀 정보가 원소유자로 유지되기 때문에 데이터 누출이나 유출의 가능성도 줄어듭니다.

단점:

인하우스 작업이 아웃소싱에서 발생할 수 있는 문제점들을 방지해주긴 하지만, 동시에 회사의 주요 자원을 차지한다는 단점을 가지고 있습니다. 머신 러닝 모델을 제작할 때 가장 많은 시간을 소모하는 과정이 바로 데이터 라벨링입니다. 사내 데이터 과학자와 머신 러닝 엔지니어들에게 수천·수만 개의 이미지 라벨링을 맡기는 것은 그들이 더 긴급한 회사의 문제에 사용할 수 있는 시간을 빼앗아가는 셈입니다. 거기에 끔찍하게 비싼 비용도 무시하지 못할 부분입니다. 기술 회사에서 엔지니어는 고연봉 인력에 해당하기에 작은 팀이라면, 그들에게 단순한 작업을 맡기는 일은 비용측면에서 권장하지는 않습니다. 자원이 적은 스타트업에게 인하우스 데이터 라벨링은 사실상 불가능하죠.


물론 매뉴얼 라벨링에는 회사 내 자원을 활용하는 방법만이 있는 것은 아닙니다. 다른 회사들은 크라우드 소싱이나 매뉴얼과 크라우드 소싱 두 가지가 혼합된 방식을 선택하기도 합니다. 어느 방식을 선택해야 할지는 어디까지나 해당 비즈니스의 니즈에 달려있지만 어떤 방식을 선택하든 각각의 방식의 이점 역시 다양하게 존재합니다.


2 - 크라우드소싱

크라우드소싱을 선택한 회사는 Amazon Mechanical Turk(크라우드 워커 소싱을 위한 웹사이트)와 같은 서비스를 통해 프리랜서들에게 데이터 라벨링을 맡기게 됩니다. 라벨링 작업은 많은 수의 라벨러에게 할당되기 때문에 개개인이나 회사 입장에서는 라벨링 작업량을 덜어낼 수 있습니다. 이 방식은 인하우스 작업을 위해 활용할 자원이 부족한 경우에 좋은 차선책이 될 수 있죠.


장점:

크라우드소싱은 장단점을 모두 가지고 있습니다. 회사들이 크라우드소싱을 선택하게 만드는 장점은 우선 비용입니다. 머신 러닝 엔지니어보다 비용이 덜 들어가는 프리랜서에게 맡기는 편이 회사에는 재정적 부담이 더 적기 때문이죠. 거기에 데이터셋을 구축하는 시간도 소수의 인원으로 이루어진 인하우스 팀에 맡기는 것보다 덜 소요됩니다. 크라우드소싱은 머신 러닝 모델을 효율적으로 구축하려는 소규모 회사에 매력적인 선택지이지만, 단점도 물론 존재합니다.

단점:

크라우드소싱에 의존하는 것은 라벨링하는데 시간과 비용이 덜 들어가기는 하지만 정확도를 장담하기 어렵다는 단점이 있습니다. 데이터를 수백에서 수천 개에 달하는 손에 나눠 라벨링 하다 보면 프리랜서마다 각자의 방식으로 작업을 진행하기 때문에 작업의 결과물에 일관성이 떨어진다는 것은 피할 수 없죠. 만약 회사가 자동차와 트럭을 정확히 구분하려고 하는데, 어느 라벨러는 SUV를 트럭으로 분류하고 다른 라벨러는 자동차로 구분하는 경우도 발생할 수 있겠죠. 이러한 일관성이 떨어지는 라벨링은 데이터셋의 정확도와 성능 전반에 영향을 끼칩니다. 외부 인력에 의존한다는 것은 워크플로우나 품질 검수 과정 또한 어렵게 할 수 있습니다.

3 - 아웃 소싱

또 다른 선택지를 찾는 회사들은 아웃소싱을 택하기도 합니다. 수동으로 라벨링을 해 줄 외부 팀을 고용하는 경우죠. 이들은 보통 품질 검수 전문가들의 교육을 받고 오로지 라벨링만을 전담합니다.


장점:

아웃소싱은 작업에 드는 시간과 비용을 절감하고 싶은 회사가 주로 선택하는 방법입니다. 데이터셋을 구축할 때, 외부 팀에게 지원을 맡기는 것이 사내 머신 러닝 엔지니어를 동원하는 것보다 현저하게 적은 비용이 들기 때문이죠. 단기간 내에 대규모의 데이터셋을 완성해야 하는 프로젝트에는 이런 아웃소싱 방법이 유리합니다. 아웃소싱은 지속적인 업데이트가 필요하지 않은 임시 프로젝트에 적합한 선택입니다.

단점:

아웃소싱으로 진행하는 데이터 라벨링은 주로 해외 팀에게 맡겨지는데 이렇게 되면 머신 러닝 엔지니어가 워크플로우를 관리하기 어려워집니다. 또 한 팀이 프로젝트를 전담하기 때문에 전체적인 작업자의 인원은 크라우드소싱 보다 적어서 속도가 느리죠. 하지만 크라우드소싱보다 데이터셋 작업 결과의 정확도가 더 높다는 점은 아웃소싱을 선택하는 주된 이유가 되기도 합니다.

자동화 라벨링(Automatic Data Labeling)


매뉴얼 데이터 라벨링 외에도 다양한 프로젝트에 적용가능하며, 많은 기업에 적합한 라벨링 방식으로는 라벨링 자동화가 있습니다. 라벨링 자동화에도 세부적으로 다른 방식들이 다양하게 있지만, 대부분 AI가 대신 라벨링을 해주거나 라벨링에 사용되는 UI에 AI를 접목(바운딩 박스를 세그멘테이션으로 변환하는 작업 등)시켜서 작업 속도를 향상하는 것이 일반적입니다. 어느 경우든 데이터는 숙련된 전문가들의 손을 거쳐서 정확도와 품질 검수를 받습니다.

정확하게 라벨링된 데이터는 이후 시스템 전반에 녹아들며 일종의 데이터 파이프라인을 형성합니다. 데이터 라벨링은 AI의 성능을 검수하거나 복잡한 프로젝트를 구축할 때 등 사람의 개입이 필요하므로 완전 자동화란 불가능하지만, 여러가지 툴과 전략을 이용하면 작업을 보다 능률화하여 속도를 현저히 향상시킬 수 있습니다.

1 - 모델 어시스티드 라벨링(Model Assisted Labeling)


모델 어시스티드 라벨링 프로세스

모델 어시스티드 라벨링(Model Assisted Labeling)은 보통 라벨링만을 목표로 하는 소규모 데이터셋을 가지고 AI를 사전 학습시킨 후에 본격적인 라벨링을 맡기는 과정을 동반합니다. AI는 사전학습한 내용을 가지고 이후 입력되는 데이터를 판단해서 자동화 라벨링을 하게 됩니다. 이 밖에도 이미 만들어진 모델에게 라벨링을 시키기도 합니다. 이런 경우 사람이 사전 학습용으로 라벨링 된 데이터를 점검하고 데이터셋에 영향이 가지 않게 오류를 고치는 과정이 필요합니다. (그리고나서 수정한 데이터를 모델에게 재학습시키죠.) UI 자체에서 이 모든 과정을 해결할 수 있는 서비스도 일부 있지만, 몇몇 솔루션은 사전학습용으로 라벨링된 데이터를 업로드하는 기능만 지원하는 편입니다 (예로, 모델이 기존의 기술 스택을 이용해서 라벨링을 진행하고, 이렇게 사전 라벨링된 데이터를 솔루션에 업로드 하는 방식이 있습니다).

장점:

이론적으로는, 컴퓨터 비전 모델 학습용 데이터셋을 구축할 때 이 방식을 사용하면 대량의 라벨링을 빠르고 효과적으로 작업할 수 있습니다. 직접 라벨링을 진행하는 것보다 사전에 준비된 라벨링을 사용하는 게 보통 더 빠르기 때문이죠. 거기다가, 주로 이미 만들어진 모델을 이용할 때, 모델의 취약점이 진행 과정 중 이른 시점에서 나타나서 일찍이 오류를 잡을 수 있게 해줍니다. 또, 크라우드소싱이나 아웃소싱와 같은 매뉴얼 라벨링은 프로젝트 관리자가 작업 과정을 감독할 필요가 있어서 병목 현상이 발생할 수 있는데, 이 방식을 이용하면 그럴 필요가 없죠.

단점:

한편으로는 모델 어시스티드 라벨링에 도 단점은 있습니다. 매뉴얼 라벨링보다 훨씬 자동화된 방식이긴 하지만, 여전히 라벨링 과정에서 사람의 개입(Human-in-the-loop)이 일부 필요합니다. 완벽한 모델은 존재하지 않기 때문이죠. 특정 오류를 짚어 줄 사람이 없으면, 사람이면 간단히 잡아낼 오류도 자동화된 모델은 실수를 남발할 수 있죠. 또한 사용하려는 상용화된 모델이나 학습시키려는 모델의 품질이 곧 결과물의 품질을 정하기 때문에, 자동화 라벨링을 진행하기 전이나 아직 이른 시점에서 모델과 데이터셋이 이미 최대한 정확해야 할 필요가 있습니다. 각각의 오류마다 시간과 자원을 사용해서 해결하는 것은 큰 비용을 잡아먹지만, 완벽한 머신 러닝 알고리즘 없이는 불가피한 과정이죠. 사전 라벨링용 데이터에서 오류를 고치는 시간이 아예 처음부터 수동으로 라벨링을 하는 것보다 더 걸리곤 한다고 실무자 다수가 보고해온 바 있습니다.

2 - AI 어시스티드 라벨링(AI-assisted Labeling)

AI 어시스티드 라벨링 프로세스

회사들이 선택하는 또 다른 자동화 데이터 라벨링 방식으로는 AI 어시스티드 라벨링(AI-assisted Labeling)이 있습니다. 라벨러는 AI 기반 소프트웨어를 통해 이전 작업 경험을 토대로 예측하거나 몇 개의 포인트만으로도 아웃라인을 그리기 등의 반복 작업을 더 효율적으로 할 수 있습니다.

장점:

AI 어시스티드 라벨링은 사람의 감독 아래서 데이터셋의 구축 과정 속도를 높여줍니다. 즉, 단순한 매뉴얼 라벨링보다 더 많은 양의 데이터를 더 빠르게 라벨링 해낼 수 있다는 뜻이죠. 의학계를 예로 들면, 의학 전문가들 병을 진단하는 머신 러닝 모델을 AI 어시스티드 라벨링의 도움으로 더 신속하게 구축하곤 합니다. 충분한 양의 데이터가 라벨링되고 나면 특정 이미지나 비디오 프레임 내에서, 어느 객체가 라벨링이 필요한지 잡아내는 작업을 AI 소프트웨어가 도와줄 수 있습니다.

단점:

AI 어시스티드 라벨링은 확실히 수동 작업보다 더 신속하고 효율적으로 데이터를 라벨링하고 데이터셋을 구축하게 해줍니다. 하지만 데이터당 사람의 개입이 상당히 필요하고, 여전히 품질 검수팀이나 검토 담당팀을 통해 QA 과정을 진행해야 하기도 합니다.

3 - 오토라벨링과 커스텀 오토라벨링 (Auto-Labeling and Custom Auto-Labeling)

커스텀 오토라벨링 프로세스


인공 지능 분야에서 데이터 라벨링은 가장 인력이 많이 드는 작업이기 때문에 대다수의 회사는 자동화로 병목현상을 완화할 수 있는 방안을 모색하고 있습니다. Superb AI는 라벨링이 어렵고 번거로운 과정이라는 이러한 기존의 인식에 도전하고자 합니다. Superb AI는 노코드 플랫폼을 통해 단 수백 장의 이미지나 영상 프레임만으로 common object 오토라벨링이나 커스텀 오토라벨링 시스템을 이용해서 정답 데이터(Ground truth)를 제공합니다.


Common Object 오토라벨링

Superb AI는 고객이 준비한 사전 라벨링 데이터를 이용해서 모델을 구축할지 (커스텀 오토라벨링) 혹은 라벨링 작업까지 포함한 서비스를 원하는지 (Common Object 오토라벨링) 고를 수 있는 선택권을 제공합니다. 후자의 경우 Superb AI의 오토라벨링 AI을 사용하는데, 이는 사전 학습된 대량의 오픈 소스 데이터셋을 이용해서 전이 학습(transfer learning)이라고 불리는 과정을 통해 고객의 모델을 위한 라벨링을 진행하게 됩니다. Common Object 오토라벨링 AI는 고객이 원하는 것과 비슷한 형태의 모델이나 작업의 데이터셋을 본떠서 자동으로 라벨링하는데 이용합니다. 이렇듯 고객은 이미 만들어진 데이터셋을 적용함으로써 전체적인 과정을 더 빠르게 앞당기고 QA 과정을 간소화시킬 수 있습니다.


커스텀 오토라벨링

모델을 구축할 때 전이 학습(transfer learning)에서 벗어난 방법으로는 커스텀 오토라벨링이 있습니다. Superb AI는 모델을 학습시킬 때 고객의 데이터셋에서 소량(오브젝트 클래스당 약 2000개의 어노테이션 혹은 그보다 훨씬 적은 양)의 라벨링된 데이터를 가지고 퓨샷 러닝(Few-shot learning)을 활용합니다. Superb AI가 필요로 하는 학습용 데이터의 양은 다른 AI보다 월등히 적은 편이라서 라벨링에 들어가는 시간 및 인력, 비용 역시 확연하게 줄어듭니다. 더군다나 모델을 사전 학습시킬 필요가 없기도 합니다. 커스텀 오토라벨링 AI는 머신 러닝 분야의 경험이 적은 회사들뿐만 아니라 소규모 프로젝트를 진행하는 이들에게 훌륭한 도구가 될 수 있습니다. 거기에 니즈에 딱 맞는 커스텀 오토라벨링 AI를 구축하는 데에는 약 1시간도 채 걸리지 않죠. 구축이 완료되면 Superb AI가 제공하는 불확실성 추정 AI(Uncertainty Estimation AI)를 통해 결과물을 검수해서 라벨링 오류로 이어질 수 있는 불확실한 부분들을 집어 내줍니다. AI가 판단하기 어려운 부분들만 보여주는 기능은 데이터 검수에 드는 시간을 확연히 단축시켜줍니다. 1차 작업 후 머신 러닝 엔지니어들이 모델 내의 편향을 고치고, 고친 결과물을 다시 모델에 재학습 시키는 식으로 높은 정확도를 유지할 수 있습니다. 이러한 과정은 해당 머신 러닝 모델이 일정 이상의 높은 정확도에 도달할 때까지 여러 차례 반복됩니다.


현 기술로는 처음부터 완전 자동화로 머신 러닝 모델을 구축하는 것이 불가능하지만, 기술이 발전하면서 사람의 개입을 최소화할 수 있게 됐습니다. Superb AI는 커스텀 오토라벨링을 통해 머신 러닝 엔지니어들의 발목을 붙잡는 병목 현상을 타파하려고 노력하고 있습니다.


마치며

머신 러닝 모델은 인공 지능 분야의 중심이며, 기술이 발전함에 따라 점점 더 보편화되고 있습니다. 구축하려는 프로젝트의 종류, 투입할 수 있는 자원 및 달성하려는 목표에 따라 데이터에 적합한 라벨링 전략은 상이합니다. 따라서 머신 러닝 엔지니어들은 전략마다 존재하는 장단점을 주의 깊게 고려해야 할 필요가 있습니다.

데이터 라벨링 자동화를 향한 길은 손쉽게 찾을 수 있는 길은 아닌 데다, 아직은 사람의 개입을 피할 수 없습니다. 하지만 Superb AI Suite는 시간과 인력 비용은 확실히 줄일 수 있는 방법을 제시해줍니다. Superb AI의 커스텀 오토라벨링 기술을 통해 정답 데이터(Ground truth)를 더 빠르게 그리고 더 적은 자원을 들여 구축하면서 팀의 AI 프로젝트에 들어가는 시간과 비용을 줄여보세요. Superb AI의 오토라벨링 기능에 대해서 더 자세히 알고 싶다면, 이곳을 클릭하세요.