음성인식 기능을 이용해 휴대전화에 질문을 할 때 우리는 단지 올바른 답변을 듣기 바라지 않습니다. 우리는 휴대전화가 질문을 받는 즉시 올바른 답변을 해 주길 원하죠. 간단해 보이는 이 주문사항을 수행하려면 다양한 예측을 한 뒤에 1초 이내에 답변을 줘 질문자가 즉각적으로 답변을 받은 것 같다고 느낄 수 있도록 하는 여러 개의 뉴럴 네트워크가 탑재된 AI 기반 서비스가 필요합니다.
예를 들면 다음과 같은 서비스입니다.
- 객체 감지: 이미지 속 객체를 감지해 카테고리별로 그룹화한 뒤, 상품 추천과 함께 해당 객체 주위에 바운딩 박스(bounding box)를 보여줍니다. SSD(싱글 샷 감지)와 레티나넷(RetinaNet)과 같은 물체 감지 뉴럴 네트워크에는 일반적으로 ResNet-50과 같은 공통 분류 네트워크를 백본으로 갖고 있습니다.
- 질의응답: 흔히 주의 집중 기반 반복(attention-based recurrent) 또는 시퀀스 기반 뉴럴 네트워크로 적용되는 이 워크로드 단계에서는 사용자의 질문에 대해 높은 수준의 정확한 답변이 제공됩니다. 최근 질의응답을 포함해 다양한 NLP 작업에서 주목을 받고 있는 모델 중에는 트랜스포머를 표현하는 BERT(양방향 인코더)가 있습니다.
- 텍스트 음성 변환(TTS): 질의응답 단계에서 받은 답변을 휴대 전화로 재생 가능한 자연스러운 음성으로 변환하는 서비스입니다. TTS는 일반적으로 웨이브넷(WaveNet)나 타코트론2(Tacotron2)와 같은 보코더 병렬 네트워크를 사용합니다.
이와 같은 AI는 개별적으로 네트워킹도 되며, 따라서 모든 AI가 짧은 지연 시간 내에 응답을 연산해야 합니다. 마이크로소프트가 CPU 서버를 사용해 빙(Bing) 플랫폼에서 이 서비스를 구축하기 시작하면서, CPU 서버는 엔드 유저가 만족할 만한 환경을 제공하기 위해 필요한 지연시간 예산(latency budget)에 맞게 연산을 할 수 없다는 것을 알게 됐습니다.
마이크로소프트는 CPU 서버를 엔비디아 GPU 서버로 바꿔, 시각검색, 질의응답과 TTS 서비스 속도를 급속도로 높였으며, 엔드투엔드 대기시간은 5배 줄어든 단 500ms까지 단축할 수 있게 됐습니다.
그 외에도 워크플로의 질의응답 단계에서 한 층 더 높은 정확성으로 스캔 된 문서 수가 두 배가 넘는 등의 가속화 성과가 있었습니다. TTS 서비스의 경우, 테슬라 V100(Tesla V100) 사용 시, 20개의 실시간 음성 답변을 받은 반면, CPU 서버는 필요한 지연시간 예산과 근접한 양의 답변을 제공하지 못했습니다.
마이크로소프트는 GPU 가속화로, 애저(Azure)의 대화형 AI를 개선할 수 있게 됐고, 사람의 음성에 한 층 더 가까운 억양의 선명한 음성 서비스를 제공할 수 있게 됐습니다. 뉴럴 음성 합성기가 점차 사람의 음성에 가까워짐에 따라, 네트워크도 복잡해지고, 이에 필요한 연산의 양도 대폭 늘어납니다. 음성으로 제공되는 답변은 평균적으로 4초인데, 기존에는 1초(또는 20초)의 음성 답변을 제공하는데 5초가 걸렸습니다.
이제, 마이크로소프트 TTS 서비스는 V100을 통해 1초의 음성 답변을 100배 빨라진 단 50 밀리초 내에 생성 가능하게 됐습니다!
여기를 클릭해 직접 경험해 보세요.