본문바로가기
  • BUSINESS
  • PRODUCT
  • CUSTOMER
  • COMMUNITY

제 목 대용량 데이터 예측 분석을 위한 확장형 빅데이터 및 인공지능 현황
등록일 2021-09-01
첨부파일



<사진 출처 : freepik.com>


인공지능과 빅데이터에 관한 관심은 전 세계에서 식지 않고 계속되고 있다. 관련해서 이를 선도하고 있는 미국 실리콘밸리의 최신동향을 과거 발전역사와 함께 소개한다. 먼저, 대용량 데이터를 저장하고 분석하기 위해 데이터 중심의 분산 병렬 컴퓨팅을 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파일로 바꾸어 냈다.




 

<사진 출처 : freepik.com>


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 프로젝트를 이끌고 있다. 스파크 플랫폼은 그림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과 머신러닝 연산을 구현한다.



<사진 출처 : freepik.com>


III. GPU 칩을 이용한 빅데이터 딥러닝 클러스터

전통적인 데이터 과학은 작은 용량의 데이터 세트를 가지고 Python 및 R 같은 언어로 기계 학습 모 델을 개발한다. 보통 작은 용량의 데이터는 최대 몇 십 메가(Mega) 바이트의 데이터 크기를 가지며 기 가(Giga) 바이트 이상의 대용량 데이터를 처리할 때는 메모리 등 여러 자원 문제로 인하여 프로그램이 다운된다. 그림3은 기존의 전통적 데이터사이언스 세계와 빅 데이터 커뮤니티 간의 필요한 엔지니어 숫 자와 그 격차를 보여준다. 전통적인 데이터 프로젝트는 작은 용량의 데이터만으로 데이터 분석과 예측을 한다. 그러나 데이터가 기하급수적으로 증가하는 동안 대용량 데이터를 저장하고 분석 예측 할 수 있는 기술을 가진 더 많은 빅 데이터 엔지니어, 분석가 및 과학자가 필요하다. 그러나 그림3에서 보여 주듯이, 이러한 대용량 데이 터 기술자들의 수요가 많이 필요하지만 전통적인 기술만을 이용하는 엔지니어나 과학자들이 대다수인 것 이 현실이다. 대한민국에서는 주로 대기업에 소수의 빅데이터 엔지니어가 존재하지만 미합중국에서는 보 다 많은 빅데이터 엔지니어가 중소기업 대기업을 막론하고 존재한다. 이것은 대학이나 기업에서 빅데이 터 교육을 제공할 역량이 있는지에 따른 결과이다. 마찬가지로, 그림3의 전통적인 데이터사이언스 인원을 딥러닝 커뮤니티의 인원수로 대체하여 생각하여 볼 수도 있다. 단일 서버를 사용하는 딥러닝 시스템에서도 기가바이트 이상의 대용량 데이터를 읽고 처 리할 때 보다 많은 빅데이터 엔지니어와 과학자가 필요하다. 그 해법중 하나인 RAPIDS는 NVIDIA CUDA를 활용하여 GPU에서 기계 학습 예측을 실행하기 위한 오픈 소스 소프트웨어 라이브러리이다[4]. NVIDIA CUDA는 병렬 작업을 지원하는 병렬 컴퓨팅 아키텍 처이다. NVIDIA는 ETL, 데이터 엔지니어링, 데이터 분석 및 데이터 예측의 성능을 크게 향상시키는 Rapids for Spark 3.0을 만들었다. 따라서 GPU를 이용할 수 있는 Spark 3.0은 그림5와 같이 딥러닝 과 머신러닝을 모두 지원한다. 또한 그림6과 같이 빅데이터 클러스터에 GPU가 첨가 되어 대규모 데이 터 세트를 처리할 수 있는 데이터 중심 연산이 가능하여 그림3에 나타난 전통적인 데이터사이언스 및 딥러닝 커뮤니티와 빅데이터 커뮤니티 간의 인적자원 격차를 줄일 수 있다.

머신러닝을 위한 빅데이터 클러스터에 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클러스터의 분산 병렬 연산을 가능하게 한다. 쉽게 말해서 딥러닝 코드가 있을 때 기존의 코드에 호로보드 함수를 추가 하면 분산 병렬로도 실행이 가능하여 초고 성능을 이룰 수가 있다.



<사진 출처 : freepik.com>


 

IV. 맺는말

대용량 데이터를 저장 및 처리 하는 데이터 중심의 슈퍼컴퓨터가 빅데이터라는 이름으로 2004년 경 구글을 선두로 아파치 하둡 프로젝트로 발전하여 왔다. 2009년 선보인 스파크 인메모리 연산 방식은 빅 데이터 클러스터의 연산 성능을 몇 십 배 향상 시켰으며 대용량 데이터의 예측 분석을 가능하게 하는 빅데이터사이언스를 발전시켰다. 2015년 구글이 GPU칩을 이용한 텐서플로우 라이브러리를 공유함으로 써 딥러닝을 통한 인공지능기술이 급속히 발전하게 되었다. 앤드류 잉 교수의 이론대로 대용량 데이터로 딥러닝 모델을 구현하여 성능을 향상시키기 위해서는 빅데이터 클러스터상에서 딥러닝 프로그램을 실행시켜서 대용량 데이터의 로딩과 연산을 효율적으로 하는 것이 필요하다. 따라서 최근 빅데이터 클러스터 에 GPU칩을 설치하여 머신러닝 연산속도를 향상시키는 RAPIDS가 구축되었다. 또한 GPU 클러스터를 구현하여 여러 GPU로 딥러닝 연산속도를 향상시키는 호로보드가 구축되었다.

2021년 현재 이러한 시스템을 기반으로 하여 대용량데이터를 이용한 예측 분석으로 모델 성능을 좀 더 빠르고 정확히 향상 시킬 수 있는 시대가 되었다. 클라우드 컴퓨팅, 빅데이터 및 GPU 칩 선도기업인 아마존, 구글, 마이크로소프트, 데이터브릭스나 NVIDIA 같은 산업체들이 첨단기술을 빠르게 발전시키고 있지만 미합중국과 대한민국을 비롯하여 세계 선진국 대학이나 정부에서 이러한 첨단기술을 따라가기에 벅찬 것이 현실이다. 또한 고가의 장비가 있고 교수요원들이 새로운 기술을 빠르게 습득하여야만 대학에 서의 이론과 실습교육이 가능한 것도 현실이다. 미합중국의 첨단기업들은 이러한 격차를 줄이며 우수인 재를 확보하기 위해 첨단 장비, 소프트웨어, 실습교재를 산학연 특히 대학에 공유하고 있다. 이러한 현실은 대한민국만의 문제가 아니라 미합중국이외 다른 아시아 및 서구 선진국들도 마찬가지 로 이러한 첨단기술의 장비 구비, 교육 및 습득에 어려움을 겪고 있다. 본고에서 서술한 현황이 대한민 국 첨단 산학연의 나아갈 바에 도움이 되리라 본다.


<자료 출처 : 한국인터넷 진흥원 KISA Library>

 
이 전 다 음
목록