성능과 평가

BiLoCo, FP4 양자화 오차를 이진 보정으로 줄여 SVDQuant와 동급 이상

BiLoCo는 FP4로 양자화한 LLM의 오차를 ±1 이진 벡터로 저장한 저랭크 보정으로 줄이는 기법이다. 4B~72B 모델에서 메모리를 맞춘 SVDQuant와 같거나 나은 결과를 냈다고 연구진이 밝혔다.

루카스 ·

FP4로 양자화한 대규모 언어 모델의 정확도 손실을 줄이는 기법 BiLoCo가 arXiv에 공개됐다. 연구진은 보정에 쓰는 저랭크 행렬의 좌우 인자를 BF16 숫자 대신 +1과 -1로 된 부호 벡터로 저장한다. 랭크 1 성분 하나를 저장하는 데 드는 용량이 16분의 1로 줄어든다고 밝혔다.

4B~72B 규모 LLM에서 BiLoCo는 메모리 사용량을 맞춘 SVDQuant와 같거나 더 나은 사후 양자화 결과를 냈다. 연구진은 B300 GPU에서 하나의 커널로 구현해 속도도 측정했다. 배치 크기 1에서는 랭크 512까지 모든 설정에서 FP4 행렬곱만 돌릴 때보다 느려지는 폭이 최대 11%다. 랭크 128에서는 배치 크기 8까지 최대 20% 느려진다.

보정 연산을 CUDA 코어로 옮긴 구조

Blackwell GPU는 FP4 텐서 코어를 기본으로 지원해 FP4 양자화가 추론 비용을 줄이는 수단으로 쓰인다. 그러나 FP4로 바로 사후 양자화하면 정확도 차이가 눈에 띄게 남는다.

기존 SVDQuant는 확산 모델의 FP4 양자화 오차를 SVD로 얻은 고정밀 저랭크 보정으로 완화했다. 이 보정은 랭크마다 많은 비트가 필요하고, 주 연산인 FP4 GEMM과 같은 텐서 코어에서 돌아간다는 한계가 있다.

BiLoCo의 보정은 부호 벡터로 이루어져 덧셈과 뺄셈만으로 계산된다. 그래서 CUDA 코어에서 FP4 텐서 코어 GEMM과 동시에 실행할 수 있다. B300 구현에서는 FP4 GEMM을 텐서 코어가, 비트로 묶어 저장한 보정을 같은 실행 안의 CUDA 코어가 맡고, 두 결과는 GEMM의 에필로그 단계에서 합친다.

댓글

기사에 대한 의견이나 틀린 내용 제보를 남겨 주세요.

댓글을 불러오고 있습니다.