본문 바로가기

boostcamp AI tech/boostcamp AI

Intro to Data Centric AI

728x90

흔히 모델의 성능을 높이려고 하면 많은 model centric 기법들을 적용하는걸 떠올리기 쉽다. 하지만 data-centric기법만으로 코드를 수정하지 않고 모델의 성능을 높일 수 있다. 훨씬 효율적으로 큰 폭의 향상도 가능하다. 실제로 AI 프로젝트를 진행하면 데이터에 관한 일에 소요되는 시간이 훨씬 많다. 

실제로 구글에서 공개한 Hidden Technical Debt in Machine Learning Systems라는 논문을 보면 정말 많은 시간과 자원이 데이터와 모델 서빙을 위한 작업에 소요됨을 알 수 있다. 이는 결국 데이터에 대한 중요성이 매우 크다는 말의 다른 표현이기도 하다.

 

1. Data-flywheel

그럼 현업에서는 데이터를 어떻게 수집하는가? data-flywheel이란 기업이 서비스를 운영하면서 쌓이는 데이터를 가공하고 모델에게 주입시켜서 모델과 데이터의 품질을 향상시킬 수 있는 생태계를 말한다.

실제로 테슬라 같은 경우는 자율주행 시스템이 잘 못 맞추는 outlier들을 수집하고 데이터를 보강함으로써 계속해서 성능을 향상시키는 data flywheel이 잘 구축되어있다.

 

2. More Data but not always work

학계에서는 특히 모델에 대한 연구가 많기 때문에 데이터를 모으는 일이 어렵다. (그래서 보통 정해진 데이터셋(benchmark) 내에서 경쟁하는 경우가 많다.)

이 그래프는 데이터가 많아질수록 모델의 정확도 변화를 나타낸다. 보통은 데이터가 많아지면 모델의 정확도도 오를것이라 생각하지만 반드시 맞는 말은 아니다. 데이터가 많아질수록 labeling에 대한 명확한 정답이 없기 때문에 두 척도가 항상 비례하지는 않는다. 그리고 무엇보다 '좋은'데이터가 balance잡혀있으면서도 많아야 하는데 사람에 따라 label annotation이 다를 수 있고 시간,비용도 많이 든다.

 

3. DMOps

데이터의 품질을 높이기 위한 Data Management ooperations and Recipes를 말한다. 사용자의 요구사항에 맞춰 데이터셋을 만들어야 할때 systemic한 A-Z process가 어떻게 운영되는지 살펴보자.

이런 프로세스의 운영 목적은 서비스 요구사항에 맞는 고품짐 데이터셋을 생산하기 위함이다.

- 1) Establish Project Goal : 어떤 문제를 풀어야 하는가? 모델의 입출력 형식은? 좋은 데이터셋이라 판단하기 위한 기준?

- 2) Secure Raw Data : 원시 데이터 조사, 수집 (고객사 데이터, 크롤링, 공공 데이터, 아웃소싱), 저작권 고려

- 3) Data Pre-processing : 특수문자, PII 비식별화, 노이즈, 민감정보 제거

- 4) Design a Data Schema : 목적에 맞는 데이터 레이블링, annotation을 위한 가이드라인 제시

- 5) Prepare a Guidline : annotation 작업자들을 위한 가이드 제시 (용어 설명, 예시 첨부, edge case)

- 6) Recruit Annotators : annotation 작업자 선정, 비용등의 정책 결정

- 7) Instruct Annotators : annotation 작업자들과의 소통 단계

- 8) Data annotation : 데이터 label 구축 단계, 구축한 annotation tool이 활용되는 단계

- 9) Data Inspection : 데이터의 일관성을 유지하기 위해 노력한다. 가이드라인을 잘 준수하고 있는지 데이터 Label에 대한 검증 단계

- 10) Data verification : 만들어진 데이터셋에 대한 외부 검증단계이다. 다양성이 갖춰져 있는지, 양은 충분한지, 윤리적 기준에 부합하는지 privacy, security를 어기진 않았는지 확인

- 11) Data Evaluation via Model Verification : 모델링을 통해 데이터의 품질을 검증한다. 모델이 잘 추론하지 못하는 부분을 찾거나 학습 과정에서 효율성이 부족하지는 않는지 확인

- 12) Data Deliverables : versioning을 통해 전달, artifact 정리가 동반된다.

 

3. Annotation Tools

Doccano : Text 데이터에 대해 번역, 분류, labeling을 도와주는 오픈소스 도구이다.

Brat : 문장 내 개체관계 추출 주석을 다는 일을 도와주는 도구이다.

TagEditor : spaCy 라이브러리를 활용해서 주석을 달기 더 편하게 만들었다고 한다.

Tagtog : pdf에 주석을 달수도 있다. ML로 자동으로 달아주는 기능도 있고 annotation model을 직접 학습시킬수도 있다.

 

그 밖에도 Label-Studio, LightTag 도 있다.

 

4. Data Software Tool

CleanLab : dataset의 문제를 자동으로 감지해주는 오픈소스이다. 

Snorkel : 사용자가 데이터에 label을 다는 등의 build를 도와주는 스탠포드에서 시작한 프로젝트이다.

ydata-profiling : 쉽고 빠르게 EDA(Easy Data Analysis)를 도와주는 툴이다.

728x90
반응형

'boostcamp AI tech > boostcamp AI' 카테고리의 다른 글

NLP Datasets 2  (0) 2024.01.23
NLP Datasets 1  (0) 2024.01.23
Data Centric AI -Data Augmentation  (0) 2024.01.22
Positional Encoding  (0) 2024.01.19
Multi-modal - LXMERT, ViLBERT, Dall-e  (0) 2024.01.18