[기고] NVMe가 AI를 스마트하게 만드는 4가지 방법

기사승인 2018.11.21  04:40:17

공유
default_news_ad1

- 울리치 한센(Ulrich Hansen) 웨스턴디지털 디바이스 부문 마케팅 담당 부사장

   
▲ 울리치 한센
웨스턴디지털
디바이스 부문
마케팅 담당 부사장
[아이티데일리] 인공지능(이하 AI)으로 차세대 혁신 기술을 구현하는 것은 막대한 양의 데이터와 컴퓨팅을 필요로 한다. 그러나 이는 몇 테라바이트(TB)의 로데이터(raw data)를 기기에 입력하고 그 결과치를 확인하는 것처럼 결코 단순하지 않다.

어떤 작업을 수행하기 전에 데이터는 수집 및 필터링되고 적절한 포맷을 갖추는 과정을 거쳐야 한다. 그 후에 연구자들은 반복적인 상호작용 과정을 통해 적절한 AI 아키텍처를 설계하는 데 상당한 시간을 들여야 한다. 이러한 과정을 거친 후에 비로소 테라바이트 규모의 정제된 데이터가 신경망 학습에 돌입할 수 있다. AI 생애주기에 걸친 이러한 모든 단계는 NVMe을 통해 그 성능을 향상시킬 수 있다. 이 글에서는 차세대 AI 혁신 기술 개발에 소요되는 시간을 단축시키는 최신 NVMe 기반 스토리지 활용법에 대해 설명한다.

오늘날 모든 분야의 비즈니스에서 고객에게 더 나은 제품을 제공하고, 주주들에게는 더 좋은 실적을 제시하기 위해 비즈니스 프로세스에 AI 같은 머신 러닝(machine learning) 기술을 도입하고 있다. 그러나 AI를 효과적으로 이용하기 위해서는 맞춤형 머신 러닝 모델, 방대한 양의 컴퓨팅, 헤아릴 수 없을 만큼 많은 양의 데이터가 필요하다. 작게는 사물인터넷(IoT) 기기에서부터 크게는 전 세계 도시에 이르기까지 모든 곳에서 생성되는 페타바이트(PB) 단위의 데이터를 다루는 것은 ‘메가바이트(MB)와 밀리세컨드(millisecond, 1000분의 1초) 시대’에 설계된 스토리지 기술에 있어 그야말로 엄청난 도전일 것이다.

머신 러닝에 방대한 양의 데이터를 입력하기 위해서는 NVMe와 같이 메모리 속도의 스토리지를 위해 설계된 새로운 스토리지 인터페이스 기술이 필요하다. SATA나 SAS와는 달리, NVMe는 지연시간을 유발하는 몇 단계의 디스크 중심 프로토콜 대신 가장 빠른 범용 프로세서 연결 기술인 PCIe를 사용해 지연시간을 최소화하고 디바이스당 막대한 대역폭 역량을 제공한다. 이처럼 페타바이트급 용량 및 마이크로세컨드(microsecond, 100만 분의 1초)대 속도에 집중하는 NVMe는 머신 러닝의 요구사항에 더욱 잘 부합한다.


AI 파이프라인으로서의 데이터

머신 러닝의 핵심은 데이터다. 유의미한 결과를 도출할 수 있을 만큼 많은 양의 데이터를 처리하기 위해서는 세심하게 계획된 데이터 파이프라인(pipeline)이 필요하다. 기업의 데이터 파이프라인은 각각의 비즈니스 요구사항에 따라 그 형태가 모두 다르지만, 일반적으로 모든 파이프라인은 수집, 준비, 설계, 학습이라는 공통된 4단계로 세분화할 수 있다.

이 4단계 데이터 파이프라인의 결과값은 엣지(edge) 또는 코어(core)에서 발생하는 새로운 데이터의 추론을 실행하기 위해 사용 가능한 모델이다. 그러나 일반적으로 요구되는 데이터 볼륨이 방대하기 때문에 모든 단계에서 데이터의 흐름을 최적화해 병목현상을 방지해야 한다. NVMe 인터페이스는 이에 맞게 설계됐으며, 다음의 네 가지 방식으로 AI 파이프라인을 지원할 수 있다.

⦁ 보다 빠르고 비용 효율적인 데이터 수집
⦁ 보다 빠른 데이터세트 준비 시간
⦁ 모델 설계에 소요되는 사이클 전환 시간 단축
⦁ 모델 학습을 위한 더 효율적인 하드웨어


스마트한 데이터 수집을 위한 NVMe

AI 실행을 위한 첫 번째 과제는 로데이터를 중앙화된 데이터 저장소에 수집하는 것이다. IoT 기기의 센서 리포트, 네트워크 로그, 제조 품질 리포트 등 수집되는 데이터는 그 종류가 무궁무진하다. 실제로 아파치 스파크(Apache Spark)와 같은 툴이나 상업적 서비스가 이러한 작업을 처리하는데, 유입되는 데이터 스트림에서 필터링을 실행 후 비정형 데이터를 NoSQL 데이터베이스 클러스터에 저장한다. NVMe는 이러한 서버의 반응성을 높이는 동시에 물리적인 공간은 축소하도록 돕는다.

전통적인 NoSQL 클러스터는 SATA 하드 드라이브로 이뤄진 다수의 로컬 하드 드라이브 인터페이스를 갖춘 서버로 구성된다. 하드 드라이브는 페타바이트 규모의 데이터를 저장하는 데 있어 확실히 경제적인 방법을 제공하지만, 최대 대역폭을 달성하기 위해서는 종종 한 서버당 수십 개의 SATA 혹은 SAS 하드 드라이브를 필요로 한다. 이러한 아키텍처는 개별 서버의 규모 증가시키며, 데이터센터 내 랙(rack)을 CPU가 작동하지 않는 서버로 채우는 결과를 가져온다.

단일 NVMe 인터페이스의 경우, AIC(add-in-card) 혹은 2.5인치 드라이브 하나만으로 수많은 개별 SATA 또는 SAS 인터페이스의 대역폭을 제공할 수 있다. 개별 NoSQL 서버의 대규모 하드 드라이브 어레이를 훨씬 작은 NVMe SSD로 대체함으로써 개별 NoSQL 노드를 줄이고 전체 클러스터 랙 공간을 현저히 감소시키는 것이 가능하다.


스마트한 데이터 준비를 위한 NVMe

테라바이트 혹은 페타바이트급 데이터를 보유하는 것은 오늘날 AI 학습에 필수 전제조건이지만 이 데이터가 항상 사용 가능한 형태로 존재하는 것은 아니다. 따라서 데이터는 AI 파이프라인을 통해 보다 쉽게 처리 가능한 형태로 변환될 필요가 있다. 이상치나 가짜 데이터, 적절치 않거나 개인정보와 같이 사용이 금지된 일부 데이터 등을 이 단계에서 필터링해야 한다.

높은 쓰루풋(throughput)을 위해 고안된 스토리지 시스템이 아닌 경우 이와 같은 종류의 처리 요구사항을 감당하기 어려울 수 있다. SAS와 SATA 인터페이스의 대역폭은 최대 6.4GB/s또는 그 이상을 제공하는 NVMe의 PCIe 기반 대역폭에 비하면 매우 제한적이다. 대역폭 외에도 병렬 처리(parallelism) 또한 중요하다. 데이터의 양이 워낙 방대하기 때문에 클러스터 내 다수의 서버, 그리고 서버 내 다수의 코어에서 데이터 처리가 병렬적으로 이뤄진다. NVMe는 서버 내의 병렬 작업을 간소화해 최대 64K의 큐와 명령어를 지원한다.


스마트한 모델 설계를 위한 NVMe

데이터가 필터링을 거쳐 균일하고 처리하기 쉬운 형태로 준비되면 데이터 과학자의 진짜 작업이 시작된다. 모든 문제가 각각 다르기 때문에 과학자들은 끊임없이 독창적인 머신 러닝 구조를 개발해야 한다. 많은 시도와 오류를 거친 일부 데이터만이 학습 가능한 모델로 활용 가능하다. 다른 모든 과학적 엔지니어링 프로젝트와 마찬가지로, 최종 솔루션을 얻기까지는 수많은 시도가 이뤄지고 많은 실수를 거쳐야 한다.

이러한 시도와 오류의 과정에서 각 사이클의 속도는 최종 모델 설계와 생산된 머신 러닝 모델의 품질에 영향을 미친다. 예를 들어, 설계 및 테스트 주기를 10시간에서 8시간으로 줄이면 데이터 과학자들의 효율성을 두 배 향상시킬 수 있다. 과학자들이 오전에 작업을 시작해 다음 날까지 이어지는 ‘1일 1테스트’ 대신 오전에 설계와 테스트를 진행해 결과를 얻고 변수를 수정하면 오후에 또 다른 작업을 시작할 수 있게 되는 것이다.

이전 단계와 마찬가지로 NVMe의 대역폭과 병렬 처리는 데이터 과학자의 효율성 향상을 돕는다. 과학자들이 워크스테이션을 통해 시스템을 작동하거나 데이터 세트를 테스트할 때 NVMe의 낮은 지연시간이 도움이 되며, 분석과 테스트 실행을 위한 가장 빠른 스크래치 공간도 제공할 수 있다.


스마트한 모델 실험을 위한 NVMe

데이터 엔지니어에 의해 데이터가 머신 러닝에 적절한 형태를 갖추고 데이터 과학자들이 학습 모델 구조를 설계하고 나면, 네트워크의 실제 학습에 돌입하게 된다. 가속기를 갖춘 수백 혹은 수천 개의 기기들이 적합한 형태의 데이터를 활용, 실제 애플리케이션에 사용 가능한 모델로 수렴되기 전까지 모델 변수를 개선시킨다.

GPU를 기반으로 하는 오래된 가속 기술은 I/O 바운드(I/O bound)가 거의 일어나지 않기 때문에 스토리지 성능이 중요하지 않다. 서버를 작동시키는 범용 GPU가 I/O 작업 조절에 충분한 시간을 갖고 GPU에 필요한 데이터의 다음 배치(batch)를 준비한다. 하지만 이는 FPGA 또는 주문형 ASIC 하드웨어로 모델 실험을 실행하는 오늘날에 더 이상 유효하지 않다.

최신 머신 러닝 가속기는 이전 기술과 비교했을 때 더 빠르게 데이터를 처리할 수 있기 때문에 서버를 운영하는 범용 CPU의 경우 I/O 모드를 효율적으로 처리할 필요가 있다. SATA와 SAS와 같은 레거시(legacy) I/O 스택은 I/O 요청을 오래 전에 설계된 프로토콜로 변환하는데 CPU 사이클을 낭비한다. 이와 같은 I/O 요청의 지연시간 증가는 가속기 활용에 직접적으로 영향을 준다. 레거시 I/O 스택은 또한 호스트 CPU의 로드도 가중시켜 프로세서당 작동 가능한 가속기의 수를 제한한다.

메모리 속도 스토리지 프로토콜로 설계된 NVMe는 이와 같은 프로토콜 변환상의 오버헤드가 발생하지 않기 때문에 프로세서 로드를 최소화하고 차세대 가속기에 데이터가 제때 입력되도록 한다. NVMe 프로토콜 확장은 현재 검토 중이며, 컨트롤러 메모리 버퍼(Controller Memory Buffers)는 NVMe 디바이스가 호스트 개입 없이 직접 메모리 전송을 관리하도록 해 프로세서 로드를 감소시킬 수 있다.


보다 스마트한 AI를 위한 NVMe

머신 러닝과 AI는 데이터를 중심으로 만들어진다. 데이터를 수집 후 이를 사용 가능한 형태로 처리하고 학습 아키텍처를 분석해 모델을 학습시키는 일련의 과정은 페타바이크급 규모에 효과적이며 마이크로세컨드급 지연시간에 최적화된 스토리지 인터페이스를 필요로 한다. 메모리 속도 스토리지를 위해 설계된 NVMe야말로 머신 러닝과 기타 애플리케이션의 요구사항에 부합하는 적절한 스토리지 인터페이스를 제공할 수 있다.

울리치 한센 @

<저작권자 © 아이티데일리 무단전재 및 재배포금지>
default_news_ad4
default_side_ad1

인기기사

default_side_ad2

포토

1 2 3
set_P1
default_side_ad3

섹션별 인기기사 및 최근기사

default_setNet2
default_bottom
#top