본문 바로가기

AI/TIL

[AI] AI-Engineering chapter2

Foundation Model

대량의 데이터를 학습하여 다양한 작업을 수행할 수 있는 AI 모델

  • GPT-4, Claude, Gemini, LLaMa etc ..
  • 텍스트 생성, 번역, 코드 작성, 이미지 생성
  • Fine-tuning, prompt engineering

설계 요소

  • 훈련 데이터
    • 훈련 데이터의 품질과 분포는 모델의 성능과 한계를 결정하는 가장 중요한 요소 중 하나임
  • 모델 아키텍처
  • 모델 크기
  • post-training: 모델을 인간 친화적으로 조정

이 장에서 다룰 내용들

  • Transfomer는 왜 강력함 ?!
  • 이 아키텍처가 언제까지 AI 지배할 수 있을 것 같음 ?!
  • 미래의 새로운 아키텍처는 어떨까 ?!
  • 모델 크기를 결정하는 과정은 어떻게 이루어짐 ?!

Training: Pre-training/Post-training

Pre-training

  • 방대한 데이터로부터 패턴, 일반적인 지식을 학습
  • 모델은 언어 이해 능력을 갖게 되는데, 신뢰성, 유용성은 보장x

Post-training

  • 사전 훈련된 모델을 인간의 기대에 맞게 조정하는 과정
  • 모델이 우리 입맛에 맞는 답변을 제공할 수 있도록 개선함
  • RLHF(Reinforcement Learning from Human feedBack)

Training Data

  • 모델의 성능은 훈련 데이터에 달림

  • 훈련 데이터 수집은 어려웡

  • “use what we have, not what we want”

    • 대부분 이용 가능한 데이터를 기반으로 학습함

      • example) 법률 문서를 기반으로 훈련되지 않은 모델은 법률 질문에 대한 정확도가 낮음

      ⇒ 해당 분야에 맞는 데이터를 직접 구축하는 과정이 필요함

      ⇒ 범용적인 AI 모델을 특정 데이터로 fine-tuning하여 성능을 개선

  • 그렇다고 해서 모든 데이터, 걍 막무가내로 많은 데이터를 학습하라는 것이 아님!

    • Gunasekar at. l.(2023) 데이터의 양보다 품질이 더 중요할 수 있음

Common Crawl

  • 웹사이트를 정기적으로 수집하는 대규모 웹 데이터셋
  • 근데 데이터 품질 논란 있음, 그럼에도 주요 훈련 데이터로 사용
    • 그럼 저품질 데이터 필터링은 ?! Heuristics

Multilingual models

Low-resource Languages

  • 훈련 데이터가 부족해서 번역 성능이 낮거나 문장 생성 품질이 떨어질 가능성이 높음

  • 영어 데이터를 활용한 번역 학습을 진행

    • general-purpose models에서 영어 성능 평가 결과가 좋은 이유는 ?!

      • 인터넷 데이터에서 영어가 차지하고 있는 비중이 높기 때문에 (45.88%)

      • MMLU(Massive Multitask Language Understanding) 벤치마크

        • AI모델이 다양한 분야에서 얼마나 잘 이해하고 추론할 수 있는지를 측정하는 대표적인 평가 기준

          🏷️ MMLU

        • zero-shot, few-shot 성능을 측정함

          • zero-shot
            • 라벨링 되지 않은 새로운 클래스에 대한 분류 작업을 수행할 때, 이전에 학습된 모델을 사용하여 분류하는 기술
          • few-shot
            • 한 클래스당 일부 샘플 이미지만 사용해서 새로운 클래스를 인식하는 것
        • GPT-4의 성능 결과

          • 영어에서 최고
          • 데이터가 부족한 언어는 성능 떨어짐
            • 그럼, 비영권 언어를 사용하여 AI모델을 사용할 경우 생기는 문제점은 ?!
    • 특정 언어에서 다른 언어보다 잘못된 정보를 생성할 가능성 있음

    • NewsGurad(2023) 실험

      • GPT-3.5에게 중국과 관련된 가짜 뉴스 기사를 생성하도록 요청함
      • 요청 7개중 영어는 6개/중국어는 7개를 허용
      • 중국어로 잘못된 정보를 생성할 가능성이 높음 ㅋㅋ..ㅠ
    • MaSSIVE 벤치마크에서 GPT-4의 다국어 토큰 길이 분석 (Yennie Jun)

      • 같은 문장이라도 언어에 따라 평균 토큰 길이에 차이가 생기고, 문장 생성에 더 많은 시간이 걸림
  • finetuning해서 성능을 향상시키기

Modeling

Model Architecture

Transformer architecture

이전에 스터디한 내용 참고해도 좋음! Transformer

  • Inference(추론)

    • Prefill(사전 연산)

      • 입력 토큰들을 병렬로 처리하여 필요한 상태(Intermediate State) 생성

      • 모든 입력 단어의 Key, Value 벡터를 생성

        ✅ 병렬 연산이 가능하여 빠르게 연산

    • Decode(출력 생성)

      • 모델이 하나씩 (output token by token) 출력을 생성

        ❌ 출력은 하나씩 생성해야 하기 때문에 디코딩 단계에서는 여전히 순차적 처리 필요

Seq2Seq(sequence to sequence)

  • 2014년, 기계 번역, 요약 작업에서
  • 2016년, 구글에서 Google Translate에 사용함

문제점

  • 출력 생성 시 Final hidden state만 사용함 → 정보 손실 발생
  • RNN 기반 아키텍쳐 → 순차적으로 데이터 처리 → 긴 문장에서는 속도가 느림
    • 병렬 처리가 어려움

Attention-mechanism

연산 과정

  • Query, key 벡터의 내적을 계산하여 유사도를 측정
  • 유사도가 높은 Key 값에 해당하는 value 정보를 더 많이 반영
  • Soft max 연산을 통해서 가장 중요한 토큰에 높은 가중치를 부여

Transformer block

  • Transformer는 Transformer Blocks로 구성
    • Transformer Blocks ⇒ Attention Module + Multi-Layer Perception Module
      • Attention Module
        • Q(Query), K(Key), V(Value), Output Projection(O)
      • Multi-Layer Perception Module
        • Linear Transformation
          • 가중치 행렬로 표현
        • Activation Function
          • 비선형 패턴을 학습할 수 있도록 도움

Other model architecture

  • 트랜스 포머의 한계

    • 긴 문맥 길이 처리, 메모리 효율성 문제
  • S4 (Structed State Space Model, SSM)

    • 긴 문맥을 더 효율적으로 처리하도록 설계
    • 메모리 효율적, 계산량이 줄어들어
  • H3 (Hungry Hungry Hippos)

    • 초기 토큰을 기억하고, 문맥 내에서 토큰을 비교하는 메커니즘을 추가

    • 트랜스포머의 어텐션과 유사함 근데 더 효율적?! 왜일까

      1️⃣ SSM 기반으로 문장의 길이에 관계없이 선형적인 연산량으로 동작

      2️⃣ attention 없는 병렬 연산 가능

      3️⃣ 재귀적으로 동작하면서 캐시를 효율적으로 사용, 이전 상태를 재사용하면서 문맥을 점진적으로 업데이트함

    • 모델이 이전 토큰들을 더 잘 기억하고 활용할 수 있도록 설계됨

  • Mamba (Linear-Time sequence modeling)

    • 트랜스포머와 비교하여 더 효율적인 시퀀스 모델 제공
    • attention mechanism ❌
      • 모든 토큰을 훓지 않고 문맥 state를 별도 저장하고 선택적으로 결정
        • introduction heads 테스크는 LLM의 맥락 내 학습 능력의 대부분을 설명하기 위해 가설화된 테스트, 문맥 인식 추론능력이 필수적
        • 계산량이 시퀀스 길이에 선형적으로 증가, 계산량이 더 적음
  • Jamba (Hybrid Transformer-Mamba)

    • 트랜스포머와 Mamba 레이어를 조합하여 더 효율적인 모델을 생성
      • Transformer, Mamba블록을 번갈아 배치하여 모델 효율성 향상
    • MoE(Mixture of Experts): 52B 파라미터, 80GB GPU에서 실행 가능하도록 설계

Model Size

모델 크기를 결정하는 것들

  • 파라미터 개수 모델의 학습 용량 결정
  • 학습된 토큰 개수 모델이 얼마나 많은 데이터를 학습했는지 결정
  • FLOPs 모델 학습에 필요한 총 연산량 결정

  • 일반적으로 파라미터 많으면 성능 뛰어남

  • 파라미터의 영향

    • 필요한 계산량, 메모리 사용량 결정
    • sparse model: 데이터 저장과 연산을 더 효율적으로 수행
    • MoE, 실제 연산량은 적음
  • 모델 크기가 크더라도 충분한 데이터가 학습되지 않으면 성능이 떨어질 수 있음

  • 데이터셋 크기, 학습에 사용된 총 토큰 개수 의 차이

    • 데이터셋 크기와 실제 학습에서 사용된 토큰 개수 다름

    • 긍까 1조 토큰을 포함한 데이터셋을 2 epoch을 돌리면 총 2조 개의 학습 토큰이 사용되었다고 할 수 있음

      Llama1 1.4토큰, Llama2 2조 토큰, Llama3 15조 토큰 이 학습할 때 사용되었다고 함 ..

  • 연산량 및 성능 측정

    • FLOP(Floating Point Operation): 모델 학습에서 사용되는 총 연산량
    • FLOPs(FLOP per second, 초당 연산량): GPU, TPU 등의 컴퓨팅 장치 성능을 측정하는 단위
    • GPU의 성능은 항상 100%가 아님

Scaling Law: Building compute-optimal models

  • Scaling law: 파라미터 개수, FLOPs, 학습 토큰 개수 간의 관계를 나타내는 법칙

    • 주어진 계산 리소스 내에서 최적의 모델 성능을 내도록 설계

      1️⃣ 모델 성능은 모델 크기와 데이터 크기에 의존

      2️⃣ 더 큰 모델과 더 많은 데이터는 더 많은 연산량을 필요로 함

      3️⃣ 연산량은 비싸기 때문에 최적의 모델 크기, 데이터 크기를 설정하는 것이 매우 중요하다

  • Chinchilla Scaling Law(친칠라 스케일링 법칙)

    • 고정된 연산량 내에서 최적의 모델 크기와 학습 데이터 크기를 결정함
    • 파라미터 개수를 늘리면, 학습 데이터의 양도 비례해서 증가해야 함
  • 모델 개선이 진행되면 진행될수록 성능 향상 비용은 기하급수적으로 증가함

  • 지금 이제는, 무조건 큰 모델 보다는 연산량 고려해서 최적의 모델 크기와 학습 데이터 결정하는게 효율적으로 모델을 만들 수 있음


Scailing explolation

parameter: 모델이 훈련 과정에서 학습하는 값

Hyperparameter: 사용ㅇ자가 설정하여 모델이 학습하는 방식을 조절하는 값

  • 최적의 하이퍼파라미터를 예측하는 연구 분야
    • 소형 모델에서 실험한 하이퍼파라미터를 기반으로 대형 모델에서의 최적 하이퍼파라미터를 추론하는 방식
  • 하이퍼파라미터 수가 많아질수록 실험이 기하급수적으로 증가
    • Emergent Abilities 때문에 정확도가 떨어질 수 있음

Scaling Bottlenecks

“모델 크기를 계속 키우다가 왜 performance plateau가 발생함 ?! “

1️⃣ Training Data

  • AI 생성 데이터로 인한 순환 학습 문제가 발생함
  • AI가 생성한 데이터를 다시 학습시키면 원본 데이터 패턴이 점점 희석되고, 성능이 저하될 수 있음

2️⃣ Electricity Consumption

Post Training

pre-training을 거친 모델을 fine-tuning 하는 과정

  • 사전 훈련된 모델은 text completion에는 최적화되어 있지만, conversation에는 최적화되지 않음
  • supervised finetuning (SFT)
    • 고품질 데이터로 모델을 추가 훈련하여 conversational model로 최적화
    • Stack Overflow, Quora, 등
  • Preference Finetuning
    • 사용자가 선호하는 방식으로 응답을 생성하도록 모델을 추가 조정
    • 강화학습 기반임
      • GPT-3.5, Llama2: RLHF
      • Llama 3: DPO
      • Claude: RLAIF
  • Pre-training, SFT, RLHF
    • 인간 친화적인 모델이 되기 위해서는 ?@
      • 인터넷 데이터 기반 pre-trainingSFT, RLHFPost-training

'AI > TIL' 카테고리의 다른 글

[AI] AI-Engineering Chapter1  (0) 2025.02.09