최상의 자동화된 데이터 라벨링 워크플로우를 구축하는 방법

최상의 자동화된 데이터 라벨링 워크플로우를 구축하는 방법

데이터 라벨링 프로세스를 최적화하고 간소화하는 것은 많은 실무자들의 목표입니다. 이 목표는 쉬워보일 수 있지만, 관련해서 많은 단계와 요소를 고려해야 합니다. 3부에서는 라벨링 장애 요인, 검수, 표준 데이터 셋 생성 및 및 본격적인 자동화를 위한 내보내기에 대한 내용을 논의했습니다. 이번 장에서는 Superb AI Suite (슈퍼브에이아이 스위트)의 기반이 되는 기술 및 머신 러닝 워크플로우를 위한 가장 효과적인 전략과 절차를 알아보고자 합니다.

4부에서는 다음에 대해 논의하려고 합니다  :

- 커스텀 오토 라벨 및 오토 라벨 AI
- 맞춤형 커스텀 오토 라벨 구축
- GT (정답 데이터)에 커스텀 자동화 기능 적용
- 불확실성 추정 (Uncertainty Estimation) 및 액티브 러닝
- 검수 작업 할당
- 성과 측정과 결과 분석모델 재훈련

자동화된 라벨링

사전 프로그래밍된 라벨은 라벨링 자동화와 커스텀 자동화 프로세스를 통해서 데이터 셋 내의 특정 객체와 클래스를 식별하는데 사용될 수 있습니다.  라벨링되고 훈련된 데이터가 조금만 있어도, 모델은 이 정보를 받아들이고 대체 데이터셋에 사용하여 매뉴얼 라벨링및 라벨링에 소요되는 시간을 줄여 줍니다. 이 자동화를 컴퓨터 비전 워크플로우로 실행하면 수동으로 라벨링하고품질 관리를 하는 대신 많은 시간을 절약하고 비용을 절감하게 될 것입니다. 슈퍼브에이아이는 팀 프로젝트를 더 쉽게 만들고 더 좋은 결과물을 생성하기 위해 자동화와 액티브 러닝을 통합합니다.

‍커스텀 오토 라벨과 오토 라벨: 어떻게 다른가요?

슈퍼브에이아이의 시스템은 뚜렷이 구별되는 두 가지 자동화 기술인 커스텀 오토 라벨링(CAL)과  오토 라벨링으로 구성됩니다. 이 기술들은 사전 라벨링 된 데이터를 이용하여 라벨링 되지 않은 데이터셋에 태그를 부여하는데 사용됩니다. 둘 중 어떤 것을 사용하는지는 프로젝트와 오브젝트 클래스에 따라 결정됩니다.

커스텀 오토 라벨

많은 경우, 고객들은 의료영상 또는 식물병 검출 같은 전문화된 데이터셋을 가지고 작업해야 하는데,이는 외부 전문가들을 필요로 합니다. 이런 상황에서는 자동 라벨링이 충분하지 않을 것입니다. Superb AI의 CAL 은 기술과 경험을 활용하여 개별 사례에 맞춘 고유의 자동 라벨링 모델을 만듭니다.

프로젝트 관리자들은 사전 라벨링 된 GT 데이터셋을 이용하여 라벨링이 되지 않은 데이터 그룹을 훈련하고 성능을 판단하며, 모델이 원하는 수준에 도달할 때까지 필요한 수정을 할 수 있는 능력을 갖게 됩니다. 여러분의 라벨링 워크플로우에 CAL을 활용하면 다음과 같은 이점이 있습니다:

  • 커스터마이징: CAL 은 여러분의 사례에 쉽게 적응할 수 있으며 여러분의 팀이 적합하다고 생각하는 바 대로 수정 및 조정 가능합니다.
  • 엣지 케이스 : 머신 러닝 모델이 성공하기 위해서는 고유한 예시와 엣지 케이스를 고려해야 합니다 . CAL을 이용하면 모델 개선에 도움이 되는 엣지 케이스를 반영할 수 있습니다.
  • 적응성: CAL에 새로운 라벨을 추가하면서 모델을 훈련하면 성능을 더욱 향상시킬 수 있습니다.


‍비고: 커스텀 오토 라벨은 팀 플랜 구매시에만 사용가능합니다. 제품 시연에 대해 당사의 세일즈팀과 논의하고 싶으시면 여기에서 contact form을 작성해 주세요.

나만의 CAL 만들기

Superb AI Suite가 있으면, 여러분만의 CAL을 구축하는 것이 쉬워집니다. 하지만 먼저 이 튜토리얼의 앞부분에서 언급했던 데이터 내보내기 형식에  익숙해져야 합니다. 앞서 말씀드렸듯이 데이터 내보내기는 수기로 라벨링한 훈련용 및 검증용 데이터셋으로 구성되며, 해당 데이터셋들은 추후 모델 훈련에 사용됩니다.이제, 아래의 비디오를 통해 커스텀 오토 라벨을 어떻게 구축하는지 살펴보겠습니다.



CAL 을 구축할 때 가이드를 따라 단계별로 진행하는 것을 선호한다면, 다음의 두 가지 방법을 고려해볼수 있습니다:

‍‍방법 1: 새로운 데이터 셋 생성 및 네이밍

1. Label Exports 탭을 찾습니다.

2. "커스텀 오토 라벨 AI 생성"을 선택합니다.

3.  CAL의 이름을 붙입니다. 데이터셋의 이름이 포함된 아주 구체적인 이름을 추천합니다. 그래야 이터레이션 별로 모델 성능을추적할 수 있기 때문입니다. 첫번째 CAL은 GT 와 검증용 데이터셋으로 구성되어 있기 때문에, GT1 + VAL 이라는 이름을 붙이기를 권장합니다.

4. 슈퍼브에이아이가 CAL을 생성할 때 까지 잠시 기다립니다. 보통 45분에서 한 시간 정도 걸립니다.

‍방법 2: 라벨링 된 데이터 셋 내보내기

1. 프로젝트 사이드바에서 "커스텀 오토 라벨"을 선택합니다. 내보내기 리스트는 사이드바 오른쪽에 나올 것입니다.
2. 화면 우측 상단의 "커스텀 오토 라벨 생성"을 선택 합니다.
3. 내보내기 히스토리가 나타나고 라벨링 된 데이터셋을 선택하라는 메시지가 표시됩니다.
4. 데이터셋 이름을 만들고, 구체적인 사항들을 기억해둡니다.
5. "승인"을 클릭하면 CAL이 생성될 것입니다.

이 것을 시작으로 여러분은 여러분의 CAL 성능이 시간이 흐를수록 어떻게 개선되는지를 확인할 수 있을 것입니다. 더군다나, 여러분의 팀은 정밀도, 재현율, 예상 효율성 개선을 포함하는 유용한 정보들을 제공받게 될 것입니다. 이 정보들은 내보내기 아래쪽에 있는 작은 화살표를 탭하면 나타납니다.

커스텀 오토 라벨의 적용

CAL을 적용하기 전에 CAL의 클래스와 파라미터를 수정하고 싶다면, 오토 라벨 설정을 살펴보면 됩니다.  이 메뉴는 스크린 왼편에 있는 사이드바에서 찾을 수 있습니다. 모든 이용자들이 수정하기를선택하지는 않으며 아무것도 바꾸지 않고 "적용" 버튼을 그냥 클릭할 수도 있다는 걸 알아야 합니다.


오토 라벨 설정에서 오토 라벨 매핑을 통해 클래스를 정리할 수도 있습니다 이렇게 하면 유지하고 싶은 카테고리를 선택하고 특정 요소를 제외시킬 수 있습니다. 이 옵션은 여러분이 특정 클래스또는 하위 카테고리만 작업하고 싶을 때 매우 편리합니다.

‍준비가 되면, 오토 라벨을 적용하고 싶은 이미지를 선택합니다. 여러분의 라벨 리스트 중에서, 아직 라벨링 되지 않은 테스트 셋 이미지를  선택합니다. 그런 다음, 우측 구석에 있는 오토 라벨 옵션을 클릭합니다. 오토 라벨 설정을 승인하겠냐는 질문이 나오고 이 설정이 원하는 이미지에 적용됩니다. 오토 라벨링이 끝난 후, 결과를 리뷰할 수 있습니다.

‍오토 라벨 AI

당사의 오토 라벨 툴은 빈번하게 사용되는 100가지 이상의 오브젝트와 카테고리가 마련되어 있으며 여러분의 데이터셋에 추가할 수 있습니다. 이 툴은 사람이나 차량 같은 공통 객체가 포함된 프로젝트에 주로 적합합니다. 여러분만의 오토 라벨러를 개발하는 대신, 여러분은 워크플로우를 더 간단하게 만들기 위해 당사의 오토 라벨 AI를 바로 이용할 수 있습니다. 커스텀 오토 라벨은 여러분만의 데이터와 클래스를가지고 작업할 수 있도록 만들어졌습니다.

https://www.superb-ai.com/academy/module4


모든 프로젝트가 하나의 방법, 아니면 그 외의 다른 방법만 사용해야 하는 건 아닙니다. 대신, Superb AI는 여러분의 프로젝트가 최상의 결과를 낼 수 있도록 오토 라벨과 커스텀 오토 라벨 모두를 결합할 수 있는 옵션을 제공합니다.


액티브 러닝 및 불확실성 추정

CAL이 데이터셋에 적용되었다면, 생성된 라벨의 품질을 평가해야 합니다. 당사가 특허를 획득한 불확실성 추정 툴이 각 라벨을 검증하는데 필요한 시간을 최소화할 수 있도록 특정 라벨만 집중적으로 볼 수 있게 해 줍니다.

어떤 원리로 작동할까?

당사의 추정 시스템은 어떤 라벨이 가장 불확실한지를 판단하기 위해 불확실성 샘플링과 엔트로피 기반 쿼리 기술 두가지 모두 적용하고 있습니다. 머신 러닝에서 엔트로피는 여러 종류의 데이터가 모인 데이터셋을 활용했을 때 발생하는 모델 결과값의 차이를 의미합니다.


데이터가 다양할 때, 대개 결과는 더 성공적입니다. 그런 상황에서도 모델은 변수에 적응할 수 있어야 하며 정확한 예측을 할 수 있어야 합니다. 데이터가 통일성 있지 않다면 모델이 원하는 결과를 얻기 어려울 수 있습니다. 그럼에도 불구하고 모델을 수정하고, 어려운 표본들을 이해하도록 학습시키는 것은 가능합니다.

슈퍼브에이아이는 여러분의 모델이 가장 확신하지 못하는 표본을 식별해 내기 위해 불확실성 샘플링을 이용합니다. 액티브 러닝을 통해  이 원리를 적용함으로써, 불확실성 추정 툴은 결과값의 편차가 가장 큰 예시를 강조할 수 있습니다. 출력 분산 (output variance)이라 함은 데이터에 기반한 모델 예측에 얼마나 차이가 있는지를 나타내며, 따라서 출력 분산이 높으면, 이 예측은 변동되는 경향이 있습니다.

예측 결과가 다양하면, 모델은 여러분이 원하는 결과를 제공해주지 못할 겁니다. 이 점을 유념하면서 분산 감소 (variance reduction)로 알려진 쿼리 프로세스를 통해 모델을 개선하고 더욱 일관된 예측을 하도록 모델을 훈련시킬 수 있습니다.

불확실성 추정 툴은 불확실성의 정도에 따라 난이도 점수를 제출된 오토 라벨 데이터에 할당하기 위해 출력 분산을 이용합니다. 당사는 신호등 시각화 시스템을 통해 플랫폼에서 이 라벨들을 알아보기 쉽게 만들었습니다.

라벨 페이지를 방문하면, 여러분의 오토 라벨 또는 커스텀 오토 라벨 AI로 처리된 라벨의 “오토 라벨” 열에 아이콘과 바 그래프가 나타납니다. 각 라벨은 녹색, 황색, 적색의 컬러가 부여되며, 이는 모델이 불확실도에 기반한 예측의 난이도를 나타냅니다. 녹색은 가장 쉽고, 노란색은 중간이며, 적색은 예측이 가장 어렵다는 의미입니다.

각 라벨과 관련된 난이도 점수를 산출하는 목적은 여러분의 팀이 평가하고 검증해야 하는 사례가 무엇인지를 강조하기 위해서 입니다. 다른 쿼리 전략과는 달리, 불확실성 추정은 특정 라벨이 검증할 가치가 있으며 수정 가능성이 높다는 것을 강조합니다.

게다가, 여러분의 팀은 엣지 케이스와 어려운 시나리오에 대한 귀한 정보를 얻게 됩니다. 즉, 적합하게 보이는 데이터를 더 많이 추가하는데 이 정보를 사용할 수 있다는 의미입니다. 이는 QA작업에 소요되는 여러분의 팀의 시간을 줄여주며 여러분의 팀이 모델이 가장 어려워하는 예제에 집중할 수 있게 해줍니다.

검수 작업 할당하기

여러분의 라벨에 할당된 난이도 점수를 토대로, 여러분의 팀은 모델을 가장 개선시킬 수 있는 예제만을 검사하는데 집중할 수 있습니다. 당사의 인터페이스의 일환으로서, Superb AI는 여러분의 데이터를 분류하고 특정 품질이나 상태를 설명하는데 유용한 필터를 구현했습니다. 검증 및 평가 프로세스를 간소화하는데 도움이 되도록 이 툴의 사용을 추천드립니다. 라벨을 분류하기 위해서는 다음의 단계를 따라야 합니다:


1. 라벨 페이지로 이동합니다.

2. 스크린 상단에 있는 데이터를 필터링 하고 분류할 수 있는 툴을 찾습니다.

3. “필터링하기 (Filter by)”라고 되어 있는 부분을 클릭하고 “오토-라벨 난이도(Auto-Label Difficulty)”를 선택합니다. 오토 라벨링 된 데이터만 보여지게 됩니다.

4. 다음으로, 추가 옵션을 선택하라는 메세지가 표시되면 “어려움 (Difficult)” 및 “중간 (Medium)”을 선택합니다. 그러면 쉬움 (Easy)으로 분류된 데이터는 제외됩니다.

5. 작업할 라벨이 제출된 상태가 맞는지 다시 한 번 확인하기 위해 필터를 하나 추가하는 것도 가능합니다. 필터링 툴 우측의 “+” 아이콘을 클릭하세요.

6. 필터링 옵션에 한 행이 추가됩니다. “필터링하기 (Filter by)” 아래의 “상태 (Status)”에서 “~중 하나 (is any one of)”를 선택합니다.

7. 데이터 상태를 선택하는 곳에서 “제출됨 (Submitted)”를 선택합니다. 그러면 제대로 제출된 데이터만 노출되고 라벨링 중이거나 스킵된 데이터는 보이지 않습니다.

참고: 데이터를 분석한 후, 여러분은 모델을 여러번 실행해야 할 수도 있습니다. 일반적으로, 첫번째 시도의 결과에 안주하지 않고 원하는 결과를 얻을 때까지 모델을 반복 실행합니다. 모델이 후속 프로세스에 더 잘 대비하고, 여러분의 라벨이 정확하게 배치되고 분류될 수 있도록, 이 단계에서 당사의 태깅 시스템을 사용하시라고 권해드립니다.

당사가 GT및 검증용 셋에 이름을 붙인 것처럼, 당사는 난이도 점수가 높은 데이터를 분류하기위해 동일한 프로세스를 사용하고 이를 GT2 또는 ground truth 2 라고 부를 것입니다. 추가로, 여러분의 오토 라벨러가 건너 뛴 이미지들이 있을 가능성이 있습니다. 이 프로세스는 이런 이미지를 GT2 하위셋에 추가하는데도 역시 유용할 수 있습니다.

여러분은 라벨을 적절히 구분했고 여러분의 팀은 라벨 작업을 하고, 선택 작업으로 태그를 지정했으므로, 각 리뷰어에게특정 라벨을 할당할 것입니다. 이런 식으로 여러분은 팀에 업무를 쉽게 배분할 수 있고 추후 진행상황을 추적할 수 있습니다. 이 시리즈의 초반에 라벨을 나누는 방법에 대해다룬 적이 있습니다. 이 라벨을 할당하는 프로세스도 유사합니다.

‍1. 라벨  페이지에서, 라벨 상단 오른쪽 편의 선택 박스를 클릭합니다. 그러면 이 페이지에 채워진 모든 라벨이 선택됩니다.

2. 페이지 중간에 필터링된 파라미터에 해당하는모든 라벨을을선택하라는 메시지가 표시됩니다. 해당 옵션을 클릭합니다.

3. 레이블 위에 "검수 요청 (Request Review)" 옵션이 있습니다. 이 항목을 선택하면 팀원들 목록이 나타납니다.

4. 여러분의 라벨 검수를 맡기고 싶은 리뷰어를결정하고 해당 리뷰어의 이름을 체크합니다. 다음을 클릭합니다.

5. 다음 페이지에서, 라벨을 균등하게 분할할지 또는 비율대로 분할할지를 선택할 수 있습니다. 다시 말씀드리자면, 균등 배분은 라벨을 절반으로 분할하고, 비율 배분은 모든 팀원이 동일한 양을 완료할 때까지 할당합니다. 각 방법은 여러분의 팀 구성에 따라 장단점이 있습니다.

6., 팀에게 할당된 이미지를 수정하게 하게 하고, 그런 다음 승인을 위해 전송하게 하며, 계속 진행하기 전에 정확성을 확인합니다.

모델 재훈련시키기

불확실성 추정은 여러분의 모델이 어려워했던 문제를 탐지하는데 매우 유용한 툴입니다. 여러분이 이 시나리오에 집중한다면, 여러분은 모델의 효율성과 실제 환경에서의 성능을제고할 수 있습니다.

여러분의 모델을 꾸준히 개선하기 위해서는, 올바른 예측을 하는데 어려움이 있는 사례를 살펴보아야 합니다. 그렇지 않으면, 여러분의 모델은 유사한 상황에서 신뢰할 수 있는 일관성 있는 결과를 얻을 수 없을 것입니다.

그러면, 어떻게 이런 문제를 해결할 수 있을까요? 당사는 문제를 제거하고 비정형 시나리오를 결정하기 위해 커스텀 오토 라벨 훈련 프로세스를 수 회 반복할 수 있습니다. 반복 시마다 생산성의 증가를 예상할 수 있고 더 큰 정밀도와 회복도를 얻을 수 있으며, 이는 더 개선된 모델을 만들어 냅니다. 그러면 모델을 개선하기 위해 데이터를 어떻게 활용할까요?

슈퍼브에이아이는 데이터셋과 이미지를 쉽게 통합하고 분류하도록 고안되어 있기 때문에, 훈련 데이터를 조정 및 편집하기가 용이합니다. 다음 이터레이션에서는, 어려운 예제를 필수적으로 포함시켜야 합니다. 이는 다음과 같이 이루어집니다:

‍1. 라벨 목록을 채웁니다.

2. 다음 태그로 데이터를 분류하기 위해 필터를 사용합니다: GT1, __VALIDATION__, GT2. 이 태그들은 여러분의 팀이 수기로 수정했던 추가 라벨을 이전 GT와 한 데 묶어 줍니다.

3. 상기 데이터를 기초로 새로운 내보내기를 생성하고, 커스텀 오토 라벨을 구축하기 위한 프로세스를 반복합니다.


결과 비교

난이도 점수가 더 높은 이미지를 한 데 묶고 다음 사이클에서 이 이미지들을 활용하면 비슷한 예제에 대한 모델의 이해도를 높이는데 도움이 됩니다. 이 데이터를 새로운 커스텀 오토 라벨에 적용하면 모델 성능이 크게 개선되는 것을 확인하실 수 있을 것입니다.

‍중요한 분석

앞서 언급한 바와 같이, 슈퍼브에이아이는 여러분의 팀에 효율성 향상과 모델 성능 측정에 도움이 되는 중요한 분석을 제공해 줍니다. 이 수치들을 이해할 수 있으면 프로젝트 매니저들이 전체적인 성과는 물론 클래스 별 정확도 상승을 평가하는데 도움이 될 수 있습니다. 각 이터레이션마다 특정 영역을 개선하는 것이 가능하며, 이는 모델이 이러한 개선사항을 실제 환경에서도 적용할 수 있음을 의미합니다.

‍결과 해석

여러분의 모델이 얼마나 잘 작동하는지 이해하기 위해서, 슈퍼브에이아이는 이용자들에게 커스텀 오토 라벨의 이터레이션마다 성과 분석을 제공합니다. 이 결과를 보려면, 커스텀 오토 라벨 페이지를 방문하기만 하면 됩니다. 각 CAL 마다  “모든 클래스 보기”라는 작은 화살표가 있습니다. 이 화살표를 누르면 각 클래스의 전체 목록과 정밀도, 재현율 측정값이 나타납니다.


정밀도

컴퓨터 비전에서 정밀도를 계산할 때는 참인 클래스 식별을 참인 식별과 거짓인 식별의 합산과 비교하여 비율을 측정합니다. 정밀도를 계산하기 위해, 다음 식에 숫자들을 대입할 수 있습니다.

이 경우, TP는 참으로 식별한 것 중 실제로 참인 것의 양이며, FP는 참으로 식별한 것 중 실제로는 거짓인 것의 양입니다. 그 후 참으로 분류한 식별값 중 얼마나 정확했는지를 판단합니다. 다시 말해, 이 측정은 모델이 참으로 분류한 것 중 실제로 참인 값이 얼마나 되는지를 측정하는 것입니다.

재현율

한편, 재현율은 값이 실제 참인 예제와 모델에 의해 참으로 분류되는 예제를 비교합니다. 다음 공식을 이용하여 재현율을 계산합니다:

위와 같이 TP=참으로 분류했고 실제로 참인 값, FN=거짓으로 분류했으나 실제로는 참인 값입니다.. 재현율은 정확하게 식별한 TP의 비율을 파악하는 것을 목적으로 합니다.정밀도와 재현율 모두 컴퓨터 비전에서 필수적인 척도의 기능을 하지만, 이 둘은 지속적으로 서로 대립합니다. 즉, 정밀도가 개선되면, 재현율이 떨어지고, 정밀도가 떨어지면 재현율이 개선됩니다. 어떤 척도가 여러분의 모델과 이용사례에 가장 가치가 있는지, 적절히 균형을 이루는 지점이 어딘지는 여러분의 팀이 결정해야 하는 사항입니다.

다음 단계

CAL 절차를 반복하고 결과를 평가한 후, 여러분의 팀은 다음 액션을 결정할 수 있습니다. 자동화된 라벨링 엔진을 계속해서 개선하고자 한다면, 더 나아진 결과를 기대할 수 있을 것입니다. 더욱이, 카테고리에 따라 성과를 분석함으로써, 모델 성능을 업그레이드 할 예제를 추가하여 모델을 더욱 커스터마이징할 수 있습니다. 슈퍼브에이아이의 다재다능함은 어플리케이션에 따라 다양한 조정과 변경을 가능하게 합니다.

지금까지 이 시리즈가 유용하다고 생각하셨다면, 5부도 계속해서 읽어주시기 바랍니다. 당사는 팀 성과를 모니터링하고, 데이터 편향을차를 줄이고, 라벨링 시간을 추적하는 최고의 전략을 분석할 것입니다. 컴퓨터 비전, 데이터 라벨링, 그리고 Superb AI Suite에 대한 다양한 뉘앙스에 대해 여러분께 계속 꾸준히 알려드릴 수 있게 되어 너무 기쁩니다.

>>MLOps Insight 뉴스레터 구독하기

아직 슈퍼브에이아이의 콘텐츠를 받아본 적이 없으신 분들은 아래 소개에서 MLOps Insight를 클릭하면 최신호를 받아보실 수 있습니다. (MLOps Insight는 데이터 중심적(Data-centric) 관점에서 MLOps에 대한 최신 소식을 더 쉽게 찾을 수 있도록 돕기 위해 만들어진 뉴스레터입니다.)