KR101970041B1 - 하이브리드 지피유/씨피유(gpu/cpu) 데이터 처리 방법 - Google Patents
하이브리드 지피유/씨피유(gpu/cpu) 데이터 처리 방법 Download PDFInfo
- Publication number
- KR101970041B1 KR101970041B1 KR1020157007386A KR20157007386A KR101970041B1 KR 101970041 B1 KR101970041 B1 KR 101970041B1 KR 1020157007386 A KR1020157007386 A KR 1020157007386A KR 20157007386 A KR20157007386 A KR 20157007386A KR 101970041 B1 KR101970041 B1 KR 101970041B1
- Authority
- KR
- South Korea
- Prior art keywords
- search
- model
- gpu
- partial hypothesis
- hypothesis
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012545 processing Methods 0.000 title claims abstract description 20
- 238000012937 correction Methods 0.000 claims description 5
- 230000015654 memory Effects 0.000 description 28
- 238000011156 evaluation Methods 0.000 description 12
- 239000000203 mixture Substances 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013077 scoring method Methods 0.000 description 2
- 238000013179 statistical model Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical group OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 101001022170 Homo sapiens FYN-binding protein 2 Proteins 0.000 description 1
- 101000990990 Homo sapiens Midkine Proteins 0.000 description 1
- 102100030335 Midkine Human genes 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/34—Adaptation of a single recogniser for parallel processing, e.g. by use of multiple processors or cloud computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L2015/081—Search algorithms, e.g. Baum-Welch or Viterbi
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Machine Translation (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Advance Control (AREA)
Abstract
본 발명은 병렬 프로세서 플랫폼 상에서 대규모 그래프 탐색 연산을 수행하기 위한 방법을 기술한다. 본 발명은 연산 장치의 중앙 처리 장치(CPU) 활용과 더불어 그래픽 프로세싱 유니트(GPUs)를 활용하는 온-더-플라이 가설 리스코어링에 대한 방법을 기술한다. 본 발명은 대량 어휘 연속 음성 인식 작업에 적용된 하나의 실시 예로 기술된다.
Description
본 발명은 데이터 처리(data processing) 분야에 관한 것이다. 특히, 본 발명은 병렬 프로세서 플랫폼 상에서 대규모 그래프 탐색(graph traversal)을 수행하는 방법에 관한 것이다.
최근에는 컴퓨터들이 멀티코어(multicore) 및 매니코어(manycore) 프로세스(process)를 가지는 것이 더 일반적이며, 복잡한 연산 작업(computing tasks)들을 다양한 프로세싱 코어(core) 전체에서 병렬로 수행함으로써 그러한 업무를 수행하는 속도를 상당히 증가시킬 수 있다. 그러나, 일부 복잡한 연산 작업에서, 그러한 프로세서는 그들의 메모리 용량에 의하여 제한된다. 예를 들어, 매니코어 그래픽 프로세싱 유니트는 2-8 기가바이트(GB)의 메모리 제한을 가진다. 이러한 메모리는 그래프 구조가 수백만 아크(arcs)로 구성되고 모델들의 사이즈가 GB 의 100배 또는 그보다 큰 차수일 수 있는 대규모 그래프 탐색을 계산하는 것과 같은 작업에 대해서는 한계를 드러낸다.
따라서 이질적인 병렬 컴퓨팅 코어를 효과적으로 활용하여(leveraging), 병렬 프로세서 플랫폼(parallel processor platforms) 상에서 대규모 그래프 탐색을 효과적으로 수행할 방법이 필요하다.
이러한 개선된 방법을 필요로 하는 하나의 분야는 대형 어휘 연속 음성 인식(LVCSR)의 분야이다. 그러한 필요성에 대한 하나의 예로서, 음성 사용자 인터페이스가 차세대 스마트 장치를 위한 핵심 기술로 떠오르고 있다. 매혹적인 사용자 경험을 보장하기 위해서는 이러한 시스템 내에 사용되는 음성 인식 엔진이 빠르고, 강력하며, 낮은 대기 시간을 가지고, 시스템이 직면할 수 있는 매우 큰 어휘에 대해 충분한 커버리지를 제공하는 것이 중요하다. 높은 인식 정확도를 얻기 위하여, 방송 뉴스 트랜스크립션[1, 2] 또는 음성 검색 [3, 4]과 같은 작업을 위한 최첨단(state-of-the-art) 음성 인식 시스템은 큰 어휘(>1백만 워드), 큰 음성 모델(수백만 모델 파라메터), 및 매우 큰 언어 모델(수십억 n-그램 엔트리(entries))로 인식을 수행할 수 있다. 이 모델들은 오프라인 음성 인식 작업에 적용할 수 있지만, 디코딩하는 동안에 많은 계산 비용이 요구되는 탓에 실시간 음성 인식에는 비실용적이다.
정적으로 컴파일(statically compiled)된 가중 유한 상태 변환기(WFST) 네트워크를 하나의 단일 네트워크로서, 일반적으로 알려진 H-레벨 WFST로서 사용하면 음성 인식을 매우 효과적으로 수행할 수 있고, 여기서 WFSTs는 히든 마르코프 모델(HMM) 음향 모델(H), 컨텍스트 모델(C), 발음 어휘(L) 및 언어 모델(G)을 말한다. 그러나, 이러한 검색 네트워크의 편집(composition) 및 최적화는 큰 모델들이 사용될 때는 실행 불가능하게 된다.
온-더-플라이 컴포지션(on-the-fly composition)은 단일로 완전하게 편집된 WFST로 음성 인식을 수행하는 것에 대한 실용적인 대안이다. 온-더-플라이 컴포지션은 두 개 이상의 서브-WFSTs 그룹을 순서대로 적용하여, 디코딩 동안에 요구되는 대로 그들을 편집하는 단계를 포함한다. 하나의 일반적인 방법은 디코딩 전에 HoCoL을 미리 구성하고 그 다음에 문법 네트워크(G)로 이것을 온-더-플라이로 구성하는 것이다. 온-더-플라이 컴포지션은 메모리 관점에서 매우 경제적인 것으로 나타났으나, 디코딩은 통계적으로 컴파일(compiled)된 WFST[6]보다 상당히 느리다.
효율적인 WFST 디코딩을 위한 대안적 방법은 검색 동안에 컴포지션(composition) 보다는 가설 리스코어링(rescoring)[3]을 수행하는 것이다. 이러한 방법에서 비터비(Viterbi) 검색은 HoCoG uni 를 사용하여 수행되고, 다른 WFST 네트워크(G uni/tri )는 비터비 검색 프로세스에서 발생되는 가설을 온-더-플라이 방식으로 리스코어링하기 위해서만 사용된다. 이러한 알고리즘은 모든 지식 소스(knowledge dource)를 검색의 시작에서부터 사용할 수 있도록 허용하기 때문에 정확한 경로를 선택하고 가설을 간결하게 하는데 효율적이다.
매니코어 그래픽 프로세싱 유니트(GPU)로 이제 상품 자원, 하이브리드 GPU/CPU 연산 아키텍쳐(architecture)는 많은 연산 작업에 대한 실용적인 솔루션이다. 각 연산 서브-작업(sub-task)에 가장 적절한 아키텍쳐를 활용(leveraging)함으로써, 두 플랫폼을 하나씩만 사용하는 것보다 상당히 높은 작업처리량을 달성할 수 있다. 이전 작업(works)[7, 8]은 음성 인식을 위해 GPU 프로세서를 사용하는 효율성을 증명하였고, 제한된 어휘 작업[7]에 대한 처리량에서 상당한 개선을 얻었다. 그러나 이러한 아키텍쳐에서 제한된 메모리는 인식 동안에 큰 음향 및 언어 모델이 적용될 때, 및 또한 다른 대규모 그래프 탐색 연산에 대해 상당한 병목이 있다. 이러한 연산에 대한 가장 중요한 과제(challenge)는 근래의 넓은 도메인 음성 인식 시스템[1,2,4]에 사용되는 매우 큰 언어 모델을 처리하는 것이다. 이러한 모델은 수백만의 고유의 어휘 아이템, 수십억의 n-그램 컨텍스트를 포함할 수 있으며, 및 아마 메모리에 저장하기 위하여 20 GB 이상을 요구할 수 있을 것이다. 상당히 간결해진 경우에도, 이러한 모델들은 GPU 플랫폼에 사용할 수 있는 제한된 메모리 내에 적합하도록 할 수 없다. 큰 음향 및 언어 모델로 음성 인식을 효율적으로 수행하기 위하여 GPU 아키텍쳐의 연산 처리량과 더불어 CPU의 큰 메모리와 로컬-캐쉬(cache)를 활용(leverage)하는 하이브리드 GPU/CPU 아키텍처를 개발하였다.
본 발명이 해결하려는 과제는 이질적인 병렬 컴퓨팅 코어를 효과적으로 활용하여(leveraging), 병렬 프로세서 플랫폼(parallel processor platforms) 상에서 대규모 그래프 탐색을 효과적으로 수행할 방법을 제공하는데 있다.
이러한 개선된 방법을 필요로 하는 하나의 분야는 대량 어휘 연속 음성 인식(LVCSR) 분야이다.
본 발명 과제의 해결 수단은 중앙처리 장치(CPU)와 그래픽 처리 장치(GPU)를 포함하는 컴퓨팅 플랫폼을 제공하는 단계; 가능성(likelihood)을 초기화하는 단계; 입력 신호에 대한 샘플을 획득하는 단계; 샘플로부터 샘플 특징을 연산하는 단계; 샘플 특징 각각에 대해 관측 가능성을 연산하는 단계; 한 세트의 부분 가설을 형성하기 위하여 이전 시간 단계에서 샘플 특징의 각각과 가능성에 대한 관측 가능성에 기초하여 가능성을 업데이트하는 단계; 상기 부분 가설 세트 각각의 부분 가설에 대한 가능성 교정을 연산하는 단계; 상기 부분 가설 세트 각각의 부분 가설에 대한 가능성을 업데이트하는 단계; 및 업데이트된 부분 가설 세트 상에서 백-트랙을 수행하는 단계와 업데이트된 부분 가설 세트 중에서 가능성이 가장 높은 부분 가설을 결정하는 단계를 포함하는 그래프 탐색을 위한 컴퓨터 구현된 통계 추론 방법을 제공하는데 있다.
본 발명은 이질적인 병렬 컴퓨팅 코어를 효과적으로 활용하여(leveraging), 병렬 프로세서 플랫폼(parallel processor platforms) 상에서 대규모 그래프 탐색을 효과적으로 수행할 수 있는 유리한 효과가 있다.
이러한 개선된 방법을 필요로 하는 하나의 분야는 대량 어휘 연속 음성 인식(LVCSR) 분야이다.
도 1은 대규모 그래프 탐색 작업에 적용된 본 발명의 구조 구현을 개략적으로 도시한 것이다.
도 2는 가중 유한 상태 변환기(WFST) 편집(composition) 동안 적용될 작은 모델에 포함될 아이템(entry)들을 큰 모델로부터 서브-선택(sub-select)하기 위해(즉, 토큰 시퀀스의 마르코프 모델로부터의 확률) 실행된 방법을 개략적으로 도시한 것이다. 그 결과 완벽하게 편집(composed)된 WFST 검색 그래프는 그래픽 프로세서-유니트(GPU) 상에서 검색을 수행할 수 있을 만큼 충분히 작아질 것이다.
도 3은 그래픽 프로세서 유니트(GPU) 상에서 검색을 수행하기에 적합한 작은 WFST 검색 그래프를 편집하기 위해 사용된 구현 방법을 개략적으로 도시한 것이다;
도 4는 WFST 검색 그래프에서 상태(state)와 이웃 아크들(arcs) 내에 포함된 정보를 개략적으로 도시한 것이다. 이것들은 stateID, 인커밍(incoming) 아크의 리스트, 아웃고잉(out-going) 아크의 리스트, 및 입력과 출력 심볼을 포함한다. 각 아크는 특정 아크-가중을 포함한다. 입력 심볼은 "관측 모델"에 의해 발생된 확률과 일치한다. 출력 심볼은 프로세스를 검색함에 의하여 발생되는 토큰과 일치한다. 예를 들어, 음성 인식 작업에서 이러한 토큰들은 단어들에 매프(map)할 것이다.
도 5는 그래픽 프로세싱 유니트(GPU) 상의 검색에 적절한 작은 WFST 검색 그래프의 예를 나타낸 것이다. 예는 임의의 순서로 발생하는 세 단어("nice", "recognize" 및 "speech")로 구성되어있는 아주 간단한 작업에 대한 음성 인식에 적용된 검색 그래프를 보여준다;
도 6은 현재의 단어에 대해 나열된 언어 모델 확률과 함께, 공지된 단어 히스토리가 주어진 예시 언어 모델을 보여준다;
도 7은 그래픽 프로세싱 유니트(GPU) 상에서 사용하기 위하여 WFST-기반의 검색 그래프를 컴파일링(compiling)할 때 편집(composition) 동안 사용하기 적절한 작은 언어 모델의 예를 보여준다. 이러한 언어 모델은 언어 모델 확률로 0.05의 언어 모델 임계값(TLM )을 사용하여 도 6 의 큰 언어 모델로부터 서브-선택되었다;
도 8은 도 6 및 도 7에 각각 도시된 큰 언어 모델 및 작은 언어 모델을 사용하는 자동 언어 인식 작업을 위한 부분 가설 리-스코어링(re-scoring)의 예를 보여준다. 리-스코어링 전에는, 문구 "recognize a beach..."가 가장 높은 확률을 가지나, 그러나 큰 언어 모델로 리-스코어링한 후에는, 가장 높은 확률을 가진 부분 가설은 "recognize speech"이다;
도 9는 가설 조합 및 가설 제거(pruning)를 보여주는 본 발명의 개략도이다;
도 10은 종래 기술의 방법을 사용하는 정확도 및 디코딩 속도를 5000 단어의 어휘 크기로 대량 어휘 연속 음성 인식 작업에 적용된 본 발명의 그것과 비교하는 데이터를 나타낸다. 평가 세트: WSJ 5K nov'92(330 문장), n1.3=9, m1.3=1, n2.3=3, m2.3=4, lbw2.3=7);
도 11은 종래 기술의 방법을 사용하는 정확도 및 디코딩 속도를 1 백만 어휘 사이즈를 가진 대량 어휘 연속 음성인식 작업에 적용된 본 발명의 그것과 비교한 데이터를 나타낸다. 1M 어휘 평가 결과(평가 세트: WSJ 5K nov'92 + WSJ 20K nov'93(543 문장), n2.3=n3.4=3,m2.3=m3.4=24);
도 12는 대량 어휘 연속 음성인식의 작업에 적용된 본 발명을 사용하는 실험에서 연산 단계 당 처리 시간의 비율에 관한 데이터를 보여준다. (1M 어휘, n3.4 = 3, m3.4 = 24);
도 13은 본 발명에 사용된 "병렬 원자 머지-앤-소트(parallel atomic merge-and-sort)" 방법에 대한 입력 및 출력을 보여준다. 입력은 L 소트(sorted)된 리스트(S1, ...,SL)로 편집되고, 출력은 단일 소트된 리스트(T)이다;
도 14는 본 발명에 사용된 "원자 머지-앤-소트(atomic merge-and-sort)" 방법에서 부분 가설 정보를 저장하는데 사용되는 데이터 구조를 보여준다.
도 15는 본 발명에 사용되는 "원자 머지-앤-소트" 방법에 사용되는 데이터 구조 및 기능(function)의 개요(overview)를 나타낸다. 기능 "머지-앤-소트 (<source list>, <target list>)"는 모든 L 소트된 리스트들(S1, ..., SL)을 병합할 것을 요구한다;
도 16은 본 발명에 사용된 "원자 머지-앤-소트" 방법의 개략적인 도면을 나타낸다;
도 17은 본 발명에 사용된 "고속의 메모리 효율적 검색" 아키텍쳐로 변환된 언어 모델의 예를 나타낸다;
도 18은 본 발명에 사용된 "고속의 메모리 효율적 검색" 아키텍쳐로 확률(주어진 히스토리와 출력 토큰에 대한)을 추출하기 위한 절차를 나타내는 개략적인 도면이다;
도 19는 본 발명에 사용된 "고속의 메모리 효율적 검색" 아키텍쳐에서 가장 적절한 데이터 구조(HASH-MAP, STATIC ARRAY, BINARY SEARCH TREE, single INTEGER)를 선택함에 의하여 메모리 효율적 모델을 생산하기 위한 절차를 나타내는 개략적인 도면이다;
도 20은 1 백만 어휘 크기로 대량 어휘 연속 음성 인식의 작업에 적용된, "고속의 메모리 효율적 검색" 아키텍쳐에서 메모리 최적화 전에, 아웃고잉(out-going) 아크(arcs)의 수와 스테이트(state)의 수를 비교하는 데이터를 보여준다;
도 21은 대량 어휘 연속 음성 인식의 작업에 적용된, "고속의 메모리 효율적 검색" 아키텍쳐에서 BINARY-SEARCH 트리에 사용하기 위한 아웃고잉 아크의 수와 메모리 풋-프린트를 비교한 데이터를 나타낸다.
도 22는 이전의 방법(즉, KenLM)과 대량 어휘 연속 음성 인식의 작업에 적용된, 구현된 "고속의 메모리 효율적 검색" 아키텍쳐에 대한 속도(즉, 실시간 팩터(RTF))를 비교한 데이터를 보여준다; 및
도 23은 이전의 방법(즉, KenLM)과 대량 어휘 연속 음성인식의 작업에 적용된, 구현된 "고속의 메모리 효율적 검색" 아키텍쳐에 대한 메모리 풋-프린트(GBytes)를 비교한 데이터를 보여준다.
도 2는 가중 유한 상태 변환기(WFST) 편집(composition) 동안 적용될 작은 모델에 포함될 아이템(entry)들을 큰 모델로부터 서브-선택(sub-select)하기 위해(즉, 토큰 시퀀스의 마르코프 모델로부터의 확률) 실행된 방법을 개략적으로 도시한 것이다. 그 결과 완벽하게 편집(composed)된 WFST 검색 그래프는 그래픽 프로세서-유니트(GPU) 상에서 검색을 수행할 수 있을 만큼 충분히 작아질 것이다.
도 3은 그래픽 프로세서 유니트(GPU) 상에서 검색을 수행하기에 적합한 작은 WFST 검색 그래프를 편집하기 위해 사용된 구현 방법을 개략적으로 도시한 것이다;
도 4는 WFST 검색 그래프에서 상태(state)와 이웃 아크들(arcs) 내에 포함된 정보를 개략적으로 도시한 것이다. 이것들은 stateID, 인커밍(incoming) 아크의 리스트, 아웃고잉(out-going) 아크의 리스트, 및 입력과 출력 심볼을 포함한다. 각 아크는 특정 아크-가중을 포함한다. 입력 심볼은 "관측 모델"에 의해 발생된 확률과 일치한다. 출력 심볼은 프로세스를 검색함에 의하여 발생되는 토큰과 일치한다. 예를 들어, 음성 인식 작업에서 이러한 토큰들은 단어들에 매프(map)할 것이다.
도 5는 그래픽 프로세싱 유니트(GPU) 상의 검색에 적절한 작은 WFST 검색 그래프의 예를 나타낸 것이다. 예는 임의의 순서로 발생하는 세 단어("nice", "recognize" 및 "speech")로 구성되어있는 아주 간단한 작업에 대한 음성 인식에 적용된 검색 그래프를 보여준다;
도 6은 현재의 단어에 대해 나열된 언어 모델 확률과 함께, 공지된 단어 히스토리가 주어진 예시 언어 모델을 보여준다;
도 7은 그래픽 프로세싱 유니트(GPU) 상에서 사용하기 위하여 WFST-기반의 검색 그래프를 컴파일링(compiling)할 때 편집(composition) 동안 사용하기 적절한 작은 언어 모델의 예를 보여준다. 이러한 언어 모델은 언어 모델 확률로 0.05의 언어 모델 임계값(TLM )을 사용하여 도 6 의 큰 언어 모델로부터 서브-선택되었다;
도 8은 도 6 및 도 7에 각각 도시된 큰 언어 모델 및 작은 언어 모델을 사용하는 자동 언어 인식 작업을 위한 부분 가설 리-스코어링(re-scoring)의 예를 보여준다. 리-스코어링 전에는, 문구 "recognize a beach..."가 가장 높은 확률을 가지나, 그러나 큰 언어 모델로 리-스코어링한 후에는, 가장 높은 확률을 가진 부분 가설은 "recognize speech"이다;
도 9는 가설 조합 및 가설 제거(pruning)를 보여주는 본 발명의 개략도이다;
도 10은 종래 기술의 방법을 사용하는 정확도 및 디코딩 속도를 5000 단어의 어휘 크기로 대량 어휘 연속 음성 인식 작업에 적용된 본 발명의 그것과 비교하는 데이터를 나타낸다. 평가 세트: WSJ 5K nov'92(330 문장), n1.3=9, m1.3=1, n2.3=3, m2.3=4, lbw2.3=7);
도 11은 종래 기술의 방법을 사용하는 정확도 및 디코딩 속도를 1 백만 어휘 사이즈를 가진 대량 어휘 연속 음성인식 작업에 적용된 본 발명의 그것과 비교한 데이터를 나타낸다. 1M 어휘 평가 결과(평가 세트: WSJ 5K nov'92 + WSJ 20K nov'93(543 문장), n2.3=n3.4=3,m2.3=m3.4=24);
도 12는 대량 어휘 연속 음성인식의 작업에 적용된 본 발명을 사용하는 실험에서 연산 단계 당 처리 시간의 비율에 관한 데이터를 보여준다. (1M 어휘, n3.4 = 3, m3.4 = 24);
도 13은 본 발명에 사용된 "병렬 원자 머지-앤-소트(parallel atomic merge-and-sort)" 방법에 대한 입력 및 출력을 보여준다. 입력은 L 소트(sorted)된 리스트(S1, ...,SL)로 편집되고, 출력은 단일 소트된 리스트(T)이다;
도 14는 본 발명에 사용된 "원자 머지-앤-소트(atomic merge-and-sort)" 방법에서 부분 가설 정보를 저장하는데 사용되는 데이터 구조를 보여준다.
도 15는 본 발명에 사용되는 "원자 머지-앤-소트" 방법에 사용되는 데이터 구조 및 기능(function)의 개요(overview)를 나타낸다. 기능 "머지-앤-소트 (<source list>, <target list>)"는 모든 L 소트된 리스트들(S1, ..., SL)을 병합할 것을 요구한다;
도 16은 본 발명에 사용된 "원자 머지-앤-소트" 방법의 개략적인 도면을 나타낸다;
도 17은 본 발명에 사용된 "고속의 메모리 효율적 검색" 아키텍쳐로 변환된 언어 모델의 예를 나타낸다;
도 18은 본 발명에 사용된 "고속의 메모리 효율적 검색" 아키텍쳐로 확률(주어진 히스토리와 출력 토큰에 대한)을 추출하기 위한 절차를 나타내는 개략적인 도면이다;
도 19는 본 발명에 사용된 "고속의 메모리 효율적 검색" 아키텍쳐에서 가장 적절한 데이터 구조(HASH-MAP, STATIC ARRAY, BINARY SEARCH TREE, single INTEGER)를 선택함에 의하여 메모리 효율적 모델을 생산하기 위한 절차를 나타내는 개략적인 도면이다;
도 20은 1 백만 어휘 크기로 대량 어휘 연속 음성 인식의 작업에 적용된, "고속의 메모리 효율적 검색" 아키텍쳐에서 메모리 최적화 전에, 아웃고잉(out-going) 아크(arcs)의 수와 스테이트(state)의 수를 비교하는 데이터를 보여준다;
도 21은 대량 어휘 연속 음성 인식의 작업에 적용된, "고속의 메모리 효율적 검색" 아키텍쳐에서 BINARY-SEARCH 트리에 사용하기 위한 아웃고잉 아크의 수와 메모리 풋-프린트를 비교한 데이터를 나타낸다.
도 22는 이전의 방법(즉, KenLM)과 대량 어휘 연속 음성 인식의 작업에 적용된, 구현된 "고속의 메모리 효율적 검색" 아키텍쳐에 대한 속도(즉, 실시간 팩터(RTF))를 비교한 데이터를 보여준다; 및
도 23은 이전의 방법(즉, KenLM)과 대량 어휘 연속 음성인식의 작업에 적용된, 구현된 "고속의 메모리 효율적 검색" 아키텍쳐에 대한 메모리 풋-프린트(GBytes)를 비교한 데이터를 보여준다.
본 발명은 병렬 프로세서 플랫폼 상에서 대규모 그래프 탐색 연산을 수행하기 위한 방법을 기술한다. 본 발명은 연산 장치의 중앙 처리 유니트(CPU) 활용과 더불어 그래픽 프로세싱 유니트(GPUs)를 활용하는 온-더-플라이 가설 리스코어링(rescoring)을 위한 방법을 기술한다. 본 발명은 대형 어휘 연속 음성 인식 작업에 적용된 일 실시 예로 기술한다. 이 기술분야에 통상의 지식을 가진 자라면 본 발명의 방법이 다른 대규모(대용량) 그래프 탐색 연산에 적용될 수 있음을 인식할 것이다.
본 발명은 병렬 프로세서 플랫폼 상에서 대규모 그래프 탐색을 수행하는 방법을 기술한다. 본 발명은 연산(컴퓨팅) 장치의 하나 이상의 중앙 처리 유니트(CPUs) 사용과 더불어 그래픽 프로세싱 유니트(GPUs)를 사용하는 "온-더-플라이 가설 리스코어링"에 대한 방법을 기술한다. 본 발명은 대량 어휘 연속 음성 인식(LVCSR)의 작업에 적용된 하나의 실시 예로 기술되어 있다.
당해 분야의 통상의 기술자는 본 발명의 방법이 대규모 그래프 탐색 연산이 요구되는 다른 통계적 추론(inference) 작업에 적용될 수 있음을 인식할 것이다; 예들은 필기 인식, 이미지에 기초한 제스쳐 인식, 및 이미지 이해를 포함한다.
본 발명에, 하이브리드 GPU/CPU 아키텍처에 대한 새로운 온-더-플라이 가설 리스코어링(rescoring)을 기술한다. 본 발명의 방법에 대한 개요는 도 1에 도시되어 있다.
입력신호(아이템1) 및 한 세트의 통계적 모델들(아이템15, 16 및 18)이 주어지면, 검색은 입력 신호와 가장 가깝게 일치하는 모델들을 통해서 합동으로 최상의 토큰-시퀀스 찾기를 수행한다.
본 발명의 일 실시 예에서, 즉, 대량 어휘 연속 음성인식(LVCSR) 작업을 위하여, 입력 신호(아이템 1)는 마이크로폰으로부터 포착된 디지털 오디오일 수 있고, 출력(아이템 2)은 사용자가 말한 것에 가장 가깝게 일치하는 단어 시퀀스일 수 있다. 대량 어휘 음성 인식(LVCSR) 작업을 위하여, 아이템(15)은 음향 모델(예를 들어, 가우시안 혼합 모델 또는 딥 신경망에 기초한 스토케스틱 모델)에 매프(map)되고, 아이템(16)은 완전히 편집(composed)된 H-레벨 가중 유한 상태 변환기(WFST)에 기초한 검색 그래프(도 5에 도시된 그러한 그래프의 실 예)가 될 것이며, 및 아이템(18)은 언어 모델(예를 들어, 정적 검색 테이블(Lookup Table)에 저장된 언어 모델 확률 또는 선택적으로 딥(deep) 신경망에 기초한 통계적 모델)이 될 것이다.
본 발명에서, 검색은 아래의 방법으로 수행된다. 시작(도 1의 단계3)에서, 임의의 임시 작업 메모리(아이템 17 및 19)는 지워지고(cleared), 상태 가능성(state likelihood)은 검색 네트워크를 위하여 초기화된다. 특히, 네트워크의 초기상태 가능성은 1.0으로 세트 되고, 모든 다른 상태의 가능성은 0에 세트된다. 실 예로, 아이템(37)은 도 5에서 검색 그래프의 초기 상태를 식별한다.
입력신호(INPUT SIGNAL)가 먼저 수신되면 샘플이 포착되고(단계 4) 샘플로부터 한 세트의 대표적인 특징들이 계산되거나 추출된다(단계 5). 얻어진 "특징 벡터"는 포착된 신호의 가장 유익한 측면의 낮은 차원 표시이다. 하나 이상의 특징 벡터는 애플리케이션 작업에 따라 샘플마다 계산될 수 있다.
본 발명, 즉, (LVCSR)의 일 실시 예에서, 입력 신호(아이템 1)는 디지털 오디오이다. 이 작업을 위해, 25 ms의 오디오 샘플은 입력 신호의 중첩을 허용하는 매 10ms 마다 포착될(단계 4와 13) 수 있다. 음향 특징은 각 25 ms의 오디오 샘플에 대해 계산할 수 있다. 이 작업에 사용될 수 있는 표준 음향 특징은 로그-멜 필터밴드 에너지 및 멜-주파수-켑스트럴-계수(MFCC) 특징을 포함한다. 이미지 또는 오디오-비쥬얼 신호가 입력신호 일 때 유사한 방법을 또한 사용할 수 있다. 샘플 캡처(단계 4와 13) 및 특징 연산(단계 5)은 CPU나 또는 GPU 연산 아키텍쳐를 사용하여, 임의의 연산 장치에서 수행할 수 있다. 그것들은 본 발명의 다른 단계들과 반드시 동일한 연산 장치에서 수행될 필요는 없다.
일단 특징 벡터가 생성되면(단계 5), N-베스트 검색은 통합된 모델 가능성 교정(단계 9 및 10)을 연산하기 위하여 CPU를 활용(leveraging)하고, CPU의 메인 메모리(아이템 18)에 저장된 큰 토큰 시퀀스 모델을 이용하여, GPU(단계 6, 7, 8, 11 및 12) 상에서 수행된다. 검색 동안에, 통계적 관측 모델(아이템 15), 예를 들어, 가우시안 혼합모델 또는 딥 신경망 네트워크-기반의 모델을 사용하여, 각각의 새로운 특징 백터에 대하여 먼저 관측 가능성(observation likelihood)이 연산된다(단계 6). 단계(7)에서, 상태 가능성(state likelihood)은, 단계(6)에서 계산된 관측 가능성, 및 이전 단계에서의 상태 가능성에 기초한, 수식(1)을 사용하여 연산된다. 새로운 부분 가설(g')의 상태 가능성(α[g'])은 수식(1)로 계산된다:
여기서, β[e]는 입력 신호(i[e])의 관측 가능성이고(아이템(15)을 사용하여 연산됨), w[e]는 상태 전이 확률(아이템 (16)으로부터)이고, 및 α[g]는 이전의 시간 동기(단계 6)로부터의 상태 가능성이다.
본 발명에서, 모델 가능성 교정, c[e, h[g]]는 상당히 큰 모델이 온-더-플라이로 적용될 수 있도록 도입된다:
모델 가능성 교정 팩터, (c[e, h[g]])는, 더 작은 모델(P uni (o[e]))(즉, WFST 컴포지션 동안 적용되는 언어 모델)의 모델 가능성과 검색 동안 적용되는 훨씬 더 큰 모델, (P ngm (o[e]|h[g]))(아이템(18))의 모델 가능성들 사이의 차이이다.
여기서 h[g]는 가설(g)의 출력 심볼 시퀀스이다.
검색 프로세스 동안에, 임의의 부분 가설(g(h[g])의 출력 심볼 시퀀스가 변화하면(단계8), 그 가설에 대하여 리스코어링이 수행된다. 리스코어링 단계에서, 먼저, 모델 가능성 팩터(c[e, h[g]])(수식 3)가 계산된다(단계9). 여기서, 메모리에 저장된 큰 모델(아이템18)이 P ngm (o[e]|h[g])를 연산하기 위하여 사용된다. 다음은 수식 2(단계10)에 기술된 바와 같이, 부분 가설의 상태 가능성(state likelihood)(α[g'])은 모델 가능성 교정 팩터를 사용하여 업데이트된다.
리스코어링이 수행된 후, 부분 가설은 그들의 상태 가능성(α[g'])에 기초하여 순위가 결정(ranked)되며 랭킹(순위)임계값 아래로 떨어지는 것들은 고려대상에서 제거된다(단계11).
이러한 검색 프로세스(단계 6, 7, 8, 9, 10, 11, 12, 13)는 마지막 샘플을 만날 때까지 반복된다(단계12). 어느 포인트에서 백-트랙(역추적=back-track)이 CPU(단계14) 상에서 수행되고, 최종 1-best(1-최상) 가설 출력(아이템2)을 발생시킨다. 역추적표(back-track table)(활성화된 부분 가설의 리스트를 저장하고, 및 부분 가설을 변경한 이전 프레임에 대한 백-포인터들을 저장하는 표)는 GPU(아이템17)와 CPU(아이템19) 사이의 작업 메모리(working memory)에서 공유된다. 이 테이블의 동기화를 유지하기 위하여, CPU는 각 샘플이 처리된 후 GPU에서 CPU(아이템20)로 백 트랙 정보를 복사한다.
일 실시 예에서, 백-트랙(단계12)을 수행하기 전에 마지막 샘플을 만나려고 기다리기 보다는, CPU(단계14) 상에서 매 20 샘플마다 또는 단일-최상(best) 출력이 미래에 변경되지 않을 포인트에서 백-트랙이 수행된다.
본 발명에서, 각각의 아크(arc) 및 상태(state)에 대하여 n-best(n-최상) 가설을 할당함에 의하여 비터비(Viterbi)검색이 행해진다. 다수의 아크가 동일한 상태(state)에서 만날 때, n-best 가설 리스트는 병합되고, 비터비 검색은 모든 n-best 가설 리스트에 걸쳐 최소한으로 가중된 가설을 선택한다. 도 9에서, 상태(s2)로부터의 f4와 상태(s3)으로부터의 f2는 그들의 전체 가중에 기초하여 소트(sorted)된 차수로 유지된다. 부가적으로, 가설들이 동일하게 높은 차수의 히스토리를 가진다면, 오로지 적게 가중된 가설만이 유지될 것이다. 예를 들어, f"1은 이 가설이 동일한 높은 차수 히스토리 "ba"를 가지지만 이들이 s5에서 만나면 f"4에 비해 높은 가중을 가지기 때문에 f"1은 제거(pruned)된다. n-best 리스트를 유지하는 것은 손색없는 정확성[7]을 달성하기 위하여 중요하다. 2.1에 설명된 최상 가설을 선택하는 경우에, 최종 최상 가설의 부분 가설은 비- 엡실론(non-epsilon) 출력으로 가설이 리스코어(rescored)될 수 있는 트랜지션(e)에 도달하기 전에 제거될 수 있다. 이러한 시나리오는 도 9에 설명되어 있으며 여기서 가설(f1)은 표준 디코딩 방법을 사용하는 최초의 최상 경로이고, f4는 리스코어된 최상 경로이다. 우리가 최상의 경로만을 유지한다면 전체적으로 최상 가설(f4)은 리스코어링이 적용될 수 있는 s3와 s4 사이의 아크에 도달될 수 없다. n-best 리스트의 최대 사이즈는 어휘 크기와 언어 모델의 차수에 기초하여 조심스럽게 결정되어야 한다. 주어진 어휘의 사이즈에서, 낮은 차수 언어 모델로 편집(composed)된 WFST는 동일한 목표(destination) 상태 안으로 아크의 심한 컨버젼스 때문에 손색없는 정확도를 얻기 위하여 높은 차수 언어 모델로 편집(composed)된 것에 비해 더 많은 n 을 요구한다. 유사하게, WFST 는 그것이 리스코어링 시점에 도달할 때까지 최종 최상을 유지하기 위하여 더 큰 n-best 리스트를 요구하는 더 많은 어휘를 가진다.
본 발명은 제한하기 보다는 모든 측면에서 설명할 의도로 다수의 바람직한 실시 예에 따라 기술되었다. 특히, 본 발명은 대량 어휘 연속 음성 인식 연산에 적용된 하나의 실시 예로 기술하였다. 이 기술분야에 통상의 기술을 가진 자들은 본 발명을 5 개의 다른 유형의 대규모 그래프 탐색에 적용할 수 있음을 인식할 것이다. 따라서, 본 발명은 이 기술분야에 통상의 지식을 가진 자가 여기에 포함된 기술로부터 유도할 수 있는 상세한 구현으로 많은 변형이 가능할 수 있다. 그러한 모든 변형 및 다른 변형은 본 발명의 기술적 사상 및 범위 내에 있는 것으로 고려되어야 한다.
데모 예제
제안된 "온-더-플라이" 리스코어링 방법의 효율성을 증명하기 위하여, 도 6, 7 및 8에서 음성 인식 작업에 대한 한 세트의 예제 모델을 보여준다.
먼저, 검색 그래프(도 1, 아이템 16)를 준비하기 위하여 모델 컴파일(compilation)동안 사용할 대량(large) 언어 모델(도7)로부터 아이템(entries)을 서브-선택해야 한다. 이러한 데모 예에서, 확률이 0.05 보다 큰 그러한 모델 엔트리들을 서브- 선택했다. 이것은 도 6에 도시된 작은 언어 모델을 초래했다. 얻어진 결과 검색 그래프는 도 5에 나타난 것과 비슷한 구조일 것이다.
큰 모델로부터 작은 모델을 발생하기 위한 최적 모델 엔트리들을 선택하기 위한 방법과 검색은 도 2와 도 3 각각에 도시되어 있다.
도 8은 도 6과 7에 리스트된 언어 모델을 사용하여 6개의 부분 가설과 관련된 확률을 리스코어링 전과 후 모두에 대하여 보여준다. 도 8은 "recognize a beach ..."가 리스코어링 전에 최상의 확률을 가짐을 보여준다. 그러나, 리스코어링 후, 더 합리적인 가설 "recognize speech" 가 최상의 확률을 가진다. 비록 워드 씨퀀스(word sequence)("<s> recognize speech </s>")의 확률이 최초 모델에서 상대적으로 높을지라도, 이러한 엔트리들은 작은 언어 모델과 검색 그래프를 생성하여 GPU 상에서 검색을 수행하기 위하여 버려야했다.
실험 평가
WSJ 작업의 대량 어휘 버전을 사용하는 대량 어휘 연속 음성 인식(LVCSR)의 작업에 대한 본 발명의 효과를 평가했다. 1992년 11월 ARPA WSJ 5k 평가 세트(330 문장) 및 1993년 11월 ARAP WSJ 20k 평가 세트(213 문장, 오픈 어휘)로 구성되어 있는 합동(combined) 평가세트를 사용했다.
음향 모델은 LDA 변환으로 39 차원의 MFCCs 피트(feats)로 WSJ 데이터 세트 에 관하여 칼디 툴킷(Kaldi toolkit[22])을 사용하여 트레인(trained)되었다. 그 결과 음향 모델에 240K 가우시안 및 2,946 음성 상태(phonetic states)가 들어있다.
표 1은 다양한 언어 모델에 대한 WFSTs 의 크기이다.
WFSTs 는 [5, 6]에 설명된 GPU-가속 플랫폼에 대한 효율적인 평행 시간-동기 그래프 탐색을 위하여 오프라인으로 편집(composed)되고 최적화되었다. 표 1은 5k와 1000k 어휘 언어 모델에 대하여 완전하게 편집(composed)된 WFSTs의 최종 크기를 보여준다. 두 개의 인텔 Xeon E5-2640 6-core CPUs를 내장한 4-way NVIDIA Tesla K20 GPU 서버에서 단일 GPU를 사용하여 제안된 알고리즘을 평가했다. NVIDIA Tesla K20 GPU 는 2,496 CUDA 코어와 5GB GDDR5 메모리를 가진 13 스트리밍 다중 프로세서(SMX)를 포함한다. 오퍼레이팅 시스템(OS)은 Ubuntu 12.04 LTS(64비트)였고 디코더는 g++4.6 및 nvcc5.0[23]으로 컴파일(compile)했다. 다음 섹션에서는 다음의 컴포지션 방식들(schemes)을 비교한다: 3-그램 언어 모델(STD-3)으로 편집(composed)된 WFST를 사용하는 표준 방법, lbw2.3으로 래티스 빔을 사용한 래티스 제너레이션 리스코어드 2-그램/3-그램 언어 모델 조합(LATR-2.3), 및 m2.3 스래드(threads)로 n2.3-best 검색을 수행하는 제안된 온-더-플라이 리스코어드 2-그램/3-그램 조합(OTFR-2.3).
정확도 성능
제1 평가에서, 작은 어휘 5k 테스트 세트를 사용하여 제안된 리스코어링 방법의 정확도를 평가했다. 동일한 지식 소스(knowledge source)를 그러나 다른 언어 모델을 사용하여 3개의 완전하게 편집(composed)된 WFST를 생성했다. 1-그램 및 2-그램 경우에 대하여, 제안한 온-더-플라이 가설 리스코어링 방법을 적용했다. N1, N2로 디코딩하고 3-그램 언어 모델을 사용하여 온-더-플라이로 리스코어 하여, n1.3, n2.3이 각각 9, 3일 때 STD-3 경우와 LATR-2.3과 유사한 단어 에러율(WER= Word Error Rate)을 얻었다. 3에서 설명한 바와 같이 n2.3과 비교해 손색없는 단어 에러율, 5.4%를 달성하기 위하여 n1.3은 n2.3 보다 크다. 유사하게, LATR-2.3은 모든 디코딩 방법에 걸쳐 주어진 전체적인 빔(global beam)에 대해 손색없는 정확도를 달성하기 위하여 더 넓은 lbw 2.3을 요구한다. 큰 어휘(1M 어휘) 평가에서, OTFR-2.4는 n2.4, n3.4 가 3일 때 OTFR-3.4 경우에 비해 0.3% 절대 정확도 감소를 보였다. 이것은 큰 어휘 차수 언어 모델뿐만 아니라 낮은 차수 언어 모델도 표준 및 래티스 리스코어링 알고리즘에 비길만한 정확도를 달성하기 위해서 더 많은 n이 요구되는 것을 나타낸다.
속도 성능: 제2 평가에서, 단일 코어 구현과 GPU-가속된 다중-코어 구현 모두를 사용하여 디코딩 속도를 평가했다. 베이스 라인 구현은 음향 가중 연산 프로세스를 가속하기 위해 자동 조정된 선형 대수 소프트웨어(ATLAS)를 사용하여 최적화된다. 도 10과 도 11에서의 GPU/CPU 평가는, GPU 상의 음향모델 연산과 동시에, 언어 모델 검색은 다중 CPU 코어 전체에 걸쳐 병렬로 수행된다. 이러한 단계의 분업(breakdown)은 도 12에 도시된다. 도 12는 베이스라인 GPU 표준 디코딩 방법을 전혀 최적화없이 보여준다. 언어 모델 검색은 디코딩 시간의 대부분을 소모한다. OpenMp(b)를 사용하여 언어 모델 검색을 실행함으로써 검색에 요구되는 시간은 11.6×의 팩터(factor)로 0.71에서 0.06 RTF 로 감소된다. 결국, GPU 상에서 음향 가중 연산과 동시에 언어 검색 모델을 수행함에 의하여 전체 디코딩 시간은 0.20 RTF에서 0.12 RTF로 더 감소한다. 도 10에서, OTRF-3.4는 GPU와 멀티 코어 CPUs 를 효율적으로 사용하여 WER가 6.5% 일 때 실시간 보다 10× 더 빠른 디코딩 속도를 보여주었다. 고도로 최적화된 단일 CPU 구현에 비해 24× 더 빠르다. 결과는 높은 차수의 언어 모델로 편집(composed)된 WFST가 디코딩 속도 측면에서 더 적절함을 보여준다. 도 11에서, OTFR2.3은 WER이 5.4 일 때 OTFR-1.3보다 상대적으로 40% 더 빠르다. 도 11에서 또한 이것을 관측했으며, OTFR-3.4는 OTFR-2.4보다 상대적으로 빠르다.
고도의 병렬 컴퓨팅 아키텍처에서 소트된 리스트를 병합하는 방법: 원자 머지-앤-소트
비터비(Viterbi) 검색 동안에 n-best 가설을 유지하는 것은 많은 병렬화 과제(challenges)를 가진다. 가장 중요한 과제는 재집합하는(reconvergent) 경로에서 n-best(n-최상) 리스트의 병합이다. 우리는 탑에서 최소로 가중된 가설로 소트된 n-best(n-최상) 리스트를 유지하는 것을 선택했다. 이것은 "머지-앤-소트"의 프로세스로 n-best 가설 리스트를 병합-정렬(merge-and-sort) 프로세스로 단순화한다. CPU 상에서, 이 프로세스는 아주 효율적으로 수행될 수 있다.
GPU 상에, 그러나, 수 백개의 아크가 있을 수 있고, 각각은 n-best 리스트로 목표 상태(destination state)에서 동시에 쓰기를 시도한다. 도 16에 도시된 바와 같이 원자 비교-앤-스왑(atomic Compare-And-Swap) 동작을 사용하여 고도의 병렬 플렛폼 상에서 원자적으로(atomically) n-best 리스트를 병합하는 새로운 방법을 개발했다. GPU는 효율적으로 구현된 하드웨어가 지원된 원자 동작을 제공하며, 이러한 플랫폼 상에서 "원자 머지-앤-소트" 방법을 구현하기 위해 이러한 기억용량을 활용(leverage)한다. (도 13, 14, 15 및 16).
마르코프 모델 확률의 고속의 메모리 효율적인 검색에 대한 아키텍처
앞서 기술된 온-더-플라이 가설 리스코어링 방법은, GPU 상에 WFST 검색에 큰 모델(토큰 시퀀스에 대한 확률을 제공하는 전형적인 마르코브 모델)이 도입될 수 있도록 한다. GPU 상에서 검색 동안 토큰 경계가 마주치면, 부분 가설(히스토리 stateID, WFST 가중 및 현재 토큰으로 구성된)은 CPU 상에 저장된 더 큰 모델을 사용하여 리스코어된다. 모델 검색(도1에 도시된, 단계 9의 "컴퓨터 리스코어링 가중") 의 효율성은 빠른 인식을 위해 중요하다.
이러한 단계에 요구되는 시간을 줄이기 위하여 고속 가설 리스코어링을 위해 최적화된 새로운 그래픽-기반 모델 구조를 개발했다. 이러한 모델의 개요는 도 17에 도시되어 있다. 이러한 모델은 그래프 구조 내의 상태(state)로서 히스토리(토큰 시퀀스)를 나타낸다. 히스토리 확률은 이러한 상태에서 아웃고잉 아크(outgoing arcs)로서 저장된다. 히스토리와 토큰 모두 GPU 상에서 검색되는 동안 적용되는, 이러한 구조(framework) 내의 정수(integers)로 및 완전하게 편집(composed)된 WFST의 그것들과 직접적으로 일치시키는데 사용되는 토큰 IDs로 표시된다. 가설 리스코어링 동안에 특정한 <stateID(h), tokenID(t)> 쌍에 대한 확률은 stateID(어레이에서 다이랙트 인덱스 검색인)를 찾아내는 단계, 관심 tokenID에 대한 아웃고잉 아크를 검색하는 단계, 및 그리고 나서 확률 p(tokenID (t)|stateID (h))과 업데이트된 stateID 중 하나로 리턴하는 단계를 포함한다.
도 17은 제안된 그래프-기반 구조에 표시된 작은 언어 모델을 보여준다. 각 노드는 고유의 히스토리(고유의 토큰 시퀀스)를 나타낸다. 실선 아크는 토큰과 그것의 확률로 표시되고 새로운 히스토리로 이끈다. 점선 아크는 백오프(back-off) 아크를 나타낸다. 그것들은 백오프 가중으로 표시되고 감소된 히스토리를 가진 상태(state)로 이끈다.
도 18은 이러한 방법을 사용하여 특정한 <stateID (h), tokenID (t)> 쌍에 대한 확률을 얻는데 요구되는 프로세서를 도시한 것이다.
이러한 모델에 대한 메모리 풋-프린트(memory foot-print)를 감소시키기 위하여 아크의 아웃고잉 세트를 저장하기 위해 사용되는 데이터 구조가 상태(state)를 빠져나가는 아크의 수에 따라 변하는 새로운 방법을 사용한다. 4 개의 데이터 구조, 즉: HASH-MAP(기본), STATIC ARRAY, BINARY-SEARCH TREE, 또는 단일 INTEGER를 사용한 시제품을 구현했으나, 그러나 다른 데이터 구조 역시 이러한 목적을 위하여 사용할 수 있다.
도 9에 기술된 방법은 데이터 저장에 요구되는 메모리 풋 프린트를 최소화하기 위하여 사용된다. 먼저 최초 모델을 로드하면(아이템9), 여기서 모든 아웃고잉 아크는 해시맵(hashmap)을 사용하여 저장되고, 모델 (단계)에서 제1 상태( S )를 선택한다. 모델의 각각의 상태에 대하여 아웃고잉 아크의 수를 비교한다.
실험 평가
시제품에서, 아주 큰 언어 모델(1백만 단어, 488 백만 확률)로부터 확률을 저장하기 위하여 앞서 기술된 이종 데이터 구조를 사용하여 평가했다. 먼저 단일 엔트리만 가진 해시맵을 단일 INTEGER로 대체했다. 이것은 요구되는 메모리 풋 프린트를 28.64 GBytes에서 22.50 GBytes로 21.4% 감소시켰다.
다음에, 그 어휘의 90% 이상을 아웃고잉 아크에서 가진 해시맵을 전체 어휘 크기와 일치하는 STATIC ARRAY 데이터 구조로 대체했다. 이 경우에, 아웃고잉 아크 세트에서 발생하지 않았던 토큰은 이 어레이 내에서 식별된다(한번의 검색으로). 메모리의 사용은 이러한 방법을 사용하여 22.50 에서 22.47 GB로 감소된다.
마지막으로, T arc 아웃고잉 아크를 더 많이 가진 해시맵을 BINARY-SEARCH TREE로 대체했다. T arc 의 값을 2에서 10,000(전체 어휘 사이즈의 1% 보다 적은)으로 변경함에 의하여, 최초의 해시맵-기반 구현에 비해 메모리 사용에 있어서 63.4% 감소한, 10.5 GBytes로 메모리 사용을 감소시킬 수 있었다. T arc 는 특정 플랫폼 또는 데이터 세트, 메모리 풋 프린트 대 검색 속도에 대하여 최적화할 수 있다. 실험결과는 도 20, 21, 22 및 23에 도시되어 있다.
명세서는 특정 실시 예를 참조하여 상세하게 설명되었지만, 당 기술분야에 통상의 지식을 가진 자에게는 실시 예의 사상과 범위를 벗어남이 없이 다양한 변경과 변형이 만들어질 수 있음이 명백할 것이다. 따라서, 본 발명의 변경 및 변형이 첨부된 청구항 및 그들의 균등물의 범위 내에 든다면, 본 발명은 그러한 변경 및 변형을 포함하는 것으로 보아야 한다.
Claims (1)
- 음성 인식에 이용되는 그래프-탐색을 위한 컴퓨터-실행 통계 추론 방법에 있어서,
중앙처리 장치(CPU)와 그래픽 처리 장치(GPU)를 포함하는 컴퓨팅 플랫폼을 제공하는 단계;
검색 네트워크에 대한 상태 가능성(state likelihood)을 초기화하는 단계;
오디오(audio)를 포함하는 입력 신호에 대한 샘플을 획득하는 단계;
샘플로부터 샘플 특징을 연산하는 단계;
음향 모델 및 언어 모델 중 적어도 하나에 기초한 샘플 특징 각각에 대해 관측 가능성을 연산하는 단계;
하나의 부분 가설 세트를 형성하기 위하여 이전 시간 단계에서의 샘플 특징 및 상태 가능성 각각에 대한 관측 가능성에 기초하여 상태 가능성을 업데이트하는 단계를 포함하고, 상기 부분 가설 세트에서의 각각의 부분 가설은 하나의 음성 단위와 매치하는 음향 모델 및 언어 모델 중 적어도 하나로부터의 토큰 시퀀스를 포함하며;
상기 부분 가설 세트에서의 각각의 부분 가설에 대한 가능성 교정을 연산하는 단계;
상기 부분 가설 세트에서의 각각의 부분 가설에 대한 가능성 교정을 업데이트하는 단계;
상기 그래픽 처리 장치(GPU)의 제2 백-트랙 테이블을 매치시키기 위해 상기 중앙처리 장치(CPU) 상의 제1 백-트랙 테이블을 동기화하는 단계; 및
업데이트된 부분 가설 세트 상에서 백-트랙을 수행하는 단계와 업데이트된 부분 가설 세트 중에서 가능성이 가장 높은 부분 가설을 결정하는 단계를 포함하는 그래프 탐색을 위한 컴퓨터 구현된 통계 추론 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261743607P | 2012-09-07 | 2012-09-07 | |
US61/743,607 | 2012-09-07 | ||
PCT/US2013/058829 WO2014040003A1 (en) | 2012-09-07 | 2013-09-09 | Methods for hybrid gpu/cpu data processing |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150065171A KR20150065171A (ko) | 2015-06-12 |
KR101970041B1 true KR101970041B1 (ko) | 2019-04-18 |
Family
ID=50237686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157007386A KR101970041B1 (ko) | 2012-09-07 | 2013-09-09 | 하이브리드 지피유/씨피유(gpu/cpu) 데이터 처리 방법 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9558748B2 (ko) |
EP (1) | EP2893435B1 (ko) |
JP (1) | JP6346893B2 (ko) |
KR (1) | KR101970041B1 (ko) |
CN (1) | CN104903849B (ko) |
HK (1) | HK1214869A1 (ko) |
WO (1) | WO2014040003A1 (ko) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014050981A1 (ja) * | 2012-09-27 | 2014-04-03 | 日本電気株式会社 | テキスト情報監視用辞書作成装置、テキスト情報監視用辞書作成方法、及び、テキスト情報監視用辞書作成プログラム |
US20150234937A1 (en) * | 2012-09-27 | 2015-08-20 | Nec Corporation | Information retrieval system, information retrieval method and computer-readable medium |
CN103971686B (zh) * | 2013-01-30 | 2015-06-10 | 腾讯科技(深圳)有限公司 | 自动语音识别方法和系统 |
CN104202209B (zh) * | 2014-08-05 | 2017-12-22 | 北京遥测技术研究所 | 一种基于cuda的多体制信号频率快速捕获实现方法 |
KR102248787B1 (ko) * | 2014-08-28 | 2021-05-06 | 삼성전자 주식회사 | Gpu의 리소스에 대한 전력 소비 제어방법 및 장치 |
US10417052B2 (en) | 2014-10-31 | 2019-09-17 | Hewlett Packard Enterprise Development Lp | Integrated heterogeneous processing units |
JP6453631B2 (ja) * | 2014-11-28 | 2019-01-16 | 株式会社東芝 | 認識システム、認識方法およびプログラム |
US10140572B2 (en) | 2015-06-25 | 2018-11-27 | Microsoft Technology Licensing, Llc | Memory bandwidth management for deep learning applications |
US10002402B2 (en) | 2015-07-23 | 2018-06-19 | Sony Corporation | Learning convolution neural networks on heterogeneous CPU-GPU platform |
CN105577229B (zh) * | 2015-12-07 | 2018-04-13 | 中国电子科技集团公司第十研究所 | Cpu辅助gpu实现扩频信号快速捕获方法 |
US10453445B2 (en) * | 2016-02-16 | 2019-10-22 | Carnegie Mellon University | System and method for multi-user GPU-accelerated speech recognition engine for client-server architectures |
US11107461B2 (en) | 2016-06-01 | 2021-08-31 | Massachusetts Institute Of Technology | Low-power automatic speech recognition device |
US10446138B2 (en) | 2017-05-23 | 2019-10-15 | Verbit Software Ltd. | System and method for assessing audio files for transcription services |
KR102339716B1 (ko) * | 2017-06-30 | 2021-12-14 | 삼성에스디에스 주식회사 | 음성 인식 방법 및 그 장치 |
CN109388428B (zh) * | 2017-08-11 | 2021-05-04 | 华为技术有限公司 | 图层遍历方法、控制装置及数据处理系统 |
KR102699040B1 (ko) | 2017-11-15 | 2024-08-26 | 삼성전자주식회사 | 뉴럴 네트워크 모델들의 공용 연산 그룹을 단일 처리하는 뉴럴 네트워크 시스템, 이를 포함하는 애플리케이션 프로세서 및 뉴럴 네트워크 시스템의 동작방법 |
US11775815B2 (en) * | 2018-08-10 | 2023-10-03 | Samsung Electronics Co., Ltd. | System and method for deep memory network |
JPWO2020179193A1 (ko) * | 2019-03-04 | 2020-09-10 | ||
US11011156B2 (en) | 2019-04-11 | 2021-05-18 | International Business Machines Corporation | Training data modification for training model |
US11803733B2 (en) | 2019-08-01 | 2023-10-31 | Samsung Electronics Co., Ltd. | Method for implementing neural network model in heterogeneous computing platform and apparatus for performing the same |
CN112581582B (zh) * | 2020-12-24 | 2024-08-16 | 西安翔腾微电子科技有限公司 | 一种基于SysML视图的GPU光栅化模块的TLM装置及操作方法 |
CN113360187B (zh) * | 2021-04-22 | 2022-11-04 | 电子科技大学 | 一种基于CUDA与OpenMP的三维Kriging算法协同加速方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005091518A (ja) | 2003-09-12 | 2005-04-07 | Nippon Hoso Kyokai <Nhk> | 音声認識装置及び音声認識プログラム |
US20080100629A1 (en) | 2003-11-19 | 2008-05-01 | Reuven Bakalash | Computing system capable of parallelizing the operation of multiple graphics processing units (GPUS) supported on a CPU/GPU fusion-type chip and/or multiple GPUS supported on an external graphics card |
JP2009086202A (ja) * | 2007-09-28 | 2009-04-23 | Kddi Corp | 音声認識における音響尤度並列計算装置及びそのプログラム |
US20110022385A1 (en) * | 2009-07-23 | 2011-01-27 | Kddi Corporation | Method and equipment of pattern recognition, its program and its recording medium |
US20110202745A1 (en) | 2010-02-17 | 2011-08-18 | International Business Machines Corporation | Method and apparatus for computing massive spatio-temporal correlations using a hybrid cpu-gpu approach |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62199860A (ja) | 1986-02-18 | 1987-09-03 | カイハツボ−ド株式会社 | 木質繊維マツト |
US5477451A (en) * | 1991-07-25 | 1995-12-19 | International Business Machines Corp. | Method and system for natural language translation |
US5388183A (en) * | 1991-09-30 | 1995-02-07 | Kurzwell Applied Intelligence, Inc. | Speech recognition providing multiple outputs |
US6249761B1 (en) * | 1997-09-30 | 2001-06-19 | At&T Corp. | Assigning and processing states and arcs of a speech recognition model in parallel processors |
GB2409750B (en) * | 2004-01-05 | 2006-03-15 | Toshiba Res Europ Ltd | Speech recognition system and technique |
US7734460B2 (en) * | 2005-12-20 | 2010-06-08 | Microsoft Corporation | Time asynchronous decoding for long-span trajectory model |
US7877256B2 (en) * | 2006-02-17 | 2011-01-25 | Microsoft Corporation | Time synchronous decoding for long-span hidden trajectory model |
JP4439491B2 (ja) | 2006-05-24 | 2010-03-24 | 株式会社ソニー・コンピュータエンタテインメント | マルチグラフィックスプロセッサシステム、グラフィックスプロセッサおよびデータ転送方法 |
US8566259B2 (en) | 2009-09-04 | 2013-10-22 | The Regents Of The University Of California | Method and system for parallel statistical inference on highly parallel platforms |
US8484154B2 (en) * | 2009-12-14 | 2013-07-09 | Intel Corporation | Methods and systems to traverse graph-based networks |
US9747413B2 (en) * | 2010-07-20 | 2017-08-29 | King Abdullah University Of Science And Technology | Adaptive processing for sequence alignment |
US8830245B2 (en) * | 2010-12-14 | 2014-09-09 | Amazon Technologies, Inc. | Load balancing between general purpose processors and graphics processors |
US9240184B1 (en) * | 2012-11-15 | 2016-01-19 | Google Inc. | Frame-level combination of deep neural network and gaussian mixture models |
-
2013
- 2013-09-09 EP EP13834877.6A patent/EP2893435B1/en active Active
- 2013-09-09 WO PCT/US2013/058829 patent/WO2014040003A1/en active Application Filing
- 2013-09-09 KR KR1020157007386A patent/KR101970041B1/ko active IP Right Grant
- 2013-09-09 US US14/426,735 patent/US9558748B2/en active Active
- 2013-09-09 JP JP2015531297A patent/JP6346893B2/ja not_active Expired - Fee Related
- 2013-09-09 CN CN201380046737.0A patent/CN104903849B/zh active Active
-
2016
- 2016-01-14 HK HK16100417.7A patent/HK1214869A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005091518A (ja) | 2003-09-12 | 2005-04-07 | Nippon Hoso Kyokai <Nhk> | 音声認識装置及び音声認識プログラム |
US20080100629A1 (en) | 2003-11-19 | 2008-05-01 | Reuven Bakalash | Computing system capable of parallelizing the operation of multiple graphics processing units (GPUS) supported on a CPU/GPU fusion-type chip and/or multiple GPUS supported on an external graphics card |
JP2009086202A (ja) * | 2007-09-28 | 2009-04-23 | Kddi Corp | 音声認識における音響尤度並列計算装置及びそのプログラム |
US20110022385A1 (en) * | 2009-07-23 | 2011-01-27 | Kddi Corporation | Method and equipment of pattern recognition, its program and its recording medium |
US20110202745A1 (en) | 2010-02-17 | 2011-08-18 | International Business Machines Corporation | Method and apparatus for computing massive spatio-temporal correlations using a hybrid cpu-gpu approach |
Also Published As
Publication number | Publication date |
---|---|
KR20150065171A (ko) | 2015-06-12 |
CN104903849B (zh) | 2017-11-28 |
WO2014040003A1 (en) | 2014-03-13 |
US9558748B2 (en) | 2017-01-31 |
JP6346893B2 (ja) | 2018-06-20 |
CN104903849A (zh) | 2015-09-09 |
US20150243285A1 (en) | 2015-08-27 |
EP2893435B1 (en) | 2019-05-08 |
EP2893435A4 (en) | 2016-05-04 |
HK1214869A1 (zh) | 2016-08-05 |
JP2015529350A (ja) | 2015-10-05 |
EP2893435A1 (en) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101970041B1 (ko) | 하이브리드 지피유/씨피유(gpu/cpu) 데이터 처리 방법 | |
CN107408384B (zh) | 部署的端对端语音识别 | |
US11961513B2 (en) | Low-power automatic speech recognition device | |
US8566259B2 (en) | Method and system for parallel statistical inference on highly parallel platforms | |
US6249761B1 (en) | Assigning and processing states and arcs of a speech recognition model in parallel processors | |
US20160093297A1 (en) | Method and apparatus for efficient, low power finite state transducer decoding | |
Yazdani et al. | An ultra low-power hardware accelerator for automatic speech recognition | |
Kim et al. | Efficient On-The-Fly Hypothesis Rescoring in a Hybrid GPU/CPU-based Large Vocabulary Continuous Speech Recognition Engine. | |
Botros et al. | On efficient training of word classes and their application to recurrent neural network language models. | |
US9658999B2 (en) | Language processing method and electronic device | |
JP5975938B2 (ja) | 音声認識装置、音声認識方法及びプログラム | |
Chong et al. | Efficient automatic speech recognition on the gpu | |
Kim et al. | Accelerating large vocabulary continuous speech recognition on heterogeneous cpu-gpu platforms | |
Pinto et al. | Design and evaluation of an ultra low-power human-quality speech recognition system | |
Yazdani et al. | LAWS: locality-aware scheme for automatic speech recognition | |
You et al. | Memory access optimized VLSI for 5000-word continuous speech recognition | |
Buthpitiya et al. | A parallel implementation of viterbi training for acoustic models using graphics processing units | |
Liu et al. | Speech recognition systems on the Cell Broadband Engine processor | |
Si et al. | Recurrent neural network language model in mandarin voice input system | |
Pinto Rivero | Acceleration of automatic speech recognition for low-power devices | |
Fukunaga et al. | GPU-Based WFST Decoding with Extra Large Language Model. | |
Chen | Cued rnnlm toolkit | |
Letswamotse | Optimized dynamic programming search for automatic speech recognition on a Graphics Processing Unit (GPU) platform using Compute Unified Device Architecture (CUDA) | |
Segura Salvador | Characterization of Speech Recognition Systems on GPU Architectures | |
Tan et al. | Algorithm Optimizations: Low Computational Complexity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |