양자화를 통해 머신 러닝 모델은 더 적은 메모리와 컴퓨팅 성능을 사용하여 더 빠르게 응답하고 비용을 절감할 수 있습니다. 하지만 이로 인해 AI 추론의 정확도가 떨어질 수 있습니다.
이 글을 읽은 후에 다음을 할 수 있습니다:
관련 콘텐츠
인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!
글 링크 복사
양자화는 머신 러닝 및 인공 지능(AI) 모델 실행의 부담을 줄이기 위한 기술입니다. 양자화의 목표는 AI 추론에 필요한 메모리를 줄이는 것입니다. 양자화는 특히 대규모 언어 모델(LLM)에 유용합니다.
일반적으로 양자화는 디지털 신호를 매우 정밀한 형식에서 더 적은 공간을 차지하고, 결과적으로 정밀도가 약간 떨어지는 형식으로 변환하는 프로세스입니다. 이 과정의 목표는 신호 크기를 줄여 처리 속도를 높이는 것입니다. 머신 러닝과 AI에서 양자화의 목적은 모델이 더 빠르게 작동하거나, 더 적은 컴퓨팅 성능을 사용하거나, 또는 두 가지 모두를 목표로 합니다. 궁극적으로 사용자는 정확도 손실을 최소화하면서 보다 저렴한 하드웨어에서 AI 모델을 실행할 수 있습니다.
AI 추론을 위한 메모리 사용량이 어떻게 줄어드는지 시각적으로 이해하려면 누군가가 폭이 몇 인치인 관에 많은 구슬을 굴려야 한다고 상상해 보세요. 큰 구슬을 사용하면 한 번에 두세 개만 관의 한 지점을 통과할 수 있습니다. 작은 구슬을 사용하면 훨씬 더 많은 구슬이 한 번에 통과할 수 있습니다. 따라서 작은 구슬을 사용하면 더 많은 구슬이 관을 더 빠르게 통과할 수 있습니다.
양자화는 큰 구슬을 작은 구슬로 변환합니다. 메모리에서 추론에 필요한 정보가 차지하는 공간을 줄여, 더 많은 정보를 더 빠르게 처리하고 AI 계산이 더 효율적으로 이루어집니다.
AI의 일종인 머신 러닝에 사용되는 모델은 매우 복잡합니다. 이 모델들은 엄청난 양의 메모리와 컴퓨팅 성능을 사용합니다. 실제로 AI의 인기가 높아지면서 전력 부족 문제가 발생하기도 했습니다. 고급 머신 러닝 모델을 실행하는 서버에는 엄청난 양의 전력이 필요하기 때문입니다. 경우에 따라 공공 전력망이 이 모든 전력을 공급할 수 없는 상황이 벌어지기도 합니다. 이로 인해 태양광 발전 사용 증가부터 폐쇄된 원자력 발전소 재가동에 이르기까지 다양한 창의적인 해결책이 등장했습니다.
양자화는 반대로 AI 모델 자체의 전력 소모를 줄임으로써 컴퓨팅 부하를 줄이는 것을 목표로 합니다. 개발자와 AI 모델을 운영하는 조직의 경우 모든 사람이 오래된 원자력 발전소를 재가동할 여력이 있는 것은 아니므로, 양자화를 통해 AI의 비용 효율성을 훨씬 높일 수 있습니다.
양자화가 정밀도에 영향을 미치는 이유를 이해하려면, 누군가에게 길을 묻는 상황을 상상해 보세요. 그 사람은 각 도로의 이름과 도그 앞뒤의 도로 이름도 포함하여 상세한 길 안내를 해줄 수 있습니다. 이러한 길 안내는 매우 정밀하지만 기억하기 어려울 수 있습니다. 반대로, 누군가는 "두 번째 왼쪽, 네 번째 오른쪽, 첫 번째 왼쪽"처럼 간단하게 설명할 수 있습니다. 이렇게 하면 기억하기는 더 쉽지만, 정밀도는 떨어질 수 있습니다.
AI에서 양자화는 데이터 포인트에 사용되는 비트 수를 줄이는 방식으로 작동합니다. 비트 수를 줄이면 정밀도가 어느 정도 손실될 수 있습니다. 그 결과 출력에 더 많은 오류가 발생할 수 있습니다(위 예시에서 도로명을 빼고 "네 번째 왼쪽"을 잘못 이해하는 것과 비슷한 상황). 하지만 양자화에는 여러 유형이 있으며, 이 중 일부는 다른 것보다 더 정밀할 수 있습니다.
실제로 기업이나 사용자가 "충분히 좋은" 양자화된 AI 모델을 사용하는 경우도 있습니다. 이러한 사용 사례에는 매우 정밀한 결과가 꼭 필요하지 않은 경우가 많습니다. 예를 들어, 소셜 미디어 트렌드 및 언급을 추적할 때 정확한 데이터 포인트보다는 전반적인 정서와 참여도를 파악하는 데 초점을 맞추는 경우입니다.
학습 후 양자화(PTQ)는 이미 학습된 기존 모델에 양자화를 적용하는 것입니다. PTQ는 학습된 모델에 비교적 빠르게 적용할 수 있습니다. 이는 학습 전 단계에서 상당한 컴퓨팅 성능을 필요로 하는 양자화 인식 학습(QAT)과 대조됩니다. PTQ는 부동 소수점 숫자를 고정 소수점 숫자로 변환하는 방식으로 작동합니다.
부동 소수점 표현은 머신 러닝과 딥러닝에서 일반적으로 숫자를 표현하는 데 사용되는 매우 정밀한 방식입니다. 부동 소수점 표현으로 저장된 숫자는 특정 비트 수(16비트 또는 32비트)를 차지하며, 이는 사용된 부동 소수점 표현 유형에 따라 달라집니다.
양자화 방식 중 다수는 이 비트 수를 8비트로 줄입니다. 결과적으로 양자화된 숫자는 메모리에서 절반 또는 4분의 1의 공간만 차지합니다. 물론 비트 수가 적기 때문에 양자화된 값은 부동 소수점 숫자만큼 정밀하지 않습니다. 소수점 이하 자릿수가 적은 숫자(예: 3.14)가 소수점 이하 자릿수가 많은 숫자(예: 3.141592654)보다 정밀하지 않은 것과 같습니다.
활성화 인식 가중치 양자화(AWQ)는 효율성 향상과 정밀도 사이의 균형을 목표로 하는 기술입니다. AWQ는 모델 내에서 가장 중요한 가중치가 변경되지 않도록 보호합니다. (가중치는 데이터 세트 내 항목 간의 관계를 측정하는 값입니다.) 위의 길 찾기 예시를 다시 떠올려 보세요. 길 안내자가 "두 번째 왼쪽, 네 번째 오른쪽, 첫 번째 왼쪽" 대신 "두 번째 왼쪽, 12번가에서 오른쪽, 첫 번째 왼쪽"이라고 말한다고 상상해 보세요. 이 경우 더 정밀한 정보가 포함되지만, 여전히 비교적 짧고 기억하기 쉬운 길 안내입니다. AWQ도 이와 유사하게 작동하여 모델의 일부 정수는 변경하지 않고 다른 정수는 변경합니다.
Cloudflare Workers AI는 메모리 사용량을 줄이고 컴퓨팅 성능을 덜 소모하면서도 정밀도를 유지하기 위해 부동 소수점 양자화와 AWQ를 모두 통합한 여러 대규모 언어 모델(LLM)을 지원합니다. 더 자세한 내용을 알아보려면 Cloudflare Workers AI 문서를 참조하세요.