01 Data-Centric AI란?
1.1 데이터의 중요성
AI 시스템을 이루는 두 가지 요소
![](https://velog.velcdn.com/images/pluto_0905/post/e862d86f-f107-4df3-af6c-8474558ad4cb/image.png)
양쪽 모두 개선 필요(데이터 품질이 좋을 땐: 모델 개선효과가 더 중요 <-> 데이터 품질 안좋을 땐: 데이터 개선이 더 중요)
![](https://velog.velcdn.com/images/pluto_0905/post/ca5f443d-d116-48b9-9147-dce4ae67ce1f/image.png)
Why?
데이터는 곧 모델을 학습하는 데에 필요한 재료
![](https://velog.velcdn.com/images/pluto_0905/post/70e85c94-e812-44c5-a4f9-5a948e8f3447/image.png)
But
동일한 데이터에 대해 서로 다른 어노테이션/라벨을 다는 경우가 발생 ⇒ 노이즈 발생
예시1) 철판 결함 예측 (39 classes) - Class 23 : Foreign particle defect
![](https://velog.velcdn.com/images/pluto_0905/post/bc65a64f-69b8-4a1c-90f5-4dcda0139308/image.png)
AI 프로젝트에서 데이터가 차지하는 비중
![](https://velog.velcdn.com/images/pluto_0905/post/895b5811-b166-42e9-87b6-d2790a3ec704/image.png)
1.2 Data-Centric AI의 정의
Model-Centric AI
과거 그리고 지금도 여전히 가장 주로 사용되는 AI 접근 방식으로, 개발 및 운용의 관점에서 모델을 중심으로 접근하는 방식
Data-Centric AI
2020년대에 들어서 주목받기 시작한 AI 접근 방식으로, 개발 및 운용의 관점에서 데이터를 중심으로 접근하는 방식
Model-Centric AI vs. Data-Centric AI
코드를 개선하면 Model-Centric AI, 데이터를 개선하면 Data-Centric AI라고 이해할 수 있음
- Model-Centric AI
- 최대한 많은 데이터를 확보한 뒤, 이러한 데이터의 노이즈에 대응할 수 있는 모델을 개발
- 데이터를 고정시킨 상태로 알고리즘/모델을 반복적으로 개선해나감
- Data-Centric AI
- 데이터의 통일성(consistency)를 위해 다양한 도구를 이용하여 체계적으로 데이터의 품질을 향상
- 코드를 고정시킨 상태로 데이터를 반복적으로 개선해나감
AI 서비스 개발 과정
실제 서비스 개발 과정에서는 Data-Centric AI, Model-Centric AI 중 무엇이 더 중요할까
![](https://velog.velcdn.com/images/pluto_0905/post/d88eb959-8db2-4b44-88bc-c36484dd92c8/image.png)
AI 서비스 개발 과정 - 서비스 출시 전
![](https://velog.velcdn.com/images/pluto_0905/post/d0268541-d5f4-49ce-8944-e29a16a76eb7/image.png)
AI 서비스 개발 과정 - 서비스 출시 후
![](https://velog.velcdn.com/images/pluto_0905/post/b8ca1f58-7530-45c8-b1ec-7b19ccbb7f29/image.png)
1.3 MLOps
MLOps (Machine Learning Operations) = ML + DevOps
머신러닝 모델을 안정적이고 효율적으로 배포하고 유지 관리하는 것을 목표로 하는 패러다임 + 데이터셋 구축을 위한 인프라를 만들어 데이터를 체계적이고 효율적으로 관리할 수 있는 시스템이기도 함
02 Data-Centric AI가 산업에 미친 영향
2.1 Pretraining & Fine-Tuning
트랜스포머 기반 언어 모델
- 트랜스포머의 인코더/디코더 구조를 이용한 언어 모델이 기존의 LSTM 계열을 압도하는 성능을 보이면서, 웬만한 언어 모델은 모두 트랜스포머 계열로 대체되고 NLP 분야의 연구가 활발히 이루어짐
거대 언어 모델 (Large Language Model, LLM)
- 여러 연구를 통해 트랜스포머 계열은 모델 파라미터가 많을수록 더 일반화된 좋은 성능을 가짐을 실증적으로 보임
- 그러나 이를 위해서 많은 데이터와 연산 자원이 필요하며, 일부 초거대 IT기업만이 이를 가능케 함
돌파구 찾기 ... 파인튜닝 (Fine-Tuning)
일반적인 기업, 개인, 연구자들은 이렇게 사전학습된 LLM을 자신의 태스크에 맞게 리폼하는 파인튜닝을 통해 언어 모델을 이용함
![](https://velog.velcdn.com/images/pluto_0905/post/5745cad7-42a3-4f0a-8e54-fbddf24a59d8/image.png)
파인튜닝용 데이터의 확보
(사전학습 대비) 소량의 고품질 데이터만 확보하면 원하는 목적에 맞게 LLM을 파인튜닝할 수 있음
파인튜닝의 현주소 ... LoRA (Low-Rank Adaptation)
- 기존의 파인튜닝 기법
- 사전 학습 모델의 파라미터를 일부/전부 재학습하거나
추가적인 레이어를 붙인 뒤 이를 학습
- LoRA (Low-Rank Adaptation)
- 사전 학습 모델을 완전히 고정(freeze)한 채로 낮은 랭크의 쿼리-값 어텐션 행렬을 추가하여 해당 어텐션 행렬만 학습
- 모델의 크기 및 필요한 데이터 양을 줄일 수 있음
2.2 Prompt Engineering
Prompt Engineering 관련 용어
- 프롬프트(Prompt) : 인공지능이 수행해야 할 작업을 설명하는 자연어 텍스트
- 모델과 최종 사용자 모두가 이해하기 쉽도록 간결하고 명확해야 함
- 지나치게 복잡한 언어를 사용하거나 불필요한 정보를 제공하면 부정확한 결과가 나올 수 있음
- 프롬프트 엔지니어링(Prompt Engineering)
: 생성 모델이 이해할 수 있는 형태로 프롬프트(텍스트)를 구조화하는 과정
- text-to-text 및 text-to-image 모델에 주로 사용됨
- In-Context Learning
: 모델이 이전에 배운 정보나 컨텍스트를 활용하여 미래의 작업을 수행하거나 이해하는 것
- 예) 이전 대화에서 나온 정보나 질문에 대한 답변을 기억하여 활용하는 것
GPT-3를 통해 알게 된 사실 1) 입력값에 지시문을 포함시키면 그에 맞는 결과를 준다
해결하고자 하는 태스크를 텍스트 형태로 입력값에 넣어주면 태스크의 정답에 해당하는 결과를 리턴함
ex) 1+1= 2인데 16854+ 4864=?
GPT-3를 통해 알게 된 사실 2) 지시가 구체적일수록 의도에 가까운 결과를 준다
모델에게 입력값을 구체적으로 지시할수록 더 정확한/의도에 맞는 결과물을 얻을 수 있음 ⇒ 프롬프트 엔지니어링
03 Data-Centric AI 관련 연구
3.1 Data-Centric AI 연구 사례
이상 탐지 및 제거 (Anomaly Detection & Removal)
일반적이지 않은(abnormal), 혹은 분포로부터 멀리 떨어진(outlier) 데이터 샘플을 탐지하여 제거하는 방법
![](https://velog.velcdn.com/images/pluto_0905/post/f64aaaac-799e-44e3-a338-3b50f92f159e/image.png)
에러 탐지 및 수정 (Error Detection & Correction)
![](https://velog.velcdn.com/images/pluto_0905/post/24888270-043e-4dfd-bf02-b54cd5777209/image.png)
데이터 증강 (Data Augmentation)
기존 데이터를 변형하거나 확장하여 데이터 양을 늘리고, 이를 통해 모델의 성능을 향상시키는 방법
(rotate, crop, flip)
![](https://velog.velcdn.com/images/pluto_0905/post/4664722e-df97-4835-98a2-5e4af62af87b/image.png)
피쳐 엔지니어링 (Feature Engineering)
데이터가 가지고 있는 기존의 피쳐(feature)를 통해 유의미한 새로운 값을 만들어내는 방법
![](https://velog.velcdn.com/images/pluto_0905/post/ed4824d6-8792-4b7e-bdb9-4ff2087eb06f/image.png)
컨센서스 라벨링 (Consensus Labeling)
다수의 어노테이터 혹은 라벨러로부터 얻은 라벨들 중 합의된 라벨을 생성하는 작업 및 방법론
![](https://velog.velcdn.com/images/pluto_0905/post/c1e68539-01eb-4f5a-a518-52dd1fd7e21a/image.png)
액티브 러닝 (Active Learning)
모델 학습 과정 중에 가장 질적으로 중요한 데이터 샘플을 점진적으로 선택, 또는 라벨을 요청하여 학습하는 방법
![](https://velog.velcdn.com/images/pluto_0905/post/97693f25-2d97-4db8-9fe8-5a1ebfe7aa5b/image.png)
커리큘럼 러닝 (Curriculum Learning)
모델이 쉬운 데이터부터 차근차근 학습할 수 있도록 데이터의 학습 순서를 조정하는 방식