Browse

딥러닝 기반 사용자 인식 모델의 학습 지연 단축을 위한 적응형 쓰레드 큐잉 알고리즘
Deep Learning Based Reducing Pre-processing Latency of Speaker Recognition Model using Adaptive Thread Queuing Algorithm

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors
노동호
Advisor
홍성수
Major
공학전문대학원 응용공학과
Issue Date
2019-02
Publisher
서울대학교 대학원
Description
학위논문 (석사)-- 서울대학교 대학원 : 공학전문대학원 응용공학과, 2019. 2. 홍성수.
Abstract
With the development of deep learning and cloud computing technology, the technology to understand the meaning of human natural language has developed, and the speech recognition speaker market which provides various services by recognizing voice commands of users is growing. The user should firstly input a keyword defined in the device in order to perform a natural language command on the speech recognition speaker, and this is called keyword spotting technology. This technology is applied to most voice recognition devices because it can reduce standby power consumption of voice recognition speakers and communication with cloud for natural language processing. After recognizing a specific keyword, various services such as music appreciation, search, home control, and shopping are provided.

Currently, keyword recognition technology is mainly used to increase the recognition rate of the keyword, and it is applied to products showing high performance in various noise environments. However, since a single user account is registered in a voice recognition speaker and is used as a family device, other users can easily access personal data and information only by recognizing a keyword, thereby causing a problem of security vulnerability. This is pointed out as a problem in expanding services such as shopping and finance based on personal information. Speaker Recognition technology is required for personal information protection and personalization service of these speech recognition speakers.

Recently, hardware and software technologies have been developed for the optimization of deep learning operations in embedded devices. With the development of these technologies, device-based user recognition systems are model training directly in a device that supports GPU accelerators, and inference is made using the completed model. This can minimize the latency of user authentication by eliminating the restriction due to external network connection. However, there are limits to the limited system resources of the embedded system and the scarcity of data for model training. To solve these limitations, this thesis proposes a transfer learning method for optimizing the deep learning model, a data input pipeline, which is a data parallelization technique of the GPU that performs preprocessing CPU and model training, We have tried to shorten the total training time when device-based user recognition model.

In designing the data input pipeline structure of the deep learning training, the number of multiple threads performing the preprocessing process should be defined. However, it is impossible to predict how many threads should be defined because end-to-end latency analysis of deep learning based user awareness model training is practically impossible. If the preprocessing process is performed with too few threads, a bottleneck occurs in the delivery of the data set for GPU training, which increases the idle state of the GPU accelerator. This lowers the GPU utilization, which in turn increases the overall training time. On the other hand, if too many threads are selected for preprocessing, the preprocessing process proceeds quickly and delivers sufficient data for GPU training. However, because of frequent context switching due to excessive multithreading and synchronization contention to the Training Data Queue those causes overhead of system resources, which causes training delay problem of GPU accelerator.

In this thesis, we propose an Adaptive Thread Queuing algorithm to solve the presented problems. This algorithm predicts bottleneck and system overhead to occur at runtime based on GPU utilization prediction information of training process in order to maintain optimal training speed while efficiently managing limited system resources. To reduce the delay of training process due to bottleneck and system overhead. Experimental results show that GPU utilization for model training is maximized while CPU resources are used efficiently in the training process. As a result, the proposed Adaptive Thread Queuing algorithm improves the overall training speed of the model while improving the problem of delay that can occur in the preprocessing process, compared to a fixed number of multi - thread training methods.
딥러닝과 클라우드 컴퓨팅 기술의 발전으로 인간의 자연어 의미를 이해할 수 있는 기술이 발전하였고, 사용자의 음성 명령을 인식하여 다양한 서비스를 제공하는 음성인식 스피커 시장이 성장하고 있다. 사용자는 음성인식 스피커에 자연어 명령을 하기 위해 먼저 디바이스에 정의된 키워드를 입력하여야 하며, 이것을 키워드 인식(Keyword Spotting) 기술이라 한다. 이 기술은 음성인식 스피커의 대기 소비 전력과 자연어 처리를 위한 클라우드와의 통신량을 줄일 수 있어 대부분의 음성인식 기기에 적용되고 있다. 특정 키워드를 인식한 이후 음악 감상, 검색, 홈 제어, 쇼핑 등의 다양한 서비스가 제공된다.

현재의 키워드 인식 기술은 해당 키워드의 인식률을 높이기 위한 연구들이 주로 이루어졌고, 이를 통해 다양한 노이즈 환경에서도 높은 성능을 보이며 제품에 적용되고 있다. 하지만, 음성인식 스피커에는 하나의 사용자 계정이 등록되어 패밀리 디바이스로 사용됨에 따라 다른 사용자도 키워드 인식만으로 개인 데이터와 정보에 쉽게 접근할 수 있어 보안 취약의 문제점이 발생하고 있다. 이는 개인정보를 기반으로 하는 쇼핑, 금융 등의 서비스 확대에 문제점으로 지적된다. 이러한 음성인식 스피커의 개인정보 보호와 개인화 서비스를 위해서는 사용자 인식(Speaker Recognition) 기술이 필요하게 되었다.

최근 임베디드 디바이스에서도 딥러닝 연산의 최적화를 위한 하드웨어와 소프트웨어 기술들이 발전하였다. 이러한 기술의 발전으로 디바이스 기반의 사용자 인식 시스템은 GPU 가속기를 지원하는 환경에서 모델 학습이 디바이스 내에서 직접 이루어 지고, 완성된 모델을 이용하여 사용자 여부를 판단(inference)한다. 이것은 외부의 네트워크 연결로 인한 제약이 배제되어 사용자 인증의 지연(latency)을 최소화 할 수 있다. 하지만, 임베디드 시스템의 한정된 시스템 자원과 학습을 위한 데이터가 희소함에 따른 한계가 존재한다. 이러한 한계를 해결하기 위하여 본 학위 논문에서는 딥러닝 모델 최적화를 위한 전이학습(Transfer Learning) 기법과 전 처리를 수행하는 CPU와 모델 학습을 수행하는 GPU의 데이터 병렬화 기법인 데이터 입력 파이프라인(input pipeline) 구조를 적용함으로써 디바이스 기반 사용자 인식 모델 학습 시 전체 학습 시간을 단축하고자 하였다.

딥러닝 학습의 데이터 입력 파이프라인(Data Input Pipeline) 구조를 설계함에 있어, 전 처리 과정을 수행하는 다중 쓰레드(Thread) 수가 정의되어야 한다. 하지만, 이는 딥러닝 기반 사용자 인식 모델 학습의 end-to-end latency 분석이 현실적으로 어렵기 때문에 어느 정도의 다중 Thread를 정의하여야 할지에 대한 예측이 불가능하다. 만약 너무 적은 수의 Thread로 전 처리 과정을 수행한다면 GPU 학습을 위한 데이터 셋 전달에 병목현상(bottleneck)이 발생하게 되어 GPU 가속기의 idle 상태가 증가한다. 이로 인하여 GPU utilization을 낮아지게 되고, 결과적으로 전체 학습 시간은 늘어나게 된다. 반면 너무 많은 수의 다중 Thread를 전 처리에 선정하게 되면, 전 처리 과정을 빠르게 진행하여 GPU 학습을 위한 충분한 데이터를 전달하게 되지만, 과도한 다중 Thread로 인한 빈번한 컨텍스트 스위칭(Context switch)와 학습 데이터 큐(Training Data Queue)에 접근 경합 등의 문제를 발생시켜 시스템 자원의 오버헤드(Overhead)를 유발하고 이것은 GPU 가속기의 학습 지연 문제를 일으킨다.

본 학위논문에서는 제시된 문제를 해결하기 위해, 적응형 쓰레드 큐잉(Adaptive Thread Queuing) 알고리즘을 제안한다. 이 알고리즘은 한정된 시스템 자원을 효율적으로 관리하면서 최적의 학습 속도를 유지하고자, 학습 과정의 GPU utilization 예측 정보를 기반으로 런타임에 병목현상과 시스템 오버헤드가 발생할 것을 예측하고, 알고리즘 수행 정책에 따라 전 처리를 수행하는 다중 Thread의 수를 동적으로 변경하여 병목현상과 시스템 오버헤드로 인한 학습 과정의 지연을 단축하는 방법이다. 실험을 통해 제안 알고리즘을 검증한 결과, 학습 과정에서 CPU의 자원을 효율적으로 사용하면서 모델 학습을 위한 GPU utilization은 최대로 유지되었다. 그 결과, 제안된 Adaptive Thread Queuing 알고리즘은 고정된 수의 다중 Thread 학습법 대비, 전 처리 과정에서 발생할 수 있는 지연의 문제를 개선하면서 모델의 전체 학습 속도가 향상되는 것을 확인하였다.
Language
kor
URI
https://hdl.handle.net/10371/150877
Files in This Item:
Appears in Collections:
College of Engineering/Engineering Practice School (공과대학/대학원)Graduate School of Engineering Practice (공학전문대학원)Theses (Master's Degree_공학전문대학원)
  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Browse