인공지능(AI, Artificial Intelligence)은 현재 전 세계를 가장 뜨겁게 달구는 키워드다. SK하이닉스 뉴스룸에서는 [인공지능 반도체] 코너를 마련, 인공지능 전문가 정인성 작가와 함께 총 일곱 편의 기고문을 연재하고 있다.
이번 연재물에서는 컴퓨터와 반도체의 관점에서 인공지능을 살펴볼 것이다. 인공지능으로 바뀌면서 ‘0’과 ‘1’이 구체적으로 어떻게 변화되어 응용되는지 알아보고, 이때 반도체는 어떤 역할을 해야 하는지 확인해 볼 것이다. (필자 주)
이번 편에서는 다가올 미래 반도체를 다룰 것이다. 인간의 뇌 구조를 모방해 만든 반도체, 바로 뉴로모픽(Neuromorphic) 반도체다. 뉴로모픽 반도체는 아직 상용화되지 않은 경우가 대부분이라 정의하는 데 많은 혼란을 일으킨다. 그래서 우선 용어들을 명확히 하고자 한다.
‘인공지능 반도체’라는 용어는 매우 큰 범위를 가진다. 현재에서 미래까지 인공지능 기술에 필요한 모든 반도체를 포괄하는 개념으로 이 분야의 대표주자는 ▲GPU(Graphics Processing Unit, 그래픽 처리 장치)다.
또 다른 ‘인공지능 반도체’는 ▲NPU(Neural Processing Unit, 인공지능 처리 장치)다. 이 NPU는 대중적으로 알려진 GPU보다 인공지능을 위한 연산에 더욱 특화된 반도체로, 독립적인 반도체 칩으로 설계되기도 하고 혹은 반도체 칩 내부의 일부분으로 설계되기도 한다. GPU보다 인공지능이 필요로 하는 연산 알고리즘인 GEMM* 등에 특화된 NPU를 중심으로 뉴로모픽 반도체를 자세히 알아보고자 한다.
* GEMM(GEneral Matrix Multiplication) : 다중 연산의 식을 여러 개 입력하고, 결괏값은 하나로 출력하는 알고리즘으로 추론이나 예측에 사용된다.
▲ 그림 1 : GEMM 연산 중 하나인 내적(왼쪽)과 실제 이미지 인식 과정에서 신경망 연산에 GEMM이 쓰이는 예(오른쪽)
NPU 등 인간의 뇌구조처럼 병렬 형태의 연산 방식을 모방한 뉴로모픽 반도체는 폰 노이만 구조*의 일반적인 컴퓨터 칩에 가까운 개념부터, 폰 노이만 구조를 완전히 벗어나는 개념까지 매우 다양하다. 특히 이번 편에서는 뉴로모픽 반도체 중에서도 가장 메모리에 가까운 구조를 가진 반도체를 다루고자 한다. 그래서 이번에 언급하는 뉴로모픽 반도체는 다양한 미래 반도체 중 하나일 뿐임을 명심하길 바란다.
* 폰 노이만 구조(Von Neumann Architecture) : 메모리와 연산장치, 입출력 장치 등 전형적인 3단계 구조로 이루어진 프로그램 내장형 컴퓨터 구조. 오늘날 사용하고 있는 일반적인 컴퓨터의 기본 구조
▲ 그림 2 : 각종 반도체의 종류별 포함 관계
디지털 회로의 대가
컴퓨터는 20세기 가장 중요한 발명품이다. 인류는 컴퓨터가 생겨남으로써 ‘프로그램’을 만들 수 있게 됐고, 이 ‘프로그램’을 통해 지금까지의 인류 역사에서 경험해 보지 못했던 강력한 연산과 자동화 능력을 세상에 제공할 수 있었다. 컴퓨터 덕분에 매우 정밀한 계산을 할 수 있게 됐고, 하루 종일 검산해야 했던 수백만 가지 숫자들을 수 초 만에 전부 틀리지 않고 계산할 수 있게 됐다.
이를 가능하게 한 이유 중 하나는 디지털 회로가 보장하는 높은 정확도다. 디지털 회로는 ‘1+1의 연산 결괏값은 항상 2’인 것과 같이 동일한 연산을 할 때 매번 같은 값을 보장한다. 이러한 특성 덕분에 ‘프로그램’을 만들 수 있었다.
▲ 그림 3 : 순서도는 약간의 오차로 인해 어마어마한 오동작이 일어날 수 있다.
<그림 3>을 살펴보자. 만약 위 순서도에서 N값이 정확히 구분되지 않고, ±(플러스마이너스) 0.1 정도의 오차가 있으면 어떻게 될까? 연산이 완료된 후에도 결괏값이 틀릴 뿐만 아니라 운이 없으면 아예 분기(조건문) 처리 자체가 망가져 버릴 수 있다. N값이 정수로 떨어지지 않으면, 프로그램이 멈추지 않고 계속 계산을 진행하고 있을 수도 있다. 결국 논리적인 구분의 값이 정확하지 않으면 더 이상 컴퓨터를 통해 초정밀 계산을 수행할 수 없게 된다. 이는 수십 nm(나노미터) 수준의 오차도 허용되지 않는 현대 산업에서는 매우 치명적일 것이다.
▲ 그림 4 : 디지털 회로의 예
이 때문에 현재의 컴퓨터는 디지털 회로를 기반으로 만들어진다. 즉, 디지털 회로는 특정 범위의 전압과 전류 등을 0과 1로 전환하여 값을 정확히 구분한다. 예를 들어, 우리가 1.0mA를 1의 기준으로 정했다고 가정해 보자. 특정 트랜지스터에 0.0~0.9mA의 전류가 흐른다면 값을 0으로 취급하면 되고, 1.0mA가 넘게 흐르면 1로 취급하면 된다. 이런 마진 측정 방식을 통해 초미세 회로들의 노이즈를 이겨내는 것이다.
만약 우리가 디지털 회로를 포기하고 흐르는 전류 자체를 값으로 사용한다면 어떤 일이 발생할까? 예를 들어, A 트랜지스터에서 1.003의 전류가 흐르고, B 트랜지스터에서 1.100의 전류가 흐른다고 가정해 보자. 단순한 덧셈의 개념으로 보자면 이 두 전류를 합치면 2.103의 전류가 되겠다고 생각하기 쉽다. 하지만 각종 누설 전류와 외부 노이즈 등으로 인해 두 전류의 합이 정확하게 2.103이 되지 않는다. 게다가 전류 값이 정확하지 않다면 컴퓨터는 제대로 작동하지 않는다. 이런 이유로 과학자들은 숫자 하나하나를 디지털 회로 값으로 치환하는 ALU*등 다양한 기능의 반도체를 이용해 디지털 회로로 구현함으로써 100% 동일한 결과를 보장할 수 있게 만든 것이다. 하지만 이 방식은 매우 많은 트랜지스터를 요구한다.
* ALU(Arithmetic Logic Unit) : 산술연산, 논리연산 등을 수행하는 중앙처리장치 내부의 회로 장치. 독립적으로는 데이터 처리를 못 하며 반드시 레지스터들과 조합해 처리함
▲ 그림 5 : 단순히 숫자 두 개(A, B) 사칙 연산하는 데 있어 ALU는 수많은 트랜지스터가 필요하다. (출처 : 원문 보기)
인공신경망의 정확도는 어디에서 오는가?
하지만 인공지능 시대가 열리면서 상황이 변하기 시작했다. 오히려 ‘정확하지 않은 컴퓨터’가 가능성을 가지게 된 것이다. 예를 들어, 아래 귀여운 강아지가 있는 세 개의 사진(그림 6)을 보자. 하나의 이미지는 이상적인 형태로 그려져 있으며, 다른 한 개는 약간 기울어져 있고, 나머지 하나는 강아지 얼굴 부분에 노이즈가 있다. 지금, 이 글을 보고 있는 여러분은 세 개의 사진이 같은 강아지인지 아닌지 헷갈리는가? 아마 헷갈리지 않을 것이다. 사진이 약간 기울어져 있고, 노이즈가 있지만 같은 대상임을 분명히 알 수 있다.
▲ 그림 6 : 사람은 이 3개 사진이 동일 대상을 가리키고 있음을 쉽게 파악한다
이번에는 실눈을 감고 이미지를 보자. 약간 뿌옇게 보이지만 우리는 여전히 세 개의 대상이 같다는 것을 이해하고 있다. 이미지들을 흑백으로 바꿔봐도, 색조를 조금 바꿔도 우리는 사물을 구분하는 데 큰 어려움을 겪지 않는다. 이는 인공신경망 역시 마찬가지다. 인공신경망은 사람이 이미지를 인식하는 것과 비슷한 형태로 이미지를 학습하고 인식한다.
이것이 가능한 이유는 크게 두 가지다. 우선 인공신경망 내부에 수많은 뉴런이 존재하기 때문이다. 예를 들어, 인공신경망이 얼굴을 구분할 때 눈과 코만 기준으로 삼는다고 가정해 보자. 여기에 특정 노이즈가 눈과 코를 지워버린다면 얼굴을 구분할 수 없게 된다. 하지만 뉴런이 많다면, 눈과 코를 합친 특징을 비롯해 이외에 매우 다양한 특징을 살피도록 학습시킬 수 있다. 눈이 잘 구분되지 않아도 나머지 특성을 통해 대상을 구분할 수 있는 것이다.
다른 한 가지 이유는 학습 이론이 발전했다는 점이다. 과학자들은 많은 연구를 통해 주어진 데이터로 정보를 추론하는 데이터 증강*이나, 강아지의 눈과 코가 모자이크로 인해 가려져 강아지가 아니라는 과도한 학습을 차단하는 드롭아웃* 등 다양한 기술을 도입했다. 이로써 인공신경망은 이미지 데이터를 주어진 그대로 인식하는 것이 아닌, 노이즈를 이겨내고 사진 내의 다양한 특성을 살피도록 학습할 수 있었다. 이를 뒤집어 생각해 보자. ‘만약 우리가 인공신경망에 노이즈를 강하게 학습시킬 수 있다면, 신경망 내부에서 연산이 다소 정확하지 않아도 상관없는 것이 아닐까?’라는 추론이 가능해진다.
* 데이터 증강(Augmentation) : 학습에 사용하는 데이터에 각종 변화를 줌으로써 신경망의 추론 안정성을 높이는 기술. 이미지의 경우 회전, 크기 변경, 노이즈 추가 등이 이루어진다.
* 드롭아웃(Dropout) : 인공지능 모델이 학습한 데이터에 대한 의존도가 높아져, 실제 사용에서 정확도가 떨어지게 되는 과적합(Overfitting) 현상을 해결하기 위해 주어진 확률로 네트워크에 있는 변수들을 생략하는 방법
PIM : 메모리가 직접 연산한다
인공신경망을 만들었는데 학습 중 데이터 증강을 통해, 혹은 실제 데이터 추론 상황에서 노이즈가 추가된 사진이 신경망에 입력되는 상황을 생각해 보자. 신경망이 잘 학습됐다면 노이즈와 관계없이 정답을 출력할 것이다.
▲ 그림 7 : 사진에 노이즈가 있는 상황(위)과, 신경망이 노이즈를 만드는 상황(아래)
그렇다면 <그림 7> 중 아래 이미지와 같이 상황을 약간 비틀어 보자. 입력된 이미지에는 노이즈가 없는데, 인공신경망 일부분에서 약간의 노이즈가 발생하는 것이다. 역시나 추론 결과는 정확하다. 이는 노이즈 정규화(Noise Regularization)라는 방법으로 신경망 학습에서 때때로 사용되는 방법이다. 즉, 인공 뉴런은 개별적으로 연산 과정에서 작은 문제가 발생해도 전체에 영향을 미치지 않는다. 이는 각각 요소의 정확도가 중요한 기존 순서도 프로그램과 크게 구분된다.
그렇다면 우리가 디지털 회로의 정확성을 포기하고 모든 요소를 오로지 인공신경망을 위해 투입하면 어떻게 될까? 이것이 바로 단순히 저장만 하는 메모리가 아닌 연산용 메모리(Computational Memory)이다. 뉴로모픽 반도체 중 하나의 종류이자, PIM(Processing In Memory)의 최종적인 형태 중 하나라고 할 수 있다.
▲ 그림 8 : CPU의 y=wx 계산(왼쪽)과 전류 흐름을 통한 계산(오른쪽)
예를 들어, 사용자가 ‘y=wx’의 값을 계산해야 한다고 해 보자. w는 고정된 값이며, x를 통해 y를 계산하는 것이 목적이다. 만약 CPU를 통해 연산을 한다면, <그림 8> 좌측 이미지와 같은 과정이 벌어지게 된다. 이 간단한 계산을 위해서는 CPU가 메모리에서 w와 x의 값을 불러온 뒤, 해야 할 작업을 분석하고 ALU를 여러 차례 가동해야 한다. 이후 결괏값을 다시 메모리에 적어주는 작업까지 수행해야 한다.
하지만, 오른쪽과 같은 회로를 구성한다면 어떨까? 앞에서 살펴본 디지털 회로와 같이 흐르는 전류에 따라 값을 정한다고 한다면 <그림 8>의 오른쪽 계산과 같이 입력 전압의 값(x)을 통해 y의 값을 알 수 있을 것이다. 이를 통해 우리는 지금 거대한 CPU 설계와 메모리로 구성된 시스템이 할 일을 고작 저항 1개와 전선 몇 개로 해낸 것이다. 여기서 설계를 조금만 늘리면 더욱 많은 숫자 합을 동시에 수행할 수 있다.
▲ 그림 9 : y=wx를 4번 수행하는 CPU 알고리즘(왼쪽)과 뉴로모픽(오른쪽)
<그림 9>를 보면 전류 흐름을 통한 뉴로모픽은 CPU가 여러 루프를 반복해 돌아야 계산되는 값을 ‘한 곳에서, 동시에’ 처리할 수 있다는 것을 알 수 있다. 이는 무려 8개의 숫자를 동시에 곱한 것인데, 이런 연산이 바로 위에서 본 GEMM의 훌륭한 예시가 될 수 있다. 여기서 x와 w만 어떤 식으로든 변화시킬 수 있다면, 대규모 GEMM 연산기가 되는 것이다.
물론 누설전류 및 외부 노이즈로 인해 매번 정확하게 wx라는 값이 흐르지는 않을 것이다. 하지만 인간의 뇌세포도 이와 유사하다. 인간은 아침을 굶고 나왔거나, 조금 지치는 상황에서도 기존에 잘하던 일이면 대부분의 일을 잘 해낸다. 컨디션의 차이가 있다면 개별 뇌세포가 내놓는 신호가 달라지겠지만, 전체 결과에는 큰 영향이 없다. 이러한 현상은 뉴로모픽 반도체에서도 비슷하게 발생한다. 노이즈는 늘어나기도 하고, 줄어들기도 하므로 위와 같은 연산을 대규모로 수행한다면 전체적인 노이즈는 줄어들게 되는 것이다.
뉴로모픽 반도체 : 더 똑똑한 반도체를 이기는 다수의 반도체
이런 칩은 반도체 설계 측면에서 매우 큰 변화를 불러올 수 있다. 일단 가장 큰 장점은 웨이퍼 면적을 상당히 절약할 수 있다는 것이다. 위에서 언급했듯 뉴로모픽 반도체는 기존 연산용 칩에 들어가는 ALU 등과 비교했을 때 수많은 설계를 없앨 수 있다.
그뿐만 아니라, 메모리 자체도 아낄 수 있다. wx에서 w값은 반도체 회로에 사용된 재료의 고유한 전류 값인 전도도(Conductivity)에 해당하는데, 이는 어떤 의미로는 이미 저장돼 있는 데이터라고 볼 수 있다. 기존에는 곱셈을 수행하기 위해서 HBM 등 메모리에 저장돼 있던 w값을 연산장치로 가져와야 했는데, 이제는 메모리 자체에서 w값을 통해 연산까지 할 수 있는 것이다. 뉴로모픽 반도체는 기존 반도체와 비교해 다른 용도를 위해 사용된 면적을 절약해서 전부 인공 뉴런과의 연결 개수를 늘리는 데 사용할 수 있다.
인공지능 기술의 발전은 어찌 보면 메모리가 CPU의 역할을 수행하니, ‘다수의 덜 똑똑한 반도체가 소수의 똑똑한 반도체를 이겨 나가는 과정’이라 할 수 있다. 첫 편[관련기사]에서 살펴봤듯 분기(Branch)와 같은 과정은 예측하기 매우 힘들기 때문이다. 반면 GPU는 분기와 같은 작업을 포기하고, 더 많은 실수 연산 장치를 투입해 CPU에는 불리한 작업인 인공지능 기술로 진출했다. 뉴로모픽 반도체 칩은 여기서 한 단계 더 나아갔다. 인간의 뇌에 더 가까운 모습을 한 것이다. 실제로 인간의 개별 뇌세포는 GPU의 연산 단위보다 훨씬 단순하지만, 그 수는 매우 많다는 것을 알 수 있다.
뉴로모픽 반도체 칩은 SK하이닉스와 같은 메모리 반도체 회사에 매우 큰 기회라고 생각한다. 일반적으로 CPU, GPU와 같은 칩은 설계가 어렵다. 복잡한 논리 회로들을 여러 개의 금속층을 이용해 연결해야 동작하기 때문이다. 하지만 뉴로모픽 반도체는 ALU와 같은 기능이 필요 없기 때문에 CPU, GPU와 비교했을 때 설계가 간단하다. 칩 내부의 모습은 단순한 구조의 반복일 것이다. 이미 메모리 반도체 회사들은 낸드플래시와 같은 비휘발성 메모리*를 만들면서 미세 소자 안의 전도성 등을 바꾸는 방법에 노하우가 있다. x값은 입력 전압 값에 대응하고, w값은 전도도 등으로 대응시키면 뉴로모픽 칩에 필요한 모든 요소를 만들기 수월할 것이다.
* 비휘발성 메모리 : 전원이 차단돼도 기존 값을 저장하는 메모리
메모리 반도체 회사들은 설계는 단순하지만, 똑같이 생긴 소자를 세계에서 가장 잘 만든다. 12Gb D램은 성인 엄지손톱 2배 수준 면적에 120억 개 이상의 쌍(트랜지스터+저장소)*이 형성돼 있다. 반복적 구조의 소자 안에 저항값 등을 이용해 w에 해당하는 값을 기록하고 전류를 흘릴 수 있다면 뉴로모픽 반도체를 만들 수 있는 것이다.
* 현재의 일반적인 D램 구조. 트랜지스터(T) 1개에 저장소(C) 1개가 붙는 1T1C 구조. CPU 내부의 S램의 경우 6T1C 구조로 저장소당 더 많은 트랜지스터가 필요함
파격적 시도, 어마어마한 도전
이러한 뉴로모픽 반도체들이 상용화된다면, 기존 인공지능 기술로 개발된 수많은 서비스에 더 많은 사람이 접근할 수 있게 될 것이다. 예를 들면, 현재 챗GPT의 기반이 된 GPT-4의 경우, 수백 기가바이트(GB) 이상 메모리 공간을 사용하는 것으로 알려져 있다. 이를 사용하기 위해서는 수천만 원의 GPU를 여러 개 묶어야만 한다. 하지만 뉴로모픽 반도체가 상용화된다면, 수만 원짜리 인공지능 스피커 수준에도 GPT-4급의 신경망을 탑재할 수 있을지도 모른다.
그러나 뉴로모픽 반도체가 아직 본격적으로 등장하지 않은 여러 이유가 있다. 첫 번째 이유는 무작위성을 가진다는 것이다. 매번 구동할 때마다 결과가 달라지면 문제가 생겼을 때 이것이 신경망 학습 문제인지, 칩 신뢰성 문제인지, 입력값 문제인지 등을 구분하기 힘들어진다. 이렇게 되면 사용자들이 사용 자체를 꺼리게 될 가능성도 높다. 특히나 현시점에 익숙하고, 잘 구동되는 GPU라는 대안이 있을 때는 더욱 그렇다.
두 번째 이유는 기존 연산 칩 회사들의 강력한 견제와 경쟁이다. 칩이 기존 컴퓨터 구조와 멀어질수록 이론상의 최대 효율은 올라가지만, 사용하기는 번거롭다. 만약 기존 반도체 회사들이 뉴로모픽 반도체를 만들되, 뉴로모픽 반도체보다 좀 더 폰 노이만 구조 컴퓨터에 가까운 구조로 구성할 경우, 뉴로모픽 반도체를 원하는 고객들은 조금 더 익숙한 형태의 반도체를 사용할 가능성이 높아질 것이다. 실제로 지금도 이러한 움직임은 일어나고 있다. 인텔의 뉴로모픽 칩 로이히(Loihi)[관련기사]의 경우, 폰 노이만 구조의 컴퓨터 구조에 SNN*이라고 부르는 인간 뇌세포의 정보 전달 메커니즘을 접목하고자 하고 있다.
* SNN(Spiking Neural network) : 인공 뇌세포 간 신호 전달을 인간에 좀 더 가깝게 만든 방식의 신경망
뉴로모픽 반도체 경쟁에서 밀리지 않기 위해서는 다양한 경험을 가진 인재를 모으고 고객에 더 가까이 다가갈 필요가 있다고 생각한다. 아날로그 신호 전문가, 인공지능 연구원 등 다양한 사람들을 모으고 이야기를 들어 방향을 정해야 한다. 또한, 뉴로모픽 반도체는 매우 다양한 방식으로 구현될 수 있다. 그래서 이 글에 나온 뉴로모픽 반도체는 다양한 미래 반도체의 대안 중 하나일 뿐임을 기억했으면 한다.
※ 본 칼럼은 반도체에 관한 인사이트를 제공하는 외부 칼럼으로, SK하이닉스의 공식 입장과는 다를 수 있습니다.