
4비트 컴퓨터로 AI를 학습시킨다고?
딥러닝은 에너지 잡아먹는 하마다. 딥러닝에는 엄청난 양의 데이터와 풍부한 컴퓨팅 자원이 필요한데, 이로 인해 전력 소비량이 폭발적으로 증가한다. 지난 몇 년간 전반적인 연구 경향이 상황을 더욱 악화시켰다. 수십억 건 데이터로 며칠 동안 훈련하는 대형 모델이 유행했다.
적은 데이터로 훈련 가능한 알고리즘이나 그런 알고리즘을 더 빨리 실행할 수 있는 하드웨어 등 새로운 방향을 모색하는 연구도 이뤄지고 있다. IBM 연구진은 다른 방향을 접근을 제안하고 있다. 이 아이디어는 데이터 표현(Data Representation)에 필요한 비트 수(1s와 0s)를 현재 업계 표준인 16비트에서 4비트까지 낮추려는 계획이다.
이 연구는 최근 열린 연례 AI 컨퍼런스 신경정보처리시스템학회(NeurIPS)에서 발표되었다. 딥러닝 훈련에 필요한 에너지 비용을 7배 이상 줄이고 속도를 높일 수 있다. 또한 스마트폰과 같은 작은 기기로 강력한 AI 모델 훈련을 가능하게 하고, 로컬 장치에 개인 데이터를 쉽게 보관할 수 있게 해 프라이버시를 개선한다. 자원이 풍부한 IT 대기업에 근무하지 않는 연구원들도 쉽게 접근할 수 있다.
비트의 작동 방식
컴퓨터는 1s와 0s로 사물을 저장한다는 것을 들어본 적이 있을 것이다. 이런 기본적인 정보 단위를 비트라고 한다. 비트가 ‘On’일 때는 1에 해당하고, ‘Off’일 때는 0이 된다. 즉, 한 비트 당 두 개의 정보만 저장할 수 있다.
그러나 정보를 조합하면, 인코딩 가능한 정보량은 기하급수적으로 증가한다. 2비트는 00, 01, 10, 11의 2^2 조합이 있기 때문에 4가지 정보를 나타낼 수 있다. 4비트는 2^4, 즉 16개의 정보를 나타낼 수 있다. 8비트는 2^8, 총 256개의 정보를 나타낸다. 비트가 많을수록 나타낼 수 있는 정보도 많아진다.
비트의 조합으로 숫자, 문자, 색상 같은 데이터 유형을 나타내거나 덧셈, 뺄셈, 비교 같은 연산 처리를 할 수 있다. 요즘 노트북은 대부분 32비트나 64비트 컴퓨터다. 그렇다고 해서 컴퓨터가 총 2^32 또는 2^64개의 정보만 인코딩할 수 있다는 뜻은 아니다. 각각의 데이터 개수나 개별 연산을 인코딩하는 데 이만큼의 연산을 수행할 수 있다는 의미다.
4비트 딥러닝
그렇다면 4비트의 딥러닝 훈련은 무엇을 의미할까? 4비트 컴퓨터는 복잡성도 4비트이다. 생각해 보자. 훈련 과정 중 사용하는 모든 숫자는 -8에서 7 사이의 16개 정수 중 하나여야 한다. 이들이 컴퓨터가 나타낼 수 있는 유일한 숫자이기 때문이다. 이것은 신경망에 공급하는 데이터 포인트, 신경망을 나타내기 위해 사용하는 숫자, 훈련 중 저장해야 하는 매개 숫자에도 적용된다.
그럼 어떻게 할까? 우선 훈련 데이터를 생각해 보자. 다양한 흑백 이미지라고 상상해 보자. 먼저 이미지를 숫자로 변환해서 컴퓨터가 이해할 수 있도록 해야 한다. 각 픽셀을 회색조 값(Grayscale Value)으로 표현하여 이를 수행한다. 0은 검은색, 1은 흰색, 그 사이 나머지는 회색 빛을 띤 정도에 따라 소수점으로 표현한다. 이미지는 이제 0부터 1까지의 숫자 목록이다. 그러나 4비트 세상에서는 -8에서 7까지의 숫자로 이들을 표현해야 한다. 여기서 비결은 숫자 목록을 선형적으로 확장(linearly scale)하는 것이다. 그래서 0은 -8이 되고, 1은 7이 되며, 소수점은 그 사이의 정수에 매핑된다.