[Vol.7] 대용량 데이터 예측 분석을 위한 확장형 빅데이터 및 인공지능 현황
대용량 데이터 예측 분석을 위한 확장형 빅데이터 및 인공지능 현황
우종욱 ([email protected]))
캘리포니아주립대 교수
인공지능과 빅데이터에 관한 관심은 전 세계에서 식지 않고 계속되고 있다. 관련해서 이를 선도하고 있는 미국 실리콘밸리의 최신 동향을 과거 발전역사와 함께 소개한다. 먼저, 대용량 데이터를 저장하고 분석하기 위해 데이터 중심의 분산 병렬 컴퓨팅을 2012년 경 부터 이용하여 왔고 이것을 빅데이터 라고 불러왔다. 또한 텐서플로우와 GPU칩을 이용하여 서버 하나에서 병렬 컴퓨팅을 하는 인공지능 딥러닝도 2015년 이래로 빠르게 발전 하여 왔다. 스탠포드 대학의 앤드류 잉 박사의 이론에 따르면 대용량 데이터를 이용할수록 전통적 머신러닝 보다 딥러닝을 이용한 예측 모델의 정확도가 높아진다고 한다. 그에 따라 대용량 데이터를 이용한 딥러닝 모델을 구현하기 위해 GPU를 이용한 분산 병렬 컴퓨팅이 2021년 현재 빠르게 발전하고 있다. 본문에서 이러한 빅데이터 인공지능의 과거와 현재 최신 기술 현황을 I. 데이터 중심 분산 병렬 컴퓨팅, II. In-Memory 컴퓨팅, III. GPU 컴퓨팅, IV. 맺음말로 소개한다.
I. 빅데이터 및 데이터 중심 분산 병렬 컴퓨팅
웹 이전의 세계에서는 데이터가 부족해서 문제였으나 웹 이후 지난 25여년 간의 웹 뿐 아니라 여러 IoT, 생물학, 의학, 소셜미디어, 모바일 폰 상에서의 데이터 축적은 데이터가 너무 많아서 문제이다. 왜냐하면 이러한 데이터를 저장하고 분석하여 필요한 정보를 추출하는 시간과 비용이 너무 비싸지기 때문이다. 더구나 수많은 아날로그 정보를 디지털 화 함으로써 축적된 방대한 데이터도 문제이고 아날로그 정보를 디지털화 하는 단순하지만 비싼 응용 시스템도 문제이다. 구글로 인하여 발전한 빅데이터의 분산 저장 및 분산 병렬 연산인 MapReduce 방식과 그 밖의 여러 NoSQL DB는 이러한 방대한 데이터 중 단순하지만 비싼 데이터 추출 알고리즘을 분산 병렬 연산 방식으로 저렴하고 용이하게 구현하는 해법을 제공한다.
특히 빅데이터는 on-premise 방식으로 자체 클러스터를 설치하던가 클라우드 컴퓨팅 서비스를 이용할 수 있다. 이에 관한 활용방안 및 기대효과는 다음과 같은 1) 구글에서 왜 Map/Reduce 방식이 고안 되었는지와 2) 뉴욕타임즈에서의 예를 들어 설명하고자 한다. 덧붙여서 3) 빅데이터 해법의 핵심인 아파치 하둡 프로젝트를 소개한다.
구글 연구원들이 당면했던 문제 중의 한 예는 수억의 사람들이 방문한 사이트들의 사용자 로그 정보를 어떻게 저비용으로 저장하는 것이었다. 또한, 저장된 데이터를 어떻게 하면 낮은 비용으로 쉽고 빠르게 가장 방문빈도가 높은 사이트를 찾아내어 방문빈도를 정렬하고 검색 인덱싱에 적용하여 이용할 수 있느냐는 것이었다. 즉, 천문학적으로 방대한 데이터에서 비교적 쉬운 계산 알고리즘을 돌려서 빠르게 해법을 찾아내는 시스템의 구축이었다. 그래서 병렬 프로그래밍에서의 전통적인 MapRedude 알고리즘을 해법으로 하는 시스템을 구글 내에서 구축하게 되었다. 이 해법은 구글이 2014년 경 GFS 구글 분산 파일 시스템과 구글 맵리듀스 구조를 논문으로 발표하여 아파치 하둡(http://hadoop.apache.org/) 프로젝트가 시작되는 모티브가 되었다.
또한, 그 이후 미국에서는 전자상거래 사이트인 아마존에서 AWS라는 아마존 클라우드 컴퓨팅 서비스를 구축하여 누구든지 싼 비용으로 클라우드 컴퓨팅을 이용할 수 있는 시대가 되었다. 이 AWS 서비스를 이용하면 여러 서버로 아파치 하둡 클러스터를 구축하여 비교적 단순한 프로그래밍 로직이지만 방대한 데이터를 가진 코드를 맵리듀스 연산 방식으로 돌려서 원하고자 하는 답을 찾아낼 수 있다. 예를 들면, 2007년도에 뉴욕타임즈에서 1851년도부터의 약 일천일백만개 되는 기사(약 4 테라 바이트 Tiff 파일)를 pdf 파일 방식으로 바꾸려고 하였다. Tiff 파일을 pdf 파일로 바꾸는 아주 간단한 프로그래밍이지만 그 데이터 양이 천문학적으로 방대하여 그 비용과 시간이 너무 비쌌었다. 하지만 데렉이라는 소프트웨어 엔지니어가 아마존 AWS의 EC2와 S3를 이용하여 단 $240로 24시간 내에 모두 pdf파일로 바꾸어 냈다.
아파치 하둡 프로젝트는 이러한 맵리듀스 병렬 계산 시스템을 구축할 수 있는 소프트웨어 플랫폼을 무료로 제공한다. 따라서 여러 대의 컴퓨터 즉 하드웨어만 있으면 누구나 아마존의 AWS EC2와 같은 맵리듀스 시스템을 구축할 수 있다. 대한민국 정부, 연구소나 학교에서 맵리듀스 시스템을 구축하고 Hadoop과 그 생태계를 이용한다면 대한민국 기업, 연구소, 기업체 및 일반인등을 위한 맵리듀스 파일 시스템 및 연산 시스템을 구현 할 수 있을 것이다. 즉 누구나 소규모의 데이터 중심 슈퍼컴퓨터를 이용할 수 있다.
하둡 빅데이터 시스템을 통하여 방대한 데이터를 쉽고 빠르게 처리할 수 있는 기반이 구현되면 IoT, 소셜미디어, 여러 과학 분야, 지질 및 천문기상 데이터를 분석하는데 이용 가능하며 웹이나 소셜미디어 상에서는 사용자들의 행동방식을 분석함으로써 사용자들 구미에 맞는 정보 제공이 가능하다. 또한, 미 국방부에서 연구한 것처럼 방대한 웹사이트 소셜미디어 데이터를 분석하여 적대 조직을 발견하거나 테러를 방지할 수 있는 시스템을 구현하는데 이용 할 수 있을 것이다.
맵리듀스 컴퓨팅은 맵리듀스 방식만을 이용하는 제한적 병렬 컴퓨팅으로 정의 할 수 있다. 따라서 맵리듀스 컴퓨팅 환경에서는 개발자가 어떤 데이터계산을 위하여 Map()과 Reduce() 기능만 개발하면 나머지 병렬 계산 기능인 병렬화, 데이터 분산, load balancing, fault tolerance등은 컴퓨팅 환경이 제공해 준다. 맵리듀스 방식은 Functional 프로그래밍 언어인 LISP에서 주로 쓰던 기능으로써 간단하지만 방대한(Tera- 및 Peta-바이트) 데이터를 처리해야만 하는 계산에 주로 쓰인다. 그 예는 앞에서 언급한 뉴욕타임즈 이미지 파일의 경우이다.
Map()은 데이터를(key, value)의 쌍으로 변환하는 함수이다. Map() 함수를 병렬계산기의 각 프로세서에서 실행하면 각 프로세서에 분산해서 입력된 데이터들이(key, value)의 쌍으로 변환된 중간 데이터가 생성된다. 입력데이터가 각 Map() 함수에 분산되어 보내지면 Map1()함수는 주어진 입력데이터를(key1,value11),(key2,value12),…,(keyn,value1n)의 중간 출력 값으로 변환시킨다. 다른 Mapm()함수들도 병렬연산으로 동시에 각 출력 값을 계산한다.
아파치 하둡은 본래 웹 서치 엔진인 아파치 너치(Nutch) 프로젝트의 기본으로 구현되었다. 하둡은 맵리듀스 연산과 하둡 분산 파일 시스템(HDFS: Hadoop Distributed File Systems)을 구현한 오픈 프로젝트 프레임워크이다. 하둡의 가장 기본적인 아이디어는 “연산기능을 데이터에 근접시키자”이다. HDFS는 구글의 구글 파일 시스템(GFS)에서 영감을 얻었으며 각 연산 기능을 가능한 한 연산 데이터에 근접하도록 하여 대용량 데이터 전송을 줄이며 연산 효율을 높이도록 구현되어 있다. 따라서, 네트워크상에 연결된 수 천 개의 컴퓨터에 하둡을 설치하여 클러스터 환경을 구축하면 하둡의 HDFS는 거대한 파일을 신뢰성 있게 저장할 수 있다. 그리고 이러한 하둡의 클러스터 환경에서 맵리듀스 병렬연산이 가능하다. 또한, 한 노드가 작동하지 않아도 나머지 노드들은 여전히 작동할 수 있도록 하둡 프레임워크는 자동으로 처리할 수 있는 높은 신뢰성을 보유한다.
연산중심의 전통적인 고비용 슈퍼컴퓨터와 달리 빅데이터, 하둡 클러스터는 맵리듀스 컴퓨팅 엔진과 HDFS 파일시스템을 가지고 대용량 데이터의 저장과 처리 및 분석을 기존의 리눅스 서버 등을 이용하여 비교적 저비용으로 할 수 있다. 또한 그림1과 같이 확장성이 뛰어나서 데이터가 증가할수록 노드 즉 서버를 클러스터에 추가하여 데이터 저장과 연산을 선형적으로 증가 시킬 수 있는 장점이 있다. 그러나 맵과 리듀스 연산 사이에 만들어지는 중간 데이터를 스토리지에 저장해야 하며 이때 성능저하가 일어난다. 특히, 머신러닝과 같은 반복적인 연산 루프가 일어나는 예측 분석 프로그래밍과 같은 경우에는 수많은 중간 데이터가 발생함으로 이를 하드디스크나 SSD에 저장해야 할 경우 병목현상이 일어난다. 즉, 하둡 클러스터는 데이터사이언스 머신러닝을 해야 하는 대용량데이터 예측 분석에는 적합하지 않다.
II. In-Memory 계산형 빅데이터 클러스터
스파크(Spark)는 2009년경 UC Berkeley 대학의 AMP Lab 대학원생인 마텔 자하리에 의해서 분산 병렬 컴퓨팅 시스템의 연구 및 교육 프로젝트로 구축되었다. Spark는 In-Memory 방식으로 중간 데이터를 메모리에 임시저장하며 연산시 이 메모리상의 데이터를 빠르게 이용할 수 있는 플랫폼이다. 이론적으로는 하둡의 맵리듀스 연산엔진보다 20~100배 정도 빠른 연산이 가능하다. 대화형 프로세스 즉 CLI(Command Line Interface)를 위한 Spark 쉘을 지원하며 응용 프로그램은 Scala, Python, Java, R 언어로 작성할 수 있다. 2010년에 Apache 오픈 소스 프로젝트로 등록되었으며 마텔이 동료 대학원생들과 창업한 Databricks Inc라는 회사가 Spark 프로젝트를 이끌고 있다.
Spark용 데이터는 클러스터를 구성하는 서버인 노드에 분할되어 배포된다. 스파크 클러스터는 UC Berkeley의 자체 분산 파일 시스템인 Mesos 에 데이터를 분산하여 저장할 수 있을 뿐만 아니라 하둡의 HDFS에도 데이터를 저장할 수 있다. 데이터는 RDD(Resilient Distributed Data)라고 불리는 기본 요소로 구성되어 데이터가 메모리에서 손실될 때 데이터의 이력을 추적할 수 있도록 RDD 계보를 유지하며 이러한 계보를 이용하여 데이터를 복구하는 데 사용할 수 있다. Mesos나 HDFS 파일 시스템 어느 것을 이용하던 저장되는 파일 즉 데이터들은 앞서 언급한 RDD를 기본으로 하며 이 RDD는 연산을 수행하기 위한 데이터의 기본 단위이다. RDD는 파일, 메모리의 데이터 및 다른 RDD를 통하여 새로이 생성된다. RDD 기능에는 작업(Actions)과 변환(Transformation)의 두 가지 유형이 있다. 작업 관련 함수들은 결과 값을 제공하고 변환 함수들은 기존 RDD에서 새 RDD를 정의한다. RDD는 지연 실행(Lazy Execution)이라고 하여서 작업 즉 action 함수가 수행될 때까지 코드가 실행되지 않아서 메모리에서 데이터로 구체적으로 존재하지 않는다. 즉, 작업(action) 함수가 수행되어야지만 실제 RDD 데이터가 만들어지며 메모리에 저장이 되고 이것은 일련의 함수 호출인 체인 변환으로 작업이 수행되어 RDD가 구현되고 체인이 종료된다.
스파크 플랫폼은 그림2에서처럼 Spark SQL, Spark R, 기계 학습, 그래프 및 스트리밍 API를 지원하는 라이브러리로 구성된다. 스파크 스트리밍은 서버에서 실시간으로 생성되는 웹 사이트, 오작동, 침입, 상업 광고 및 사기를 모니터링하고 감지하기 위해 스트리밍 데이터를 거의 실시간으로 처리한다. 스파크 SQL은 하둡의 하이브(Hive)처럼 SQL 문법으로 프로그래밍 하여 대용량 데이터 쿼리 및 분석을 빠르게 할 수 있다. 산업계에서 많이 이용하는 스파크 라이브러리 중에서 산·학·연 모든 곳에서는 특히 머신러닝 라이브러리가 하둡 맵리듀스 엔진의 단점을 보완할 수 있는 가장 관심 받는 API이다. 스파크 머신러닝 라이브러리는 기존의 전통적인 분류(Classification), 회귀(Regression), 추천 알고리즘 대부분을 제공하며 대용량 데이터를 기반으로 이용하여 예측 모델을 구현할 수 있게 한다. 즉 대용량 데이터의 예측 분석을 In-Memory 방식으로 구현하면 맵리듀스 엔진의 병목 현상 없이 빠르게 미래의 현상을 예측할 수 있는 모델을 구현할 수 있다.
또한, 데이터프레임(DataFrame)이 스파크에 쓰이는 모든 언어들에 제공된다. 데이터프레임은 테이블형태로 데이터를 저장하는 개념으로 R 언어 등에 데이터 분석 및 예측을 쉽게 구현하는데 이용되어 왔다. 데이터프레임을 이용하여 대용량 데이터의 저장 및 처리를 용이하게 구현 할 수 있으며 스파크 SQL 및 머신러닝 파이프라인에서도 쉽게 이용할 수 있다.
최근의 스파크 3.x 버전에서는 딥러닝의 피드 포와드(Feed Forward)인 Multi Perceptron 알고리즘과 SVM을 Collaborative Filtering과 같은 추천 모델 등에 쉽게 이용할 수 있게 하는 Factorization Machine 알고리즘도 제공한다.
스파크는 맵리듀스 보다 인메모리 처리를 통해 훨씬 더 빠른 컴퓨팅 성능을 구축할 수 있으며 여러 API를 제공하여 데이터 연산을 통한 데이터 분석 및 예측에 널리 쓰여 왔다. 특히 하둡이 이미 마켓에 널리 쓰이고 있음으로 스파크 연산 엔진을 하둡 클러스터에 통합하여 맵리듀스 엔진과 함께 스파크 연산 엔진도 사용하는 방향으로 발전하였다. 하둡 클러스터에 스파크 엔진이 통합되어 기존의 HDFS를 이용할 수 있으니 데이터 수집과 쿼리는 하이브 피그 같은 맵리듀스 연산 엔진을 이용하면서 데이터 엔지니어링과 분석을 할 수 있다. 그리고 실시간 데이터 쿼리나 예측 분석 모델 구현은 스파크 연산 엔진을 통하여 스파크 SQL과 머신러닝 연산을 구현한다.
III. GPU 칩을 이용한 빅데이터 딥러닝 클러스터
전통적인 데이터 과학은 작은 용량의 데이터 세트를 가지고 Python 및 R 같은 언어로 기계 학습 모델을 개발한다. 보통 작은 용량의 데이터는 최대 몇 십 메가(Mega) 바이트의 데이터 크기를 가지며 기가(Giga) 바이트 이상의 대용량 데이터를 처리할 때는 메모리 등 여러 자원 문제로 인하여 프로그램이 다운된다. 그림3은 기존의 전통적 데이터사이언스 세계와 빅 데이터 커뮤니티 간의 필요한 엔지니어 숫자와 그 격차를 보여준다.
전통적인 데이터 프로젝트는 작은 용량의 데이터만으로 데이터 분석과 예측을 한다. 그러나 데이터가 기하급수적으로 증가하는 동안 대용량 데이터를 저장하고 분석 예측 할 수 있는 기술을 가진 더 많은 빅 데이터 엔지니어, 분석가 및 과학자가 필요하다. 그러나 그림3에서 보여 주듯이, 이러한 대용량 데이터 기술자들의 수요가 많이 필요하지만 전통적인 기술만을 이용하는 엔지니어나 과학자들이 대다수인 것이 현실이다. 대한민국에서는 주로 대기업에 소수의 빅데이터 엔지니어가 존재하지만 미합중국에서는 보다 많은 빅데이터 엔지니어가 중소기업 대기업을 막론하고 존재한다. 이것은 대학이나 기업에서 빅데이터 교육을 제공할 역량이 있는지에 따른 결과이다.
마찬가지로, 그림3의 전통적인 데이터사이언스 인원을 딥러닝 커뮤니티의 인원수로 대체하여 생각하여 볼 수도 있다. 단일 서버를 사용하는 딥러닝 시스템에서도 기가바이트 이상의 대용량 데이터를 읽고 처리할 때 보다 많은 빅데이터 엔지니어와 과학자가 필요하다.
멀티 코어가 있는 GPU 칩은 병렬연산이 가능하여 딥러닝 라이브러리에서 제공하는 알고리즘을 효율적으로 구현할 수 있음으로써 다양한 딥러닝 애플리케이션 개발을 가속화하여 왔다. Tensorflow 및 Keras와 같은 딥 러닝 라이브러리는 GPU 칩의 멀티 코어를 병렬 컴퓨팅으로 효율적으로 사용하여 고성능을 달성한다. Stanford University의 Andrew Ng 박사는 데이터가 많을수록 딥러닝 모델이 레거시 머신 러닝보다 확장성과 정확성이 더 높다고 주장 하였다. 즉, 그림4는 앤드류 잉 박사가 주장한 것으로 대용량 데이터를 가지고 예측 모델을 구현할 때 기존의 머신러닝 모델은 퍼포먼스 성능에 한계가 있지만 딥러닝 모델은 성능이 꾸준히 향상된다는 것이다. 그러나 대한민국 내 산학연에서는 그림3에서처럼 주로 전통적인 데이터 사이언티스들이 작은 용량의 데이터를 가지고 딥러닝 모델을 구축하여 앤드류 잉 박사가 주장한 딥러닝의 장점을 제대로 활용하지 않는 문제가 있다.
GPU칩 제조의 리더인 NVIDIA와 빅데이터 커뮤니티에서는 GPU와 함께 빅데이터 플랫폼을 활용하여 HDFS나 AWS, GCP 파일시스템에 저장된 방대한 데이터 세트를 읽고 레거시 머신 러닝과 딥러닝 모델을 모두 활용하기 위해 노력하고 있다.
그 해법중 하나인 RAPIDS는 NVIDIA CUDA를 활용하여 GPU에서 기계 학습 예측을 실행하기 위한 오픈 소스 소프트웨어 라이브러리이다[4]. NVIDIA CUDA는 병렬 작업을 지원하는 병렬 컴퓨팅 아키텍처이다. NVIDIA는 ETL, 데이터 엔지니어링, 데이터 분석 및 데이터 예측의 성능을 크게 향상시키는 Rapids for Spark 3.0을 만들었다. 따라서 GPU를 이용할 수 있는 Spark 3.0은 그림5와 같이 딥러닝과 머신러닝을 모두 지원한다. 또한 그림6과 같이 빅데이터 클러스터에 GPU가 첨가 되어 대규모 데이터 세트를 처리할 수 있는 데이터 중심 연산이 가능하여 그림3에 나타난 전통적인 데이터사이언스 및 딥러닝 커뮤니티와 빅데이터 커뮤니티 간의 인적자원 격차를 줄일 수 있다.
그림6에서처럼 CPU와 GPU가 모두 있는 다중 노드로 Big Data 클러스터를 구축할 수 있다. 이 클러스터에 Spark와 Rapids를 통합하면 레거시 머신러닝 및 딥러닝 알고리즘을 모두 사용하여 빅데이터 예측 분석을 구현할 수 있다. 이러한 빅데이터 클러스터는 GPU 칩의 병렬 컴퓨팅 작업과 CPU의 분산 병렬 컴퓨팅을 동시에 가능하게 하며 결국 초고성능을 달성할 수 있다. 또한 빅데이터의 핵심 기능인 대용량 데이터 저장, 빅데이터 엔지니어링 및 분석도 가능하다.
관리형(Supervised) 머신러닝 중 하나인 분류(Classification)는 일반적으로 광고 클릭 및 신용 카드 사기를 감지하는 데 사용된다. 이러한 알고리즘은 결정 트리(Decision Tree), Random Forests, Gradient Booting Tree 등의 전통적인 기계 학습 알고리즘이 있다. 랜덤 포레스트는 많은 의사 결정 트리를 결합하여 상관관계가 없는 결정 트리 세트로 과적합(overfit)의 위험을 줄일 수 있는 결정 트리의 앙상블이다. 마찬가지로, Gradient Boosting Tree(GBT)는 기계 학습 알고리즘 그룹으로 의사 결정 트리를 사용하며 여러 개의 가벼운 학습 모델을 결합하여 강력한 예측 모델을 만든다. 최근에는, 이러한 GBT를 기반으로 XGBoost 알고리즘이 널리 쓰이고 있는데 차이가 있기도 하지만 때로는 GBDT(Gradient Boosting Decision Tree) 및 GBM(Gradient Boosting Machine)이라고도 불리며 분산형 그래디언트 부스팅 라이브러리를 제공한다. 빅데이터 커뮤니티에서도 주목을 받고 있으며 병렬 트리 부스팅을 제공하여 Hadoop/Spark엔진을 이용한 빅데이터 클러스터에서 병렬 분산 컴퓨팅이 가능하다. 분류를 위해서 Spark 상에서 XGBoostClassifier를 사용할 수 있다. 가장 중요한 것은 XGBoosting을 RAPIDS와 스파크로 GPU로 실행하여 초고성능 예측모델 구현이 가능하다는 것이다.
머신러닝을 위한 빅데이터 클러스터에 GPU를 첨부한 해법 외에 딥러닝 응용 프로그램을 위한 분산 병렬 처리는 우버(Uber)에서 구현한 호로보드(Horovod)를 이용한다. 호로보드는 GPU를 사용한 딥러닝 코드상에서 분산 병렬도 가능하게 하여 주는 전통적인 MPI(Message Passing Interface) 기반의 플랫폼이다. MPI는 슈퍼컴퓨터를 구축가능 하게 하는 통신프로토콜이다. 즉, GPU가 설치된 여러 개의 서버로 구현된 GPU 클러스터에서 기존에 구축된 딥러닝 코드를 분산 병렬 연산이 가능하도록 호로보드 함수 기능을 추가할 수 있다. 또한 NCCL(NVidia Collective Communication Library)를 이용하여 딥러닝 학습과 관련된 All-reduce, All-garther, Reduce, Broadcast 및 Reduce-scatter 같은 통신 루틴을 제공한다. 결과적으로, GPU칩 자체의 병렬 연산에 더하여 설치된 서버들 숫자에 따라 선형적으로 확장된 분산 병렬 연산까지 더 할 수가 있다. 호로보드는 텐서플로우, 케라스, PyTorch, 아파치 MXNet과 같은 대부분의 딥러닝 라이브러리를 지원하여 GPU클러스터의 분산 병렬 연산을 가능하게 한다. 쉽게 말해서 딥러닝 코드가 있을 때 기존의 코드에 호로보드 함수를 추가 하면 분산 병렬로도 실행이 가능하여 초고성능을 이룰 수가 있다.
IV. 맺는말
대용량 데이터를 저장 및 처리 하는 데이터 중심의 슈퍼컴퓨터가 빅데이터라는 이름으로 2004년 경 구글을 선두로 아파치 하둡 프로젝트로 발전하여 왔다. 2009년 선보인 스파크 인메모리 연산 방식은 빅데이터 클러스터의 연산 성능을 몇 십 배 향상 시켰으며 대용량 데이터의 예측 분석을 가능하게 하는 빅데이터사이언스를 발전시켰다. 2015년 구글이 GPU칩을 이용한 텐서플로우 라이브러리를 공유함으로써 딥러닝을 통한 인공지능기술이 급속히 발전하게 되었다. 앤드류 잉 교수의 이론대로 대용량 데이터로 딥러닝 모델을 구현하여 성능을 향상시키기 위해서는 빅데이터 클러스터상에서 딥러닝 프로그램을 실행시켜서 대용량 데이터의 로딩과 연산을 효율적으로 하는 것이 필요하다. 따라서 최근 빅데이터 클러스터에 GPU칩을 설치하여 머신러닝 연산속도를 향상시키는 RAPIDS가 구축되었다. 또한 GPU 클러스터를 구현하여 여러 GPU로 딥러닝 연산속도를 향상시키는 호로보드가 구축되었다.
2021년 현재 이러한 시스템을 기반으로 하여 대용량데이터를 이용한 예측 분석으로 모델 성능을 좀 더 빠르고 정확히 향상 시킬 수 있는 시대가 되었다. 클라우드 컴퓨팅, 빅데이터 및 GPU 칩 선도기업인 아마존, 구글, 마이크로소프트, 데이터브릭스나 NVIDIA 같은 산업체들이 첨단기술을 빠르게 발전시키고 있지만 미합중국과 대한민국을 비롯하여 세계 선진국 대학이나 정부에서 이러한 첨단기술을 따라가기에 벅찬 것이 현실이다. 또한 고가의 장비가 있고 교수요원들이 새로운 기술을 빠르게 습득하여야만 대학에서의 이론과 실습교육이 가능한 것도 현실이다. 미합중국의 첨단기업들은 이러한 격차를 줄이며 우수인재를 확보하기 위해 첨단 장비, 소프트웨어, 실습교재를 산학연 특히 대학에 공유하고 있다.
이러한 현실은 대한민국만의 문제가 아니라 미합중국이외 다른 아시아 및 서구 선진국들도 마찬가지로 이러한 첨단기술의 장비 구비, 교육 및 습득에 어려움을 겪고 있다. 본고에서 서술한 현황이 대한민국 첨단 산학연의 나아갈 바에 도움이 되리라 본다.
[참고문헌] [1] 아파치 스파크, https://spark.apache.org/ [2] 호로보드, https://horovod.ai/ [3] https://horovod.readthedocs.io/ [4] RAPIDS, https://rapids.ai/ [5] Dauletbak, D., Heo, J., Kim, S., Kim, Y., and, Woo, J.(2021). Scalable Traffic Predictive Analysis for Smart City using GPU in Big Data. KSII The 16th Asia Pacific International Conference on Information Science and Technology(APIC-IST), June 20-22 2021, pp144-148, ISSN 2093-0542 [6] J. Woo and Y. Xu, “Market Basket Analysis Algorithm with Map/Reduce of Cloud Computing,” in Proc. of International Conference on Parallel and Distributed Processing Techniques and Applications(PDPTA), Las Vegas. 2011.