Daily-Trend-Review

2024/01/20: 스터디 내용 정리

hellcat 2024. 1. 20. 17:00

https://www.semianalysis.com/p/gpt-4-architecture-infrastructure

 

GPT-4 Architecture, Infrastructure, Training Dataset, Costs, Vision, MoE

Demystifying GPT-4: The engineering tradeoffs that led OpenAI to their architecture.

www.semianalysis.com

  • 인간은 평균적으로 250 words/sec 속도로 단어를 읽음
  • 일부는 최대 1000 words/sec 속도로 단어를 읽음

 

Extending Context Length in Large Language Models

 

  • Long sequence의 모델을 어떻게 학습시킬 수 있을까?
    • 컨텍스트 길이를 늘리면 모델이 정확하게 예측하기 위해 학습해야 하는 가능한 토큰 조합의 수가 늘어남
    • 이렇게 하면 더 견고한 광범위 모델링이 가능해지지만 더 많은 메모리와 프로세싱 파워가 필요함.
    • 최적화가 없으면 계산은 context length의 2차적으로 확장됨 (512 --> 4096으로 증가하면 2^8 배의 연산이 더 필요함)
  • Long context LLM은 세 가지 주요 challenges가 있음
    • long context를 모델에 맞추는 것
    • 추론/학습을 가속하는 것
    • 전체 컨텍스트에 대한 인식을 유지하면서 고품질의 추론을 보장하는 것
  • Attention의 Complexity
    • 입력 토큰의 모든 가능한 쌍을 위한 어텐션 weight를 계산하기 때문에 O(n^2)의 복잡도를 가짐
    • 어텐션 효율성을 개선하기 위한 방법
      • Approximating attention : 계산 비용을 줄이지만 복잡한 작업에서 정확도가 저하될 수 있음
        • Sparse attention
          • attention의 non-zero 값을 제한함
          • 가능한 모든 쌍 대신 입력 토큰의 하위 집합에 대한 attention weight만 계산하여 attention을 approximiation
          • 고정 또는 정적 패턴을 사용하거나 입력 시퀀스에 따라 달라지는 동적 또는 적응형 패턴을 사용
          • 특히 long sequences의 경우, transformer의 효율성과 확장성을 향상시킬 수 있으나 일부 표현력과 정확성을 희생해야만 함
        • Local attention
          • sliding window에 대한 상호 작용을 제한
      • Exact attention using HW-aware optimizations: GPU 아키텍처를 활용하여 주의를 최적화하는데 중점을 둠
        • FlashAttention
          • Tiling: 입력을 블록으로 분할하여 GPU의 on-chip SRAM에 로드함. Attention은 전체 매트릭스가 머티어라징되는 것을 피하기 위해 block-by-block으로 연산됨
          • Recomputation: 큰 중간 결과물을 저장하는 것을 피하기 위해 backpropagation 동안 attention 매트릭스를 재건하기 위해 충분한 정보만을 저장함
          •  FlashAttention을 사용하면 IO complexity가 기존 attention의 O(n^2)에서 O(n^2/M)으로 낮아짐 (M: SRAM size)
          • FlashAttention은 recomputation으로 인한 FLOPS가 증가함에도 불구하고 IO-awareness를 사용하기 때문에 더 빠름
        • FlashAttention-2
          • 개선 사항: 시퀀스 블록 전체의 병렬성을 강화. GPU의 스레드 블록과 워프간의 작업 분할을 최적화하는데 중점을 둠
          • Key Techniques
            • non-matrix multiply operations 줄이기
            • attention 연산을 스레드로 분할하여 occupancy를 증가시킴
            • 워프 간에 작업을 분사하여 공유 메모리 트래픽을 줄임
          • 성능 개선
            • FlashAttention 대비 FlashAttention-2는 2배 성능을 달성
            • A100 GPUs에서 이론적 peak FLOPS의 73%까지 도달
            • training throughput이 225 TFLOPS per A100을 달성
          • 하지만 여전히 높은 출력 품질을 유지하면서 모델에 텍스트를 맞추는 것은 여전히 과제로 남아 있음
    • 모델은 고정 길이 시퀀스에 대해 pre-training됨
      • 컨텍스트 길이 확장에는 두가지 주요 패러다임이 있음
        • Fine-tuned extrapolation 
          • 더 긴 context에서 weight를 추가로 업데이트하는 것
        • Zero-shot extrapolation
          • 짧은 컨텍스트 학습에서 weight를 변경하지 않고 긴 컨텍스트에서 모델을 평가
        • 컨텍스트를 확장하기 위해 대부분의 접근 방식은 입력 시퀀스에서 토큰의 위치를 나타내기 위해 positional encoding 시스템을 수정하는데 중점을 둠
        • Positional encoding에서 더 긴 입력 시퀀스를 표현하는 것은 LLM이 더 긴 시퀀스에 attention을 기울일 수 있다는 아이디어임
      • Positional encoding: 모델이 문장의 순서를 이해하도록 함
        • Positional encoding은 모델에 공급하기 전에 입력 토큰 입베딩에 추가되어 모델이 시퀀스 순서를 사용 가능
        • transformer는 위치 임베딩 벡터의 각 차원이 정현파 패턴을 따르는 삼각함수를 사용함
        • LLaMA는 회전식 임베딩을 사용하여 위치 임베딩을 즉석으로 계산하는 Rotary Position Embeddings (RoPE)이 사용됨. 
        • positional embedding이 생성되는 방식에 관계없이 모델은 pre-training 중에 보았던 것보다 더 긴 sequence로 일반화하는데 어려움을 겪음
        • 이러한 한계를 해결하기 위해 선형 스케일링 및 위치 보간과 같은 새로운 접근 방식이 도입됨
      • Linear scaling
        • 선형 스케일링을 사용하면 위치 임베딩의 크기가 재조정되어 모델을 다양한 시퀀스 길이에 맞게 조정 가능함
        • Pre-training된 모델에 최대 길이 L까지의 임베딩이 있는 경우, 길이 N의 시퀀스에 대한 추론의 경우 각 위치 임베딩 벡터에 N/L을 곱함
        • 이렇게 하면 사전 학습된 임베딩 속성을 유지하면서 새로운 길이에 대한 임베딩을 저렴하게 근사화 가능
        • 선형 스케일링은 긴 시퀀스에서 성능을 크게 향상시킴. 그러나 이 모델은 pre-training된 길이보다 훨씬 긴 시퀀스에서는 여전히 성능이 떨어짐.
        • 선형 스케일링 프로세스는 여러 위치 임베딩을 함께 축소하여 정보를 파괴함
      • Linear scaling/interpolation
        • Yarn
      • Attention with Linear Biases
        • ALiBi: postional embedding을 제거하는 더 간단한 접근 방식을 도입. 대신 거리에 비례하여 패널티를 쿼리와 키 사이의 attention score를 부정적으로 편향함
        • MosaicML의 MPT-7B 모델은 ALiBi 아키텍처를 활용하여 최대 65000 개의 입력 토큰을 처리 가능함

In the long (context) run

 

How did OpenAI increase context length of the GPT-4 iterations?

 

From the MachineLearning community on Reddit

Explore this post and more from the MachineLearning community

www.reddit.com

 

What Causes LLM Performance To Degrade When Exceeding Training Context Length

 

From the MachineLearning community on Reddit

Explore this post and more from the MachineLearning community

www.reddit.com

 

Efficient Large Language Models: A Survey

 

A Survey on Large Language Model based Autonomous Agents

 

why speculative decoding's output distribution is guaranteed to stay the same? speculative sample

 

From the MachineLearning community on Reddit

Explore this post and more from the MachineLearning community

www.reddit.com

 

Why do MOE have only 8 experts and none have tried to go for 16 for ex?

 

Working with AI in Context

 

Question about Mixture of Experts in Transformers - Has anyone tried adding the router before the Multi Head Attention Blocks?