Post

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: 덧셈/뺄셈과 관련된 단순한 수학 문제와 시나리오를 설명하는 이미지가 포함된 데이터이다.

(추가)예전에 개인적으로 관심이 가서 찾아본 적이 있었는데, 임베딩을 하는 방식은 다양하다고 한다.

  1. 각 modal의 출력 결과를 이어 붙이는 형태로 조합
  2. 각 modal의 출력 결과를 조합하는 추가 모델 구성
  3. 각 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이든 궁극적으로는 사람과 유사한 즉, 성능이 좋은 모델을 만들기 위함이기 때문에 데이터 쪽으로도 시야를 넓힘과 동시에 모델과 유기적으로 연관지어 생각해야겠다.

This post is licensed under CC BY 4.0 by the author.