요약
비트넷과 같은 최근 연구는 1bit LLM(거대 언어 모델)의 새로운 시대를 열고 있다. 본 연구에서는 1-bit LLM의 변형인, BitNet b1.58을 소개한다.
이 모델은 모든 단일 매개변수 (또는 가중치)가 삼진의 값, {-1, 0, 1}을 가진다.
이는 같은 모델 크기와 훈련 토큰을 가진 전체 정밀도(full-precision) (FP16 또는 BF16) 트랜스포머 LLM과 복잡성 및 최종 작업 성능 측면에서는 동일한 성능을 보여주지만, 지연시간, 메모리, 처리량, 에너지 소비측면에서 훨씬 더 비용 효율적이다.
더 중요한것은, 1.58비트 LLM은 높은 성능과 비용 효율성을 모두 갖춘 새로운 세대의 LLM을 훈련하는 새로운 확장 법칙과 레시피를 정의한다는 것이다. 더 나아가, 이것은 새로운 계산 패러다임을 가능하게 하고 1-bit LLM을 위해 최적화된 특정 하드웨어 디자인의 지평을 연다.
*파레토 효율성(效率性)이란 하나의 자원 배분 상태에서 다른 사람에게 손해가 가도록 하지 않고서는 어떤 한 사람에게 이득이 되는 변화를 만들어내는 것이 불가능할 때 이 배분 상태를 ‘파레토 효율적’이라고 한다.
1. 1-bit LLM의 시대
최근 몇 년간 AI 분야에서는 대규모 언어 모델(LLMs)의 크기와 능력이 급격히 성장했다.
이 모델들은 다양한 자연 언어 처리 과제에서 뛰어난 성능을 입증했지만, 그들의 크기 증가는 배포를 어렵게 만들고, 높은 에너지 소비로 인한 환경적 및 경제적 영향에 대한 우려를 제기했다.
이러한 도전을 해결하기 위한 한 가지 접근법은 훈련 후 양자화 (post-training quantization)를 사용해 추론을 위한 저비트 모델을 만드는 것이다.
이 기술은 가중치와 활성화의 정밀도를 줄여 LLM의 메모리 및 계산 요구 사항을 크게 감소시킨다.
현재 트렌드는 16비트에서 4비트 변형 같은 더 낮은 비트로 이동하는 것이다. 그러나, 후-훈련 양자화는 널리 사용되고 있음에도 불구하고 최적이 아니다.
최근 BitNet과 같은 1비트 모델 아키텍처에 대한 연구는 성능을 유지하면서 LLM의 비용을 줄이는 유망한 방향을 제시한다.
기본 LLM은 16비트 부동 소수점 값이고, LLM의 대부분은 행렬 곱셈을 수행한다.
따라서, 대부분의 계산 비용은 부동 소수점 덧셈 및 곱셈 연산에서 비롯된다.
반면에, BitNet의 행렬 곱셈은 정수 덧셈만을 포함하여 LLM의 에너지 비용을 크게 절약한다.
많은 칩에서 계산 성능의 근본적인 한계가 전력이기 때문에, 에너지 절약은 곧 더 빠른 계산을 하는것으로 이야기 할 수 있다.
계산 외에도, 추론 중에 DRAM에서 칩 내 가속기(예: SRAM)의 메모리로 모델 매개변수를 전송하는 과정은 비쌀 수 있다.
SRAM을 확장하여 처리량을 향상시키려는 시도가 있었지만, 이는 DRAM보다 훨씬 더 높은 비용을 필요로 한다.
전체 정밀도(full-precision) 모델과 비교하여, 1비트 LLM은 용량 및 대역폭 측면에서 훨씬 낮은 메모리 발자국을 가지고 있다.
이것은 DRAM에서 가중치를 불러오는 비용과 시간을 크게 줄일 수 있으며, 더 빠르고 더 효율적인 추론을 가능하게 한다.
이 작업에서, 우리는 모든 매개변수가 삼항으로 이루어진, {-1, 0, 1} 값을 취하는, 1비트 LLM의 변형인 BitNet b1.58을 소개한다.
우리는 원래 1비트 BitNet에 0의 추가 값을 추가하여 이진 체계에서 1.58비트를 결과적으로 만들어냈다.
BitNet b1.58은 원래 1비트 BitNet의 모든 이점들을 유지한다. 이점에는 거의 모든 곱셈 연산이 필요 없는 새로운 계산 패러다임이 포함되며, 이는 매우 최적화될 수 있다.
추가적으로, 그것은 원래 1비트 BitNet과 동일한 에너지 소비를 가지며, 메모리 소비, 처리량 및 지연 측면에서 FP16 LLM 기준보다 훨씬 더 효율적이다.
또한, BitNet b1.58은 두 가지 추가적인 이점을 제공한다.
첫째, 모델 가중치에 0을 포함시킴으로써 가능해진 기능 필터링의 명시적 지원 덕분에 모델링 능력이 더 강력하다. 이는 1비트 LLM의 성능을 크게 향상시킬 수 있다.
둘째로, 우리의 실험은 BitNet b1.58이 같은 설정(예: 모델 크기, 훈련 토큰 등)을 사용할 때 3B 크기부터 시작하여 복잡성 및 최종 태스크 성능 측면에서 전체 정밀도(즉, FP16) 기준과 일치할 수 있음을 보여준다.
2. BitNet b1.58
BitNet b1.58은 nn.Linear를 BitLinear로 대체한 트랜스포머인 BitNet 아키텍처를 기반으로 한다.
이것은 1.58비트 가중치와 8비트 활성화로 처음부터 훈련된다. 원래 BitNet과 비교하여, 우리는 아래에서 요약할 몇 가지 수정사항을 소개한다.
양자화 함수 : 가중치를 -1, 0, 또는 +1로 제한하기 위해, absmean 양자화 함수를 도입한다.
이 함수는 먼저 가중치 행렬을 그 평균 절대값으로 확장한 다음, 각 값을 {-1, 0, +1} 중 가장 가까운 정수로 반올림한다.
각주 - 가중치 행렬 W를 평균절댓값 r로 나누고, 분모가 0이 되는걸 방지하기 위해 아주 작은 입실론을 더한 뒤 RoundClip함수를 적용시킨다.
RoundClip함수는 x를 반올림하고, 최소값 a와 최댓값 b 사이로 값을 제한한다.
a = -1, b = 1로 설정되어, RoundClip의 출력값은 {-1, 0, 1} 중 하나가 된다.
활성화를 위한 양자화 함수는 BitNet에서와 동일하게 구현된다. 다만, 비선형 함수 전에 활성화를 [0, Qb] 범위로 스케일하지 않는다. 대신에, 활성화는 zero-point 양자화를 피하기 위해 모두 [-Qb, Qb]로 스케일된다.
이는 구현과 시스템 수준의 최적화에 더 편리하고 간단하면서도, 실험적인 성능에는 무시할 수 있는 효과를 보여준다.
3. 결과
BitNet b1.58과 재현된 FP16 LLaMA LLM을 다양한 크기에서 비교했다. 공정한 비교를 위해, RedPajama 데이터셋에서 1000억 토큰으로 모델을 사전 훈련했다.
다양한 언어 작업에서 zero-shot 성능을 평가했으며, ARC-Easy, ARC-Challenge, Hellaswag, Winogrande, PIQA, OpenbookQA, BoolQ 등이 포함된다. 또한 WikiText2와 C4 데이터셋에서 검증 복잡도를 보고했다.
LLaMA LLM과 BitNet b1.58의 런타임 GPU 메모리 및 지연을 비교했다. 결과는 GPU 장치에서 LLM 추론 지연을 위해 최적화된 FasterTransformer 코드베이스를 사용하여 측정되었다. BitNet b1.58에 대해 Ladder의 2비트 커널도 통합했다. 출력 토큰당 시간을 보고했으며, 이는 추론의 주요 비용이다.
Table1은 BitNet b1.58과 LLaMA LLM의 복잡도와 비용을 요약하여 보여준다. BitNet b1.58은 3B 모델 크기에서 복잡도 측면에서 전체 정밀도 LLaMA LLM과 일치하기 시작하며, 2.71배 빠르고 GPU 메모리를 3.55배 덜 사용한다. 특히, 3.9B 모델 크기의 BitNet b1.58은 2.4배 빠르고, 메모리를 3.32배 덜 소비하지만, LLaMA LLM 3B보다 현저히 더 나은 성능을 보인다.
Table2는 최종 작업에서의 제로샷 정확도에 대한 상세 결과를 보고한다. 평가를 수행하기 위해 lm-evaluation-harness 파이프라인을 따랐다. 결과는 모델 크기가 증가함에 따라 BitNet b1.58과 LLaMA LLM 간의 성능 격차가 좁혀진다는 것을 보여준다.
더 중요한 것은, BitNet b1.58이 3B 크기부터 전체 정밀도 기준선의 성능과 일치할 수 있다는 것이다. 복잡도의 관찰과 유사하게, 최종 작업 결과는 BitNet b1.58 3.9B가 LLaMA LLM 3B보다 낮은 메모리 및 지연 비용으로 더 우수한 성능을 보인다는 것을 밝힌다. 이는 BitNet b1.58이 최신 LLM 모델들에 대한 파레토 개선임을 보여준다.
- 메모리와 지연시간
모델 사이즈를 7B, 13B, 70B까지 확장시키고 비용을 평가했다. Figure 2는 모델 크기에 따른 지연시간과 메모리의 추세를 보여주며, 모델 크기 확장에 따라 속도 향상이 증가함을 나타낸다.
특히, BitNet b1.58 70B는 LLaMA baseline보다 4.1배 빨랐다. 이 이유는 모델 크기에 따른 nn.Linear의 계산 시간 증가 때문이다.
메모리 소비량은 임베딩이 전체 정밀도를 유지하고 큰 모델의 경우 메모리 비율이 더 작기 때문에 유사한 추세를 따랐다.
지연 시간과 메모리 모두 2-bit 커널로 측정되었으므로, 비용을 더 줄이기 위한 최적화의 여지가 여전히 있다.
- 에너지
BitNet b1.58과 LLaMA LLM의 산술연산 에너지 소비량을 비교했다. 우리는 행렬간 곱셈의 연산 소비 에너지에 대해서만 초점을 맞췄는데, 행렬간 곱셈 연산이 LLM의 대부분을 소비하기 때문이다.
Figure 3은 에너지 소모의 구성을 보여준다. LLaMA는 FP16의 덧셈과 곱셈이 주요 연산을 구성하는데 반해, BitNet b1.58의 주요 연산은 INT8 덧셈 연산이다.
BitNet b1.58은 7nm 칩에서 행렬 곱셈에 대한 산술 연산 에너지 소비를 71.4배 절약했다. 우리는 512 토큰을 가진 모델의 종단간 에너지 비용도 보고했다.
결과는 모델 크기가 확장됨에 따라 BitNet b1.58이 FP16 LLaMA LLM 기준선에 비해 에너지 소비 측면에서 점점 더 효율적이 되는 것을 보여준다. 이는 모델 크기가 커짐에 따라 nn.Linear의 비율이 증가하고, 큰 모델의 다른 구성요소로부터의 비용은 더 작기 때문이다.
- 처리량
80GB A100그래픽카드에서 Bitnet b1.58과 LLaMA LLM 70B 파라미터 모델의 처리량을 비교했다.
파이프라인 병렬을 사용하여 LLaMA LLM 70B가 해당 장치에서 실행될 수 있도록 했다. GPU 메모리 한계에 도달할 때까지 배치 크기를 증가시켰으며, 시퀀스 길이는 512였다. Table 3은 BitNet b1.58 70B가 LLaMA LLM의 최대 11배까지 배치 크기를 지원할 수 있으며, 이로 인해 처리량이 8.9배 높아짐을 보여준다.
- BitNet b1.58은 모델 성능과 추론 비용과 관련하여 새로운 스케일링 법칙을 가능하게 한다
참고로, Figure 2와 3의 결과를 바탕으로 1.58비트와 16비트에서 다양한 모델 크기 간 다음과 같은 동등성을 가질 수 있다
- 13B BitNet b1.58은 3B FP16 LLM보다 지연 시간, 메모리 사용 및 에너지 소비 측면에서 더 효율적이다.
- 30B BitNet b1.58은 7B FP16 LLM보다 지연 시간, 메모리 사용 및 에너지 소비 측면에서 더 효율적이다 .
- 70B BitNet b1.58은 13B FP16 LLM보다 지연 시간, 메모리 사용 및 에너지 소비 측면에서 더 효율적이다 .
- 2T 토큰으로 훈련하기
훈련 토큰의 수는 LLM에 있어 중요한 요소이다. BitNet b1.58의 토큰 관련 확장성을 테스트하기 위해, 최신 오픈 소스 3B 모델인 StableLM-3B의 데이터 레시피를 따라 2T 토큰으로 BitNet b1.58 모델을 훈련시켰다.
두 모델 모두 Winogrande, PIQA, SciQ, LAMBADA, ARC-easy로 구성된 벤치마크에서 평가되었다. 우리는 Table 4에서 zero-shot 정확도를 보고한다. 정확도와 정규화된 정확도로 측정된 작업은 두개의 평균을 취했다.
결과는 BitNet b1.58이 모든 최종 작업에서 우수한 성능을 달성함을 보여준다. 이는 1.58비트 LLM도 강력한 일반화 능력을 가지고 있음을 나타낸다.
4. 토론 및 향후연구
- 1-bit Mixture-of-Experts (MoE) LLMs
전문가혼합(MoE)는 LLM에서 비용효율적임이 증명되었다. 계산 FLOPs를 크게 줄이지만, 높은 메모리 소비량과 칩 간 통신 오버헤드가 배포와 적용에 어려움을 주었다. 이러한 어려움은 1.58bit LLM으로 해결될 수 있다.
먼저, 감소된 메모리 사용량은 MoE 모델을 배포하는 데 있어 더 적은 하드웨어 장치를 필요로 하게 된다.
더 나아가, 네트워크를 통한 activation 전송에 있어서 오버헤드를 크게 감소시킨다.
궁극적으로, 모든 모델을 단일 칩에 배치할 수 있다면 오버헤드는 없어질 것이다.
- LLM에서 긴 시퀀스에 대한 기본적인 지원
LM의 시대에서 긴 시퀀스를 처리할 수 있는 능력은 중요한 요구가 되었다. 긴 시퀀스 추론의 주요 도전 중 하나는 KV 캐시에 의해 도입된 메모리 소비이다.
BitNet b1.58은 activation을 16비트에서 8비트로 줄임으로써 긴 시퀀스에 대한 기본 지원을 향한 중요한 단계를 나타낸다.
이를 통해 동일한 자원을 주어진 상태에서 컨텍스트 길이를 두 배로 늘릴 수 있다. 이는 더 나아가 1.58비트 LLM을 위해 4비트 또는 그 이하로 더 손실 없이 압축될 수 있으며, 이는 향후 작업으로 남겨둔다.
- 모바일 및 Edge에서의 LLM
1.58비트 LLM의 사용은 Edge 및 모바일 기기에서 언어 모델의 성능을 크게 향상시킬 수 있는 잠재력을 가지고 있다.
이러한 기기들은 종종 그들의 메모리와 계산 능력에 의해 제한되며, 이는 LLM의 성능과 규모를 제한할 수 있다.
그러나, 감소된 메모리 및 에너지 소비의 1.58비트 LLM은 이러한 기기들에 배포될 수 있게 하여, 이전에는 불가능했던 다양한 응용 프로그램을 가능하게 한다.
또한, 1.58비트 LLM은 CPU 기기에 더 친화적이며, 이는 Edge 및 모바일 기기에서 주로 사용되는 주요 프로세서이다. 이는 BitNet b1.58이 기기에서 효율적으로 실행될 수 있음을 의미하며, 이는 그들의 성능과 능력을 더욱 향상시킨다.
- 1-bit LLM을 위한 새로운 하드웨어
최근 Groq와 같은 연구는 LLM을 위한 특정 하드웨어를 구축하기 위한 유망한 결과와 큰 잠재력을 보여주었다. 더 나아가, 우리는 1-bit LLM에 최적화된 새로운 하드웨어와 시스템 설계를 디자인 하는 행동을 촉구한다.