brunch

16. 데이터중심AI 실천을 위한 서비스

데이터중심 AI강좌: 데이터세트 구축 및 효율적인 데이터 학습 방법

by AI개발자
gaebalai-blog_(2)_(1).jpg

이번에는 데이터중심 접근법은 다양한 AI개발 케이스에서 효과를 발휘하고 있고 그 중요성이 널리 인식되고 있습니다. 이런 가운데 데이터중심AI의 실천을 지원하기 위한 도구를 서비스로 제공하는 기업들이 나오기 시작했습니다. 이번에는 그런 서비스들을 소개하고 사례연구와 같이 소개합니다.


(1) Snorkel AI

Snorkel AI는 미국 스탠퍼드 대학의 AI연구에서 스핀아웃(Spin-out)하여 2019년에 설립된 미국 스타트업으로 데이터중심 AI개발 플랫폼인 Snorkel Flow를 주요 서비스로 제공하고 있습니다. Snorkel Flow는 AI개발 과정에서 어노테이션(annotation)부터 모델개발, 배포(deploy)에 이르는 과정을 앤드투앤드(end-to-end)로 수행할 수 있는 개발플랫폼이며, 주요 특징으로는 Data Programming이라 불리는 기술을 핵심기술로 활용하고 있다는 점을 꼽을 수 있습니다.


Data Programming은 Snorkel AI 창업자 Alexander Ratner등이 2016년에 제안한 기술로 어노테이션 시 데이터 하나하나에 직접 라벨을 부여하는 대신, 라벨을 부여하기 위한 규칙을 함수로 작성(이것을 라벨링 함수라고 부름)하는 것이 기존 방식과 크게 다른 점입니다. 즉, 어노테이터(annotator)는 라벨링에 이용하 자신의 도메인 지식을 함수형태로 기술합니다. 예를 들어, 이메일 스팸여부를 판단하는 경우 본문에 'send money'라는 문구가 있으면 스팸으로 판단하는 규칙을 함수형태로 작성하는 형태입니다. 만약 이러한 방식만으로 완전한 어노테이션이 가능하다면 애초에 머신러닝은 필요없고 규칙기반(rule-based)처리만으로 충분할 것이지만, 실제로는 그렇지 않으며 하나의 라벨링 함수를 사용하더라도 각 함수의 결과가 일관되지 않을 수 있으며, 동일 데이터에 대해 서로 다른 라벨이 부여될 가능성도 있습니다. Data Programming은 이러한 라벨링 함수의 라벨을 약한지도정보(weak supervision)로 취급하여 일관되지 않고 노이즈(noisy)한 라벨로부터도 모델을 확습할 수 있도록 하는 기술입니다.


이메일스팸 결정에서 라벨링 함수의 예시

dataai-069-2.png

Snorkel AI의 기술은 이미 많은 포춘지 500대기업과 정부기관등에 도입되고 있으며 Snorkel AI가 사례연구로 공개한 사례를 아래에서 소개합니다.


▣ Apple

Apple은 자사 개발 머신러닝 플랫폼인 Overton에서 Snortel AI의 기술을 활용하고 있습니다. Overton은 AI시스템 구축부터 모니터링, 개선에 이르는 라이프사이클을 적절히 추상화하여 엔지니어가 사소한 작업에 소모하는 시간을 줄이고 보다 핵심적인 작업에 집중할 수 있도록 지원하는 것을 목표로 합니다. Overton에서는 엔지니어가 모델 개발시, TensorFlow등으로 코드를 작성할 필요없이, 스키마만 정의하면 모델학습부터 배포까지 자동으로 이루어집니다. 이 과정에서 모델학습에는 당연히 라벨이 필요하지만, 실제 서비스에서는 불완전하거나 서로 모순된 라벨만 얻을 수 있는 경우도 있습니다. Overton은 Snorkel AI의 기술을 통해 라벨 정확성을 예측하고 이를 학십시 손실에 반영하여 이렇게 약한(weak)라벨로부터도 적절히 모델을 학습할 수 있습니다. 실제로 약한 라벨이 전체 96%를 차지했던 한 프로젝트에서는 Overton도입 전후로 모델 에러(error)가 82%감소했다고 보고되었습니다.


▣ Google

구글은 Snorkel AI의 기술을 활용한 Snorkel DryBell이라는 시스템을 구축하여 회사내부에 축적된 다양한 리소스를 약한 라벨로 활용해 모댈개발을 효율화하고 있습니다. 구글 엔지니어는 떄로 수백개의 모델을 담당하며 비즈니스 요건이나 제품변화에 신속하게 대응해야 하는데 매번 수동으로 어노테이션하는 것은 비효적입니다. Snorkel DryBell은 구글이 축적한 도메인 지식기반의 규칙, 지식그래프(knowledge graph), 대상작업에 직접 수용할 수 없지만, 관련이 있는 기존 모델등을 약한 라벨로 결합하여 사람의 수작업 어노테이션을 없애고 신속한 모델개발을 가능하게 합니다. 예를 들어, 콘텐츠 주제(topic)분류 작업에서 Snorkel DryBell이 약 68만개 데이터에 약한 라벨을 붙여 학습한 모델은 사람이 수작업으로 라벨링한 8만개 데이터를 사용해 학습한 모델과 동등한 성능을 보였습니다. 약한 라벨 사용시, 기존 라벨링 방식보다 많은 데이터가 필요하지만, Snorkel DryBell은 데이터가 600만개 이상이어도 30분이내에 라벨 부여가 가능합니다.


▣ Intel

Snorkel AI가 제공하는 서비스 사용에서 가장 중요한 라벨링 함수의 작성이며, 당연히 라벨링 함수 작성자는 해당 도메인 지식이 풍부한 전문가(도메인전문가, domain expert)가 적합합니다. 그러나 도메인 전문가가 반드시 프로그래밍 능력을 갖추고 있지 않기 때문에 라벨링 함수 작성에 일정한 훈련이 필요합니다. 이러한 과제에 대해 인텔은 Snorkel AI의 프레임워크를 확장한 Osprey라는 시스템을 사용하고 있습니다. Osprey는 스프레드시트와 유샇ㅎ한 인터페이스를 제공하며 여기서 필요한 항목을 입력하면 자동으로 라벨링 함수를 작성할 수 있게 됩니다. 실제로 Osprey를 사용하여 인텔에서 수행한 3가지 비즈니스 시나리오 중 2가지에서 기존 시스템 대비 성능 개선을 이루어졌으며, 나머지 하나에서도 동등한 성능 얻었다고 보고되었습니다.



(2) Cleanlab

Cleanlab 역시 앞서 소개한 Snorkel AI와 마찬가지로 MIT연구에서 출발하여 2021년 창업한 미국 스타트업입니다.

GitHub 레파지토리: https://github.com/cleanlab/cleanlab

주요 서비스는 Cleanlab Studio라는 플랫폼으로 사용자가 AI개발에 사용하는 데이터세트의 문제를 자동으로 검출하고 수정함으로써 데이터세트 품질개선을 지원합니다. 테이블 데이터, 이미지, 텍스트, 음성등 다양한 형태의 데이터에 대응하고 있습니다. 또한, 기능은 일부 제한되지만 무료로 이용가능한 Python라이브러리도 공개하고 있습니다. Cleanlab의 제품은 공동창업자 Curtis Northcutt등이 2019년 제안한 Confident Learning이라는 기술을 기반으로 합니다.


Confident Learning은 데이터세트 문제 중 특히 라벨오류에 주목한 기술로 주어진 라벨링된 데이터세트에서 어노테이션으로 부여된 (오류가능성이 있는) 라벨과 참(true) 라벨의 동시 확률분포(joint probability distribution)를 추정합니다. 예를 들어, 동물 종류가 라벨로 부여된 이미지 데이터세트의 경우, 실제로 여우가 찍혀 있는 이미지인데 어노테이션시 실수로 '개'라는 라벨로 부여된 확률이 1/10이다라는 식으로 모든 라벨의 조합에 대해 이런 추정을 수행합니다. 이때 실제 참 라벨(여우)은 알 수 없으므로, 원본데이터세트로 학습한 모델의 예측결과를 참 라벨로 활용합니다. 그리고 참라벨은 여우인데 부여된 라벨은 개인데이터가 100개 존재한다와 같이 참라벨과 부여된 라벨이 모든 조합에 해당하는 데이터수를 카운트합니다. 다만, 모델이 출력한 확률(신뢰도)이 낮은 데이터는 카운트에서 제외합니다. 즉, 신뢰도가 높은 데이터만을 사용하여 혼동행렬(confusion matrix)을 만듭니다. 동시확률분포는 이렇게 얻어진 행렬을 정규화(normalization)하여 구합니다. 이렇게 구한 동시확률분포에 데이터세트 특정라벨이 부여된 데이터수를 곱하면, 그중 라벨이 잘못된 데이터수를 추정할 수 있습니다. 이를 바탕으로 예를 들어 예측시 신뢰도에 따라 데이터를 정렬하고 추정된 갯수만큼 신뢰도가 낮은 순서로 데이터를 추출하면 라벨이 잘못 부여된 데이터들을 효율적으로 찾아낼 수 있습니다. 실제로 ImageNet등 여러 공개 데이터세트에서 Confident Learning이 찾아낸 라벨오류 사례를 웹사이트에서 직접 확인할 수 있습니다.


Cleanlab은 구글이나 아마존같은 대형 IT기업 외에도 금융, 헬스케어등 다양한 업종의 기업에 서비스를 제공하고 있습니다. 예를 들어 스페인의 은행인 빌바오 비스카야 아르헨타리아 은행(BBVA)사례에서는 계좌 거래 내용을 설명한 텍스트 데이터세트 개선에 Cleanlab서비스가 활용되고 있습니다. 이를 통해 앱이용자느 자신의 계좌에서 발생한 수입이 어디에서 얼마나 있었는지, 또한 레저, 패선,음식등 어떤 항목에 얼마를 지출했는지 쉽게 파악할 수 있습니다. 각각의 거래는 그 내용을 설명하는 텍스트를 포함하ㅏ고 있어 BBVA는 이 텍스트에 어노테이션을 수행했으나, 유사한 거래라 하더라도 어노테이터의 해석에 따라 다른 클래스가 부여되는 문제가 있었습니다. 이에 BBVA는 Cleanlab의 서비스를 이용하여 문제가 있는 데이터를 효유적으로 발견하고 데이터클리닝을 수행하여 분류정확도를 28% 개선하는데 성공했습니다.



지금까지 데이터중심AI는 데이터 설게화 개발, 개선을 체계적으로 수행하는 것을 목표로 합니다. 그러나 실제 개발실무에서는 다양한 접근법이 사용되며 대상 프로젝트와 밀접하게 관련된 임시적인 접근법이 많이 존재합니다. 앞으로 이런 다양한 접근법을 정리하고 체계화할 필요가 있지만 우선 실제 사례에서 배우면 실천하는데 유용할 것입니다. 총 16장에 걸려 데이터중심의 AI가 무엇이고 어떤 것들이 있는지를 설명했습니다.

읽어주셔서 감사드립니다.


©2024-2025 GAEBAL AI, Hand-crafted & made with Damon Jaewoo Kim.

GAEBAL AI 개발사: https://gaebalai.com

GAEBAL AI 개발사: https://gaebalai.com

AI 강의 및 개발, 컨설팅 문의: https://talk.naver.com/ct/w5umt5

AI 강의 및 개발, 컨설팅 문의: https://talk.naver.com/ct/w5umt5

keyword
이전 15화15. 데이터중심AI 사례