본문 바로가기

AI Concept

생성형 AI 학습 방식 - Zero-shot, One-shot, Few-shot Learning

Intro

LLM의 발전으로 인해 제로샷, 원샷, 퓨삿 러닝 기법은 데이터를 일일이 라벨링 하지 않고도 머신러닝 모델을 학습시킬 수 있도록 해줍니다.


Zero-shot, One-shot & Few-shot Learning

  • Zero-shot (ZSL)
    • 모델이 학습 과정에서 본 적 없는 새로운 클래스를 인식할 수 있도록 하는 학습 방법
    • 모델이 클래스 간의 관계나 속성을 통해 일반화하는 능력 활용합니다.
  • One-shot (OSL)
    • 각 클래스에 대해 단 하나의 예시만 제공될 때 모델이 그 클래스를 인식할 수 있도록 하는 학습 방법
    • 유사도 학습이나 메타 학습 등의 기법을 활용하여 구현합니다.
    • 학습 데이터가 매우 제한적일 때 유용합니다.
  • Few-shot (FSL)
    • 극소량의 데이터만을 이용하여 새로운 작업이나 클래스를 빠르게 학습하도록 설계된 알고리즘
    • 메타러닝이나 학습 전략의 최적화 등을 통해 적은 데이터로도 효과적인 일반화 능력을 갖추도록 합니다.

How models get trained - 모델은 어떻게 훈련되는가

출처: https://www.saltlux.com/

Pre-trained

  1. 모델이 대규모 데이터셋을 사용하여 광범위한 지식을 학습합니다.
  2. 모델에게 일반적인 패턴, 구조, 언어적 특성 등을 이해하게 하는 기반을 마련합니다.
  3. LLM 모델의 경우, Large Text Corpus를 기반으로 다양한 Task에 대하여 사전학습을 수행합니다.
  4. 사전 학습 과정에서 모델이 다양한 데이터와 상황을 경험하며, 그 과정에서 일반화 능력을 개발하여, 학습과정에서 직접적으로 보지 못한 새로운 클래스에 대해서도 유의미한 추론을 할 수 있는 능력을 갖추게 됩니다.
⇒ ZSL, OSL, FSL 자체는 이 단계에서 직접적으로 수행되지 않지만, 사전학습된 모델은 이후의 ZSL, OSL, FSL 적용을 위한 기반을 제공. 특히 사전학습이 잘 된 모델은 ZSL에서 더 좋은 성능을 보일 가능성이 높습니다.

 

Fine-tuning

  1. 사전학습된 모델을 좀 더 특정 태스크나 적은 양의 데이터에 적합하도록 조정합니다.
  2. 특정 도메인에 초점을 둔 모델이라며 해당 데이터로 모델 파인튜닝을 수행해주면 성능이 향상됩니다.
⇒ ZSL은 특별한 경우로, 사전에 본 적 없는 클래스에 대한 인식을 목표로 하기 때문에, 전통적인 파인튜닝보다는 인퍼런스 단계에서 모델이 어떻게 새로운 클래스를 처리할 수 있는지에 더 중점을 둡니다. 그리고, OSL과 FSL은 이 단계에서 큰 역할을 합니다 적은 양의 데이터로 모델을 조정하여 특정 태스크에 대한 모델의 성능을 최적화할 수 있습니다. 이는 특히 소수의 예시만을 사용하여 모델이 특정 클래스를 인식하도록 하는 데 중요합니다.

 

Inference

  1. 학습된 모델을 새로운 데이터에 적용하여 예측을 수행합니다.
ZSL, OSL, FSL은 이 단계에서 핵심적인 역할을 합니다. 모델이 본 적 없는 데이터나 소수의 예시를 기반으로 분류, 인식, 예측 등의 태스크를 수행하는 능력이 이 단계에서 평가됩니다.

 

💡 ZSL은 주로 인퍼런스 단계에서 본 적 없는 클래스를 처리하는 모델의 능력을 나타내며, OSL과 FSL은 파인튜닝 단계에서 모델을 특정 태스크에 최적화하는 데 중요한 역할을 하고, 인퍼런스 단계에서도 그 성능이 평가됩니다. 이러한 방법들은 모델이 제한된 정보로부터 학습하고, 적응하며, 예측하는 능력을 극대화하는 데 도움을 줍니다.

Supervised VS. Few-shot Learning

지도 학습(Supervised Learning)은 레이블이 지정된 대규모의 훈련 데이터를 사용하여 모델을 훈련시키는 기계 학습의 한 형태입니다. 이 과정에서 모델은 입력 데이터에서 출력 레이블을 예측하는 방법을 학습합니다. 훈련 데이터는 다양한 특징(feature)을 포함하고 있으며, 각 샘플은 특정 레이블과 연관되어 있습니다. 일단 모델이 충분한 데이터로 훈련되고 나면, 새로운, 전에 본 적 없는 데이터에 대한 예측을 할 수 있게 됩니다. (하지만, 이러한 예측은 훈련 중에 모델이 학습한 클래스 내에서 이루어집니다.)

 

반면에, Few-shot Learning은 지도 학습의 한 형태이지만, 매우 적은 수의 훈련 샘플로부터 학습(또는 검증)하는 데 중점을 둡니다. 이 방법론은 모델이 새롭고 알려지지 않은 클래스의 데이터에 대해 예측을 수행할 수 있게 하기 위해 설계되었습니다. Few-shot Learning 시나리오에서는 지원 세트(Support Set)가 제공되며, 이는 각 클래스의 몇 가지 예시만을 포함합니다. 그 후, 쿼리 샘플(Query Sample)이 주어지면 모델은 지원 세트를 기반으로 이 샘플이 어떤 클래스에 속하는지 예측해야 합니다. 여기서 중요한 점은 쿼리 샘플이 훈련 과정에서 본 적 없는 새로운 클래스에서 온 것일 수 있다는 것입니다.

출처: Youtube Lecture Slide - Shusen Wang


NLP에서 ZSL, OSL, FSL

  • ZSL에서는 모델이 텍스트의 주제나 감정 등을 이해하고, 본 적 없는 새로운 태스크에 이를 적용할 수 있어야 합니다.
  • OSL과 FSL에서는 프롬프팅, 데이터 증강, 메타 학습을 통해 제한된 데이터로부터 태스크를 학습합니다.

출처: Language Models are Few-Shot Learners - Paper


Takeaway

학습 종류 설명 예시 prompt 
=> "치즈"를 한국어에서 영어로 번역해줘
Zero-shot Learning (ZSL) 모델이 학습 과정에서 본 적 없는 새로운 클래스를 인식할 수 있도록 하는 학습 방법  "치즈"를 한국어에서 영어로 번역해줘.
One-shot Learning (OSL) 각 클래스에 대해 단 하나의 예시만 제공될 때 모델이 그 클래스를 인식할 수 있도록 하는 학습 방법 "치즈"를 한국어에서 영어로 번역해줘.

"고양이"를 영어로 번역하면 "Cat"이야.
Few-shot Learning (FSL) 극소량의 데이터만을 이용하여 새로운 작업이나 클래스를 빠르게 학습하도록 설계된 알고리즘 "치즈"를 한국어에서 영어로 번역해줘.

"고양이"를 영어로 번역하면 "Cat"이야.
"가방을 영어로 번역하면 "Bag"이야.
"손가락"을 영어로 번역하면 "Finger"야.