LLM01 - Models

대형언어모델에 대해서 간략이 정리한다.

언어모델(LM, Language Model)

https://brunch.co.kr/@brunchgpjz/49

  1. 통계적 언어모델 (SLM)

  2. 신경 언어모델 (NLM)

  3. 사전학습된 언어모델 (PLM)

    • LSTM, biLSTM, ELMo. 그리고 Self-attention 을 갖춘 Transformer 아키텍처의 BERT
  4. 대규모 언어모델 (LLM)

    • PLM의 확장(모델 크기, 데이터 크기) 하면 성능 향상

BERT

2018년 구글이 발표한 잔연어 처리 모델

BERT(Bidirectional Encoder Representations from Transformers)는 Google이 2018년에 발표한 언어 모델입니다. BERT는 텍스트 이해를 위해 주로 사용되며, 특히 텍스트의 양방향(contextual) 특성을 잘 이해하는 데 능력이 있습니다. BERT의 핵심 메커니즈다는 self-attention, 즉 자기 주의력이 있습니다.

Transformer 아키텍처

RNN 기반의 단점인 기억상실을 극복하고 self-attention 으로 문장 안의 단어 사이 관계 파악에 주력

Self-attention

문장 내의 모든 단어들에 대해 각각 중요도를 계산하고 특정 단어와 관련한 다른 단어들의 정보를 종합하는 방식을 통해서 문장의 문맥 속에서 단어의 의미를 더 정확히 파악할 수 있다.

Parallelize

RNN 과 달리 병렬로 계산해 속도 향상

사전학습

BERT는 라벨 없는 대규모 텍스트 데이터를 사전학습한다. 언어의 지식을 습득하고 다양한 NLP task 에 적용을 준비한다.

부호제거

BERT는 마스크한 언어모델 (Masked Language Model, MLM)과 다음 문장 예측(Next Sentence Prediction, NSP) 의 2가 방식으로 사전학습을 진행한다.

  • MLM
    • 문장에서 일부 단어를 가리고 가려진 단어를 예측한다.
  • NSP
    • 2개의 문장을 주어지면 두번째 문장이 첫번째 문장 다음 문장인지 판단하는 학습을 한다.

양방향 언어모델

문장의 양방향(앞, 뒤) 정보를 모두 활용하여 단어의 의미를 파악한다. 기존 모델들이 주로 단방향 또는 제한적인 양방향 정보만 활용했던 것에 비해 BERT는 문맥 정보를 활용해 높은 성능을 보여준다.

self-attention

self-attention은 BERT의 구조에서 중요한 역할을 합니다. 이는 각 단어에 대해 다른 모든 단어와의 관계를 평가하여 중요도를 계산합니다. 이를 통해 각 단어가 문맥 속에서 얼마나 중요한지, 다른 단어들과 어떻게 상호작용하는지를 파악할 수 있습니다.

BERT의 self-attention은 주로 두 가지로 구성됩니다:

  1. Self-Attention Mechanism:

    • BERT는 입력한 시퀀스에 대해 self-attention mechanism을 사용하여 각 단어의 의미를 계산합니다.
    • 각 단어는 입력 시퀀스의 모든 단어에 대한 가중치를 계산하고, 그 가중치에 따라 다른 단어들로부터의 정보를 수집합니다.
    • 이를 통해 각 단어가 문맥 내에서 어떻게 관련이 있는지 파악할 수 있습니다.
  2. Multi-Head Attention:

    • BERT는 여러 개의 attention head를 사용하여 더 복잡하고 다양한 관계를 포착할 수 있습니다.
    • 각 attention head는 입력 시퀀스에 대해 독립적으로 작업을 수행하며, 서로 다른 기능을 가진 여러 attention matrix를 생성합니다.
    • 이를 통해 모델이 다양한 관점에서 입력 텍스트를 이해할 수 있습니다.

self-attention의 구체적인 계산 과정은 다음과 같습니다:

  1. Query, Key, Value:

    • BERT는 입력 시퀀스를 Q(query), K(key), V(value)로 나누어 각 단어에 대해 attention을 계산합니다.
  2. Attention Score Calculation:

    • Q와 K를 Dot Product로 계산하여 attention score를 얻습니다.
    • 이를 통해 각 단어가 다른 단어들과 얼마나 관련이 있는지를 평가합니다.
  3. Attention Weight Calculation:

    • Softmax 함수를 사용하여 attention score를 정규화하고, 이를 attention weight로 사용합니다.
  4. Contextualized Embedding:

    • 최종적으로 attention weight에 따라 다른 단어들로부터의 정보를 가중치하여, 각 단어의 contextualized embedding을 계산합니다.

이러한 과정을 통해 BERT는 입력 텍스트의 모든 단어가 문맥 내에서 어떻게 상호작용하는지를 이해하고, 이를 바탕으로 더 정교한 텍스트 이해를 가능하게 합니다.

BERT의 self-attention mechanism은 기존의 언어 모델들에 비해 텍스트 이해 및 시각화 능력이 더 뛰어나며, 이는 다양한 NLP 작업에서 높은 성능을 발휘하는 데 기여하고 있습니다.

날짜 모델 특징 비고
2024년 12월 DeepSeek-V3 - 6710억 개의 파라미터와 370억 개의 활성화된 파라미터 기반 MoE 모델 - 적은 비용으로 높은 성능을 달성하여 화제가 됨
2025년 1월 DeepSeek-R1 - 강화 학습 기반 추론 모델 - 높은 성능과 가성비로 주목받음
2025년 1월 DeepSeek-R1-Zero - DeepSeek-R1 모델의 Zero 버전 - 추가 정보 필요

LLM 모델, 파라미터 별 비교

모델 개발사 파라미터 크기 주요 특징 활용 분야
Llama 1 Meta 7B, 13B, 33B, 65B 연구용, 제한적 공개 연구, 개발
Llama 2 Meta 7B, 13B, 70B 상업적 이용 가능, 다양한 기능 추가 챗봇, 텍스트 생성, 번역 등
Llama 3.1 Meta 8B, 70B, 405B 128k 컨텍스트, 8개 언어 지원, 도구 사용, Llama Guard 3 및 Prompt Guard 등 안전 도구 강화 챗봇, 텍스트 생성, 번역, 코딩, 수학 문제 해결 등
DeepSeek-V3 DeepSeek 671B 16-bit Transformer, MoE, dynamic biases 텍스트 생성, 코딩, 수학 문제 해결 등
DeepSeek-R1 DeepSeek - 강화 학습 기반, 추론 특화 추론, 문제 해결
DeepSeek-R1-Distill DeepSeek 1.5B, 7B, 8B, 14B, 32B, 70B DeepSeek-R1 지식 증류, 다양한 크기 제공 추론, 문제 해결

Deepseek V3

  • 딥시크-V3: 2024년 12월 공개된 LLM으로, 적은 비용으로 높은 성능을 달성하여 주목받았습니다.
  • 딥시크-R1: 2025년 1월 공개된 추론 AI 모델로, 일부 성능 테스트에서 OpenAI의 모델을 능가하는 결과를 보여 화제가 되었습니다.

DeepSeek R1, 복잡한 아이디어 대신 단순한 RL 방식으로도 충분한 추론 성능 달성

DeepSeek R1은 복잡한 아이디어(DPO, MCTS) 대신 단순한 RL 방식으로도 충분한 추론 성능을 달성할 수 있음을 보여주는 대표적인 사례입니다.

기존 방식의 한계

DPO(Direct Preference Optimization)와 MCTS(Monte Carlo Tree Search)는 복잡한 계산 과정과 많은 자원을 필요로 합니다.

이러한 복잡성은 모델의 학습 속도를 늦추고, 대규모 모델에 적용하기 어렵다는 단점이 있습니다.

DeepSeek R1의 접근 방식

DeepSeek R1은 단순한 RL 알고리즘을 사용하여 추론 능력을 향상시켰습니다.

지도 학습 데이터 없이 순수 강화 학습만으로 모델을 학습시켜 추론 능력을 끌어올렸습니다.

자체 학습(Self-evolution) 과정을 통해 모델이 점진적으로 복잡한 추론 작업을 해결하는 능력을 개발했습니다.

Deepseek Timeline

  • 2024년 9월 12일: o1-preview 출시
  • 2024년 12월 5일: o1 정식 버전 및 o1-pro 출시
  • 2024년 12월 20일: o3 발표 (ARC-AGI 통과, “AGI”로 주목받음)
  • 2024년 12월 26일: DeepSeek V3 출시
  • 2025년 1월 20일: DeepSeek R1 출시 (o1과 유사한 성능인데 오픈 소스)
  • 2025년 1월 25일: 홍콩대학교 연구진이 R1 결과 복제 성공
  • 2025년 1월 25일: Huggingface에서 R1을 복제한 완전 오픈소스 open-r1 프로젝트 발표

특징

DeepSeek v3는 Float8 E4M3, FP8 Master Accumulation, Latent Attention C Cache, Dynamic Biases for MoE 등 다양한 혁신적인 기술을 통해 높은 성능과 효율성을 동시에 달성했습니다.

DeepSeek v3 특징

  1. E4M3 를 Float8 로 사용한다.
    • Float8 중에서도 E4M3 형식을 사용하여 메모리 사용량을 줄이면서도 높은 정밀도를 유지합니다. 기존에는 E5M2 형식이 주로 사용되었지만, DeepSeek v3는 E4M3를 사용하여 연산 효율성을 높였습니다.
  2. 매 4번째 FP8 합산을을 마스터 FP32 accum 에 합산된다.
    • DeepSeek v3는 매 4번째 FP8 누적 결과를 FP32 Master Accumulation에 더하여 정밀도를 향상시킵니다. 이는 FP8 연산의 단점을 보완하고 안정적인 학습을 가능하게 합니다.
  3. Latent Attention stores C cache not KV cache
    • Latent Attention의 Key(K)와 Value(V) 캐시 대신 C 캐시를 사용하여 메모리 사용량을 줄이고 연산 속도를 향상시킵니다. 이는 더욱 효율적인 Attention 연산을 가능하게 합니다.
  4. No MoE loss balancing - dynamic biases instead
    • 기존의 MoE Loss Balancing 대신 Dynamic Biases를 사용하여 모델의 균형을 맞추고 학습 효율성을 높입니다. 이는 더욱 안정적인 MoE 학습을 가능하게 합니다.

주요 기법

  1. Float8 E4M3

    • Float8 을 4비트 지수 (Exponent), 3비트 가수(Mantissa) 로 표현한다.
  2. FP8 Master Accumulation

    • FP8 연산 결과를 FP32 형식으로 누적하는 기술
  3. Latency Attention

    • Attension 으로 Latency Attention 으로 사용한다.
  4. MoE ( Mixture of Experts)

    • MoE 여러 개의 전문가 네트워크를 결합하여 성능을 향상시키는 기술, Dynamic Biases는 MoE의 각 전문가 네트워크에 동적으로 적용되는 편향(Bias)입니다.

LLM 기법 해설

전통 Attention 매커니즘

Attention 메커니즘은 인공지는 자연어 처리에서 문맥 속에서 중요한 정보를 선별하고 집중하여 처리함으로써 효율성을 높이는 기술이다.

https://jalammar.github.io/illustrated-transformer/

전통적 Attention 매커니즘 작동방식

  1. 유사도 계산 (Similarity Calculation)

    입력된 각 단어(또는 토큰) 간의 유사도를 계산합니다. 이는 Query, Key, Value 벡터를 사용하여 수행됩니다.

    • Query (Q): 질문 또는 현재 처리해야 할 정보를 나타내는 벡터
    • Key (K): 입력 데이터의 각 단어(또는 토큰)를 나타내는 벡터
    • Value (V): 입력 데이터의 각 단어(또는 토큰)의 실제 값을 나타내는 벡터
  2. 가중치 계산 (Weight Calculation)

    계산된 유사도를 바탕으로 각 단어에 대한 가중치를 계산합니다. 이 가중치는 해당 단어가 얼마나 중요한지를 나타냅니다. Softmax 함수를 사용하여 가중치를 정규화합니다.

  3. 가중 평균 (Weighted Average)

    계산된 가중치를 사용하여 입력 단어들의 가중 평균을 계산합니다. 이 가중 평균은 Attention 값을 나타냅니다.

  4. 출력 (Output)

    계산된 Attention 값을 사용하여 최종 결과를 생성합니다.

토큰화한 단어 사이의 의미를 파악하기 위해 Sel-attention 을 Q, K, V 벡터로 수행한다.

https://www.linkedin.com/pulse/what-self-attention-impact-large-language-models-llm-nikhil-goel-srpbc/

Self-Attention

다양한 Attention 매커니즘

다양한 Attention 메커니즘 종류

  1. Self-Attention

Self-Attention은 입력 시퀀스 내에서 각 요소들 간의 관계를 파악하는 데 사용되는 Attention 메커니즘입니다. Query, Key, Value가 모두 동일한 입력에서 파생된다는 특징을 가집니다.

작동 방식

  1. Query, Key, Value 생성: 입력 시퀀스를 사용하여 Query, Key, Value 벡터를 생성합니다.
  2. 유사도 계산: Query와 Key 벡터 간의 유사도를 계산합니다.
  3. 가중치 계산: 계산된 유사도를 바탕으로 각 Key에 대한 가중치를 계산합니다.
  4. 가중 평균: 가중치를 사용하여 Value 벡터의 가중 평균을 계산합니다.
  5. 출력: 계산된 가중 평균을 Self-Attention의 출력으로 사용합니다.

특징

  • 입력 시퀀스 내의 장거리 의존성을 효과적으로 파악할 수 있습니다.
  • 병렬 처리가 가능하여 계산 효율성이 높습니다.
  1. Multi-Head Attention

Multi-Head Attention은 Self-Attention을 여러 개의 head로 나누어 다양한 관점에서 입력 시퀀스를 분석하는 기법입니다.

각 head는 독립적으로 Self-Attention을 수행하고, 그 결과를 concat하여 최종 출력을 생성합니다.

작동 방식

  1. 입력 분할: 입력을 여러 개의 head로 나눕니다.
  2. Self-Attention: 각 head에서 독립적으로 Self-Attention을 수행합니다.
  3. 결과 concat: 각 head의 출력 결과를 concat합니다.
  4. 출력: concat된 결과를 Multi-Head Attention의 출력으로 사용합니다.

특징

다양한 의미를 가진 정보를 효과적으로 추출할 수 있습니다.
모델의 표현력을 높여줍니다.

  1. 기타 Attention 메커니즘
  • Global Attention: 입력 시퀀스 전체를 사용하여 Attention 값을 계산합니다.
  • Local Attention: 입력 시퀀스의 특정 부분만 사용하여 Attention 값을 계산합니다.
  • Hierarchical Attention: 계층적인 구조를 가진 입력 데이터에 적용되는 Attention 메커니즘입니다.

전통 Attention 한계

전통적인 Attention 메커니즘은 계산 복잡도가 높고, 긴 시퀀스에 취약하다는 단점이 있습니다.

Offload

인공지능 LLM(Large Language Model) 분야에서 Offload는 특정 작업을 메인 프로세서(CPU 또는 GPU)에서 다른 보조 프로세서(GPU, TPU, NPU 등)로 이전하여 처리하는 것을 의미합니다.

Offload의 핵심 개념

  • 작업 분산: LLM은 막대한 연산 능력을 요구하기 때문에, 하나의 프로세서만으로는 처리하기 어려울 수 있습니다. Offload는 이러한 문제를 해결하기 위해 작업을 여러 프로세서에 분산하여 처리합니다.
  • 성능 향상: Offload를 통해 각 프로세서는 자신에게 특화된 작업을 효율적으로 처리할 수 있습니다. 이는 전체 시스템의 성능 향상으로 이어집니다.
  • 자원 효율성: Offload는 시스템 자원을 효율적으로 활용할 수 있도록 도와줍니다. 예를 들어, CPU는 복잡한 연산을 처리하고, GPU는 병렬 연산에 특화된 작업을 처리하는 방식으로 자원을 분배할 수 있습니다.

Offload의 중요성

  • LLM의 효율적인 실행: LLM은 엄청난 크기의 모델과 데이터를 처리해야 합니다. Offload는 이러한 대규모 작업을 효율적으로 처리하는 데 필수적인 기술입니다.
  • 추론 속도 향상: Offload를 통해 LLM의 추론 속도를 크게 향상시킬 수 있습니다. 이는 사용자 경험 개선에 중요한 역할을 합니다.
  • 다양한 하드웨어 활용: Offload는 다양한 종류의 하드웨어를 활용하여 LLM을 실행할 수 있도록 도와줍니다. 이는 하드웨어 선택의 폭을 넓혀주고, 비용 효율적인 시스템 구축을 가능하게 합니다.

Offload의 활용 예시

  • GPU Offloading: LLM의 연산 중 많은 부분을 GPU로 Offload하여 처리합니다. GPU는 병렬 연산에 특화되어 있어 LLM의 연산 속도를 크게 향상시킬 수 있습니다.
  • TPU Offloading: Google에서 개발한 TPU(Tensor Processing Unit)는 LLM 연산에 특화된 하드웨어입니다. TPU Offloading을 통해 LLM의 성능을 극대화할 수 있습니다.
  • NPU Offloading: NPU(Neural Processing Unit)는 신경망 연산에 특화된 하드웨어입니다. NPU Offloading을 통해 LLM의 추론 속도를 더욱 빠르게 만들 수 있습니다.

결론

Offload는 인공지능 LLM의 효율적인 실행을 위한 핵심 기술입니다. Offload를 통해 LLM의 성능을 향상시키고, 다양한 하드웨어를 활용하여 LLM을 더욱 폭넓게 활용할 수 있습니다.

LLM 인퍼런스 훑어보기 (1) - LLM을 이용한 문장 생성

LLM 인퍼런스 훑어보기 (6) - quantization


— 참고 —

거대언어모델(LLM)의 현 주소

unsloth 의 양자화

  1. Cool things from DeepSeek v3’s paper: https://x.com/danielhanchen/status/1872719599029850391
  2. https://unsloth.ai/blog/deepseekr1-dynamic

DeepSeek

Korean LLM

https://huggingface.co/collections/spow12/korean-llm-66416dfe6b649b6aa331c4f8

LLM model Hosting

Author

Gangtai Goh

Posted on

2025-04-10

Updated on

2025-06-29

Licensed under

댓글