트랜스포머 파라미터 수 계산기
입력
| 레이어 수 | 32 |
|---|---|
| 은닉 크기 | 4,096 |
| 피드포워드 확장 | 4 |
| 어휘 크기 | 32,000 |
트랜스포머 파라미터 수 계산기
레이어 수, 은닉 크기, 피드포워드 확장 비율, 어휘 크기로부터 디코더 전용 트랜스포머의 총 파라미터 수를 1차 근사 아키텍처 공식으로 추정합니다.
입력
아키텍처
결과
값을 입력하면 계산 결과가 표시됩니다.
세부 정보
트랜스포머 파라미터 수
대규모 언어 모델의 크기는 보통 하나의 대표 숫자로 인용됩니다 — 70억, 700억 — 하지만 그 수치는 전적으로 몇 가지 아키텍처 선택에 의해 결정됩니다. 레이어 수, 은닉 크기, 피드포워드 확장, 어휘가 주어지면 총 파라미터 수는 짧은 공식에서 따라 나옵니다. 이 계산기는 그 공식을 적용해 1차 근사 추정을 제공하며, 이는 가중치가 존재하기 전에 모델 규모를 가늠할 때 쓰는 바로 그 어림셈입니다.
파라미터는 어디에 자리하는가
디코더 전용 트랜스포머의 거의 모든 가중치는 세 군데 중 하나에 자리합니다. 각 블록의 어텐션 서브레이어는 네 개의 정사각 가중치 행렬 — 쿼리, 키, 값, 출력 사영 — 을 보유하며, 각각의 크기는 은닉 곱하기 은닉입니다. 피드포워드 서브레이어는 은닉 스트림을 더 넓은 내부 차원으로 확장했다가 되돌리는 두 개의 행렬을 보유합니다. 그리고 레이어 더미와 별도로, 토큰 임베딩 테이블은 어휘의 항목마다 은닉 크기 벡터 하나를 저장합니다.
이것들을 세면 아키텍처 추정이 됩니다. 어텐션 블록은 레이어마다 약 개의 값을 기여하며, 여기서 는 은닉 크기입니다. 피드포워드 블록은 내부 폭 로 확장하며 약 를 기여합니다. 임베딩 테이블은 어휘 크기 에 를 곱한 값을 기여합니다.
공식
개 레이어, 은닉 크기 , 피드포워드 배수 , 어휘 크기 라 하면 총 파라미터 수는 다음과 같습니다.
N=L⋅d2⋅(4+2m)+V⋅d첫째 항은 모든 레이어에 걸친 레이어별 어텐션과 피드포워드 가중치를 모은 것이고, 둘째 항은 임베딩 테이블입니다. 레이어별 항이 은닉 크기의 제곱에 비례하므로 모델의 폭이 깊이보다 훨씬 중요합니다. 은닉 크기를 두 배로 하면 수치가 대략 네 배가 되지만, 레이어를 두 배로 하면 두 배에 그칩니다.
계산 예시
레이어 32개, 은닉 크기 4096, 피드포워드 확장 4, 어휘 32,000 토큰인 모델을 예로 들어 봅니다. 레이어별 계수는 이므로 다음과 같습니다.
N=32×40962×12+32000×4096=6,442,450,944+131,072,000≈6.57 billion레이어 더미가 거의 전부를 차지하며, 임베딩 테이블은 약 1억 3100만 개, 2 퍼센트를 조금 넘게 더할 뿐입니다. 흔한 확장 4에서는 각 레이어의 약 3분의 2가 피드포워드 가중치에, 3분의 1이 어텐션에 자리합니다.
추정이 빠뜨리는 것
이것은 1차 근사 수치입니다. 총량을 좌우하는 행렬들은 포착하지만 작은 항들은 제외합니다 — 편향, 레이어 정규화의 스케일과 시프트 값, 학습된 위치 임베딩입니다. 이들을 합쳐도 대형 모델에서는 보통 1 퍼센트에 한참 못 미치므로 대표 수치를 움직이지 않습니다. 이 추정은 또한 입력 임베딩과 출력 사영이 하나의 행렬을 공유한다고 — 묶인 임베딩 — 가정하므로 테이블을 한 번만 셉니다. 묶이지 않은 임베딩을 쓰는 모델은 그 테이블을 두 번 가집니다.
수치를 알고 나면 그것이 실제 배포의 질문들을 이끕니다. 가중치를 메모리에 올리는 데 필요한 메모리는 수치와 수치 정밀도에 따라 달라지며, 이는 양자화 기반 모델 크기 계산기에서 다룹니다. 같은 모델을 학습하는 데 필요한 메모리는 가중치 위에 옵티마이저 상태와 활성값을 더하며, LLM 학습 VRAM 계산기에서 다룹니다.
자주 묻는 질문 (FAQ)
무엇이 파라미터로 계산되나요?
파라미터는 모델에 저장된 하나의 학습된 가중치 또는 편향 값입니다. 주된 기여 요소는 어텐션 사영과 피드포워드 레이어의 가중치 행렬, 그리고 토큰 임베딩 테이블입니다. 이 추정은 그 행렬들과 임베딩 테이블을 계산합니다. 편향, 레이어 정규화의 스케일과 시프트 값, 학습된 위치 임베딩 같은 작은 항들은 제외하는데, 이들을 합쳐도 대형 모델에서는 보통 1 퍼센트에 한참 못 미칩니다.
임베딩 테이블은 얼마나 기여하나요?
토큰 임베딩 테이블은 어휘 항목마다 은닉 크기 벡터 하나를 저장하므로, 어휘 크기에 은닉 크기를 곱한 만큼의 값을 보유합니다. 어휘가 큰 소형 모델에서는 이것이 총량의 상당한 비중을 차지할 수 있지만, 대형 모델에서는 레이어별 어텐션과 피드포워드 가중치가 지배적이어서 임베딩은 작은 부분이 됩니다. 입력 임베딩과 출력 사영이 동일한 행렬을 공유할 때 — 묶인 임베딩 — 테이블은 두 번이 아니라 한 번만 계산됩니다.
어텐션과 피드포워드 레이어 중 어느 쪽이 더 많은 가중치를 가지나요?
레이어마다 어텐션 블록은 쿼리, 키, 값, 출력 사영에서 약 4배의 은닉 크기 제곱 값을 보유하고, 피드포워드 블록은 약 2배의 확장 배수에 은닉 크기 제곱을 곱한 값을 보유합니다. 흔한 확장 4에서 피드포워드 블록은 약 8배의 은닉 크기 제곱 값을 보유하는 반면 어텐션 블록은 4배이므로, 각 레이어의 약 3분의 2가 피드포워드 가중치에 자리합니다.
면책조항
이것은 1차 근사 추정입니다. 어텐션 사영, 피드포워드 가중치, 임베딩 테이블을 포착하지만 편향, 레이어 정규화 파라미터, 위치 임베딩은 제외하며, 입력과 출력 임베딩이 묶여 있다고 가정합니다. 특정 모델의 공개된 수치는 작은 차이로 다를 수 있습니다.