본문 바로가기
etc/IT 뉴스

[210827] 엔비디아, 일상적인 추천시스템에 GPU 시대 연다... 특화된 '멀린 프레임워크' 내놔

by injeolmialmond 2021. 8. 31.

엔비디아, 일상적인 추천시스템에 GPU 시대 연다... 특화된 '멀린 프레임워크' 내놔 < 산업 < 기사본문 - AI타임스 (aitimes.com)

 

엔비디아, 일상적인 추천시스템에 GPU 시대 연다... 특화된 '멀린 프레임워크' 내놔 - AI타임스

일상 속에서 가장 흔하게 사용하는 인공지능(AI) 서비스인 추천시스템에 GPU를 사용할 수 있는 길이 열렸다. 엔비디자의 추천 시스템 특화 프레임워크 멀린(Merlin) 이야기다.엔비디아는 27일 정기 A

www.aitimes.com

 

 

- 엔비디아, 27일 정기 AI 개발자 밋업에서 멀린 기술 의의와 성과 발표
- 컴퓨터비전·자연어처리와 달리 메모리 인텐시브한 추천시스템 특징 고려
- 구글·페이스북 이외 기업도 GPU로 추천시스템 개발 가능할 것

 

 

(사진=행사 캡처)

 

일상 속에서 가장 흔하게 사용하는 인공지능(AI) 서비스인 추천시스템에 GPU를 사용할 수 있는 길이 열렸다. 엔비디아의 추천 시스템 특화 프레임워크 멀린(Merlin) 이야기다.

 

엔비디아는 27일 정기 AI 개발자 밋업을 열고 자사 추천시스템 프레임워크 멀린의 기술적 의의와 해당 시스템을 활용한 성과를 발표했다.

 

추천시스템은 일상화된 대표적인 AI 서비스지만 비전이나 자연어 분야와 달리 그간 GPU 적용이 어려웠다.

 

추천시스템 개발에서는 사용자 개인의 서비스 이용 행태, 여러 사용자 간 연관성, 사용자와 서비스 연관성 등 학습해야 할 데이터가 많다. 사용자가 서비스를 이용하는 행동이나 여기에 영향을 미칠 수 있는 환경적 요소들이 수시로 변하는 만큼 재학습을 빈번하게 진행해야 한다.

 

이를 반영한 임베딩 테이블이 추천시스템 모델 대부분을 차지한다. 즉, 메모리 인텐시브한 특징을 지닌다는 것. 기존에 GPU가 많이 사용되고 있는 분야인 컴퓨터비전과 자연어처리의 경우 컴퓨팅 인텐시브하다.


임베딩(Embedding): 딥러닝에 있어서 범주형(카테고리적) 변수의 벡터화

 

인공 신경망에 있어서 임베딩을 사용하는 이유:

1. 가장 가까운 이웃정보를 찾도록 해준다. 이것이 유저의 관심사나 클러스터 카테고리에 대해서 추천을 하도록 도와줍니다.

2. 머신러닝의 지도식학습(Supervised Learning)의 입력값으로 임베딩을 사용할 수 있습니다.

3. 카테고리간의 개념과 관련도를 시각화 해주는 용도로 사용합니다.

[출처] 인공신경망(딥러닝)의 Embedding 이란 무엇일까? - 임베딩의 의미(1/3)|작성자 IDEO

 

임베딩 테이블은 데이터를 벡터화한 것을 담은 테이블. 각 벡터는 n차원 공간에서의 데이터의 위치(좌표)를 나타낸 것이라고 이해하면 된다.

 

  • Compute Intensive – A single problem requiring a large amount of computation.
  • Memory Intensive – A single problem requiring a large amount of memory.

쉽게 말하면 컴퓨팅 인텐시브는 계산을 많이 해야하는 태스크고, 메모리 인텐시브는 데이터를 기억해야 하는 태스크.


손석우(James Sohn) 엔비디아 멀린 프로덕트 매니저는 “임베딩은 일련의 아이템들을 고차원의 벡터스페이스로 맵핑하는 것이다. 비슷한 속성을 가진 아이템들이 비슷한 벡터값을 가진다. 예를 들어 액션, 드라마와 같이 비슷한 장르 영화들이 비슷한 벡터값을 지닌다”며 임베딩에 대해 설명했다.

 

이렇듯 다양한 사용자 관련 데이터에 대해 얼마나 빠르고 비용효율적으로 임베딩하느냐가 기술 관건이라는 것.

 

이어 손 매니저는 “컴퓨터비전의 경우 모델 사이즈 대다수가 파라미터 사이즈다. 데이터 포인트 하나하나의 사이즈가 크다. 자연어처리에서는 단어 하나하나가 가진 연관성과 맥락을 임베딩 스페이스에서 파악해야 하기에 모델 사이즈가 10억개 파라미터에 이른다. 둘 다 컴퓨팅 인텐시브하다는 의미”라며 추천시스템과 다른 컴퓨터비전과 자연어처리 특징을 설명했다.

(사진=행사 캡처)

 

이에 비해 모델 사이즈가 비교적 작은 추천시스템에서는 메모리 사이즈 제한이 있어 기존에는 CPU에서 대부분 학습을 진행했다. 텐서플로우나 파이토치와 같은 워크플로우가 비전이나 자연어 분야에 적합하게 만들어진 것도 이유다.

 

반면 엔비디아 멀린에서는 GPU를 사용해 훨씬 빠르고 비용효율적으로 추천시스템 학습이 가능하다는 입장이다.

 

속도는 차치하고 비용까지 줄이게 된 비결로 손석우 매니저는 ‘캐싱(Caching)’을 꼽았다. 모든 데이터가 아닌 소수의 인기 데이터만 GPU 메모리에 옮긴다는 것이다. *캐시(Cache)라고 하는 좀 더 빠른 메모리 영역으로 데이터를 가져와서 접근하는 방식

 

그는 “추천시스템에 사용하는 데이터 중 보통 소수 인기있는 데이터가 대부분 사용된다. 임베딩 테이블 자체 크기가 큼에도 GPU를 비용효율적으로 사용할 수 있는 이유다. 이렇게 하면 CPU보다 훨씬 빠르게 GPU에 메모리 액세스해 빠른 훈련이 가능하다”고 말했다.


CPU는 입출력장치, 기억장치, 연산장치를 비롯한 컴퓨터 리소스를 이용하는 최상위 계층 장치인 '중앙처리장치'로써, 컴퓨터의 두뇌와 같은 역할을 담당합니다. 따라서 데이터 처리와 더불어 프로그램에서 분석한 알고리즘에 따라 다음 행동을 결정하고 멀티태스킹을 위해 나눈 작업들에 우선순위를 지정하고 전환하며 가상 메모리를 관리하는 등 컴퓨터를 지휘하는 역할을 수행합니다. 컴퓨터 프로그램의 대부분은 복잡한 순서를 가진 알고리즘을 가지고 작동하므로 CPU가 적합하다.

GPU는 비디오, 즉 픽셀로 이루어진 영상을 처리하는 용도로 탄생했습니다. 이때문에 CPU에 비해 반복적이고 비슷한, 대량의 연산을 수행하며 이를 병렬적으로(Parallel) 나누어 작업하기 때문에 CPU에 비해 속도가 대단히 빠릅니다. 영상, 렌더링을 비롯한 그래픽 작업의 경우 픽셀 하나하나에 대해 연산을 하기 때문에 연산능력이 비교적 떨어지는 CPU가 GPU로 데이터를 보내 재빠르게 처리합니다.

2.1.1. CPU와 GPU의 차이 - OneBook(Python & Deep Learning) (gitbook.io)

 

2.1.1. CPU와 GPU의 차이

 

sdc-james.gitbook.io


엔비디아 멀린은 ▲NVTabular ▲HugeCTR ▲Triton3개 알고리즘으로 구성됐다. NVTabular는 데이터를 처리하는 ETL 프로세스를 효율적으로 개선하고 텐서플로우나 파이토치를 대체할 데이터로더를 제공한다.


ETL is a process that extracts the data from different source systems, then transforms the data (like applying calculations, concatenations, etc.) and finally loads the data into the Data Warehouse system. Full form of ETL is Extract, Transform and Load.

ETL (Extract, Transform, and Load) Process in Data Warehouse (guru99.com)

 

ETL (Extract, Transform, and Load) Process in Data Warehouse

What is ETL? ETL stands for Extract, Transform and Load. In ETL process, an ETL tool extracts the data from different source systems then transforms the data and loads into the Data Warehouse system.

www.guru99.com

대표적인 내부 데이터 수집 방법으로는 ETL(Extraction, Transformation, Loading)이 있다. ETL이란 다양한 소스 시스템으로부터 필요한 데이터를 추출(extract)하여 변환(transformation) 작업을 거쳐 저장하거나 분석을 담당하는 시스템으로 전송 및 적재(loading)하는 모든 과정을 포함한다. 대부분의 ETL 연산은 중복을 제거하고 일관성을 확보하기 위한 정제를 포함한다. 예를 들어, 성별에서 ‘남’은 ‘M’, ‘man’, ‘male’, ‘1’ 등으로 표현될 수 있는데, 이것들을 모두 동일한 것으로 인식하여 한결같이 ‘M’으로 표현하는 것이 일관성 확보를 위한 정제의 예가 된다.

 

[네이버 지식백과] ETL과 크롤링 엔진 (빅데이터 플랫폼 전략, 2013. 2. 11., 황승구, 최완, 허성진, 장명길, 이미영, 박종열, 원희선, 김달)


(사진=행사 캡처)

 

손석우 매니저는 “데이터 처리 피처 엔지니어링 과정을 GPU로 가속화해 ETL 시간을 대폭 줄였다. 4개 CPU 노드사용 시보다 1개 GPU 사용으로 21배 빨라졌다”고 설명했다.

 

이어 “텐서플로우와 파이토치와 다르게 멀린에서 제공하는 데이터로더는 아이템을 하나하나가 아닌 여러 개 데이터 포인트를 잡아 청크 단위로 빠르게 옮긴다. 텐서플로우 데이터로더를 사용했을 때보다 학습 시간이 9배 빨라졌다”고 말했다.

 

HugeCTR은 싱글 GPU나 싱글 로드사이즈의 GPU 메모리보다 훨씬 큰 임베딩로드를 효과적으로 사용해 최적화된 학습 도구를 제공한다. 엔비디아 자체 실험 결과 4개 CPU 노드보다 1개 HugeCTR에서 속도가 24배 빨랐다.

 

Triton은 추천시스템 다양한 모델들을 어떻게 하면 다양한 프로덕션 상에서 배치할 수 있는지에 대한 솔루션을 제공한다. 파이토치 CPU보다 1개 HugeCTR에서 속도가 18배 개선되는 것을 확인했다는 주장이다.
 

 

 

◆텐센트와 스냅서 이미 효과봤다...빅테크 외 기업 위한 것

엔비디아 멀린으로 이미 효과를 본 업체들이 있다. 텐센트와 스냅이 대표적이다. 매달 액티브 사용자수가 10억명인 텐센트는 대량의 데이터에 대한 모델 학습이 주기적으로 필요하다. 기존에는 모델을 한 번 학습하는데 드는 시간이 20시간 가량 걸렸는데 HugeCTR을 사용하면서 3시간으로 줄었다.

 

스냅챗으로 유명한 SNS 스냅은 다뤄야 할 데이터가 상품이나 서비스 추천보다 훨씬 많다. 사용자가 3억명이며 스냅에서 자체 사용하는 모델 수는 100개가 넘는다. 이러한 모델들을 재학습하기 위해 기존에는 1000개 이상 CPU를 사용했었다. 멀린 사용 후에는 모델 학습에 드는 비용이 반으로 줄었다는 설명이다. 지연(Latency)도 약 60%가 감소했다.

 

고객사 이외 엔비디아가 스스로 멀린 효과를 증명하기도 했다. 올해 엔비디아는 ACM RecSys 챌린지 2021, SIGIR 이커머스 데이터 챌린지, 부킹닷컴 챌린지 3개 주요 추천 시스템 대회에서 멀린을 활용해 우승을 차지했다.

(사진=행사 캡처)

 

대회 성과에 대해 손석우 매니저는 “트위터 스폰서로 진행된 ACM 과제는 사용자가 향후 어떻게 참여하고 리트윗이라는 반응을 할 것인지 예측하는 것이었다. 10억개에 가까운 트위터 사용자의 상호작용 데이터, 총 20GB 정도 규모 데이터셋을 사용했다. NVTabular를 직접 사용한 성과”라고 강조했다.

 

상품 구매 예측을 과제로 한 SIGIR 챌린지에서는 자연어처리에 주로 사용하는 BERT로 쇼핑 구매와 관련된 세션 자체를 인식 후 다음 세션을 예측했다.

 

엔비디아가 멀린으로 이루고자 하는 목표는 추천시스템 개발 허들을 낮추는 것이다. 인스타그램, 페이스북, 유튜브를 운영하는 구글, 페이스북과 같은 빅테크 이외 회사들도 추천시스템 개발이 가능한 생태계를 만드는 것.

 

손석우 매니저는 “추천시스템 개발에는 데이터셋과 함께 엔지니어링 리소스가 많이 든다. 큰 엔지니어링 리소스가 없는 빅테크 외 기업들도 모델링에 대한 GPU 기반 최신 기술을 사용해 더 빠른 시간 내 모델을 학습하고 제품 라인에 배치하길 기대한다”고 전했다.

 

 

AI타임스 박성은 기자 sage@aitimes.com

댓글