슈퍼브에이아이 커스텀 오토 라벨의 완벽 활용 가이드
속도와 정확성을 위한 고품질의 정답 데이터와
올바른 훈련 이터레이션
슈퍼브에이아이의 커스텀 오토 라벨은 데이터셋의 구축과 이터레이션에 드는 시간을 획기적으로 감소시켜줄 수 있는 강력한 툴입니다. 이 똑똑한 자동화 툴이 있으면 큰 사이즈의 데이터셋 준비를 수동으로 하는 것은 옛일이 될 것입니다.
특정 유즈 케이스에 적합하게 조정한 커스텀 오토 라벨을 구축하는 것은 어렵지 않은 일이지만, 이 가이드는 최적화된 정답 데이터셋을 구축하는 데에 필요한 사항과 효율성을 보장해 줄 추천 워크플로우를 안내해드립니다.
라벨링 패러다임
데이터 라벨링은 모든 머신러닝 프로젝트에 포함된 단계입니다. 현재 시장을 지배하는 기존의 지도 학습 모델이 항상 데이터에 목말라있다는 것을 고려할 때, 고품질의 라벨링 된 데이터를 구축하기 위한 체계적인 접근은 머신러닝 모델의 개발과 운영에 필수 요소입니다.
수동 라벨링 기술은 직관적이기 때문에 수월하게 적용할 수 있습니다. 특정 데이터셋에 라벨을 붙이기 위해 사람이 가진 도메인 지식, 즉 특정 주제에 대한 전문성을 활용할 수 있습니다. 특히 의료 노트나 법적 문서 등과 같이 적합한 라벨을 판단하는 데에 고도의 추론이 요구되는 시나리오에서 잘 작동합니다. 그러나 머신러닝 모델의 수가 증가할수록 시간과 비용이 크게 증가합니다. 라벨링 해야하는 이미지의 수가 늘어날수록 비용도 이에 비례해 증가하기 때문입니다. 머신러닝 팀이 개념 증명(Proof-of-Concept) 단계에서 프로덕션 단계로 넘어가면, 모델 퍼포먼스에 요구하는 정확도가 높아짐에 따라, 필요한 데이터와 라벨의 양이 기하급수적으로 늘어나게 됩니다.
자동 라벨링은 라벨링을 거친 훈련 데이터셋을 만드는 과정을 매끄럽게 만들어줍니다. 그 결과, 자동 라벨링은 비용과 시간적인 측면에서 더욱 효율적인 선택지입니다. 보통 복잡한 라벨링이 필요없는 시나리오에서 잘 작동합니다. 하지만 모델 성능을 개선하기 위한 필수 요소인 엣지 케이스를 놓치는 경우가 종종 있습니다. 축구 경기 사진을 예로 들면, 자동 라벨링 기술은 각각의 선수들과 오브젝트를 쉽게 라벨링할 수 있지만, 여러 명의 선수가 한데 뭉쳐 골 세레모니를 하고 있는 모습은 제대로 처리하지 못할 수 있습니다. 바로 이런 상황에서 풍부한 어노테이션이 장점인 수동 라벨링 기술이 빛을 발합니다.
수동 라벨링과 자동 라벨링의 주요 차이점에 대한 상세 설명은 오토 라벨 프레임워크에 대한 블로그 포스트에서 확인하세요.
커스텀 오토 라벨 입문하기
슈퍼브에이아이의 커스텀 오토 라벨(Custom Auto-Label, CAL)은 수동 라벨링과 자동 라벨링의 장점만 결합한 제품입니다. 이름에서도 알 수 있듯이 CAL은 (1) 수동 라벨링의 주제에 대한 전문 지식과 (2) 전문 지식을 자동화 솔루션에 결합시키는 고도화된 머신러닝 기술을 활용합니다.
CAL이 도입한 주요 머신러닝 기술은 전이(transfer) 학습, 퓨샷(few-shot) 학습, 베이지안(Bayesian) 딥러닝, 그리고 자기 지도 학습(self-supervised learning)입니다.
1 - 전이 학습과 퓨샷 학습
전이 학습은 머신러닝 실무자들이 라벨링 시 마주하는 어려움을 라벨링된 관련 태스크 또는 도메인의 데이터로 기존에 훈련된 모델을 활용해 극복할 수 있도록 도와줍니다. 퓨샷 학습은 자동 라벨링의 또 다른 솔루션으로, 전통적인 지도 학습과는 달리 적은 수의 라벨링된 데이터만으로도 모델을 훈련시킵니다.
CAL은 전이 학습과 퓨샷 학습을 결합해 슈퍼브에이아이의 전매특허 모델을 여러분의 도메인에 맞춤으로 신속하게 적용할 수 있도록 만듭니다.
2 - 베이지안 딥러닝
베이지안 딥러닝은 뉴럴 네트워크를 설계할 때 베이지안적 접근을 활용해 모델 예측의 불확실성을 수치화합니다. 머신러닝 실무자들은 이와 같은 인식론적 불확실성을 해결해, 향상된 보정, 신뢰할 수 있는 예측 분포 및 향상된 정확도를 가진 모델을 개발할 수 있습니다.
몬테 카를로와 불확실성 분산 모델링이라는 2개의 불확실성 예측 모델을 조합해, CAL은 데이터를 자동으로 라벨링하는 것뿐만 아니라, 모델 훈련에 가장 중요한 “어려운 예시“를 판별해 능동 학습 워크플로우를 가능하게 합니다. 결과적으로 CAL 사용자들은 전체 데이터셋을 수동으로 라벨링하는 대신 이러한 고난도 예시들을 검수하고 편집하는 데에 집중할 수 있습니다. 이 새로운 기능 뒤에 숨은 상세 이론은 백서를 확인해보세요.
3 - 자기 지도 학습
자기 지도 학습은 머신러닝 실무자들이 데이터에 따라오는 무료 라벨을 활용할 수 있도록 도와줍니다. 클린 라벨 데이터셋을 만드는 것은 비용이 많이 들기 때문에, 라벨링되지 않은 데이터의 속성을 활용해 자기 지도 태스크를 세팅해 데이터가 스스로 지도하게 만들 수 있습니다. 자기 지도 태스크는 데이터에서 중간적 표상을 학습하기 위해 지도 손실 함수로 이어집니다. 이와 같은 표상은 우수한 구문적, 구조적 의미를 내포하며 파생되는 다양한 실무 태스크에 이점을 제공합니다.
슈퍼브에이아이의 CAL은 자기 지도 학습을 통해 일반적으로 많이 활용되는 컴퓨터 비전 어플리케이션 시나리오에 맞게 모델을 사전 훈련 시키는 데에 활용됩니다. 현미경 이미지나 컴퓨터 그래픽과 같은 매우 특수한 도메인의 니치한 데이터셋을 활용한다고 가정해볼까요? 이런 상황에서는 슈퍼브에이아이가 보유한 사전 훈련 모델의 목록 중에서 고르는 것도 방법입니다. 이 모델들은 자기 지도 학습을 통해 다양한 어플리케이션 시나리오에 맞게 학습되어 여러분의 도메인에 적합하게 잘 작동될 것입니다.
앞서 언급한 강력한 기능들을 활용한다면, 이제 우리에게 필요한 것은 작은 정답 데이터셋입니다. 나머지 데이터 준비 태스크는 여러분이 다루고자 하는 도메인의 복잡성이나 특수성과는 상관 없이 CAL이 다 알아서 해줄겁니다.
정답 데이터셋 준비의 모범 사례
1 - 최소 가이드라인
각 오브젝트 클래스마다 최소 2,000개의 어노테이션이 필요합니다. CAL을 훈련시키는 데에 약 80%의 어노테이션이 활용되고, 나머지 20%는 하이퍼파라미터 조정과 모델 퍼포먼스 예측에 활용됩니다. 각 이미지별로 5개의 클래스와 2개의 어노테이션이 포함되는 데이터셋을 처음 수동으로 라벨링한다고 생각해봅시다. 만약 모델 훈련에 클래스 당 2,000개의 어노테이션과 동일한 수준인 1,000개의 이미지를 사용한다면, 클래스 당 400개의 어노테이션은 하이퍼파라미터의 미세 조정과 모델 퍼포먼스 예측에 활용될 것입니다.
만약 충분하지 못한 어노테이션으로 CAL 모델을 훈련시키면, 모델이 올바르게 작동하는 데에 2가지 문제가 생길 수 있습니다. 첫째로, 훈련용 데이터의 사이즈가 작으면 과소 모델이 되어 성능이 심각하게 저하될 수 있습니다. 둘째로, 하이퍼파라미터 조정과 성과 측정 단계가 충분치 못해 클래스 스코어의 기준값을 설정할 수 없고 어노테이션의 필요 여부를 판별하기 어려워질 수 있습니다. 이 때문에 위양성, 위음성이 너무 많아질 수도 있습니다. 이와 같은 문제들은 데이터셋의 클래스에 불균형이 심각해질 경우 더욱 악화될 수 있습니다.
2 - 오브젝트 클래스 정의하기
오브젝트 클래스의 올바른 정의는 필수입니다. 다음은 꼭 지켜야 할 4가지 권장 사항입니다.
만약 모든 조건이 동일하다면, 오브젝트 클래스의 수가 적을수록 모델의 성능이 더 좋아집니다. 머신러닝 모델의 관점에서는 많은 수의 오브젝트 클래스를 분류하는 것은 어려운 일입니다. 만약 클래스의 수가 많다면, 작은 샘플 클래스 또는 사람이 보기에도 어렵거나 애매한 클래스를 하나로 묶는 것을 추천드립니다. 예를 들면 20대나 30대를 하나의 연령 그룹으로 묶거나, 미니밴이나 SUV를 자동차로 묶는 것입니다. 가장 이상적인 것은 클래스 속성(Class attribute)을 활용해 클래스를 정의하고 하위 클래스를 카테고라이징하는 것입니다. 이러면 나중에 스위트 플랫폼에 수동으로 추가할 수 있습니다. (이 속성들은 CAL 훈련에 활용되지 않습니다.)
모든 오브젝트 클래스의 어노테이션 수를 동일하게 맞춰보세요. 현실적으로 모든 클래스의 어노테이션 수를 완벽하게 맞추는 것은 불가능할겁니다. “사람”이나 “자동차“와 같은 일반적인 클래스는 이보다 덜 일반적인 클래스에 비해 훨씬 많은 어노테이션을 가질 수 밖에 없기 때문입니다. 하지만 클래스 간의 불균형을 해결하는 것을 항상 염두에 둘 필요가 있고, 이를 해결하는 하나의 방법은 작은 샘플 클래스를 다른 비슷한 클래스와 그룹화하는 것입니다.
충분한 수의 어노테이션이 생길 때까지 클래스를 하위 카테고리화하지 마세요. 대신, 어노테이션이 1,000개 미만인 희귀 클래스들끼리 묶어주세요. 아래는 클래스를 그룹화하는 방법의 예시입니다.
• 집기: 모니터, 노트북, 스마트폰, 소형 가전 등
• 액세서리: 넥타이, 시계, 신발, 모자, 목걸이, 패션 아이템 등
• 자동차 및 트럭: 세단과 SUV는 “자동차”이고 픽업 트럭이나 박스 트럭은 “트럭”이 될겁니다. 비슷한 클래스를 “탈 것”이나 “집기”와 같이 하나로 묶는 것은 CAL 모델이 오브젝트를 식별하는 정확도를 높여 더 좋은 성능을 낼 수 있게 해줍니다.
• 기타: 다른 것과 그룹화하기 어려운 클래스이거나 오브젝트 사이즈가 다른 클래스의 경우에는 “기타”로 그룹화하는 것이 낫습니다. 왜냐고요? 자전거에 대한 100의 어노테이션이 있고, 이를 하나의 오브젝트 클래스로 설정한다고 가정해봅시다. 첫째로, 이 샘플은 샘플 사이즈가 너무 작고 오브젝트를 판별하기 어렵기 때문에 CAL 모델이 제대로 훈련되지 않을 것입니다. 둘째로, 이러한 어노테이션들은 모델의 하이퍼파라미터를 조정하거나 모델 성능을 측정하는데에는 활용될 수 있겠지만, 아마 전체적인 모델 성능을 저하시킬 것입니다. 그래서 차라리 이러한 클래스를 하나로 묶는 것이 더 나을 수 있습니다.
모든 오브젝트 클래스가 모든 라벨에 동등하게 분포되는 것이 가장 이상적일 것입니다. 너무 많은 어노테이션이 포함된 이미지는 지양해야 합니다. 만약 이러한 이미지를 반드시 포함시켜야 한다면, 전체 데이터셋에 이 클래스에 최소 100개의 어노테이션이 포함되도록 하세요.
3 - 정답 라벨링
이미지나 영상에 라벨이 추가되면 이에 상응하는 라벨을 “정답(ground truth)”이라고 합니다. 여러분의 라벨링 정책이 정답의 퀄리티를 좌우합니다. 라벨링 정책이 명확하고 일관적이어야 정답 데이터를 라벨링할 때 높은 퀄리티 수준을 유지할 수 있습니다. 다음은 3개의 일반적인 오브젝트 형태에 대한 라벨링 정책입니다.
- 바운딩 박스: 바운딩 박스는 오브젝트의 경계선에 밀착되어야 합니다. 경계선은 (1)눈에 보이는 경계선으로 정의하거나, (2)다른 오브젝트에 가려져 보이지 않는 경계선으로 정의해야 합니다. 어느 방법이든, 모든 라벨에 대해 일관적인 오브젝트 정의가 필요합니다.
- 폴리곤: 만약 폴리곤의 경계선을 깔끔하고 일관적으로 그리지 않으면, CAL의 폴리곤 경계선 아웃풋이 오브젝트에 밀착되지 못해 라벨링의 효율성을 개선하는 데에 방해가 될 수 있습니다. 따라서, 폴리곤을 활용해 오브젝트의 경계선을 어느 정도로 정확하게 캡쳐하고 싶은지 라벨링 정책을 통해 설정해야 합니다.
- 키 포인트: 가려지거나 보이지 않는 키포인트를 라벨링 하든 하지 않든 명확한 라벨링 정책이 필요합니다. 또한 키포인트의 골격을 하나의 수직 또는 수평인 일직선으로 정의하는 것을 피해야합니다. 예를 들어, 사람의 머리 - 목 - 가슴 - 꼬리뼈를 하나의 일직선을 사용해 키포인트 어노테이션하면 안 됩니다. 사람의 골격이라면 왼쪽 및 오른쪽 어깨와 같이 오브젝트의 다른 부분도 포함해야 키포인트 어노테이션을 중심으로 바운딩 박스를 그릴 때 박스가 좁은 직사각형이 되는 것을 피할 수 있습니다.
CAL을 활용한 추천 워크플로우
위에서 논의한 정답 데이터셋 구축의 모범 사례를 따른다고 가정하면, 첫 번째 훈련 이터레이션에서 고품질의 CAL 모델을 얻을 수 있는 좋은 기회가 생길 수도 있습니다.
1 - 첫 이터레이션
아직 판별만족도가 들쑥날쑥한 오브젝트 클래스라면, 이 클래스에 대한 충분한 정답 라벨을 축적하기 전까지는 새로운 배치(batch)의 훈련을 하지 않을 것을 권장합니다.
판별만족도(satisfactory detection rate)란, 몇 개의 라벨을 리뷰한 후 상대적으로 빠르게 CAL 모델이 특정 클래스를 정확하게 판별했는지 여부를 알 수 있는 비율입니다.
이 기능이 있으면 사용자들은 훈련이 끝난 CAL이 각 클래스에 대해 어느 정도의 성과를 낼 지 알 수 있습니다. 그 후에 어떤 클래스에 CAL을 사용하고 싶은지 결정하면 됩니다.
만약 특정 오브젝트 클래스에 대해 CAL모델의 성과가 만족스럽지 못했다면, 더 많은 데이터와 수동 어노테이션을 추가하는 것도 한 가지 방법입니다. 이런 상황에서는 일단 해당 CAL 프로젝트의 환경설정에서 이 클래스를 비활성화한 후에 누락된 오브젝트 클래스를 보완하기 위해 수동 라벨링을 추가하는 것을 권장합니다. 만약 진단 불가능한 문제일 경우에는 저희에게 알려주시면 문제 해결 및 CAL 모델 업데이트가 가능한지 확인해드리겠습니다.
훈련된 CAL의 성능이 저하되는 또다른 이유는 데이터가 의료 이미지나 인공위성 이미지 등 매우 특수한 도메인을 다룰 때입니다. 근시일 내에 자연 이미지, 위에서 바라본 인공위성 이미지, 현미경 이미지 등 각각의 주요 도메인에 대해 자기 지도 방식으로 사전 훈련된 모델을 개발할 예정입니다. CAL 사용자들은 어떤 사전 훈련된 모델로 CAL 활용을 시작할 지 선택할 수 있습니다. 이를 통해 해당하는 도메인과 태스크에 더 적합한 모델을 활용할 수 있는 확률을 높일 수 있습니다.
훈련용 CAL의 최초 이터레이션 이후, 라벨링 되지 않은 데이터의 다음 배치에 CAL을 활용해야 합니다. 고난이도의 라벨을 검수하는 것에 집중해 이를 내보내기 한 후 CAL 훈련의 다음 이터레이션에 활용해야 한다는 점을 잊지 마세요.
2 - 후속 이터레이션
후속 훈련 이터레이션을 위해 더 많은 로우 데이터를 모으고 이전 CAL 모델의 성능이 좋지 않았던 오브젝트 클래스에 대한 수동 라벨링을 권장합니다. 이를 통해 이터레이션을 반복할 때마다 CAL의 성능이 향상되는 것을 명확히 확인할 수 있습니다.
첫째로, 스위트의 필터 기능을 활용해 이와 같은 클래스의 라벨을 필터링하세요. (“필터” → 어노테이션 → 모두 포함 → 오브젝트 클래스를 선택하세요.)
다음으로, 다음 배치를 생성할 때 라벨 태그를 추가하세요. 마지막으로, 새로운 CAL 모델을 훈련시킬 때는 이전 배치를 내보내기 하는 것을 잊지 마세요. 예를 들어, 이번이 3번째 CAL 이터레이션이라면, 1, 2, 3번 배치를 같이 내보내기 해야합니다.
시작하는 방법
커스텀 오토 라벨을 활용할 준비가 되셨다면 저희가 도와드리겠습니다. 저희 세일즈팀과 미팅 일정을 잡으세요. 자동 라벨링은 고려해야 할 사항이 많고, 아직 준비가 되지 않은 팀이 있을 수도 있습니다. 하지만 괜찮습니다! 저희가 최선을 다해 도와드리겠습니다.