학습 FLOPs 계산
입력
| 연산 종류 | 학습 단계 (6ND) |
|---|---|
| 파라미터 수 | 70 |
| 학습 토큰 | 1,400 |
학습 FLOPs 계산
파라미터 수와 학습 토큰 수로부터 6ND 규칙을 이용해 트랜스포머 학습에 필요한 부동소수점 연산량을 추정하고, 전체 FLOPs와 petaFLOP/s-일 단위로 보여줍니다.
입력
모델과 데이터
결과
값을 입력하면 계산 결과가 표시됩니다.
세부 정보
학습 FLOPs
대규모 언어 모델을 학습하는 데 드는 연산은 단 하나의 양, 곧 학습 전 과정에서 수행되는 부동소수점 연산의 횟수가 좌우합니다. 밀집 트랜스포머의 경우 이 값은 6ND 규칙으로 잘 근사되며, 이는 파라미터 하나와 토큰 하나를 처리할 때마다 약 6회의 연산이 든다는 뜻입니다. 이 계산기는 그 규칙을 적용해 파라미터 수와 토큰 수를 받아 순수 연산 횟수와 그에 해당하는 petaFLOP/s-일을 함께 돌려줍니다.
6ND 규칙
트랜스포머의 순전파는 작업의 대부분을 차지하는 행렬 곱셈에서 토큰당 파라미터당 약 2회의 부동소수점 연산, 즉 곱셈 한 번과 덧셈 한 번을 수행합니다. 학습에는 활성값과 가중치 양쪽으로 기울기를 전파하는 역전파가 더해지며, 이는 순전파의 약 두 배에 해당하는 비용이 듭니다. 순전파와 역전파를 합치면 토큰당 파라미터당 약 6회의 연산이 됩니다. 따라서 파라미터 개와 학습 토큰 개가 있으면 전체 연산은 에 가깝습니다. 이 추정값은 지배적인 선형 계층을 반영하고 어텐션, 임베딩, 정규화에서 나오는 더 작은 기여는 생략하는데, 대형 모델에서는 이들이 무시할 만큼 작습니다.
계산식
연산 계수 (학습 단계는 여섯, 순전파만은 둘), 파라미터 수 (억 단위), 토큰 수 (억 단위)가 주어지면 전체 연산 횟수와 petaFLOP/s-일 단위 연산량은 다음과 같습니다.
CP=k⋅N⋅D⋅1018=8.64×1019C여기서 는 전체 FLOPs, 는 petaFLOP/s-일 단위 연산량입니다. 계수는 억 단위로 표시한 과 를 절대 개수로 되돌립니다. petaFLOP/s-일 한 단위는 petaFLOP/s 하나를 하루 동안 유지한 양으로, 회의 연산과 같으므로, 이 값으로 나누면 순수 FLOPs 값이 대규모 학습에서 흔히 쓰는 단위로 환산됩니다.
계산 예시
파라미터당 토큰 비율이 20인, 연산 최적 관행에 부합하는 700억 개 파라미터 모델을 14,000억 토큰으로 학습하는 경우를 살펴봅니다.
CP=6×70×1400×1018=5.88×1023 FLOPs=8.64×10195.88×1023≈6,805.6 PFLOP/s-days이 학습에는 약 회의 연산, 곧 약 6,806 petaFLOP/s-일이 듭니다. 연산 계수를 2로 바꾸면 순전파만의 비용을 보여주는데, 이는 전체 학습량의 3분의 1입니다.
한계
6ND 규칙은 산술 연산을 이상적으로 센 값이지 벽시계 시간이나 비용에 대한 예측이 아닙니다. 실제 하드웨어는 최고 처리량의 일부만 유지하므로, 실제 시간은 이 연산량을 광고된 속도가 아니라 실제 달성한 속도로 나눠서 나옵니다. 그 간극은 모델 FLOP 활용도 계산기가 다룹니다. 이 추정값은 또한 활성값 재계산, 옵티마이저 단계, 평가 통과, 실패 후 재시작한 학습도 생략하는데, 이 모두가 실제로 소모되는 연산을 늘립니다. 특정 크기의 모델이 몇 개의 토큰을 봐야 하는지에 대한 짝 문제는 친칠라 최적 토큰 수 계산가 다루고, 이 연산량을 임대 예산으로 환산하는 일은 GPU 클라우드 비용 계산기가 다룹니다.
자주 묻는 질문 (FAQ)
6ND 규칙이란 무엇입니까?
6ND 규칙은 밀집 트랜스포머를 학습할 때 파라미터 하나마다, 그리고 학습 토큰 하나마다 약 6회의 부동소수점 연산이 든다고 추정하는 규칙입니다. 여기서 N은 파라미터 수, D는 토큰 수입니다. 계수 6은 순전파에서 파라미터당 약 2회, 기울기를 계산하는 역전파에서 약 4회가 드는 데서 나옵니다.
이는 스케일링 법칙 연구에서 제시된 1차 근사로, 지배적인 행렬 곱셈을 반영하고 어텐션이나 임베딩 같은 더 작은 항은 생략합니다.
전체 FLOPs는 petaFLOP/s-일과 어떤 관계입니까?
1 petaFLOP/s-일은 1 petaFLOP/s를 하루 종일 유지했을 때의 연산량으로, 8.64 × 10¹⁹회의 부동소수점 연산과 같습니다(초당 10¹⁵회 × 86,400초). 전체 FLOPs를 이 값으로 나누면 petaFLOP/s-일로 환산됩니다. 대규모 학습은 보통 이 단위로 보고되는데, 순수 FLOPs 값은 너무 큰 자릿수에 이르기 때문입니다.
이 추정값에 포함되는 것과 빠지는 것은 무엇입니까?
이 추정값은 주어진 학습 토큰 수에 대해 순전파와 역전파를 거치는 지배적인 선형 계층의 부동소수점 연산을 셉니다. 하드웨어 활용률은 반영하지 않으므로, 실제 학습의 벽시계 시간과 비용은 이상적인 연산량이 가리키는 값보다 높습니다.
또한 활성값 재계산, 옵티마이저 부가 연산, 평가, 실패 후 재시작한 학습도 빠져 있는데, 이 모두가 실제로 소모되는 연산을 늘립니다.
면책조항
이 계산은 밀집 트랜스포머에 대한 1차 근사인 6ND 규칙을 사용하며 이상적인 연산량만 셉니다. 실제 학습 시간과 비용은 최고 성능에 한참 못 미치는 하드웨어 활용률과 공식이 생략한 부가 비용에 따라 달라집니다. 결과는 정확한 회계가 아니라 계획용 추정값으로 다루십시오.