1. Lifecycle of an AI Project
1.1 AI Research VS AI Production
AI 개발 업무의 상당 부분은 데이터 셋을 준비하는 작업을 필요로 한다
1.2 Production Process of AI Model
2. Data! Data! Data!
2.1 Data-related tasks
성능이 나오지 않으면 Data-Centric(데이터만 수정하여 모델 성능을 끌어올리기)을 하여 다시 학습한다
1) 모델 성능 달성에 있어서 데이터와 모델에 대한 비중은 어떨까요?
2) 그렇다면 사용 중인 모델의 성능 개선 시에는 데이터와 모델에 대한 비중이 어떻게 바뀔까요?
- 출시 후에는 정확도에대한 요구사항이 많다.
- 가능하면 모델구조를 건들지 않는게 효율적이다 왜냐하면 qps, 메모리, 처리시간 등의 문제때문
학계에서 데이터를 다루기 힘든 이유
1. 좋은 데이터를 많이 모으기 힘들다
2. 라벨링 비용이 크다
3. 작업 기간이 오래 걸린다
기업은 플랫폼으로 데이터를 자동으로 모이게끔 구조를 만든다.
그렇기때문에 연구에서는 모델에 더 초점을 맞추게 된다
예상보다 데이터와 관련된 업무가 왜 이렇게 많을까요?
(1) 어떻게 하면 좋을지에 대해서 알려져 있지 않다
(2) 데이터 라벨링 작업은 생각보다 많이 많이 어렵다
- 데이터가 많다고 모델 성능이 항상 올라가는 것은 아니다!
- 라벨링 노이즈를 상쇄할 정도로 깨끗한 라벨링 데이터가 많아야 한다!
- 라벨링 결과에 대한 노이즈 = 라벨링 작업에 대해 일관되지 않음의 정도
- 잘못 작업된 라벨링 결과를 학습 시 무시하게 하려면 적어도 깨끗이 라벨링된 결과가 2배 이상 필요
- 되도록 골고루 일정하게 라벨링된 데이터가 많아야 한다
- 라벨링 노이즈와 일반 상황에서의 데이터 분포는 연관이 있다
- 일반적인 상황만 생각해서 해야하는게 아니라 구체적으로 요구해야하고 가이드라인은 계속 업데이트가 돼야한다.
- 여러 사람들은 같은 문장을봐도 다르게 바운딩박스를 치기 때문이다.
띄어쓰기 기준으로 한다면 어떤걸 띄어쓰기로 할지 등등을 구체적으로 계속 지정해줘야한다.
사람마다 같은것을 보더라도 다르게 하기때문이다. 노이즈를 최대한 줄이려면 이런 작업이 필요하다.
특이한 케이스를 보면 볼수록 사람마다 다른 작업을 한다.
이 작업을 효율화 하기 위한 방법
1) 해당 태스크에 대한 경험치가 잘 쌓여야 한다 결국 도메인 지식이 많을 수록 예외 경우에 대해서 미리 인지를 할 수 있다 (테슬라의 경우 자율 주행에서의 예외 경우를 트리거라 지칭하고 221가지를 정의해 놓고 세심히 관리한다)
2) 하지만 완벽하게 모든 경우를 알고 데이터를 모으고 라벨링 가이드를 만드는 것은 불가능하는 것을 인지하고 이를 반복적이고 자동화된 작업으로 만들어가야 한다
2.2 Data Engine / Flywheel
IDE를 잘 만들어서 Data를 활용해야한다
Software 2.0 IDE
Software 2.0 IDE에서 필요한 IDE
1.데이터셋 시각화
- 데이터/레이블 분포 시각화
- 레이블 시각화
- 데이터 별 예측값 시각화
2.데이터 라벨링
- 라벨링 UI
- 태스크 특화 기능
- 라벨링 일관성 확인
- 라벨링 작업 효율 확인
- 자동 라벨링
3.데이터셋 정제
- 반복 데이터 제거
- 라벨링 오류 수정
4.데이터셋 선별
- 어떤 데이터를 모델 성능 향상을 위해서 라벨링해야 하나?
Labeling == Coding in Software 2.0
Software 2.0 IDE의 상당 부분은 데이터 관련한 모듈들
'부스트캠프 AI Tech 2기 > 2기 CV 데이터제작' 카테고리의 다른 글
성능 평가 방식 (0) | 2021.11.14 |
---|---|
Annotation Guide (0) | 2021.11.09 |
데이터 소개 (0) | 2021.11.09 |
Text Detection 소개 (0) | 2021.11.09 |
데이터 제작의 중요성 I (0) | 2021.11.09 |