이것은 Microsoft와 중국 과학 아카데미 대학이 최근 연구에서 제시한 결론입니다.
모든 LLM은 1.58비트입니다.
구체적으로 본 연구에서 제안한 방법은 BitNet b1.58이라고 하는데, 이는 대규모 언어 모델의 "루트" 매개변수에서 시작된다고 할 수 있습니다.
16비트 부동 소수점 숫자 형식의 기존 저장소 (예: FP16 또는 BF16) 가 삼항 , 즉 {-1, 0, 1}으로 변경되었습니다.
"1.58비트"는 각 매개변수가 1.58바이트의 저장 공간을 차지한다는 의미가 아니라, 각 매개변수가 1.58비트의 정보로 인코딩될 수 있다는 의미입니다.
이러한 변환 후 행렬의 계산에는 정수 추가만 포함됩니다. 따라서 대형 모델은 특정 정확도를 유지하면서 필요한 저장 공간과 컴퓨팅 리소스를 크게 줄일 수 있습니다.
예를 들어 BitNet b1.58은 모델 크기가 3B일 때 Llama와 비교하면 속도는 2.71배 증가한 반면 GPU 메모리 사용량은 원본의 거의 4분의 1에 불과합니다. 그리고 모델의 크기가 더 커지면(예: 70B)속도 향상과 메모리 절약이 더욱 중요해집니다! 이 파괴적인 아이디어는 네티즌들에게 깊은 인상을 줬고, 이 논문은 신문에서도 높은 관심을 받았습니다. 오래된 농담:
1비트면 충분합니다.BitNet b1.58은 어떻게 구현됩니까? 계속해서 읽어보자. 모든 매개변수를 삼항으로 변환
이 연구는 실제로 이전에 발표된 논문을 기반으로 원래 팀이 수행한 최적화입니다. 즉, 원래 BitNet에 추가로 0 값이 추가됩니다.
를 기반으로 하며 nn.Linear를 BitLinear로 대체합니다.
자세한 최적화를 위해 가장 먼저 언급한 "0을 더하는 것", 즉 Weight Quantization
(Weight Quantization)입니다.
BitNet b1.58 모델의 가중치는 삼항 값 {-1, 0, 1}으로 양자화됩니다. 이는 이진 시스템에서 각 가중치를 표현하기 위해 1.58비트를 사용하는 것과 같습니다. 이 정량화 방법은 모델의 메모리 공간을 줄이고 계산 프로세스를 단순화합니다.둘째,
양자화 함수 설계측면에서, 가중치를 -1, 0, +1로 제한하기 위해 연구자들은 절대 평균(absmean)이라는 양자화 함수를 사용했습니다.
이 함수는 먼저 가중치 행렬의 평균 절대값에 따라 크기를 조정한 다음 각 값을 가장 가까운 정수(-1, 0, +1)로 반올림합니다. 다음 단계는
활성화 양자화(활성화 양자화)
입니다. 활성화 값의 양자화는 BitNet의 구현과 동일하지만 활성화 값은 비선형 함수 이전의 [0, Qb] 범위로 스케일링되지 않습니다. 대신, 활성화는 영점 양자화를 제거하기 위해 [-Qb, Qb] 범위로 스케일링됩니다.BitNet b1.58이 오픈 소스 커뮤니티와 호환되도록 하기 위해 연구팀은 RMSNorm, SwiGLU 등과 같은 LLaMA 모델의 구성 요소를 채택하여 주류 오픈 소스에 쉽게 통합될 수 있다는 점을 언급할 가치가 있습니다. 소스 소프트웨어.
마지막으로 실험적 성능 비교 측면에서 팀은 다양한 크기의 모델에서 BitNet b1.58과 FP16 LLaMA LLM을 비교했습니다.
결과에 따르면 BitNet b1.58은 3B 모델 크기의 완전 정밀도 LLaMA LLM과 일치하기 시작하면서 대기 시간, 메모리 사용량 및 처리량이 크게 향상되었습니다.
그리고 모델 크기가 커지면 이러한 성능 향상이 더욱 중요해집니다.
위에서 언급했듯이 이 연구의 독특한 방법은 인터넷에서 많은 열띤 토론을 불러일으켰습니다.
DeepLearning.scala 작성자 Yang Bo는 다음과 같이 말했습니다.
원래 BitNet과 비교할 때 BitNet b1.58의 가장 큰 특징은 0개의 매개변수를 허용한다는 것입니다. 양자화 함수를 조금만 수정하면 0개의 매개변수 비율을 조절할 수 있지 않을까 생각합니다. 0개 매개변수의 비율이 크면 가중치를 희소 형식으로 저장할 수 있으므로 각 매개변수가 차지하는 평균 비디오 메모리는 1비트보다 훨씬 작습니다. 이는 중량 수준 MoE와 동일합니다. 일반 MoE보다 더 우아한 것 같아요.
동시에 그는 BitNet의 단점도 제기했습니다.
BitNet의 가장 큰 단점은 추론 중에 메모리 오버헤드를 줄일 수 있지만 최적화 상태와 그래디언트가 여전히 부동 소수점 수를 사용하고 훈련이 여전히 매우 어렵다는 것입니다. 메모리 소모적입니다. BitNet이 훈련 중에 비디오 메모리를 절약하는 기술과 결합할 수 있다면 기존의 반정밀도 네트워크에 비해 동일한 컴퓨팅 성능과 비디오 메모리로 더 많은 매개변수를 지원할 수 있어 큰 장점이 될 것이라고 생각합니다.
최적화 상태의 그래픽 메모리 오버헤드를 절약하는 현재 방법은 오프로드입니다. 그래디언트의 메모리 사용량을 절약하는 방법은 ReLoRA일 수 있습니다. 그러나 ReLoRA 논문 실험에서는 10억 개의 매개변수를 갖는 모델만 사용했을 뿐, 수백억, 수천억 개의 매개변수를 갖는 모델로 일반화할 수 있다는 증거는 없다.
Δ이미지 출처: Zhihu, 허가를 받아 인용
그러나 일부 네티즌들은 다음과 같이 분석했습니다.
논문이 성립되면 24GB 소비자급 GPU에서 120B 대형 모델을 실행할 수 있습니다.
이 새로운 방법에 대해 어떻게 생각하시나요?
위 내용은 Microsoft의 6페이지짜리 논문이 폭발합니다: 삼항 LLM, 정말 맛있습니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!