Tiny four-bit computers are now all you need to train AI

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이 되며, 소수점은 그 사이의 정수에 매핑된다.

MIT Technology Review 의 기사는 유료 멤버십 회원에게 제공됩니다.

유료 멤버십 플랜 보기