마이크로소프트 검색 엔진 ‘Bing’의 시각 성능을 높여준 엔비디아의 기술

by NVIDIA Korea
Bing_SUM

시각 검색(Visual search)은 차세대 검색 기술로 주목받고 있죠. 마이크로소프트(MS)의 검색 엔진 Bing(빙)은 엔비디아 GPU를 이용해 시각 검색을 도입했습니다. 또한 엔비디아의 쿠다(CUDA) 프로파일링 툴 체인(profiling toolchain)과 cuDNN(CUDA Deep Neural Network)을 함께 적용해 시스템 비용도 절감했습니다.

시각 검색을 대규모로 진행하는 것은 쉬운 일이 아닙니다. 사용자가 사진 속 객체에 마우스를 갖다 댈 때 즉각적으로 연관 검색결과가 제공되려면 이미지 속의 이미지를 분류, 감지하고 관련된 이미지를 찾도록 트레이닝된 알고리즘을 통해 방대한 양의 연산을 실행해야 합니다.

이렇듯 시각 검색은 쉬운 일은 아닙니다. 하지만 충분히 그럴 만한 가치가 있는 일이죠.

Bing의 수석 엔지니어 왕얀(Yan Wang)은 “백문이 불여일견이라는 말처럼, 검색어와 연관된 사진이 있으면, 검색어와 좀 더 근접한 결과를 찾을 수 있습니다”라고 말했습니다.

예전에는 검색하고자 하는 것을 찾기까지 많은 시간이 소요됐습니다. 2015년 Bing은 사용자가 하위 이미지(sub-image)를 박스 처리하거나, 플랫폼이 감지한 하위 이미지 박스를 클릭해, 그 이미지를 바탕으로 새로운 검색을 하는 이미지 검색 기능을 도입했습니다.

Bing은 사용자의 기대에 부응할 만큼 빠른 솔루션을 개발하는 것을 목표로 했고, 자사의 객체 감지 플랫폼을 CPU 기반에서 엔비디아 테슬라(NVIDIA Tesla) M60 GPU 가속기를 탑재한 애저 NV 시리즈 가상 머신(Azure NV-series virtual machines)으로 변경했습니다.

이를 통해 CPU에서 2.5초 걸렸던 객체감지 지연시간을 200ms로 크게 단축할 수 있었습니다. 또한 엔비디아 cuDNN 최적화를 통해 지연시간을 40ms까지 더 줄일 수 있었습니다. 40ms는 대부분의 애플리케이션에서 우수한 사용자 경험을 구현할 수 있는 지연시간 기준을 훨씬 밑도는 시간입니다.

훌륭한 사용자 경험 제공

Bing이 엔비디아 GPU로 전환한 후 추론시간이 즉각적으로 10배나 단축됐지만, 된 것입니다. 하지만 빙 엔지니어들은 여기에 만족하지 않았습니다.

Bing 엔지니어들은 엔비디아 cuDNN GPU 가속화 딥 러닝 라이브러리(NVIDIA cuDNN GPU-accelerated deep learning library)를 코드에 포함하고, 윈도우 디스플레이 드라이버 모델(Windows Display Driver Model)의 드라이버 모드를 테슬라 컴퓨트 클러스터(Tesla Compute Cluster)로 업데이트했습니다. 그 결과, 지연시간이 40ms로 단축되고 전체 성능은 60배 향상됐습니다. 또한, 이미지 상에서 더 많은 객체 카테고리를 감지하기 위해 빠른 R-CNN 2단계 프로세스를 1단계 ‘싱글 샷 감지(single shot detection)’ 프로세스로 바꿨습니다. 덕분에 해당 기능의 속도가 10배나 빨라지고 80개 이상의 이미지 카테고리를 감지할 수 있게 됐죠.

Bing 팀은 필터 트리거 모델(filter triggering model)과 마이크로소프트 오브젝트스토어(ObjectStore)의 키 값 스토어(key-value store)를 이용해 추후 사용할 결과를 처리하고 캐시(cache)하기 위한 데이터의 양을 제한했습니다. 이를 통해 관련 비용을 90% 이상 줄이고, 날마다 서비스해야 하는 요청 건수의 양을 좀 더 경제적으로 처리할 수 있었습니다.

Bing 시각 검색이 제공하는 사용자 경험은 이와 같은 부가적인 노력을 반영합니다. 사용자는 Bing 검색 페이지에서 “이미지 검색”을 선택해 글자를 타이핑하거나 이미지를 업로드한 다음, 이미지에서 자동 감지된 핫스팟을 선택하거나 관심 있는 부분을 박스처리해 준 실시간 검색 결과를 유발할 수 있습니다. 예를 들어, 지갑 이미지를 박스 처리하면, 지갑을 구매할 수 있는 다양한 방법이 가격과 함께 생성됩니다.

Bing 팀이 엔비디아 GPU 기반 시스템을 도입한 이후 개발이나 실제 배치가 더 민첩해졌으며, 팀의 학습과 혁신 속도가 빨라졌습니다. CPU 기반 시스템에서는 주요 변경사항이 있을 경우, 수십억 개의 이미지로 구성된 데이터 세트 전체를 대상으로 업데이트된 모델을 실행하는데 수 개월이 걸렸습니다. 반면, GPU 기반 시스템에서는 이 과정이 즉각적으로 진행돼, 수시로 모델을 업데이트하고 더 많은 기능을 Bing 사용자들에게 제공할 수 있게 됐습니다.

시각 검색의 신기원

한 층 더 심층적이고 복잡한 모델을 처리할 수 있는 기능을 갖춘 Bing 시각 검색은 전보다 더 많은 감지 가능한 객체 카테고리(categories of detectable objects)를 지원합니다. 백엔드(back-end) 모델도 더 빠른 속도로 업데이트할 수 있게 되어, Bing이 개발에 박차를 가하는데 더 많은 시간을 할애할 수 있게 됐습니다.

왕얀은 “한 달 이상씩 소요됐던 혁신과 생산 주기를 한 번 업데이트 할 때마다 대폭 단축해, 이제는 거의 즉각적으로 혁신하고 생산할 수 있게 됐습니다” 라고 말했죠.

Bing 시각 검색은 소비자들이 검색을 통해 업체를 발견하도록 기다리는 대신 소비자들이 검색을 하면 바로 자사 제품을 확인할 수 있게 하는 등 앞으로 온라인 소매업체들에게 막대한 영향을 미칠 것입니다. 그 외에도 관광이나 교육업계에 Bing 시각 검색이 가져올 변화는 무궁무진하죠.

예를 들어, 해변의 사진을 보고 당장 여행을 떠나고 싶다는 생각이 들면, 사진으로 촬영한 장소를 즉시 확인하고 여행일정을 미리 예약할 수 있습니다. 또, 미술관에 가서 대가의 작품을 보고 사진을 찍은 미술학도가 그 작품을 보고 영감을 받은 또 다른 그림들을 즉시 확인할 수도 있을 것입니다. 시각 검색의 가능성은 실로 무한하답니다.