Week 11 - Data Centric
공부했던 내용이나 프로젝트 수행한 내용은 꾸준히 기록하는데 주간 학습 기록 폴더 안에 글이 없다.
아무래도 강의 내용과 프로젝트 내용을 체계적으로 잘 정리할 필요가 있겠다.
아무튼 이번에는 데이터 중심의 접근법에 대해서 배운다.
Data-Centric이란?
어떤 task를 잘 수행하기 위해서 어떤 접근법이 먼저 떠오르는가?
나는 이븐한 모델이 가장 먼저 떠오른다. Data-Centric 관점에서는 이븐한 모델을 위해서 모델 자체보다는 데이터셋만으로 모델의 성능을 향상한다. 단순히 전처리를 하는 관점에서 벗어나, 데이터를 수집, 처리, 학습, 이후 관리까지도 총괄하는 DMOps
관점에서 이를 바라볼 수 있다.
이전 프로젝트에서도, 교수님께서도, 멘토님께서도 데이터와 모델이 출력한 결과를 눈으로 확인하는 과정이 필요하다고 강조하셨다. 실제로 이번 주제의 강의를 들으니 데이터 만으로 모델 자체를 조정하는 것보다도 훨씬 좋은 성능을 낸 사례가 있다고 한다.
따라서 데이터 검증은 모델을 학습하기 전 적당히 처리하고 넘어가는 과정이 아니라, 충분히 이븐하게 구워서 모델의 성능을 올리는 것이다.
Tokenization
현재는 다양한 tokenization 방법이 있는데, 그 이유는 한정된 vocab의 크기이다. vocab에 많은 단어가 포함될 수록 그 다양성은 보장이 되지만, 모델에게 너무 많은 선택지가 주어져 오히려 부적합할 수 있다. 따라서 등장한 것이 BPE, Word Piece 등의 알고리즘이다.
이렇게 모델을 건드리지 않고 tokenization 방식만으로도 모델의 향상을 도모할 수 있다. 하지만 교착어인 한국어의 경우, BPE같이 영어를 중심으로 만들어진 tokenization 방식을 그대로 적용하는 것은 부적합 할 수 있다. 따라서 형태소를 기준으로 tokenization을 수행하는 것이 보다 좋은 성능을 보인다. 이렇게 언어에 따라 수정된 tokenization 방식을 사용하는 것 또한 데이터의 특징을 이해한 Data-Centric 방식이라고 볼 수 있다.
또한 영어와 한국어 등 다국어 모델을 만들 때, 서로 다른 언어로 구성된 각각의 vocab을 사용하는 것보다 통합된 vocab(예: ONE-Piece)을 사용했을 때 보다 좋은 성능을 보였다는 연구 결과가 있다.
Augmentation
증강이란, 현재 가지고 있는 데이터의 수가 부족할 때 그 수를 늘리기 위해 적용하는 방식이다. 전체적인 수가 부족할 수 있고, 특정 라벨에 치우쳐 다른 라벨의 데이터 수가 부족할 수도 있는 등 증강을 적용할 다양한 경우가 존재한다.
규칙 기반의 증강 방식
사전 정의된 규칙을 기반으로 쉽게 증강할 수 있다. 이전 프로젝트에서도 다른 팀원이 EDA를 적용했었는데, 사전 지식 없이 전략적으로 사용하지 못했음에도 어느정도 오른 성능을 확인할 수 있었다.
- EDA(Easy Data Augmentation): SR(Synonym Replacement), RI(Random Insertion), RS(Random Swap), RD(Random Deletion)
모델 기반의 증강 방식
모델을 사용하여 증강하는 방식이다.
- Back Translation: 문장을 외국어로 번역하여 다시 원래의 언어로 번역하는 것이다. 문맥과 데이터의 의미가 그대로 유지된다는 장점이 있다.
- 합성 데이터: 생성형 모델을 사용하여 task에 맞는 새로운 데이터를 생성하는 방식이다. 기존의 데이터와 1:1 대응이 되지 않는, 완전히 새로운 데이터를 생성할 수 있다는 장점이 있다.
두 방식의 장단점을 정리하면 아래와 같다.
장점 | 단점 | |
---|---|---|
BT | 기존 데이터의 문맥에서 크게 벗어나지 않는다. | 새로운 형태의 데이터를 생성할 수 없다. |
합성 | 새로운 형태의 데이터를 새롭게 생성한다. | 기존의 task와 맥락에서 벗어날 수 있어 주의해야 한다. |
Prompt
최근 LLM을 사용하여 데이터를 필터링하거나 증강하는 방법들이 유행하고 있다. 이를 추가적인 학습 없이 프롬프트 만으로 잘할 수 있도록 프롬프트 관련 연구 또한 학계에 등장하고 있다.
메타 프롬프트
프롬프트 작성을 위한 프롬프트이다. 이전 프로젝트(RAG)에서 Generation 방식을 사용하고자 GPT-4o와 GPT-4o-mini를 프롬프트 튜닝한 적이 있는데, 나도 프롬프트를 검사 받기 위해 ChatGPT에게 입력한 적이 있다.
Multi-Modal
데이터의 관점에서도 Multi-Modal은 중요하다. 한 종류의 데이터에서 얻을 수 없는 정보를 다른 종류의 데이터를 통해 보완 가능하기 때문이다. 사람이 시각, 청각 등 다양한 감각을 사용하여 사물과 상황을 이해하는 것과 비슷하다.
Multi-Modal 모델은 서로 다른 형태의 데이터를 하나의 임베딩 공간으로 projection하여 연산을 수행한다. (사람이 정보를 수집하여 뇌에서 처리하는 것과 비슷할까?)
- CLEVR-Math: 덧셈/뺄셈과 관련된 단순한 수학 문제와 시나리오를 설명하는 이미지가 포함된 데이터이다.
(추가)예전에 개인적으로 관심이 가서 찾아본 적이 있었는데, 임베딩을 하는 방식은 다양하다고 한다.
- 각 modal의 출력 결과를 이어 붙이는 형태로 조합
- 각 modal의 출력 결과를 조합하는 추가 모델 구성
- 각 modal의 임베딩만 개별적으로 수행 후 하나의 모델에서 서로 다른 임베딩 벡터를 한 번에 처리
Neuro-Symbolic AI
Symbolic AI는 기호적인 표현을 통해 문제를 해결한다. 나는 이 말이 잘 이해가 가지 않았는데, 상식을 통한 추론을 사용한다고 생각하면 쉽다. 사람이 세계를 인식할 때 암묵지, 상식과 같은 방식으로 인식한다는 관점에서 탄생한 AI 방법론이다.
Neural AI는 머신러닝에서 통계를 기반으로 학습되는 모델들을 말한다. 이 Symbolic AI와 Neural AI를 결합하여 모델이 학습된 패턴, 통계적인 특지을 이용하여 Symbolic AI에서 사용하는 논리 및 규칙을 추론하고 생성한다.
결과적으로 대규모 데이터 처리 및 패턴 인식 기능과 논리적 추론 기능이 결합된 강력한 인공지능이 된다.
Human Feedback을 이용한 강화학습
강화학습은 기계의 어떤 동작에 대해 reward나 penalty를 부여하여 기계가 다음 동작을 선택할 수 있도록 하는 형태로, 기존의 머신러닝, 딥러닝 등과는 조금 다른 분야이다.
따라서 자연어처리에 이를 결합하여 모델이 생성한 텍스트를 사람이 평가하여 reward를 주는 방식으로 동작한다.
GPT-4
앞서 설명한 LLM에 Multi-Modal, Human Feedback을 더하여 학습된 모델이다.
다양한 학습 기법을 적용한 결과 보다 나은 추론 실력, 이미지 및 PDF 입력, 보다 긴 입력 등을 처리할 수 있게 되었다.
정리
이렇게 지금까지 알고 있던 개념일지라도 Data-Centric 관점에서 살펴보면 다르게 와닿는다. Model-Centric이든 Data-Centric이든 궁극적으로는 사람과 유사한 즉, 성능이 좋은 모델을 만들기 위함이기 때문에 데이터 쪽으로도 시야를 넓힘과 동시에 모델과 유기적으로 연관지어 생각해야겠다.