deep daiv.
← Newsletter

#25 On-device AI

날짜
2024년 2월 7일
에디터
배니
위클리 딥 다이브 #252024년 2월 7일

내 손 안의 작은 AI

지난달 17일, 삼성전자에서는 갤럭시 S24를 선보이며 새롭게 AI 스마트폰의 시대를 열었습니다. 그중에서도 ‘온디바이스 AI’라는 키워드가 돋보였는데요. ‘온디바이스 AI’란 무엇일까요?

이를 이해하기 위해서는 우리가 일반적으로 AI를 활용하는 방법에 대해 먼저 살펴보아야 합니다. 대량의 데이터를 학습한 AI 모델은 일반적으로 스마트폰과 같이 작은 디바이스의 성능만으로 실행하기가 어렵습니다. 그래서 학습한 모델이 요청 받은 정보를 처리할 수 있도록 서버에 정보를 전송하고, 다시 정보를 받아와 결과를 보여주는 식으로 동작했습니다. 하지만 이 경우에 민감한 정보에 대해서 AI 서비스를 제공해야 하고, 서비스를 이용하기 위해서 네트워크에 연결되어 있어야 한다는 단점이 있습니다.

‘온디바이스 AI’는 스마트폰 등의 기기에서 직접 AI 기술을 수행하고 작동할 수 있는 것을 의미합니다. 즉, 기기의 성능으로만 요청을 처리하기 때문에 개인정보 보호가 가능하며, 서버와의 송수신 단계가 줄어들어 응답속도가 빠릅니다. 또한 대규모의 서버를 구동하지 않는다는 점에서 전력 소비를 줄이고 비용을 아낄 수 있다는 장점이 있습니다.

출처: 삼성 뉴스룸 차세대 딥러닝 기술 ‘온디바이스(On-Device) AI’란?

이번 삼성의 갤럭시 S24에 탑재된 AI 모델은 ‘삼성 가우스(Gauss)’라 부릅니다. 가우스의 특징으로 실시간 통역, AI 사진 편집 등이 꼽히는데요. 이 모든 기능들은 일반적으로 클라우드 서버를 활용해 대용량의 모델로 처리하여 원하는 정보를 얻어와야 했지만, 이제는 스마트폰 하나에서도 처리할 수 있을 만큼 모델을 경량화하며 동시에 성능을 유지한 것입니다. 그래서 무선 인터넷 연결 없이도 통역이나 AI 사진 생성 및 편집의 기능을 이용할 수 있는 것입니다.

온디바이스 AI를 개발할 수 있었던 이유에 대해서 삼성전자는 ‘비트 양자화(Bit Quantization)’를 꼽았습니다. 비트 양자화란 데이터를 표현하는 데 사용되는 비트의 수를 줄이는 과정을 말합니다. 이때 비트(Bit)는 'Binary Digit'의 줄임말로 0과 1로 이루어진, 컴퓨터에서 데이터를 표현하는 가장 기본적인 단위입니다.

‘가우스’의 경우, 스마트폰의 신경망처리장치(NPU)에서 구동이 가능하도록 32비트의 모델을 4비트로 경량화했습니다. 일반적인 경우, 컴퓨터에서 데이터를 처리할 때 32비트 부동 소수점 형식으로 나타냅니다. 즉, 이진법에서 2^32 가지의 다른 값을 표현할 수 있습니다. 반면, 4비트의 경우 2^4 가지밖에 표현할 수 없습니다. 32비트 시스템을 활용한다면 더 정밀하게 값을 나타낼 수 있어 모델의 정확도가 훨씬 개선될 것입니다. 반면 4비트의 경우 훨씬 표현력이 줄어들 수밖에 없습니다.

이렇게 32비트 부동 소수점으로 표현된 정보를 4비트나 8비트 등 더 낮은 비트 시스템으로 매핑시키는 기술을 비트 양자화라고 합니다. 단순히 숫자를 매핑시키는 것보다 중요한 것은 모델의 성능을 유지하는 것입니다. 더 낮은 비트값으로 매핑하는 과정에서 반드시 정보는 손실될 수밖에 없습니다.

비트 양자화는 어떻게 계산할까?

예를 들어, 부동 소수점 가중치 집합 {0.25, −0.75, 0.5, −0.5}가 있고, 이를 8비트 정수 범위인 0~255로 양자화한다고 가정해봅시다. 일반적으로 가중치의 최솟값과 최댓값을 찾고, 이를 8비트 정수 범위에 맞게 스케일링합니다.

위의 예시에서 최솟값은 -0.75, 최댓값은 0.5이므로 각각에 0과 255를 매핑합니다. 양의 정수로 표현하기 위해 모든 수에 0.75를 더합니다. 최댓값과 최솟값의 차는 1.25이므로 1을 1.25로 나눈 0.8배를 곱하여 스케일링합니다. 그리고 8비트로 표현할 수 있는 범위에 매핑하기 위해 255를 곱합니다.

이렇게 8비트 정수로 변환한 결과는 {204, 0, 255, 51}입니다. 이해를 돕기 위해 간단한 예시를 설명했는데요. 소수점 둘째자리까지 표현했지만, 실제로 8비트 부동 소수점을 갖는 경우 훨씬 더 작은 값를 갖게 됩니다. 0.1236 … 이나 0.1249 … 모두 같은 숫자에 매핑된다면 계산의 정확도는 부정확해질 것입니다.

삼성의 온디바이스 AI 개발을 위한 비트 양자화 연구는 꽤 오래됐습니다. 삼성 AI 연구진(SAIT)은 2019년 CVPR에 공개한 논문에서 32비트 네트워크를 4비트로 압축하는 기술에 대해서 발표한 바 있습니다. 이 논문에 대해서 조금 더 자세히 살펴보도록 하겠습니다.

출처: 삼성 뉴스룸 차세대 딥러닝 기술 ‘온디바이스(On-Device) AI’란?

온디바이스 AI를 위한 비트 양자화 방법

SAIT와 KAIST의 공동 연구로 발표된 Learning to Quantize Deep Networks by Optimizing Quantization Intervals with Task Loss는 딥러닝 네트워크(모델)의 가중치를 양자화는 데 있어, 최적의 값을 가질 수 있도록 연속된 값을 양자화하는 Quantizer를 학습합니다.

Learning to Quantize Deep Networks by Optimizing Quantization Intervals with Task Loss (Jung et al., 2019)
Learning to Quantize Deep Networks by Optimizing Quantization Intervals with Task Loss (Jung et al., 2019)

학습 가능한 양자화 간격(Learnable Quantization Intervals)을 사용한다는 것은 신경망의 가중치나 활성화 값을 양자화할 때 적용되는 간격을 고정된 값이 아닌 학습을 통해 최적화할 수 있다는 의미입니다. 일반적인 양자화 방법에서 사전에 정의된 균일한 간격(예를 들어, 모든 값들을 동일한 크기의 구간으로 나누는)을 사용합니다.

하지만 학습 가능한 양자화 간격을 사용하는 경우, 이 간격들이 네트워크 학습 과정에서 최적화되어 각 값들이 양자화되는 정도가 데이터의 특성과 학습 목표에 더 잘 맞게 조정됩니다. 이를 Pruning과 Clipping으로 표현하는데요. 결과적으로 상한값과 하한값을 가질 수 있도록 결정합니다. 일반적으로 하나의 함수로 매핑하는 것과 달리, 해당 모델은 성능을 유지할 수 있도록 네트워크의 가중치들마다 가변적으로 매핑합니다. 위의 양자화 예시에서 살펴본 것처럼, 이 간격 범위를 잘 조정한다면 손실을 줄이고 성능을 유지할 수 있습니다.


이렇게 온디바이스 AI를 구현하기 위한 비트 양자화에 대해서 알아보았습니다. 온디바이스 AI가 자연스러운 시대가 온다면 우리는 모두 핸드폰이 아닌 AI 기기를 들고 다닐지도 모릅니다. 이를 위해서는 AI 반도체와 관련된 하드웨어뿐만 아니라 소프트웨어의 발전도 필요합니다.

해당 연구는 2019년에 진행된 만큼 그 사이에 양자화와 관련된 더 많은 연구들이 쏟아졌습니다. 앞서 소개한 연구는 컴퓨터 비전 모델인 ImageNet에 대해서 실험을 진행했는데요. 최근 주목받고 있는 언어 모델에 대해서도 양자화 연구가 활발하게 이뤄지고 있습니다. 갤럭시 S24의 등장으로 본격적인 온디바이스AI 시대의 서막이 열렸습니다. 앞으로는 모두가 ‘내 손 안의 AI’를 들고다닐 날이 머지 않은 것 같습니다.


[AI NEWS]

[Subheading 1]

[Subheading 2]

[Subheading 3]


[딥 다이브 소식]

[WIL]

[WIL]

[다만사]

함께 읽기