먼저 AI를 지원하는 기술 기반은 어떻게 되어 있는지 큰 그림을 먼저 보겠습니다. 그림 1은 AI 관련 기술의 전체 상(Overview)입니다. 크게 4개의 층으로 구성되어 있습니다.
(1) 하드웨어(칩과 서버)
최하층인 하드웨어입니다. 딥러닝 신경망 연산에 요구되는 고속 처리가 더 이상 CPU만으로는 대응할 수 없기 때문에 GPU 나 FPGA 및 ASIC 등의 고속 칩이 사용되고 있습니다.
또한 AI 서비스의 대부분은 클라우드 컴퓨팅에서 볼 수 있습니다만, IoT의 보급과 함께 최근 주목받고 있는 것이 에지(edge) 컴퓨팅입니다. IoT 엔드 포인트(단말기)에서 대량의 데이터가 연속생성 되지만 이들을 이용한 딥러닝 계산 처리를 인터넷으로 하다 보면 통신량 증가로 네트워크 비용과 클라우드 요금이 증가하고 처리 속도가 느려집니다. 그래서 사용자 가까이에 에지(edge) 서버를 설치하고 그 위에 인공 지능을 작동시킵니다.
(2) 기계 학습 라이브러리(프레임 워크)
제2층은 기계 학습(Machine Learning)을 실행할 수 있는 얼개를 가진 라이브러리입니다. 하드웨어가 자동차의 차체라면, 이쪽은 엔진과 같습니다.
라이브러리는 프레임워크라고도 불리며, 대부분 오픈소스로 무료제공되고 있습니다. 튜토리얼도 충실하기 때문에, 우리 엔지니어들은 손쉽게 이를 이용하여 딥러닝 학습 모델을 만들 수 있습니다.
(3) 인공 지능 플랫폼
라이브러리를 사용하여 이미지 인식이나 음성 인식 등의 학습을 해, 목적별로 사용자가 이용하기 편리한 서비스로 제공하는 것이 인공 지능 플랫폼입니다. 대부분의 AI 플랫폼은 클라우드를 기반으로 한 유료 서비스입니다. 예를 들어 Google Cloud Machine Learning에서 이미지 인식, 영상 분석, 음성인식, 기계 번역, 자연 언어 이해 등의 AI 서비스를 제공하고 있습니다.
(4) 인공 지능 응용 프로그램
라이브러리를 사용하여 스스로 기계학습을 시키고, AI 플랫폼이 제공하는 서비스를 이용한 응용 프로그램이 폭발적 기세로 확산되고 있습니다.
예를 들어 '이미지 인식'을 사용한 '결함 감지 및 예측' , '자연 언어 이해'를 사용한 '개인 비서' , '텍스트 분석'을 사용한 '지식과 검색' 등, 다양한 AI 기술을 조합하여 다양한 응용 프로그램이 속속 등장하고 있습니다.
딥러닝의 행보
이번 인공 지능의 고조는 2012년의 2개의 사건을 계기로 시작되었습니다. 하나는 2012년 6월, 구글이 고양이를 인식할 수 있는 AI를 개발했다고 발표했습니다. 지금까지 사용되던 기계 학습 알고리즘 대신 딥러닝이라는 새로운 알고리즘으로 AI가 자연스럽게 고양이를 인식(비지도 학습)한 것은 많은 전문가에게 큰 영향을 주었습니다.
또 하나는 같은 해 10월 캐나다 토론토 대학이 ILSVRC라는 이미지 인식 경연 대회에서 AlexNet 신경망을 사용하여 2위와 큰 격차로 우승한 것입니다. 이것으로 단숨에 딥러닝의 위력이 전 세계에 퍼지면서 AI 연구의 판이 바뀌었습니다.
그림 2에 그 충격 이후 딥러닝의 발전 상황을 정리하고 있습니다. 이듬해 2013년에는 즉시 하드, 라이브러리, AI 플랫폼 각 계층에서 새로운 성과가 나왔습니다. NVIDIA가 깊은 학습에 GPU를 사용한 효과를 발표하고 버클리 대학이 Caffe 라는 라이브러리를 개발하고 IBM이 Watson을 공개한 것이 2013년입니다.
2015년이 되면 신경망 라이브러리가 속속 등장하고 있습니다. Facebook이 Torch를 지원하고 현재 세계에서 인기 있는 Keras와 TensorFlow 일본의 Chainer, 중국의 PAI가 공개된 것도 이 무렵입니다. 라이브러리의 확충은 2016년에도 활발해, Microsoft가 CNTK(그 후 Cognitive Toolkit으로 개명)를 공개하고 Amazon도 mxnet의 지원을 공표했습니다.
라이브러리의 확충에 1년 늦은 느낌으로 큰 기업을 중심으로 한 AI 플랫폼이 속속 생겨났습니다.
2015년 Azure Machine Learning과 Amazon Machine Learning, 다음 2016년에는 Google Cloud Machine Learning과 Salesforce Einstein, Oracle Intelligent Applications, 그리고 2017년에 이르러서 NVIDIA GPU Cloud와 Apple Core Machine Learning등이 발표되고 있습니다.
그리고 매우 다양하여 그림 2에 실려 있진 않지만, AI를 활용한 응용 프로그램이 가히 폭발적으로 등장하고 있어, 가속도가 붙으며 퍼지고 있는 것이 현실입니다. 하드, 라이브러리, 플랫폼, 어플리케이션의 각 계층이 약간의 시간축의 차이를 가지면서, 확충 · 진화를 계속하고 있는 것이 지금의 AI입니다.
AI 칩과 에지(edge) 컴퓨팅
이어서 위 그림 1에서 최하층인 하드웨어의 AI 칩과 에지(edge) 컴퓨팅에 대해서 알아보겠습니다.
무어의 법칙 종언
무어의 법칙은 Intel 창업자 중 하나인 고든 무어가 1965년에 발표한 "반도체 집적률은 18개월 만에 2배가 된다" 라는 경험법칙입니다. 무려 50년 전의 법칙이지만, 지금까지 대체로 그 규칙에 따라 반도체 집적도가 진화해 온 엄청난 법칙입니다.
그러나 과연 최근에는 CPU의 집적률 상승도 둔화 경향을 보이며 무어의 법칙에 한계가 온 것으로 알려져 있습니다. 한편, 몇 번이나 죽음의 문턱에서 살아남은 법칙이며, "무어의 법칙은 건재하다"라고 주장하는 목소리도 여전히 있습니다. 저는 죽었다고 생각하지만, 5년 후 돌이켜 보며 "역시 잘못 생각했다"고 말하고 있을 자신을 기대하기도 합니다.
어쨌든 빅 데이터와 가상 통화 , 블록체인, 인공 지능 등 최근의 기술 동향은 대규모 처리 능력이 필요하고 이제는 CPU의 집적률에만 의존해서는 따라갈 수 없는 상황입니다. 그래서 등장한 것이 그림 3과 같은 CPU를 보조하는 연산 처리 칩입니다.
(1) GPU (Graphics Processing Unit)
원래 GPU는 컴퓨터 그래픽에 필요한 연산을 수행하는 비디오 칩이었습니다. CPU보다 코어 수가 방대하므로 CPU의 코어 수는 몇 개 정도인 데 비해 GPU는 코어 수가 수십에서 수천 개 까지 있습니다.
CPU(Central Processing Unit)가 범용적인 처리를 하지만 GPU는 CPU의 명령을 받고, 많은 코어를 활용하여 간단한 행렬 연산을 단숨에 병렬연산으로 처리하는데 적합한 전용 칩입니다(표1).
이미지 처리로 시작된 비디오 칩이지만, 그 후에도 동영상 편집이나 CAD, 3D 게임으로 퍼져, 그러한 시장이 확대되는 가운데 GPU로 가장 크게 성장한 기업이 NVIDIA입니다.
2012년에 Google은 1,000대의 컴퓨터(2,000개의 CPU)로 고양이의 이미지를 인식했지만, 이 정도의 컴퓨터를 준비할 수 있는 것은 Google 같은 대기업뿐입니다. 딥러닝의 미래에 눈을 뜬 NVIDIA는 다음 연도에 이 같은 심층 학습의 연산 처리에 GPU를 사용하는 실험을 하였고, 12개의 GPU로 2,000개의 CPU에 필적하는 큰 성과를 얻었습니다. 그리고 지금은 깊은 학습의 고속 연산 처리는 당연히 GPU를 사용하게 되어있습니다.
|
CPU |
GPU |
범용 처리 |
일반적인 처리가 타겟 (조건분기에 특화) |
간단한 처리가 타겟 (반복수해에 특화) |
병렬 처리 |
1 개당 2 ~ 4 코어 |
1 개당 수십 ~ 수천 코어 |
이용 형태 |
혼자 사용가능 |
CPU와 함께 사용 |
주요 용도 |
컴퓨터의 중앙 처리 장치 |
화상 · 동영상 처리, 3D, CAD, AI |
표1 : CPU와 GPU의 차이
(2) FPGA(Field-Programmable Gate Array)
FPGA는 세상에 있는 범용 IC(집적 회로)로는 처리할 수 없는 경우에, 목적에 따라 IC의 내부 논리를 만들어 담는 커스텀 IC입니다. 특징은 Field-Programmable이라는 명칭이 붙어있는 것처럼 제조 후 구매자가 논리를 변경할 수 있다는 것입니다. GPU로는 NVIDIA에 뒤지고 더는 Intel이 2015년에 FPGA 업체인 Altera(알테라)를 20조에 인수한 뉴스를 보고 처음으로 FPGA를 알게 되신 분들도 많으실 겁니다.
FPGA의 특징은 ASIC과 달리 내용을 변경할 수 있는 것이 큰 특징입니다(표 2). 또한 GPU보다 처리 능력은 뒤떨어 지지만 소비 전력이 작은 것도 주목 이유입니다. 이 특징은 대량의 서버가 밀집하는 클라우드 및 데이터 센터에 적합하며, Amazon AWS 및 Microsoft, IBM 등 각사의 클라우드에 속속 채용되고 있습니다. 2020년까지 클라우드 서버의 1/3은 FPGA가 될 것이라는 예상도 나오고 있습니다.
(3) ASIC ( Application specific integrated circuit )
ASIC은 특정 용도로 설계된 맞춤형 칩입니다. FPGA는 초기 투자가 없는 범용 제품인 데 반해, ASIC는 전용 제품이므로 초기 투자가 소요됩니다.
FPGA는 내부 로직(배선 정보)을 FLASH ROM에 기억하고 있으므로 몇 번이라도 논리를 다시 작성할 수 있지만, ASIC는 ROM이므로 로직의 변경이 불가합니다. 그러나 전용 로직을 넣어 제작한 커스텀 칩이므로 양산 단가를 낮출 수 있습니다.
2017년 Google이 발표한 기존 프로세서 TPU(Tenorflow Processing Unit)도 실은 ASIC입니다. 고성능이지만 AlphaGo나 Google 이미지 검색 등 자사에서 이용하기 위한 칩이므로 타사에는 판매하지 않습니다.
|
FPGA |
ASIC |
프로그램 변경가능 여부 |
로직 변경 가능 |
논리의 재구성 불가 |
개발 비용 |
범용 제품이므로 초기 비용 적음 (제조 후 버그 수정 가능) |
개발 비용, 기간이 필요 (사양 변경, 설계 오류가 위험) |
비용 |
ASIC보다 높음 |
대량 생산으로 저비용 |
소비 전력 |
GPU보다 낮음 |
FPGA보다 낮게 가능 |
lot |
소량 lot, 짧은 사이클 지향 |
대량 lot, 변경이 없는 모델 지향 |
표 2 : FPGA와 ASIC의 차이
에지(edge) 컴퓨팅
현재 Google이나 Microsoft, Amazon 등의 AI 플랫폼이 제공하는 서비스의 대부분은 클라우드라고 볼 수 있습니다. 클라우드는 많은 데이터를 축적 · 관리할 수 있고, 확장 가능하며 보안도 강력하기 때문에 기계 학습을 할 수 있는 최적의 환경이라고 할 수 있습니다.
한편, IoT의 보급에 따라 IoT 단말기에서 자동으로 수집되는 데이터가 늘어나 이러한 방대한 데이터를 클라우드로 처리하는 것은 다음과 같은 단점이 있습니다.
- 통신량이 방대해지고, 통신료와 클라우드 이용료가 많이 증가
- 인터넷을 통해 처리되기 때문에 처리 속도가 느려짐
- 보안 등의 이유로 클라우드에 데이터를 올리고 싶지 않다
- 인터넷 접속이 불안정해지면 처리가 불가
이 문제를 해결하기 위해 현장에 가까운 곳에 에지 서버를 두고 로컬에서 빠르게 처리할 수 있도록 구성한 것이 에지 컴퓨팅입니다. 일반적으로 에지 서버는 클라우드와 함께 사용되는 경우가 많지만, 그 경우 역할 분담도 2가지 케이스입니다.
하나는 기계 학습 자체는 클라우드에서 수행하고 학습된 모델을 에지 서버에 넣어 처리하는 형태입니다.
다른 하나는 기계 학습도 에지 서버에서 수행하고 클라우드는 분석 등에만 이용하는 형태입니다(그림 2).
포그(fog) 컴퓨팅
에지 컴퓨팅과 비슷한 말로 포그 컴퓨팅이 있습니다. 이것은 네트워크 장비 업체인 Cisco가 제창한 것으로, 클라우드(구름)보다 현장(지표)에 가까운 곳이라는 의미에서 포그(안개)라는 말을 사용하고 있습니다. 의미는 동의어입니다. 굳이 말하면, 에지가 하드웨어 성향이라면 안개가 네트워크 쪽 성향이랄까요?
정리
대규모 처리 능력을 필요로 하는 AI 칩과 에지(edge) 컴퓨터에 대해 알아봤습니다. 최근의 기계 학습 라이브러리는 모두 GPU에 대응하고 있습니다. 현재 GPU는 NVIDIA의 독무대로 가격이 비싸지만, 경쟁이 치열해짐에 따라 가격이 낮아지고 성능이 좋아질 것으로 예상됩니다. 그리고 그 GPU를 넣는 서버가 클라우드뿐만 아니라 에지에 보급돼가고 있는 것이 지금의 상황입니다.
'AI · 인공지능 > 알기쉬운 AI' 카테고리의 다른 글
[알기쉬운 AI - 19] 머신 러닝의 학습 데이터 (0) | 2020.02.08 |
---|---|
[알기쉬운 AI - 18] 계층 신경망 (0) | 2020.02.05 |
[알기쉬운 AI - 17] 기계 학습 방법 (0) | 2020.02.04 |
[알기쉬운 AI - 16] 기계 학습 라이브러리 (0) | 2020.02.03 |
[알기쉬운 AI - 14] 흐름으로 중요성을 파악!? '의사결정트리'란? (0) | 2019.12.26 |
[알기쉬운 AI - 13] 향후 매출을 예측하고 싶다! '회귀분석'이란? (0) | 2019.12.25 |
[알기쉬운 AI - 12] 특징으로 데이터 분류, '서포트벡터머신'이란? (0) | 2019.12.24 |
[알기쉬운 AI - 11] 그룹에서 당신은 어떤 타입? '클러스터링'이란? (0) | 2019.12.23 |