AI 모델 및 플랫폼
대형 언어 모델 매개변수 및 메모리 요구 사항 이해: 심층 분석

작성자
Aayush Mittal Mittal
대형 언어 모델(LLM)은 최근 몇 년 동안驚異的な 발전을 이루어 왔습니다. GPT-4, Google의 Gemini, Claude 3와 같은 모델은 새로운 표준을 설정하고 있으며, 이러한 모델은 텍스트 생성 및 번역을 강화하는 것뿐만 아니라 멀티모달 처리에서 새로운 지평을 열어줍니다.
예를 들어, OpenAI의 GPT-4는 인간과 같은 텍스트를 이해하고 생성하는 데 상당한 개선을 보였습니다. Google의 Gemini 모델은 텍스트, 이미지, 오디오와 같은 다양한 데이터 유형을 처리하는 데 탁월하며, 더 원활하고 상황에 맞는 상호작용을 가능하게 합니다. Anthropic의 Claude 3 모델은 다국어 기능과 AI 작업에서 향상된 성능으로 알려져 있습니다.
대형 언어 모델의 개발이 계속 가속화됨에 따라 이러한 모델의 매개변수와 메모리 요구 사항을 이해하는 것이 중요해집니다. 이 가이드는 이러한 측면을 명확하게 설명하여 자세하고 쉽게 이해할 수 있도록 합니다.
대형 언어 모델의 기초
대형 언어 모델이란?
대형 언어 모델은 인간 언어를 이해하고 생성하기 위해 대규모 데이터셋으로 훈련된 신경망입니다. 이러한 모델은 Transformer와 같은 아키텍처를 사용하며, 자기 주의 메커니즘을 통해 텍스트를 처리하고 생성합니다.
대형 언어 모델에서 매개변수의 중요성
매개변수는 이러한 모델의 핵심 구성 요소입니다. 가중치와 편향을 포함하며, 모델은 훈련 중에 예측 오류를 최소화하기 위해 이러한 매개변수를 조정합니다. 매개변수의 수는 모델의 용량과 성능과 관련이 있으며, 또한 계산 및 메모리 요구 사항에 영향을 미칩니다.
Transformer 아키텍처 이해
개요
Transformer 아키텍처는 Vaswani et al. (2017)의 “Attention Is All You Need” 논문에서 도입되었으며, 많은 대형 언어 모델의 기초가 되었습니다. 인코더와 디코더로 구성되며, 각 구성 요소는 여러 동일한 레이어로 구성됩니다.
인코더와 디코더 구성 요소
- 인코더: 입력 시퀀스를 처리하고 컨텍스트에 맞는 표현을 생성합니다.
- 디코더: 인코더의 표현과 이전에 생성된 토큰을 사용하여 출력 시퀀스를 생성합니다.
핵심 구성 요소
- 다중 헤드 어텐션: 모델이 입력 시퀀스의 다양한 부분에同時적으로 집중할 수 있도록 합니다.
- 피드 포워드 신경망: 모델에 비선형성과 복잡성을 추가합니다.
- 레이어 정규화: 훈련을 안정화하고 가속화하기 위해 중간 출력을 정규화합니다.
매개변수 수 계산
Transformer 기반 대형 언어 모델의 매개변수 계산
Transformer 기반 대형 언어 모델의 각 구성 요소에 대한 매개변수 계산을 분해해 보겠습니다. 원래 논문에서 사용된 표기법을 사용하여, d_model은 모델의 숨겨진 상태 차원을 나타냅니다.
- 임베딩 레이어:
- 매개변수 =
vocab_size*d_model
- 매개변수 =
- 다중 헤드 어텐션:
h헤드에 대해,d_k = d_v = d_model / h:- 매개변수 = 4 *
d_model^2 (Q, K, V, 출력 투영을 위한)
- 피드 포워드 신경망:
- 매개변수 = 2 *
d_model*d_ff+d_model+d_ff d_ff는 일반적으로 4 *d_model입니다
- 매개변수 = 2 *
- 레이어 정규화:
- 매개변수 = 2 *
d_model(스케일 및 편향을 위한)
- 매개변수 = 2 *
한 Transformer 레이어의 총 매개변수:
Parameters_layer=Parameters_attention+Parameters_ffn+ 2 *Parameters_layernorm
N 레이어가 있는 모델의 경우:
- 총 매개변수 =
N*Parameters_layer+Parameters_embedding+Parameters_output
예제 계산
다음과 같은 사양을 가진 모델을 고려해 보겠습니다:
d_model= 768h(어텐션 헤드 수) = 12N(레이어 수) = 12vocab_size= 50,000
- 임베딩 레이어:
- 50,000 * 768 = 38,400,000
- 다중 헤드 어텐션:
- 4 * 768^2 = 2,359,296
- 피드 포워드 신경망:
- 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616
- 레이어 정규화:
- 2 * 768 = 1,536
한 레이어의 총 매개변수:
- 2,359,296 + 4,719,616 + (2 * 1,536) = 7,081,984
12 레이어의 총 매개변수:
- 12 * 7,081,984 = 84,983,808
총 모델 매개변수:
- 84,983,808 + 38,400,000 = 123,383,808
이 모델은 약 123 백만 개의 매개변수를 가집니다.
메모리 사용 유형
대형 언어 모델을 작업할 때 두 가지 주요 메모리 사용 유형을 고려해야 합니다:
- 모델 메모리: 모델 매개변수를 저장하기 위한 메모리입니다.
- 작업 메모리: 중간 활성화, 기울기 및 최적화 상태를 저장하기 위한 훈련 또는 추론 중에 필요한 메모리입니다.
모델 메모리 계산
모델 메모리는 매개변수 수와 직접 관련이 있습니다. 각 매개변수는 일반적으로 32비트 부동 소수점 숫자로 저장되며, 일부 모델은 16비트 부동 소수점을 사용하여 혼합 정밀도 훈련을 수행합니다.
모델 메모리 (바이트) = 매개변수 수 * 매개변수당 바이트 수
예제 모델의 경우 123 백만 개의 매개변수가 있습니다:
- 모델 메모리 (32비트) = 123,383,808 * 4 바이트 = 493,535,232 바이트 ≈ 494 MB
- 모델 메모리 (16비트) = 123,383,808 * 2 바이트 = 246,767,616 바이트 ≈ 247 MB
작업 메모리 추정
작업 메모리 요구 사항은 특정 작업, 배치 크기 및 시퀀스 길이에 따라 크게 달라질 수 있습니다. 추론 중 작업 메모리의粗略한 추정치는:
작업 메모리 ≈ 2 * 모델 메모리
이것은 모델 매개변수와 중간 활성화를 저장하는 것을 계산합니다. 훈련 중 메모리 요구 사항은 기울기 및 최적화 상태를 저장해야 하므로 더 높을 수 있습니다:
훈련 메모리 ≈ 4 * 모델 메모리
예제 모델의 경우:
- 추론 작업 메모리 ≈ 2 * 494 MB = 988 MB ≈ 1 GB
- 훈련 메모리 ≈ 4 * 494 MB = 1,976 MB ≈ 2 GB
안정된 메모리 사용 및 피크 메모리 사용
Transformer 아키텍처를 기반으로 하는 대형 언어 모델을 훈련할 때 메모리 사용을 이해하는 것이 중요합니다. 메모리 요구 사항을 두 가지 주요 범주로 나눕니다: 안정된 메모리 사용 및 피크 메모리 사용.
안정된 메모리 사용
안정된 메모리 사용에는 다음 구성 요소가 포함됩니다:
- 모델 가중치: FP32 복사본의 모델 매개변수,
N이 매개변수 수인 경우 4N바이트가 필요합니다. - 최적화 상태: Adam 최적화器의 경우 매개변수당 2개 상태를 필요로 하므로 8
N바이트가 필요합니다. - 기울기: FP32 복사본의 기울기,
N이 매개변수 수인 경우 4N바이트가 필요합니다. - 입력 데이터: int64 입력을 가정하면
B이 배치 크기이고D가 입력 차원이면 8BD바이트가 필요합니다.
안정된 메모리 사용의 총합은 다음과 같이 근사할 수 있습니다:
M_steady= 16N+ 8BD바이트
피크 메모리 사용
피크 메모리 사용은 역전파 중에 활성화를 저장할 때 발생합니다. 주요 기여자는 다음과 같습니다:
- 레이어 정규화: 레이어 정규화를 위해 각 레이어당 4
E바이트가 필요합니다. 여기서E=BSH(B는 배치 크기,S는 시퀀스 길이,H는 숨겨진 크기) - 어텐션 블록:
- QKV 연산: 2
E바이트 - 어텐션 행렬: 4
BSS바이트 (S는 시퀀스 길이) - 어텐션 출력: 2
E바이트
- QKV 연산: 2
- 피드 포워드 블록:
- 첫 번째 선형 레이어: 2
E바이트 - GELU 활성화: 8
E바이트 - 두 번째 선형 레이어: 2
E바이트
- 첫 번째 선형 레이어: 2
- 크로스 엔트로피 손실:
- 로짓: 6
BSV바이트 (V는 어휘 크기)
- 로짓: 6
활성화 메모리의 총합은 다음과 같이 근사할 수 있습니다:
M_act=L* (14E+ 4BSS) + 6BSV바이트
여기서 L은 Transformer 레이어의 수입니다.
총 피크 메모리 사용
훈련 중 피크 메모리 사용은 안정된 메모리와 활성화 메모리를 결합하여 근사할 수 있습니다:
M_peak=M_steady+M_act+ 4BSV바이트
추가 4BSV 항은 역전파의 시작 부분에서 할당에 대한 계산을 고려합니다.
이러한 구성 요소를 이해하면 훈련 및 추론 중에 메모리 사용을 최적화하여 대형 언어 모델의 효율적인 리소스 할당 및 성능을 개선할 수 있습니다.
확장 법칙 및 효율성 고려
확장 법칙
연구에 따르면 대형 언어 모델의 성능은 매개변수 수, 컴퓨팅 예산 및 데이터셋 크기가 증가함에 따라 특정 확장 법칙을 따릅니다. Kaplan et al. (2020)은 모델 성능이 매개변수 수, 컴퓨팅 예산 및 데이터셋 크기의幂함수として 개선됨을 관찰했습니다.
모델 성능과 매개변수 수의 관계는 다음과 같이 근사할 수 있습니다:
성능 ∝ N^α
여기서 N은 매개변수 수이고 α는 일반적으로 언어 모델링 작업에서 약 0.07인 확장 지수입니다.
이는 성능을 10% 개선하려면 매개변수 수를 약 3.7배 증가시켜야 함을 의미합니다.
효율성 기술
대형 언어 모델이 계속 성장함에 따라 연구자와 실무자는 효율성을 개선하기 위한 다양한 기술을 개발했습니다:
a) 혼합 정밀도 훈련: 특정 작업에 16비트 또는 8비트 부동 소수점 숫자를 사용하여 메모리 사용 및 계산 요구 사항을 줄입니다.
b) 모델 병렬화: 모델을 여러 GPU 또는 TPU에 분산하여 단일 장치에서 처리할 수 있는 것보다 더 큰 모델을 처리합니다.
c) 기울기 체크포인트: 계산을 메모리와 교환하여 역전파 중에 특정 활성화를 재계산하는 대신 저장합니다.
d) 가중치 가지치기 및 양자화: 훈련 후 중요하지 않은 가중치를 제거하거나 정밀도를 줄여 더 작은 모델을 생성합니다.
e) 지식蒸発: 더 작은 모델을 더 큰 모델의 동작을 모방하도록 훈련하여 성능을 유지하면서 매개변수 수를 줄입니다.
실제 예제 및 계산
GPT-3은 175억 개의 매개변수를 가진 가장 큰 언어 모델 중 하나입니다. 디코더 부분의 Transformer 아키텍처를 사용합니다. 그 규모를 이해하기 위해 가상 값을 사용하여 매개변수 수를 분해해 보겠습니다:
d_model = 12288d_ff = 4 * 12288 = 49152- 레이어 수 = 96
한 디코더 레이어의 경우:
총 매개변수 = 8 * 12288^2 + 8 * 12288 * 49152 + 2 * 12288 ≈ 1.1억
96 레이어의 총 매개변수:
- 1.1억 * 96 = 105.6억
나머지 매개변수는 임베딩 및 기타 구성 요소에서 나옵니다.
결론
대형 언어 모델의 매개변수와 메모리 요구 사항을 이해하는 것은 이러한 강력한 도구를 효과적으로 설계, 훈련 및 배포하기 위해 중요합니다. Transformer 아키텍처의 구성 요소를 분해하고 GPT와 같은 실제 예제를 살펴보면서 이러한 모델의 복잡성과 규모를 더 잘 이해할 수 있습니다.
대형 언어 모델의 최신 발전과 응용 프로그램에 대한 자세한 내용은 다음을 참조하십시오:
- Gemma 2에 대한 완전한 가이드: Google의 새로운 오픈 대형 언어 모델을 통해 향상된 성능과 혁신적인 기능에 대한 정보를 얻으십시오.
- RAG를 위한 LLM 에이전트 구축:_scratch와 그 이상의 완전한 가이드를 통해 검색 보강 생성의 도전과 해결책에 대한 정보를 얻으십시오.
- NVIDIA (NVDA ) GPU와 CUDA를 사용한 LLM의 훈련, 미세 조정 및 추론 설정에 대한 정보는 AI 시스템 최적화를 위한을 참조하십시오.
지난 5년 동안私は Machine Learning과 Deep Learning의 매혹적인 세계에 몰두해 왔습니다.私の熱情と専門知識は私を50以上의多様한 소프트웨어 엔지니어링 프로젝트에 기여하게 했으며, 특히 AI/ML에 중점을 두었습니다.私の継続的な 호기심은 또한私를自然어 처리로 끌어들였습니다.私は이 분야를さらに 탐구하기를熱望합니다.













