04_NLP(Natural Language Processing)자연어처리/RAG

RAG

jiniby 2025. 2. 10. 11:03
728x90

☑️Timeline of Generative LM development

☑️ Seq2Seq

Seq2Seq: 순차적인 데이터를 입력받아 순차적인 데이터를 출력하는 모델

     * encoder: 입력 시퀀스의 문맥을 반영해, context vector를 생성

     * decoder: context vector를 seed로 사용해 순차적으로 출력을 생성

Seq2Seq의 문제점

Seq2Seq 모델의 핵심 한계는 context vector가 정보를 압축하는 방식 때문이에요.
즉, 긴 문장을 처리할 때 정보 손실이 발생할 수 있어요. 🤯

💡 비유하자면?
👉 "책 한 권을 읽고 마지막 문장 하나만 기억해서 요약해야 하는 상황!"

  • 사람이 전체 내용을 이해하기 어렵듯이, 모델도 긴 문장에서는 성능이 저하됨.

 

Attention 구조가 등장하기전 자연어 분야에 많이 이용 

시퀀스를 순서대로 처리할 수 있어서 자연어 데이터를 처리할때 순서정보를 자연스럽게 반영할 수 있음 

이전시점의 히든스테이트와 현제시점의 인풋을 가지고 이번시점의 히든스테이트를 만들어냄 

이전의 내용을 기억을 가져가면서도 새로운 인풋의 내용을 기억할수 있음 

 

티코더 - 두가지 차이가 있음

1. 입력값이 되는 문장이 처리하고자 하는 문장이 아니라 이전시점의 자기자신이 만들어낸 아웃풋임

이전의 무슨 단어를 생성했는지 받고 다음에 무엇이 와야할지 예측하는 시스템 ( 오토 컴플리션이나 다름없음) 

인코더에서 만든 맥락을 가지고 와야함 

인코더에서 생성했던 마지막 히든스테이트를 컨텐스드벡터로 가지고 와야함 

디코더는 컨텐스드벡터를 마치 0번쨰 히든 스테이드처럼 간주해서 첫번째 입력의 디코더로 받게됨 

개념설명문제점해결책

Seq2Seq 인코더-디코더 구조로 시퀀스를 변환하는 모델 긴 문장에서 정보 손실 발생 Attention 도입
Context Vector 인코더가 만든 하나의 벡터로 전체 문장 정보를 압축 모든 정보를 담기 어려움 Attention이 필요
Bahdanau Attention 매 시점마다 입력 문장에서 중요한 부분을 선택하는 방법 Seq2Seq의 정보 손실 문제 해결 단어별 가중치 적용

✔️Bahdanau Attention (바다나우 어텐션)

이게 중요한 이유는? 모델이 특정 단어에 "집중"할 수 있도록 도와주기 때문

 핵심 아이디어

  • 디코더가 출력을 생성할 때 입력 문장의 특정 부분(단어들)에 가중치를 부여
  • 단순히 context vector 하나로 요약하는 게 아니라, 입력 문장의 각 단어를 따로따로 고려함
🎯 즉, 디코더가 매 시점마다 어디를 참고해야 하는지 다르게 결정할 수 있음!

(1) 인코더
  • 입력 문장을 처리하고 각 단어마다 고유한 hidden state (h1, h2, h3...)를 생성
(2) Attention 적용
  • 디코더가 매 시점에서 입력의 어떤 단어를 더 중요하게 봐야 하는지 가중치 계산
  • 가중치는 "어텐션 스코어"로 결정됨
(3) 디코더가 가중치 기반으로 출력 생성
  • 중요한 단어에 집중하여 더 정확한 번역 또는 답변 생성🎯 Seq2Seq만 사용한 경우➡️ 하지만 긴 문장이면 성능 저하!
    입력: "나는 AI를 사랑해"
    출력:
    "I love AI"
  • 🎯 Bahdanau Attention 적용
  • 입력: "나는 AI를 사랑해"
    출력:
    "I [집중] love [집중] AI [집중]"
    ⚡ 즉, 디코더가 문장 내에서 어떤 단어를 주목해야 하는지 알게 됨!
 

 

 기존 Seq2Seq 모델의 한계
  • 기존 Seq2Seq는 context vector 하나에 전체 입력 정보를 압축함.
  • 이로 인해 모든 입력 단어의 중요도를 동일하게 처리하는 문제가 발생.
  • 결과적으로 긴 문장에서는 중요한 정보가 손실됨.
 해결책: Attention 메커니즘 도입
  • 매 시점마다 어떤 입력 단어를 참고해야 하는지 다르게 가중치를 부여.
  • 이를 통해 더 정확한 문장 생성 가능.
⚡ 즉, Attention이 없다면 모든 입력을 똑같이 취급하지만, 실제로는 각 단어의 중요도가 다르므로 Attention을 사용해 이를 반영해야 한다!

 

☑️ Transformer

📌 순환신경망(RNN) → Seq2Seq → Attention (Attention Is All You Need)

 Transformer (Attention Is All You Need)

💡 개념
    • Attention이 모델의 핵심이 된다면? 🤔
    • 2017년 논문 **"Attention Is All You Need"**에서 제안한 모델
    • RNN 없이 순전히 Attention 메커니즘만 사용
    • 병렬처리가 가능 → 기존 모델보다 빠르고 효율적

🛑 Seq2Seq vs Transformer 비교

  • 모델주요 특징한계점
    Seq2Seq (RNN 기반)
    순차적 처리, 정보 손실 문제 있음
    긴 문장에서 성능 저하
    Seq2Seq + Attention
    중요한 단어에 가중치 부여
    여전히 순차적 처리
    Transformer
    완전한 Attention 기반, 병렬처리 가능
    계산량이 큼 (대신 하드웨어 발전으로 해결 가능)

🔹 왼쪽: Encoder (입력 처리)
  • 여러 개의 Encoder 블록이 존재
  • 각 블록은 입력 문장의 특정 단어를 처리
  • 모든 Encoder가 병렬적으로 작동
➡ 입력(문장 전체)이 여러 개의 Encoder Layer를 통과하여, 각 단어의 의미가 벡터 형태로 변환됨.
🔹 오른쪽: Decoder (출력 생성)
  • 여러 개의 Decoder 블록이 존재
  • 이전 출력(outputi−1)과 인코더 출력을 함께 참고하여 새로운 단어 예측
➡ 디코더는 매 시점마다 전체 인코더 출력을 참고하여 새로운 단어를 생성!

1️⃣ 기존 Seq2Seq와의 차이점

✅ Seq2Seq (RNN 기반)

  • 인코더는 입력 문장 전체를 하나의 context vector로 압축
  • 디코더는 context vector 하나만 참고하여 출력을 생성
    ➡ 긴 문장에서 정보 손실 발생 가능

✅ Transformer (Attention 기반)

  • 인코더가 입력 문장의 모든 단어를 독립적으로 처리
  • 디코더는 출력할 때마다 모든 인코더 출력을 참고➡ Attention을 사용하여 중요한 단어를 가중치를 다르게 반영

 

  1. Tokenization: 문장을 단어(토큰) 단위로 나눔
  2. Word Embedding: 토큰을 숫자로 변환하여 의미를 학습할 수 있도록 함
  3. Positional Encoding: Transformer가 문장의 순서를 이해하도록 보정

✔️ Positional Encoding (위치 정보 추가)

✅ 개념

  • Transformer는 병렬 처리 가능하지만, 단어의 순서를 이해할 수 없음 😢
  • 따라서 Positional Encoding을 추가하여 단어의 순서 정보를 제공

🛠 예제

  • "인기"와 "선물"의 관계를 알기 위해, 위치 정보를 포함해야 함.
  • Positional Encoding을 통해 단어의 순서를 벡터에 추가!
  • 이를 통해 Transformer는 순서 정보까지 반영하여 문장을 이해할 수 있음.
➡ 즉, 입력된 문장을 단순한 숫자가 아니라, 의미와 순서를 반영한 벡터로 변환하는 과정!

  • pos: 단어의 위치
  • i: 임베딩 벡터에서 특정 차원의 인덱스
  • d_model: 임베딩 벡터의 전체 차원 수

➡ 즉, 같은 위치(pos)에 대해 일부 차원은 사인 함수, 일부 차원은 코사인 함수를 사용하여 인코딩한다!

왼쪽 그래프 (사인 및 코사인 파형)

이 그래프는 Positional Encoding이 실제로 어떻게 변화하는지 보여줍니다.
  • 파란색 (i=0): 저주파수 성분 (긴 주기)
  • 빨간색 (i=5): 중간 주기
  • 노란색 (i=15): 고주파수 성분 (짧은 주기)
🔹 무슨 의미인가요?
  • 저차원의 위치 인코딩은 큰 문맥을 포착 (멀리 있는 단어 관계 반영)
  • 고차원의 위치 인코딩은 짧은 문맥을 포착 (가까운 단어 관계 반영)
💡 결과적으로 Transformer는 단어의 상대적인 위치 정보를 자연스럽게 학습할 수 있게 됨!

오른쪽 히트맵 (위치 간 관계)

이 히트맵은 Positional Encoding 벡터 간의 유사도를 시각화한 것입니다.
  • 대각선 방향의 강한 패턴은 가까운 단어들이 유사한 위치 정보를 가진다는 것을 의미함.
  • 멀어질수록 점차 차이가 나타남 → Transformer가 단어 간의 상대적 거리 정보를 인식할 수 있도록 도와줌.

✔️Query, Key, Value

🔹 책 검색 비유

  • 내가 "디스토피아 소설"을 찾고 싶다. (Query)
  • 책 목록에서 과학혁명의 구조 / 멋진 신세계 / 자기 앞의 생을 훑어본다. (Key)
  • 그중에서 **"멋진 신세계"**가 디스토피아 소설과 가장 관련이 있다!
  • 따라서 "멋진 신세계"의 내용을 가져온다. (Value)

🔹 문장 생성 예제

  • Query: "천천히"라는 단어를 생성하려고 함
  • Key: 문장 내의 단어들 ("take", "your", "time")
  • Value: 문장 내에서 Key 단어들과 관련된 정보

➡ Query가 Key와 비교되어 가장 관련 있는 Key를 찾고, 해당 Key의 Value를 사용하여 최종 출력을 생성하는 과정!

1️⃣ Query, Key, Value란?

✅ Query (Q):

  • **"무엇을 찾고 있는지"**에 대한 정보
  • 모델이 특정 단어에 대해 의미 있는 정보를 찾고 싶을 때 사용

✅ Key (K):

  • 데이터가 가진 정보를 나타내는 벡터
  • Query와 비교하여 얼마나 관련 있는지를 평가하는 역할

✅ Value (V):

  • 실제로 활용할 데이터
  • Query와 Key를 비교한 후, 가장 관련 있는 Key에 대응되는 값을 반환

💡 즉, Query는 질문Key는 데이터베이스의 검색 인덱스Value는 결과 데이터

 

1️⃣ Transformer에서 Query, Key, Value 변환 과정

 입력 문장 (Token Embeddings)

  • 입력된 문장(단어)은 벡터로 변환됨.

 Query, Key, Value로 변환

  • Query, Key, Value는 각 단어에 대해 독립적으로 계산됨.
  • 이후 dot product 연산을 사용하여 Query와 Key의 유사도를 계산 (Attention Score)

👉 즉, 단어 벡터가 곧바로 사용되는 것이 아니라, W 행렬을 통해 변환된 후 사용됨!


2️⃣ Self-Attention 동작 방식

 1. Query와 Key의 dot product 연산

  • 각 Query와 Key 간 내적(dot product)을 수행하여 Attention Score를 계산
  • 이 값이 클수록 해당 단어가 다른 단어와 중요한 관계를 가진다는 의미
  • 예제에서는 "time"의 Key 값이 "your"와 높은 연관성을 가질 가능성이 있음

 2. Softmax를 적용하여 가중치 정규화

  • dot product 값이 너무 크거나 작아지는 것을 방지하기 위해 Softmax 함수를 적용
  • Softmax를 통해 어떤 단어가 더 중요하게 반영될지 결정됨

 3. 가중치를 적용하여 최종 값 생성

  • Value 벡터에 Attention 가중치를 곱해 최종적으로 업데이트된 벡터를 생성
  • 이렇게 계산된 값이 이후 Transformer의 다음 레이어로 전달됨

3️⃣ Byproduct(부산물)

✅ Byproduct란?

Byproduct(부산물)는 모델이 주요 결과를 만들면서 부수적으로 생성되는 데이터

✅ Self-Attention에서의 Byproduct 예시

1️⃣ Attention Map (어텐션 행렬)
  • Query와 Key 간의 유사도를 계산할 때 Attention Score 행렬이 생성됨.
  • 이를 시각화하면 모델이 어떤 단어를 중요하게 여기는지 분석할 수 있음.
  • (예: 기계번역에서 어떤 단어가 어떤 단어와 연결되는지 확인 가능)
2️⃣ Intermediate Representations (중간 표현들)
  • Query, Key, Value를 만들면서 생기는 중간 벡터들은 다른 자연어 처리 작업에도 활용될 수 있음.
  • 예를 들어, BERT 모델에서는 중간 레이어 벡터가 문장 유사도 분석 등에 사용됨.
3️⃣ Pretraining 중 얻어지는 언어 패턴
  • Transformer 모델을 훈련할 때, 예상치 못한 언어적 패턴이나 문법 구조를 모델이 학습할 수 있음.
  • 예를 들어, GPT 모델이 문장 예측을 학습했지만, 추론(inference) 같은 능력이 자연스럽게 나타남 (Emergence 현상).

☑️ BERT

1️⃣ BERT의 구조 이해

이미지 왼쪽을 보면,

  • 입력(Input): 모든 토큰이 인코더로 들어감
  • 여러 개의 Encoder Layers를 거침
  • 최종 출력(Output)은 Classifier로 전달되어 특정 NLP 작업을 수행
이 구조는 BERT가 Transformer의 Encoder 기반 모델임을 보여줍니다.

2️⃣ Pre-training (사전 훈련)

🔹 BERT의 기본 학습 과정
BERT는 대량의 텍스트 데이터를 활용하여 비지도 학습(unsupervised learning) 방식으로 사전 훈련됩니다.
이 단계에서 BERT는 두 가지 주요 학습 방법을 사용해요.

✅ (1) Masked Language Model (MLM)

  • 입력 문장에서 일부 단어(토큰)를 [MASK]로 가리고, 가려진 단어를 예측하는 방식
  • 예: "I love [MASK] learning" → 모델이 [MASK]를 "AI"라고 예측하도록 학습
  • 🔥 Bidirectional(양방향) 컨텍스트 학습 가능!

✅ (2) Next Sentence Prediction (NSP)

  • 두 개의 문장을 주고, 두 번째 문장이 첫 번째 문장 다음에 올 확률을 예측하는 방식

3️⃣ Fine-tuning (미세 조정)

🔹 Pre-training된 BERT를 특정 작업에 맞춰 조정하는 단계
Fine-tuning을 통해 BERT는 특정 NLP 작업을 수행할 수 있도록 학습됩니다.

✅ (1) 텍스트 분류 (MNLI, NER)

  • 감정 분석, 문장 관계 판단 등
  • [CLS] 토큰을 활용하여 문장의 전체 의미를 기반으로 분류

✅ (2) 질문-답변 시스템 (SQuAD)

  • 질문(Question)과 문서(Paragraph)를 입력받아 정답이 있는 위치(Start/End Span)를 예측

💡 즉, Fine-tuning 단계에서 사전 훈련된 BERT를 다양한 NLP 문제에 맞춰 추가 학습하는 과정!


4️⃣ 다운스트림(Downstream) & Fine-tuning 차이

 Downstream Task (다운스트림 작업)

  • Pre-trained 모델을 가져와서 실제 사용 가능한 NLP 작업을 수행하는 것
  • Fine-tuning을 포함
  • 예: 감정 분석, 질의응답, 문장 분류 등

 Fine-tuning (미세 조정)

  • Pre-trained BERT 모델을 특정 태스크에 맞게 추가 훈련하는 과정
  • 보통 작은 데이터셋으로 진행됨
💡 즉, Fine-tuning은 다운스트림 작업을 수행하기 위한 한 과정!
💡 다운스트림 작업을 진행하려면 Fine-tuning이 필요함!

 1. Masked Language Modeling (MLM)

  • 문서 내 특정 단어를 [MASK]로 가리고, 이를 예측하는 방식
  • Transformer 모델이 양방향(Bidirectional) 문맥을 고려하며 학습할 수 있도록 함

🛠 예제

"초콜릿의 원료는 [MASK] 이다."
모델이 [MASK] 자리에 "카카오콩"을 예측하도록 학습
💡 즉, BERT는 양방향 문맥을 보고 빈칸을 채우는 방식으로 학습됩니다.
💡 이 방식 덕분에 문맥을 더 잘 이해할 수 있게 됨!

 2. Next Sentence Prediction (NSP)

  • 두 개의 문장을 입력하고, 두 번째 문장이 첫 번째 문장 다음에 실제로 오는 문장인지 예측
  • 문장 간 관계를 학습하는 데 사용됨
🛠 예제
✔️ 연속된 문장 (Positive Example)

문장 A: "초콜릿의 원료는 카카오콩이다."
문장 B: "카카오콩은 초콜릿의 맛을 결정하는 중요한 요소다."
→ 이 두 문장은 실제로 연결된 문장이므로 NSP 예측: YES

✔️ 무작위 문장 (Negative Example)

문장 A: "초콜릿의 원료는 카카오콩이다."
문장 B: "나는 축구를 좋아한다."
→ 이 두 문장은 연관이 없으므로 NSP 예측: NO

💡 즉, BERT는 문맥 속에서 문장 간 관계를 학습하여 문서 이해 능력을 향상시킵니다.

2️⃣ 이미지 속 표현 분석

  1. 위쪽 섹션 (첫 번째 BERT Pre-training 설명)
    • "초콜릿의 원료는 [MASK] 이다"
    • MLM을 적용하여 일부 단어를 가리고 예측하는 예시
  2. 아래쪽 섹션 (두 번째 BERT Pre-training 설명)
    • "초콜릿의 원료는 카카오콩 이다 [SEP] 그리고 초콜릿은 맛있다"
    • NSP가 적용된 문장 구조 예시
    • [SEP] 토큰을 사용하여 두 문장을 구분
    • "그리고 초콜릿은 맛있다"가 첫 번째 문장과 연속된 문장인지 예측

🔥 결론

  1. BERT는 Masked Language Modeling(MLM)과 Next Sentence Prediction(NSP) 두 가지 방식으로 사전 학습됨
  2. MLM: 문장에서 일부 단어를 [MASK]로 가리고, 이를 예측하도록 훈련
  3. NSP: 문장 쌍을 주고, 두 번째 문장이 실제로 연속된 문장인지 판별하도록 학습
  4. 이러한 방식 덕분에 BERT는 문맥을 깊이 이해하고 문장 간 관계도 파악할 수 있는 강력한 언어 모델이 됨

💡 즉, BERT는 기존 단방향 모델(RNN/LSTM)과 달리 양방향 문맥을 학습할 수 있도록 설계된 혁신적인 모델! 🚀

☑️ GPT series

1️⃣ GPT와 Transformer의 차이

 GPT는 Transformer의 Decoder만 사용!

  • BERT는 Encoder 기반 모델 → 문장의 의미를 이해하는 데 강점 (NLP 이해 과제 수행)
  • GPT는 Decoder 기반 모델 → 문장을 생성하는 데 강점 (텍스트 생성, 요약, 번역 등)

 GPT는 Auto-Regressive(자가회귀) 방식

  • 이전 단어(출력)들을 기반으로 다음 단어를 예측
  • Ex) "The cat sat on the"  "mat"을 예측
💡 즉, GPT는 왼쪽에서 오른쪽(순차적)으로 문장을 예측하는 방식!
💡 반면 BERT는 전체 문장을 양방향으로 학습함!

2️⃣ GPT 모델의 구조

🔹 1. Decoder Stack

이미지 왼쪽에서 여러 개의 Decoder Layer가 쌓여 있는 구조를 볼 수 있어요.
GPT는 Transformer의 Decoder만을 사용하여, 입력을 기반으로 단어를 생성합니다.

🔹 2. Decoder 내부 구조

오른쪽에는 GPT의 한 층(Decoder Layer)의 내부 구조가 나와 있습니다.
Decoder는 두 가지 핵심 모듈로 구성됩니다.

 (1) Masked Self-Attention

  • Transformer의 Self-Attention과 비슷하지만, 미래 단어를 볼 수 없음
  • 예측할 때 이전 단어들만 참고하여 다음 단어를 생성
  • Ex) "The cat sat on the"  "mat"을 예측할 때 "mat"을 미리 보면 안 됨!

 (2) FFNN (Feed-Forward Neural Network)

  • Attention을 통해 문맥을 파악한 후, 최종 출력을 위한 비선형 변환을 수행
  • 단어 간 관계를 더 복잡하게 학습할 수 있도록 도와줌
💡 즉, GPT는 Masked Self-Attention을 사용하여 한 방향으로 예측하며, FFNN을 통해 최종 출력을 생성함!

3️⃣ GPT의 동작 방식

1️⃣ 입력 (Prompt)를 받음
  • "The cat sat on the" 와 같은 문장이 주어짐
    2️⃣ Masked Self-Attention을 사용하여 다음 단어 예측
  • "mat"을 예측 (이전 단어들만 참고)
    3️⃣ FFNN을 거쳐 최종 출력 생성
  • "mat"이 확률적으로 가장 높은 단어로 선택됨
    4️⃣ 반복하여 문장 완성
  • "The cat sat on the mat and looked around."
💡 즉, GPT는 이전 단어들을 기반으로 새로운 문장을 예측하여 생성하는 모델! 🚀

🔥 결론

  1. GPT는 Transformer의 Decoder만을 사용한 언어 생성 모델
  2. Auto-Regressive 방식으로 한 방향으로 단어를 예측
  3. Masked Self-Attention을 사용하여 미래 단어를 볼 수 없도록 제한
  4. FFNN을 거쳐 최종 출력 단어를 결정

💡 즉, GPT는 자연어 생성(NLG)에 특화된 모델로, 문장을 자동으로 생성하는 데 최적화됨!
💡 반면, BERT는 Encoder 기반으로 문장을 이해하는 데 최적화됨!

📌 BERT vs. GPT 비교 (이미지 설명)

이 이미지는 BERT와 OpenAI GPT의 차이점을 시각적으로 보여줍니다.
두 모델 모두 Transformer 아키텍처를 사용하지만, 설계 방식과 학습 방식이 다릅니다.

1️⃣ BERT (Bidirectional Encoder Representations from Transformers)

🔹 BERT의 특징

  • Transformer의 Encoder만 사용
  • 양방향(Bidirectional) 학습 가능
  • 문맥을 더 깊게 이해할 수 있음
🔹 BERT의 작동 방식
  • 입력 문장의 모든 단어를 동시에 학습
  • Self-Attention을 사용하여 모든 단어를 동시에 참고
  • 앞뒤 단어를 함께 고려하는 양방향 학습이 가능
 예제 (Masked Language Modeling)

"The cat sat on the [MASK]."
➡ 모델이 [MASK] 부분을 예측할 때, 앞뒤 단어(“cat”, “on”)를 모두 참고 가능!

💡 즉, BERT는 문장 내 모든 단어 간 관계를 고려하면서 학습하여 문맥 이해력이 뛰어남.


2️⃣ OpenAI GPT (Generative Pre-trained Transformer)

🔹 GPT의 특징
  • Transformer의 Decoder만 사용
  • Auto-Regressive 방식 (한 방향으로 학습)
  • 문장을 생성하는 데 특화됨
🔹 GPT의 작동 방식
  • 문장을 왼쪽에서 오른쪽(순차적)으로 읽으며 학습
  • 이전 단어들을 기반으로 다음 단어를 예측하는 방식
  • Self-Attention을 사용하지만, 과거 단어만 참고 가능 (미래 단어는 못 봄)
 예제 (다음 단어 예측)

"The cat sat on the" → 모델이 "mat"을 예측
 과거 단어만 참고하며 문장을 생성하는 방식

💡 즉, GPT는 한 방향(왼쪽 → 오른쪽)으로 단어를 예측하는 방식으로 작동하며, 문장 생성에 강점이 있음.

3️⃣ 이미지 속 차이점 분석

  • BERT (왼쪽):
    • Encoder 기반
    • 모든 단어가 다른 단어들과 양방향으로 연결됨
    • 문맥을 깊이 이해하는 데 강점
  • GPT (오른쪽):
    • Decoder 기반
    • 한 방향(왼쪽에서 오른쪽)으로만 연결됨
    • 이전 단어를 참고하여 다음 단어를 예측하는 방식

🔥 결론

모델구조학습 방향주요 특징주된 용도

BERT Encoder 기반 양방향(Bidirectional) 문맥 이해에 강함 문장 분류, 질의응답, 감성 분석 등
GPT Decoder 기반 한 방향(Auto-Regressive, Left to Right) 문장 생성에 강함 텍스트 생성, 챗봇, 스토리 생성 등

💡 즉, BERT는 문장을 더 깊이 이해하는 모델이고, GPT는 새로운 문장을 생성하는 모델! 🚀

 

☑️ one-shot, zero-shot, few-shot

 1. Zero-shot Learning (제로샷 학습)

  • 모델이 한 번도 본 적 없는 작업을 수행해야 하는 경우
  • 예제 없이 바로 정답을 예측해야 함
  • 예제 없이 "책장"을 영어로 번역하라는 요청을 받았을 때, 모델이 스스로 예측해야 함
💡 즉, 사전 훈련된 모델이 가지고 있는 지식만으로 문제를 해결해야 하는 방식!

 2. One-shot Learning (원샷 학습)

  • 한 개의 예제(데이터)를 보고 작업을 수행
  • "옷장 → closet"이라는 예시를 모델에게 제공한 후, "책장 → ?"을 예측하도록 요청
  • 모델이 예제를 보고 유사한 패턴을 학습하여 예측
💡 즉, 단 하나의 예시를 참고하여 문제를 해결해야 하는 경우!

 3. Few-shot Learning (퓨샷 학습)

  • 여러 개의 예제(데이터)를 제공한 후 작업 수행
  • "옷장 → closet", "침대 → bed", "방 → room", "책상 → desk" 등의 예제를 제공한 후 "책장 → ?"을 예측하도록 요청
  • 모델이 더 많은 예제를 학습한 후 정답을 예측하기 때문에 정확도가 높아질 가능성이 큼
💡 즉, 몇 개의 예제를 참고하여 문제를 해결하는 방식!

 4. In-context Learning (인-콘텍스트 러닝)

  • Few-shot Learning의 확장 개념으로, 프롬프트(입력 문맥) 내에서 예제와 함께 모델이 학습하는 방식
  • 모델이 문맥(Context) 안에서 주어진 예제 패턴을 보고 즉석에서 규칙을 학습
  • 모델이 실제로 가중치(Parameter)를 업데이트하는 것은 아니지만, 주어진 컨텍스트(Context)를 기반으로 즉시 추론을 수행
💡 즉, In-context Learning은 모델이 "즉석에서" 문맥을 참고하여 규칙을 학습하는 과정!
💡 Few-shot Learning과 비슷하지만, "프롬프트 내 학습"이라는 개념이 강조됨!

2️⃣ Fine-tuning (파인 튜닝)

이미지 오른쪽에는 Fine-tuning 과정이 설명되어 있습니다.

 Fine-tuning (파인 튜닝)

  • 기존 모델을 특정한 작업에 최적화하기 위해 추가 훈련하는 과정
  • 모델의 가중치(Parameter)를 업데이트하면서 새로운 데이터셋에 맞춰 조정
  • 훈련된 모델이 해당 작업을 더 잘 수행하도록 미세 조정됨
💡 즉, Zero-shot, One-shot, Few-shot, In-context Learning은 모델을 훈련하지 않고 즉석에서 작업을 수행하는 방식
💡 Fine-tuning은 모델의 가중치를 업데이트하여 특정 작업에 최적화하는 방식

Zero-shot

예제 없이 새로운 작업 수행

❌ 없음

❌ 업데이트 없음

One-shot

한 개의 예제를 보고 작업 수행

✅ 1개

❌ 업데이트 없음

Few-shot

여러 개의 예제를 보고 작업 수행

✅ 몇 개

❌ 업데이트 없음

In-context Learning

프롬프트 내에서 즉석 학습하여 작업 수행

✅ 여러 개

❌ 업데이트 없음

Fine-tuning

모델을 특정 작업에 맞춰 추가 학습

✅ 많음

✅ 모델 업데이트 진행

💡 즉, Zero-shot, One-shot, Few-shot, In-context Learning은 즉석에서 수행하는 방식이고, Fine-tuning은 모델 자체를 수정하는 방식! 🚀

☑️ BART

BART는 Transformer의 Encoder-Decoder 구조를 기반으로 한 NLP 모델로,
  • BERT: Encoder 기반, Masked Language Modeling(MLM) 사용 → 문맥 이해 능력 강화
  • GPT: Decoder 기반, Auto-Regressive 방식 사용 → 텍스트 생성 능력 강화
  • BART: Encoder-Decoder 구조를 사용하며, 손상된 텍스트를 복원하는 방식으로 학습
💡 즉, BART는 입력 문장을 변형(노이즈 추가)한 후, 이를 복원하는 방식으로 학습하는 모델!

2️⃣ BART의 Pre-training 방법 (텍스트 손상 방식)

BART가 텍스트를 변형하는 5가지 방식

 1. Token Masking (토큰 마스킹)

  • BERT와 유사한 방식
  • 문장 내 특정 단어를 [MASK]로 가리고 복원하도록 학습
  • Ex) "A C E"  "A _ C _ E" → 모델이 원래 문장을 예측

 2. Token Deletion (토큰 삭제)

  • 일부 단어를 완전히 삭제하고, 이를 복원하도록 학습
  • Ex) "A B C D E"  "A C E" → 모델이 "B", "D"를 복원해야 함
💡 즉, BERT의 Masking보다 더 어려운 문제! (삭제된 단어를 복원해야 하므로 더 많은 문맥 정보 필요)

 3. Sentence Permutation (문장 순서 섞기)

  • 문장의 순서를 랜덤하게 섞어서 모델이 원래 순서를 복원하도록 학습
  • Ex) "A B C D E"  "D E A B C" → 모델이 원래 순서로 복원해야 함
💡 즉, 문장 내 순서를 고려하는 능력을 향상시킴 (긴 문서 요약, 정렬 등의 작업에 유리)!

 4. Document Rotation (문서 회전)

  • 문장의 시작점을 랜덤하게 변경하여 모델이 원래 문장을 재구성하도록 학습
  • Ex) "A B C D E"  "C D E A B"
💡 즉, 문장이 어디에서 시작하는지 이해하는 능력을 학습!

 5. Text Infilling (텍스트 채우기)

  • 문장 내 일부 단어를 지우고 빈칸을 채우는 방식으로 학습
  • Ex) "A B C D E"  "A _ D _ E" → 모델이 "B", "C"를 복원
💡 즉, 문장 내 연속적인 단어 삭제 패턴을 학습하여 더 강력한 복원 능력을 가짐!

 

🔥 결론: BART의 장점

모델주요 특징단점

BERT Encoder 기반, Masked Language Modeling 사용 → 문맥 이해 능력 우수 텍스트 생성 능력 부족
GPT Decoder 기반, Auto-Regressive 방식 → 텍스트 생성 능력 우수 문맥 이해 능력 부족
BART Encoder-Decoder 기반, 텍스트 복원 방식 학습 → 문맥 이해 + 생성 능력 모두 우수 훈련 비용이 높음

💡 즉, BART는 손상된 텍스트를 복원하는 방식으로 학습하여, 문장을 더 잘 이해하고 자연어 생성에도 강한 모델! 🚀

☑️ T5 (Text-To-Text Transfer Transformer)

 

1️⃣ T5란?

T5는 Google이 개발한 Transformer 기반 NLP 모델로,
모든 NLP 문제를 "텍스트 입력 → 텍스트 출력" 형식으로統一하여 해결하는 접근 방식을 사용

💡 즉, 번역, 요약, 문장 유사도 평가, 감성 분석 같은 다양한 NLP 작업을 하나의 모델로 처리할 수 있음! 🚀


2️⃣ T5가 수행하는 다양한 NLP 작업

이미지에서는 T5가 여러 NLP 작업을 수행하는 예제를 보여주고 있습니다.

 1. 기계 번역 (Machine Translation)

  • 입력: "translate English to German: That is good."
  • 출력: "Das ist gut."
  • 설명: T5는 번역 작업도 단순한 텍스트 변환 문제로 처리하며, 특정 태스크 명령("translate English to German")을 포함하여 학습됨.

 2. 문법 판단 (CoLA - Corpus of Linguistic Acceptability)

  • 입력: "cola sentence: The course is jumping well."
  • 출력: "not acceptable"
  • 설명: T5는 문장이 문법적으로 적절한지 판단하는 작업도 수행 가능.
  • "The course is jumping well."이라는 문장은 일반적으로 문법적으로 어색하므로 "not acceptable"로 출력됨.

 3. 문장 유사도 평가 (STSB - Semantic Textual Similarity Benchmark)

  • 입력: "stsb sentence1: The rhino grazed on the grass. sentence2: A rhino is grazing in a field."
  • 출력: "3.8"
  • 설명: 두 문장이 얼마나 의미적으로 유사한지를 0~5 사이의 점수로 평가.
  • 두 문장은 유사하지만 완전히 같은 의미는 아니므로 3.8이라는 점수를 반환.

 4. 텍스트 요약 (Summarization)

  • 입력: "summarize: state authorities dispatched emergency crews tuesday to survey the damage after an onslaught of severe weather in mississippi..."
  • 출력: "six people hospitalized after a storm in attala county."
  • 설명: 긴 문장을 요약하는 작업도 수행 가능.
  • 입력 문장의 핵심 내용을 짧게 요약하여 출력.

3️⃣ T5의 핵심 특징

1️⃣ 모든 NLP 작업을 "Text-to-Text" 형식으로統一

  • 기존에는 감성 분석, 요약, 번역 등 각각 다른 모델이 필요했지만,
  • T5는 하나의 모델로 모든 NLP 작업을 수행할 수 있음!

2️⃣ Task-specific prompt 사용 (작업별 프롬프트 지정)

  • 예: "translate English to German: ..."
  • 예: "summarize: ..."
  • 작업 유형을 명시하여 모델이 올바르게 태스크를 수행하도록 함.

3️⃣ Transformer 기반 Encoder-Decoder 구조

  • BERT처럼 입력을 이해하면서도, GPT처럼 문장을 생성하는 능력을 가짐

언어 모델의 사전 학습(Pre-training) 과정에서 사용되는 텍스트 변형(Corruption) 전략


1️⃣ High-level Approaches (고수준 접근 방식)

 언어 모델(Pre-training)에서 텍스트를 변형하는 주요 접근법

  • Language modeling (언어 모델링) → 단어를 예측하는 방식 (GPT 등)
  • BERT-style (BERT 방식) → 일부 단어를 마스킹하고 복원하는 방식 (BERT, T5 등)
  • Deshuffling (문장 순서 섞기) → 문장 순서를 섞고 원래 순서를 복원하도록 학습 (BART 등)

💡 즉, 텍스트를 변형하는 다양한 방법을 활용하여 모델이 보다 강력한 문맥 이해 능력을 학습하도록 함!


2️⃣ Corruption Strategies (텍스트 변형 전략)

BERT-style 학습에서 텍스트를 손상시키는(변형하는) 방법이 여러 가지 있습니다.

 1. Masking (마스킹)

  • 일부 단어를 **[MASK]**로 가리고 복원하도록 학습 (BERT에서 사용)
  • Ex) "The cat sat on the [MASK]." → 모델이 "mat"을 예측해야 함

 2. Replace spans (스팬 교체)

  • 연속된 단어(Span)를 다른 단어(토큰)로 바꾼 후 복원하도록 학습
  • Ex) "The cat sat on the mat."  "The [SPAN] on the mat."

 3. Drop (삭제)

  • 일부 단어를 완전히 삭제하고, 모델이 이를 복원하도록 학습
  • Ex) "The cat sat on the mat."  "The cat on the mat."

💡 즉, 텍스트를 변형하여 모델이 더 강력한 문맥 이해 능력을 갖도록 훈련!


3️⃣ Corruption Rate (텍스트 변형 비율)

  • 모델이 입력 문장에서 얼마나 많은 비율의 단어를 변형하는지 결정하는 요소
  • 일반적으로 10%, 15%, 25%, 50% 등의 비율로 조절

💡 BERT에서는 일반적으로 15%의 토큰을 변형하여 학습하는 것이 가장 효과적이라고 보고됨.


4️⃣ Corrupted Span Length (변형되는 단어 길이)

  • 한 번에 변형되는 단어(Span)의 길이
  • 일반적으로 2, 3, 5, 10개의 단어 단위로 변형
  • 긴 Span을 변형할수록 모델이 더 큰 문맥을 고려해야 함

💡 즉, 단어뿐만 아니라 여러 개의 연속된 단어도 변형하여 모델이 더 넓은 문맥을 이해하도록 학습 가능!

📌 이미지 설명: Multi-Task Learning (다중 작업 학습) 전략 비교

1️⃣ Multi-Task Training (다중 작업 학습)

  • 여러 작업(Task A, B, C)과 함께 **비지도 학습(unsupervised task)**을 동시에 수행하는 방식
  • 모델이 여러 작업을 동시에 학습하여 더 강력한 일반화 성능을 갖도록 유도
  • Ex) 번역(Task A), 문장 분류(Task B), 문장 유사도 평가(Task C)를 한 모델에서 동시에 학습

💡 즉, 모델이 다양한 태스크를 한꺼번에 훈련하여 더 강력한 성능을 가질 수 있도록 학습하는 방법!


2️⃣ Supervised Multi-Task Pre-training (지도 다중 작업 사전 학습)

  • 여러 개의 지도 학습(Supervised Learning) 태스크를 동시에 훈련
  • 비지도 학습 없이 오직 지도 학습된 태스크(Task A, B, C)만 포함
  • Ex) 뉴스 분류(Task A), 감성 분석(Task B), 질의응답(Task C) → 같은 데이터셋에서 학습 가능

💡 즉, 비지도 학습 없이, 특정한 지도 학습 데이터셋을 활용해 여러 작업을 동시에 학습하는 방식!


3️⃣ Multi-Task Training + Fine-Tuning (다중 작업 학습 후 미세 조정)

  • 사전 학습(Pre-training) 단계에서 여러 개의 작업을 함께 훈련한 후,
  • 미세 조정(Fine-tuning) 단계에서 특정한 태스크를 추가 훈련
  • Ex) 언어 모델을 먼저 번역, 문장 분류, 문장 유사도 평가 등의 태스크로 사전 학습한 후,
    • 특정 응용 프로그램(예: 질의응답 시스템)에 맞춰 Fine-tuning 수행

💡 즉, 다양한 작업을 먼저 학습한 후, 특정 작업에 맞춰 추가 훈련하는 방식!


4️⃣ Leave-One-Out (태스크 제외 학습)

  • 여러 작업을 훈련할 때, 특정한 태스크(Task A)를 제외하고 사전 학습
  • 이후, 제외했던 태스크(Task A)를 새로운 데이터로 학습시켜 모델이 더 잘 일반화되도록 유도
  • Ex) Task A(번역)를 제외한 상태에서 다른 태스크(Task B, C)로 모델을 훈련하고,
    • 이후 번역 태스크(Task A)를 추가 학습하여 성능을 향상

💡 즉, 특정 태스크를 학습에서 제외하고 사전 학습한 후, 나중에 해당 태스크를 학습시켜 일반화 성능을 향상하는 방법!


🔥 결론: Multi-Task Learning 전략 비교

학습 방식설명학습 방식

Multi-Task Training 여러 작업을 동시에 학습 (비지도 학습 포함) 한 모델이 여러 태스크를 함께 훈련
Supervised Multi-Task Pre-training 지도 학습된 여러 태스크만 사용 비지도 학습 없이 여러 태스크 수행
Multi-Task Training + Fine-Tuning 다중 작업 학습 후 특정 태스크에 추가 훈련 일반적인 Fine-tuning 방식
Leave-One-Out 특정 태스크를 제외하고 사전 학습 후 추가 훈련 모델이 특정 태스크를 더 잘 학습하도록 유도

💡 즉, Multi-Task Learning은 여러 작업을 동시에 학습하는 방식이며, Fine-Tuning을 결합하면 특정 태스크에 대한 성능을 더욱 향상할 수 있음! 🚀

이제 이해되셨나요? 😊 추가 질문이 있으면 알려주세요!

BERT Encoder 기반, 문맥 이해 강점 감성 분석, 문장 분류
GPT Decoder 기반, 텍스트 생성 강점 글쓰기, 대화형 AI
T5 Encoder-Decoder 기반, 모든 NLP 작업을 통합 번역, 요약, 문법 검사, 문장 유사도 평가 등

💡 즉, T5는 모든 NLP 작업을 "텍스트 입력 → 텍스트 출력" 형식으로統一하여 처리하는 강력한 모델! 🚀

☑️ FLAN

1️⃣ 인스트럭션 파인튜닝 (Instruction Fine-Tuning)이란?

💡 모델이 다양한 작업을 더 잘 수행할 수 있도록, 명확한 "지시문(Instruction)"을 포함한 데이터로 미세 조정하는 방법

  • 기존 모델들은 특정 데이터 형식만 학습해서 새로운 작업을 수행하기 어려웠음
  • 인스트럭션을 포함하여 파인튜닝하면, 모델이 다양한 형태의 질문을 더 유연하게 이해하고 수행 가능
  • 즉, 프롬프트(입력 질문)에 "명확한 지시문(Instruction)"을 추가하여 모델의 일반화 성능을 높이는 방법

💡 예:
 기존 방식 (AsIs)

  • "Russian cosmonaut Valery Poskov set the.. <delimiter> Russians hold the record of the longest stay in space"
     모델이 문장 관계를 추론하지만, 어떤 작업인지 명확하지 않음

 Instruction Fine-Tuning 방식 (Flan)

  • "Can we infer the following? Russians hold the record of the longest stay in space options: yes / no"
     "Can we infer the following?"라는 명확한 지시문을 포함하여, 모델이 더 정확하게 수행할 수 있도록 유도

2️⃣ 이미지 속 AsIs vs. Flan 비교

이미지는 두 가지 방식(AsIs와 Flan)으로 모델이 자연어 추론(NLI, Natural Language Inference) 작업을 수행하는 차이를 보여줍니다.

 AsIs 방식 (기존 방식)

  • 문장들만 제공되며, 어떤 태스크를 수행해야 하는지 명확하지 않음
  • 모델이 작업을 수행해야 하지만, 태스크에 대한 힌트가 부족
  • 모델의 출력: "yes" (하지만 직관적으로 왜 이 작업을 수행하는지 명확하지 않음)

 Flan 방식 (Instruction Fine-Tuning 적용)

  • "Can we infer the following?"라는 인스트럭션(지시문)이 추가됨
  • 모델이 자연스럽게 NLI(자연어 추론) 작업을 수행하도록 유도
  • 모델의 출력: "yes" (이제 모델이 어떤 태스크를 수행하는지 명확해짐)

💡 즉, Instruction Fine-Tuning을 적용하면 모델이 더 직관적으로 태스크를 수행할 수 있도록 학습됨!


3️⃣ Instruction Fine-Tuning이 왜 중요한가?

  1. 다양한 작업을 더 잘 수행할 수 있도록 모델을 유연하게 만듦
  2. 프롬프트(입력 질문)에 명확한 지시문을 추가하여 성능 향상
  3. 작업 유형(Task)을 명확히 하여 일반화 성능을 높임
  4. 예제 없이도 Zero-shot, Few-shot Learning 성능 향상 가능

💡 즉, Flan 같은 방식으로 Instruction Fine-Tuning을 적용하면 모델이 다양한 태스크를 더 직관적으로 수행 가능! 🚀

AsIs (기존 방식) 문장만 제공하여 태스크 수행 어떤 작업인지 명확하지 않음
Flan (Instruction Fine-Tuning) 지시문(Instruction)을 포함하여 태스크 수행 모델이 더 직관적으로 문제 해결 가능

💡 즉, Instruction Fine-Tuning을 통해 모델이 더 직관적으로 태스크를 이해하고 수행할 수 있도록 유도 가능! 🚀

☑️ InstructGPT

 Language Model Alignment & RLHF (Reinforcement Learning from Human Feedback)

 

1️⃣ 첫 번째 이미지: LM이 가져야 할 올바른 특성과 문제 사례

 LM은 다음 세 가지 기준을 충족해야 함

  1. Helpful (도움이 되는)
    • 질문에 유용하고 실질적인 답변을 제공해야 함.
  2. Honest (정직한)
    • 사실을 기반으로 답변해야 하며, 허위 정보를 생성하면 안 됨.
  3. Harmless (해를 끼치지 않는)
    • 위험하거나 유해한 조언을 제공하면 안 됨.

 LM의 문제 사례 (Bad Responses)

  • Harmful (해로운 답변)
    • "은행을 털어보세요!"  범죄를 조장하는 부적절한 응답
  • Not Honest (정직하지 않은 답변이 아님)
    • "흙으로부터 금을 만들어 보세요."  비현실적이고 허위 정보 제공
  • Not Helpful (도움이 되지 않는 답변)
    • "저런 참 안됐네요."  유용한 해결책을 제시하지 않음

💡 즉, LM은 유해한 정보를 제공하지 않고, 정확하며 유용한 정보를 주도록 훈련되어야 함! 🚀


2️⃣ 두 번째 이미지: RLHF (Reinforcement Learning from Human Feedback)

이 이미지는 강화 학습을 통한 인간 피드백(RLHF) 과정을 설명합니다.
LM이 Helpful, Honest, Harmless한 특성을 갖도록 조정하는 방법입니다.


✅ Step 1: Collect Demonstration Data & Train a Supervised Policy

  • 프롬프트(질문)를 샘플링하여 모범적인 답변(데모 데이터)을 생성
  • 사람이 직접 좋은 답변을 제공하여 LM을 지도학습(Supervised Learning)
  • 이 데이터를 활용해 기본적인 모델을 미세 조정(Fine-Tuning)

💡 즉, 사람이 직접 "이런 답변이 좋다"라는 가이드를 제공하며 모델을 훈련!


✅ Step 2: Collect Comparison Data & Train a Reward Model

  • 모델이 여러 개의 답변을 생성하도록 함
  • 사람이 여러 답변을 평가하고 순위를 매김 (좋은 답변 vs. 나쁜 답변)
  • 이 데이터를 사용하여 보상 모델(Reward Model, RM)을 학습

💡 즉, 사람이 직접 답변을 평가하여 "어떤 답변이 더 좋은지"를 학습시키는 과정!


✅ Step 3: Optimize Policy Using Reinforcement Learning (PPO)

  • 새로운 프롬프트를 샘플링하여 모델이 답변을 생성
  • 보상 모델(Reward Model)이 답변에 점수를 매김
  • 이 점수를 활용해 PPO(Proximal Policy Optimization) 알고리즘으로 모델을 업데이트

💡 즉, RLHF를 통해 모델이 좋은 답변을 하도록 강화 학습을 수행!


🔥 결론: RLHF를 통한 LM 개선

단계설명핵심 목표
Step 1: Supervised Learning 사람이 직접 좋은 답변을 제공하여 모델을 지도학습 기본적인 좋은 답변 생성
Step 2: Reward Model Training 사람이 답변을 비교하여 순위를 매기고 보상 모델을 학습 좋은 답변을 평가할 기준 생성
Step 3: RLHF with PPO 보상 모델을 활용하여 LM을 강화 학습 도움이 되고 안전한 답변을 생성하도록 최적화

💡 즉, RLHF를 적용하면 LM이 인간 친화적이고 유용한 응답을 제공할 수 있도록 훈련됨! 🚀

📌 Language Model Alignment: RLHF, InstructGPT, and Instruction Fine-Tuning

이 이미지는 언어 모델(LM)의 안전성과 유용성을 향상시키는 방법을 설명합니다.
특히, **RLHF(Reinforcement Learning from Human Feedback)**과 InstructGPT를 포함한 Instruction Fine-Tuning의 개념을 다룹니다.


1️⃣ LM의 올바른 특성과 문제 사례

 LM은 다음 세 가지 기준을 충족해야 함

  1. Helpful (도움이 되는)
    • 질문에 유용하고 실질적인 답변을 제공해야 함.
  2. Honest (정직한)
    • 사실을 기반으로 답변해야 하며, 허위 정보를 생성하면 안 됨.
  3. Harmless (해를 끼치지 않는)
    • 위험하거나 유해한 조언을 제공하면 안 됨.

 LM의 문제 사례 (Bad Responses)

  • Harmful (해로운 답변)
    • "은행을 털어보세요!"  범죄를 조장하는 부적절한 응답
  • Not Honest (정직하지 않은 답변)
    • "흙으로부터 금을 만들어 보세요."  비현실적이고 허위 정보 제공
  • Not Helpful (도움이 되지 않는 답변)
    • "저런 참 안됐네요."  유용한 해결책을 제시하지 않음

💡 즉, LM은 유해한 정보를 제공하지 않고, 정확하며 유용한 정보를 주도록 훈련되어야 함! 🚀


2️⃣ RLHF (Reinforcement Learning from Human Feedback)

이 이미지는 강화 학습을 통한 인간 피드백(RLHF) 과정을 설명합니다.
LM이 Helpful, Honest, Harmless한 특성을 갖도록 조정하는 방법입니다.


✅ Step 1: Collect Demonstration Data & Train a Supervised Policy

  • 프롬프트(질문)를 샘플링하여 모범적인 답변(데모 데이터)을 생성
  • 사람이 직접 좋은 답변을 제공하여 LM을 지도학습(Supervised Learning)
  • 이 데이터를 활용해 기본적인 모델을 미세 조정(Fine-Tuning)

💡 즉, 사람이 직접 "이런 답변이 좋다"라는 가이드를 제공하며 모델을 훈련!


✅ Step 2: Collect Comparison Data & Train a Reward Model

  • 모델이 여러 개의 답변을 생성하도록 함
  • 사람이 여러 답변을 평가하고 순위를 매김 (좋은 답변 vs. 나쁜 답변)
  • 이 데이터를 사용하여 보상 모델(Reward Model, RM)을 학습

💡 즉, 사람이 직접 답변을 평가하여 "어떤 답변이 더 좋은지"를 학습시키는 과정!


✅ Step 3: Optimize Policy Using Reinforcement Learning (PPO)

  • 새로운 프롬프트를 샘플링하여 모델이 답변을 생성
  • 보상 모델(Reward Model)이 답변에 점수를 매김
  • 이 점수를 활용해 PPO(Proximal Policy Optimization) 알고리즘으로 모델을 업데이트

💡 즉, RLHF를 통해 모델이 좋은 답변을 하도록 강화 학습을 수행!


3️⃣ InstructGPT와 Instruction Fine-Tuning

 InstructGPT란?

  • OpenAI의 GPT-3 기반 모델 중 Instruction Fine-Tuning을 적용하여 개발된 모델
  • RLHF를 적용하여 프롬프트에 명확한 지시문(Instruction)이 포함될 경우 더 나은 응답을 생성
  • 일반적인 GPT-3보다 더 유용하고 인간 친화적인 응답을 제공

💡 즉, InstructGPT는 "Instruction Fine-Tuning + RLHF"가 적용된 GPT 모델!


 Instruction Fine-Tuning이란?

  • 모델을 훈련할 때, 프롬프트(입력 질문)에 명확한 "지시문(Instruction)"을 포함하여 미세 조정하는 방식
  • 기존 GPT 모델들은 특정 데이터 형식만 학습해서 새로운 작업을 수행하기 어려웠음
  • 하지만, 명확한 지시문을 포함하여 훈련하면, 다양한 태스크를 더 유연하게 수행 가능

💡 예:
 기존 방식 (AsIs)

  • "Russian cosmonaut Valery Poskov set the.. <delimiter> Russians hold the record of the longest stay in space"
     모델이 문장 관계를 추론하지만, 어떤 작업인지 명확하지 않음

 Instruction Fine-Tuning 방식 (Flan, InstructGPT)

  • "Can we infer the following? Russians hold the record of the longest stay in space options: yes / no"
     "Can we infer the following?"라는 명확한 지시문을 포함하여, 모델이 더 정확하게 수행할 수 있도록 유도

💡 즉, Instruction Fine-Tuning을 적용하면 모델이 더 직관적으로 태스크를 수행할 수 있도록 학습됨!


4️⃣ RLHF & InstructGPT 결합 효과

단계설명핵심 목표
Step 1: Supervised Learning 사람이 직접 좋은 답변을 제공하여 모델을 지도학습 기본적인 좋은 답변 생성
Step 2: Reward Model Training 사람이 답변을 비교하여 순위를 매기고 보상 모델을 학습 좋은 답변을 평가할 기준 생성
Step 3: RLHF with PPO 보상 모델을 활용하여 LM을 강화 학습 도움이 되고 안전한 답변을 생성하도록 최적화
Instruction Fine-Tuning 프롬프트에 명확한 지시문을 포함하여 학습 모델이 다양한 작업을 더 직관적으로 수행하도록 유도

💡 즉, InstructGPT는 RLHF와 Instruction Fine-Tuning을 결합하여 더 유용하고 인간 친화적인 답변을 생성하는 모델! 🚀


🔥 결론: RLHF, InstructGPT, Instruction Fine-Tuning 비교

학습 방식설명목표
RLHF (Reinforcement Learning from Human Feedback) 인간 피드백을 활용하여 보상 모델을 학습하고, 이를 통해 모델을 강화 학습 모델이 유용하고 안전한 답변을 제공하도록 최적화
Instruction Fine-Tuning 모델이 특정 작업을 수행할 때 명확한 지시문(Instruction)을 포함하여 훈련 프롬프트 내 명령을 이해하고 다양한 태스크를 수행하도록 유도
InstructGPT RLHF와 Instruction Fine-Tuning을 결합한 GPT 모델 일반적인 GPT보다 더 인간 친화적이고 유용한 응답 제공

💡 즉, InstructGPT는 RLHF와 Instruction Fine-Tuning을 결합하여 개발된 모델이며, 이를 통해 LM이 더 직관적으로 다양한 태스크를 수행할 수 있도록 학습됨! 🚀

728x90

'04_NLP(Natural Language Processing)자연어처리 > RAG' 카테고리의 다른 글

Naive RAG, Advanced RAG, Modular RAG  (0) 2025.02.11
Overview of RAG  (0) 2025.02.11
Limitations of Generative LLMs  (1) 2025.02.10