모델 FLOP 활용도 계산기
입력
| 작업 부하 | 추론(토큰당 2N) |
|---|---|
| 파라미터 | 70 |
| 토큰 처리량 | 2,000 |
| 최대 처리량 | 989 |
모델 FLOP 활용도 계산기
모델 FLOP 활용도(MFU)를 계산합니다. 파라미터 수, 토큰 처리량, 최대 TFLOP/s로부터 모델 실행이 실제로 달성하는 가속기 최대 부동소수점 처리량의 비율을 구합니다.
입력
작업 부하
하드웨어
결과
값을 입력하면 계산 결과가 표시됩니다.
세부 정보
모델 FLOP 활용도
모델 FLOP 활용도, 즉 MFU는 모델 실행이 가속기의 이론적 연산 능력을 실제로 얼마나 사용하는지를 측정한다. 같은 하드웨어를 쓰는 두 클러스터가 실제 산출량에서 몇 배까지 차이 날 수 있는데, MFU는 그 격차를 담아내는 단일 수치다. 작업 부하가 진정으로 수행하는 부동소수점 연산을 하드웨어가 광고하는 최대치로 나눈 값이기 때문이다. 이 계산기는 파라미터 수, 토큰 처리량, 가속기의 최대 TFLOP/s로부터 이를 추정한다.
MFU가 말해 주는 것
하드웨어 공급업체는 최대 처리율을 제시한다 — 현행 데이터센터 가속기의 경우 16비트 기준 수천 TFLOP/s 정도다. 이 값은 데이터가 이미 레지스터에 있는 상태에서 융합 곱셈-덧셈이 완벽하게 이어지는 흐름을 가정한다. 어떤 실제 작업 부하도 이를 유지하지 못한다. MFU는 달성된 비율을 알려 주므로, MFU가 40%라면 이론적 최대치 1달러어치마다 40센트의 연산을 끌어낸다는 뜻이다. 이는 학습이나 추론 설정이 잘 최적화되어 있는지, 그리고 어떤 변경이 실제로 도움이 되었는지를 판단하는 표준 잣대다.
공식
순방향 패스는 토큰당 파라미터당 약 두 번의 부동소수점 연산이 들고, 학습 단계는 역방향 패스를 더해 총 여섯 번가량이 든다. 작업 부하 계수 (추론은 둘, 학습은 여섯), 억 단위 파라미터 수 , 초당 토큰 단위 처리량 를 사용하면, 달성 처리율과 활용도는 다음과 같다.
AU=1000k⋅N⋅v=PA여기서 는 달성 TFLOP/s, 는 실행에 포함된 모든 가속기에 대해 합산한 최대 TFLOP/s, 는 활용도다. 1000으로 나누는 것은 억 단위 파라미터에 초당 토큰을 곱한 값을 TFLOP/s로 변환하기 위함이다.
계산 예시
밀집 16비트 연산 989 TFLOP/s로 평가된 가속기 한 장에서 초당 2,000개의 토큰으로 추론을 제공하는 700억 파라미터 모델을 보자.
AU=10002×70×2000=280 TFLOP/s=989280≈0.283=28.3%이 실행은 칩 최대치의 4분의 1을 조금 넘게 사용한다 — 시간의 상당 부분을 곱셈이 아니라 가중치를 읽는 데 쓰는 메모리 제약 디코딩에서 전형적인 값이다. 더 연산 제약적인 잘 조율된 대형 모델 학습 작업이라면 35%에서 55% 사이에 자리하는 경우가 더 많다.
왜 100%에 결코 도달하지 못하는가
실제 실행은 메모리 전송, 가속기 간 통신, 파이프라인 버블, 그리고 순수한 행렬 곱셈이 아닌 어텐션 및 정규화 같은 계층에 시간을 빼앗긴다. 완벽한 활용도란 그러한 부담이 전혀 없다는 뜻이다. MFU의 실용적 쓰임새는 비교에 있다. 같은 작업 부하와 하드웨어에서 최적화 전후로 측정했을 때 값이 높아지면 비용을 치른 연산이 더 많은 유용한 일을 하고 있다는 뜻이다. 이 추정을 이끄는 토큰당 연산 수는 토큰당 FLOP 계산기에서 다루며, 같은 하드웨어의 메모리 대역폭 측면은 추론 처리량 계산기에서 다룬다.
자주 묻는 질문 (FAQ)
좋은 MFU란 어느 정도인가
대형 모델 학습의 경우 잘 조율된 시스템은 일반적으로 약 35%에서 55% 사이의 모델 FLOP 활용도를 보고하며, 이 지표를 널리 알린 PaLM 연구는 약 46%를 보고했다. 추론 활용도는 가속기가 시간의 상당 부분을 연산이 아니라 가중치를 읽는 데 쓰는 메모리 제약 디코딩 동안 보통 더 낮다. 보편적인 목표치는 없으며, 유용한 비교는 최적화 이후 같은 하드웨어에서 같은 작업 부하를 두고 이루어진다. 이때 값이 높을수록 비용을 치른 연산이 더 많은 유용한 일을 하고 있다는 뜻이다.
학습은 왜 파라미터당 여섯 FLOP인데 추론은 두 FLOP인가
순방향 패스는 토큰당 파라미터당 약 두 번의 부동소수점 연산 — 지배적인 행렬 곱셈에서의 곱 한 번과 합 한 번 — 을 수행한다. 학습은 활성값과 가중치 양쪽에 대한 기울기를 계산하는 역방향 패스를 더하며, 이는 순방향 패스의 약 두 배 비용이 들어 총합은 토큰당 파라미터당 약 여섯 번의 연산이 된다. 이는 표준적인 1차 추정값으로, 대형 모델에서 작은 어텐션 등의 항은 무시한다.
활용도가 왜 100%에 도달할 수 없는가
최대 처리량은 데이터가 이미 레지스터에 있는 상태에서 연속으로 이어지는 융합 곱셈-덧셈에 대한 이론값이다. 실제 실행은 메모리 전송, 가속기 간 통신, 파이프라인 버블, 순수한 행렬 곱셈이 아닌 어텐션 및 정규화 계층, 연산 유닛을 완벽히 채울 수 없는 커널에 시간을 빼앗긴다. 활용도가 1에 가깝다는 것은 그러한 부담이 전혀 없다는 뜻이며, 이는 실제로 결코 일어나지 않는다.
면책조항
MFU는 어텐션 및 기타 사소한 항을 생략한 1차 FLOP 추정값(추론 2N, 학습 6N)을 사용하며, 최대 수치가 실행의 정밀도와 가속기 수에 부합한다고 가정합니다. 이를 모든 연산을 정확히 계산한 값이 아니라 비교용 효율 지표로 다루시기 바랍니다.