Data Science/생성형 AI

생성형 AI

Boxya 2025. 4. 18. 20:00

[KT] AIVLE SCHOOL 18일차

 

기존의 NLP : RNN 기반

  • 오랫동안 언어모델을 위한 주요한 접근 방식
  • 단점 : 병렬 처리가 어려움, 장기 의존성 문제, 확장성이 제한됨
  • RNN 기반 Seq2Seq 모델
    • 기존 RNN LM
      • 기존 LM은 다음 단어만 예측, 혹은 분류 문제 풀기
    • RNN 기반 Seq2Seq
      • 입력 시퀀스를 출력 시퀀스로 변환 (e.g. 기계번역)
      • 인코더(Encoder) : 입력을 벡터로 변환 (문장의 의미를 압축)
      • 디코더(Decoder) : 벡터를 기반으로 새로운 시퀀스를 생성
    • 문제점
      • 병렬 처리 문제
        • 기존 RNN(LSTM) 모델들은 데이터를 순차적으로 처리 -> 병렬화가 어려움
        • 문장의 앞에서부터 뒤까지 순차적으로 처리하기에 처리 속도가 느림
        • 인코더의 마지막 은닉상태(context vector)를 디코더(decoder)로 전달
          • 긴 문장이나 긴 데이터의 경우 문맥을 파악하는데에 한계(병목 발생)
      • 장기 의존성 문제(Long-term Dependency)
        • RNN(LSTM)은 긴 문장에서 앞부분의 정보를 유지하는 것이 어려움
        • 긴 time step을 지나면서 초기 입려 정보가 사라지거나 약해짐
          • 문장의 앞부분과 뒷부분 사이의 관계를 제대로 학습하기 어려운 문제가 있음
      • 복잡한 구조 및 학습 문제
        • RNN(LSTM)은 구조가 복잡하고 계산 비용이 큼
          • 모델을 훈련시키는 데 시간이 많이 걸리고 최적화 어려움

 

Transformer

  • 기존의 NLP : RNN 기반
    • 오랫동안 언어모델을 위한 주요한 접근 방식
    • 단저 : 병렬 처리가 어려움, 장기 의존성 문제, 확장성이 제한됨
  • Transformer 등장 배경
    • RNN의 모델의 단점을 극복
    • 언어 모델의 Game Changer
    • Transformer 덕분에 LLM이 발전하게 됨
  • Attention 매커니즘
    • Attention : 중요한 단어(정보)에 집중하여 더 정확한 출력을 만드는 기법
    • 개념
      • 기존 Seq2Seq이 한계
        • 인코더가 모든 정보를 하나의 Context Vector에 압축 -> 정보 손실 발생
        • 입력 문장이 길어질수록 맨 앞 단어의 정보가 약해지
      • Attention의 역할
        1. 디코더의 세번째 LSTM 셀은 출력 단어를 예측하기 위해 인코더의 모든 입력 단어들의 정보를 다시 한번 참고
          • 디코더 세번째 LSTM의 히든상태와 인코더의 각 히든 상태 간 dot product
        2. 소프트맥스 함수 결과: I, am, a, student 단어 각각이 출력 단어를 예측할 때 도움이 되는 정도를 수치화 한 값
        3. 이를 하나의 정보로 담아서 디코더로 전송
          • 소프트맥스 결과값을 인코더 히든상태 값에 곱하고 합쳐서(weighted sum) 디코더로 전송
  • Transformer 구조
  • Transformer 주요 특징
    • Self-attention : 입력 문장의 모든 단어가 서로 어떤 관계를 가지는지 학습
      • 기존 Attention : Seq2Seq에서 인코더-디코더 간의 정보 전달에 초점
      • Self-attention은 같은 문장 내에서 단어들 간 관계를 파악하는 것이 핵심
      • RNN과 차이점 : 병렬 처리 가능
        • 전체 문장을 한 번에 고려하면서 단어 간 관계를 학습
        • 모든 단어가 동시에 처리 가능해서 연산 속도가 크게 향상됨
    • Multi-Head Attention
      • 하나의 Attention 매커니즘만 사용하지 않고 여러 개의 Attention을 동시에 수행하는 기법
      • Transformer에서 핵심적인 역할을 하는 Self-Attention은 한 번만 수행하는 것이 아님
        • 여러 개의 어텐션을 병렬적으로 수행한 후 이를 합치는 방식으로 동작
      • e.g. "The animal that was seen by the man was a dog"
        • 단순한 어텐션 : "animal"과 가장 관련 있는 단어를 찾으면 "dog"에 집중
        • Multi-Head Attention
          • 첫 번째 어텐션 : "animal" <-> "dog" (명사 간 관계 학습)
          • 두 번째 어텐션 : " animal" <-> "seen" (동작과의 관계 학습)
          • 세 번째 어텐션 : "animal" <-> "man" (소유자 관계 학습)
          • ...
        • 즉, 여러 개의 관점을 사용하면 더 풍부한 문맥 정보를 학습 가능
    • Positional Encoding (위치 정보 인코딩) - 단어 순서 반영
      • Self-Attention은 단어 간 관계를 학습하지만 순서 정보(position)가 포함되지 않음
      • 이를 해결하기 위해 위치 정보(Positional Encoding)를 추가
      • 작동 원리
        • 각 단어의 위치를 나타내는 값을 계산하여 임베딩 벡터에 더함
        • 일반적으로 sin과 cos 함수를 사용해 패턴을 생성
        • 같은 위치에서는 같은 값을 가지므로 모델이 단어 순서를 학습할 수 있음
    • Feed Forward Network(FFN) - 추가적인 비선형 변환을 수행
      • Self-Attention을 통해 얻은 정보를 추가적으로 변형하고 학습하는 역할
      • 각 단어에 대해 Self-Attention을 적용한 후 추가적인 비선형 변환을 통해 정보를 조정하는 단계
      • 동작원리
        • Self-Attention을 거친 벡터를 입력으로 받음
        • 두 개의 Dense(완전연결) 레이어를 통과하면서 추가 변환 수행
        • 활성화 함수 (ReLU) 사용
        • 더 복잡한 특징을 학습할 수 있도록 함
      • 필요성
        • Attention을 가진 정보만으로는 단순한 변환만 가능
        • FFNㅇㄹ 사용하면 비선형 변환을 추가하여 더 정교한 표현 학습이 가능
        • 결과적으로, FFN은 Transformer가 더 강력한 표현력을 가질 수 있도록 도움
  • Transformer to GPT, BERT
    • Transformer의 기본 구조
      • Encoder : 입력 문장을 인코딩하여 벡터 표현을 생성
      • Decoder : 인코더의 출력 벡터를 받아서 최종적으로 문장을 생
  GPT
Generative Pre-trained Transformer, OpenI(2018)
BERT
Bidirectional Encoder Representations from Transformers, Google(2018)
특징 - Transformer의 Decoder만 사용하여 만든 모델
- Autoregressive 방식으로 다음 단어를 예측하는 언어 모델
- Left-to-Right 방식으로 문장을 순차적으로 생성
- Transformer의 Decoder 블록을 반복적으로 쌓아 모델을  구성
- 이전 단어만 참고하면서 다음 단어를 예측하는 구조
- Masked Self-Attention 사용 : 미래 단어를 참조하지 않도록
- 활용 : 텍스트 생성(ChatGPT), 문장 생성 기반 태스크
- Transformer의 Encoder만 사용하여 만든 모델
- 양방향(Bidirectional) 문맥을 고려하여 문장을 이해
- Masked Language Model(MLM) & Next Sentence Prediction(NSP) 방식으로 학습
- 문장의 전후 문맥을 모두 고려하여 더 깊이 있는 이해 가능
- 문장 의미 파악, 문장 관계 분석 등에서 뛰어난 성능
- 활용 : 문서 분류, 질의응답(Qna), 감성 분석, 검색 엔진 개선
한계 - 양방향 문맥을 고려 못함 -> 한 방향(L-R)으로만 단어를 예측
- 문장의 의미를 깊이 이해하는 데 한계가 있음
- 문장 생성을 직접 하지 않음 : GPT처럼 자연스럽게 텍스트를 생성하는 데는 적합하지 않음
- 학습 비용이 큼 : 대량의 데이터와 연산이 필요

GPT의 발전

  • GPT는 모델 크기 확대, 데이터 다양화. 학습 방식 개선(Few-shot, Zero-shot), RLHF 도입,
  • 그리고 멀티모달 지원을 통해 점점 더 강력한 자연어 이해 & 생성 능력을 갖추며 발전해 옴

BERT의 발전

  • BERT는 모델 성능을 높이는 방향(RoBERTa, Electra)과 경량화하는 방향(ALBERT, DistilBERT)으로 발전해 왔음
  • 최근에는 특정 도메인에 맞춰 Fine-tuning된 버전들이 활용

 

LLM 모델

  • LLM 모델 학습의 어려움
    • 연산 자원 및 인프라
    • 데이터 확보
    • 훈련 시간 및 반복 횟수
    • 과적합 및 일반화 문제
    • 유해하거나 잘못된 데이터 생성
    • 환경적 영향
  • LLM 활용 방법
    • Modeling : 나의 데이터를 가지고 직접 학습 시킴
    • 사전 학습 된 LLM
      • API, huggingface : 모델 그대로 사용하기
      • Fine-tuning : 나의 데이터를 가지고 추가 학습 시키기
      • RAG : 나의 데이터를 가지고 답변 시키

'Data Science > 생성형 AI' 카테고리의 다른 글

Vector DB와 RAG 파이프라인 구축  (0) 2025.04.22
Vector DB와 RAG  (2) 2025.04.22
LangChain  (0) 2025.04.21
Fine-tuning  (1) 2025.04.18
LLM 활용  (2) 2025.04.18