Upstage

원본 보기

AI 모델에서 데이터를 처리할 때 발생하는 세 가지 문제(데이터! 데이터! 데이터!)

2022/11/14 | 작성자: 박성민

이전 콘텐츠에서는 서비스용 AI 모델을 만드는 단계에 대해 설명했습니다. 서비스 개선을 위한 AI 모델 개발에서 데이터는 자주 언급됩니다. 학교 수업이나 온라인 강의에서 모델과 최적화 방법에 대한 논의는 쉽게 찾아볼 수 있지만, 실제로 데이터와 관련된 방법론을 찾아보기는 어렵습니다. 그럼 지금부터 AI 모델 개발 시 데이터 관련 작업이 어려운 이유에 대해 자세히 살펴보겠습니다.


AI 모델 개발에서 데이터 관련 작업이 어려운 이유

1. 최선의 접근 방식은 알 수 없음

서비스용 AI 모델의 품질을 보장하기 위해 서비스 출시 전후로 데이터 처리에 많은 노력을 기울이고 있습니다. 그러나 모델 구조와 학습 방법에 초점을 맞춘 많은 AI 관련 논문에 비해 데이터를 다루는 논문은 상대적으로 적습니다. 선례가 부족하다는 것은 새로운 영역을 개척해야 하고 더 많은 시간을 투자해야 할 수도 있다는 것을 의미합니다.

출처: DeepLearning.AI


"학계에는 의미 있는 데이터를 수집할 수 있는 자원이 많지 않기 때문에 데이터 집합을 개선하는 방법을 가르쳐 주는 사람은 거의 없다"는 말이 있습니다. 이 작업은 고품질 데이터 수집의 어려움, 높은 라벨링 비용, 신뢰할 수 있는 데이터 집합을 구축하는 데 필요한 광범위한 시간이라는 세 가지 주요 이유로 인해 어려울 수 있습니다.

출처: 간트리 블로그


2021년 4월에 UC 버클리에서 AI를 전공하는 졸업생을 대상으로 실시한 설문조사에 따르면, AI를 서비스에 적용할 때 가장 어려운 작업은 모델 유지 관리 및 재교육(61.1%)이었으며, 모델 모니터링(60.0%)과 데이터 라벨링(38.2% )이 그 뒤를 이었습니다. 이러한 모든 작업을 해결하려면 방대한 양의 데이터가 필요하며, 실제 애플리케이션에서 데이터가 어떻게 사용되는지 알지 못하면 어려움을 겪을 수 있습니다.



2. 데이터 라벨링 작업은 생각보다 어렵습니다.

데이터 작업이 어려운 또 다른 이유는 데이터 라벨링 작업이 생각보다 훨씬 어렵기 때문입니다. 데이터 주석 작업을 아웃소싱하는 것은 간단해 보이지만, 성과를 극대화하려면 세부 사항에 세심한 주의를 기울여야 합니다.

흔히 오해하는 것 중 하나는 데이터가 많을수록 모델 성능이 향상된다는 것입니다. 하지만 항상 그런 것은 아닙니다. 라벨링된 데이터 포인트가 10만 개까지만 해도 성능이 좋았더라도 라벨링된 데이터의 양이 증가하면 성능이 저하될 수 있습니다.

그렇다면 무엇이 좋은 데이터를 만들까요? 고품질 데이터의 첫 번째 요건은 라벨링 노이즈가 없어야 한다는 것입니다. 라벨링 노이즈는 라벨링 결과의 불일치를 의미하며, 노이즈 수준이 높을수록 데이터 품질이 떨어집니다.

데이터 라벨링이 어려운 이유


이해를 돕기 위해 회귀 분석을 예로 들어 보겠습니다. 수집한 데이터가 위 그래프의 녹색 표시기로 표시된 '실제 결과'를 모델링하는 데 사용된다고 가정해 보겠습니다. 노이즈 레이블이 있는 데이터의 양이 적으면 모델의 구조나 학습 방법에 따라 다양한 모델을 만들 수 있지만 일반화 측면에서 성능이 현저히 저하되는 것을 알 수 있습니다. 반면에 데이터 세트가 크면 노이즈가 있는 레이블이 있더라도 모델이 실제 결과에 더 가깝게 근접하는 경향이 있습니다. 이는 라벨링 노이즈를 상쇄할 수 있는 깨끗한 샘플이 충분하기 때문입니다. 요약하자면, 학습 중에 부적절하게 레이블이 지정된 데이터를 무시하려면 최소한 두 배 이상의 정확한 레이블이 지정된 샘플이 필요합니다.

데이터 라벨링이 어려운 이유


  • 소규모 데이터 / 레이블 정리 / 데이터 균형: 소량의 데이터라도 잘 분산되어 있으면 좋은 모델을 만들 수 있습니다.

  • 작은 데이터, 깨끗한 레이블, 데이터 불균형: 이러한 요소는 모델 구조나 학습 방법론에 따라 일반화 성능을 저하시킬 수 있습니다.


데이터의 양이 제한되어 있더라도 유사한 데이터만 있는 것이 아니라 일관되게 레이블이 지정된 다양한 데이터가 포함되어 있다면 가치가 있을 수 있습니다. 구체적인 예를 통해 더 명확하게 이해해 보겠습니다.

일반적인 상황에서 노이즈와 데이터 분포의 상관관계를 라벨링합니다.


위의 그래프는 특정 작업을 수행하기 위해 데이터가 수집되었다고 가정하고 일반적으로 발생하는 라벨링 노이즈의 강도를 보여줍니다. 자주 발생하는 경우 , 라벨 제작자에게 내용이 익숙하고 작업 가이드를 만들 때 이를 염두에 두기 때문에 라벨링 노이즈가 최소화됩니다 . 반면 드물게 작업 가이드가 특정 문제를 다루지 않거나 라벨 제작자가 작업을 다르게 해석하여 상대적으로 높은 라벨링 노 이즈가 발생할 수 있습니다. 이러한 현상은 데이터 수집 시 다양한 사례의 빈도를 고려하지 않으면 자연스럽게 발생합니다. 보다 구체적인 예로 AI 서비스에 활용되는 기술인 광학 문자 인식(OCR)을 생각해 보겠습니다.

OCR에서 문자 영역 감지 예시


OCR 모델을 만들 때 라벨링 가이드라인을 "각 단어를 직사각형으로 표시" 하도록 설정했다고 가정해 보겠습니다. 이 경우 첫 번째 시나리오에서는 큰 문제 없이 데이터에 주석을 달 수 있습니다. 그러나 두 번째 시나리오에서는 단어가 명확하게 구분되어 있지 않기 때문에 작업자마다 가이드라인을 다르게 해석할 수 있습니다. 이로 인해 철자가 틀린 단어에 라벨을 붙이지 않거나 따옴표를 별도의 단어로 취급하는 등의 불일치가 발생할 수 있습니다. 동일한 이미지를 여러 작업자가 다르게 해석하면 일관성 없는 라벨링이 발생하여 라벨링 노이즈라고 불리는 문제가 발생합니다.


3. 데이터 밸런싱은 어려운 문제입니다.

고품질 데이터를 보장하기 위한 필수 조건입니다.

고품질 데이터를 생성하려면 의도적으로 고유한 사례를 찾고, 이러한 샘플을 수집하고, 이를 포함하는 라벨링 가이드를 개발하는 것이 필수적입니다. 데이터의 균형을 맞추는 것은 쉬운 일이 아닙니다.

이 프로세스를 간소화하는 방법에는 두 가지가 있습니다:

  1. 업무와 관련된 경험을 쌓으세요. 도메인 지식이 많을수록 예외적인 경우(예: 음성 인식 또는 자율 주행에서 사람 감지 등)를 예측할 가능성이 높아집니다.

  • 실제로 Tesla는 221개의 특정 트리거를 정의하여 자율 주행에서 이러한 경우를 꼼꼼하게 관리하고 있습니다.

  1. 그러나 가능한 모든 사례를 파악하고 라벨을 붙이는 것은 불가능하다는 점을 인식하고 반복적이고 자동화된 프로세스를 구축하는 것이 중요합니다.

  • 이러한 자동화된 프로세스를 "데이터 엔진" 또는 "데이터 플라이휠"이라고 합니다.

AI 모델을 위한 데이터 처리의 다양한 문제를 해결하는 것은 복잡한 작업이며, 앞서 언급한 것처럼 '데이터 엔진' 및 '데이터 플라이휠'과 같은 도구가 필요합니다. AI 모델 개발에 대한 보다 자세한 인사이트를 얻고자 하는 분들을 위해, Upstage는 Python을 사용해 추출, 변환 및 로드(ETL) 파이프라인을 간소화하도록 설계된 무료 오픈 소스 프로젝트를 제공합니다. 아래 링크에서 데이터버스를 살펴보고 데이터 처리의 미래를 함께 만들어 보세요!