Triton-Kaldi 오프라인 디코더 구현 및 Triton 배치 처리 분석

Source

  • Field Notes/ReturnZero/Daily Notes/Day 257. 2022-03-14.md

Summary

Triton-Kaldi 기반 오프라인 디코더(Offline Decoder) 구현을 위해 Triton의 배치 처리 로직(DecodeBatch, FlushBatch, AcquireTasks)과 Kaldi의 nnet3-pipeline2 호환성을 분석함. 온라인 스트리밍 방식과 오프라인 파일 단위 처리 방식의 차이점, 특히 feature extraction 타이밍과 ivector 처리에 대한 기술적 고민과 코드 시그니처 비교를 기록함. 또한 TTS(HifiGAN, Tacotron2) 학습 환경 구축 과정의 설치 문제 해결 및 CocoaAI 프레임워크 학습 시도도 포함됨.

Key Points

  • Triton-Kaldi 오프라인 디코더 구현을 위해 DecodeBatch 함수의 다양한 시그니처(온라인 vs 오프라인) 비교 분석
  • Triton 서버 내부의 배치 처리 흐름(AcquireTasks -> BuildBatchFromCurrentTasks -> DecodeBatch) 및 FlushBatch 호출 조건 검토
  • 온라인 스트리밍(시퀀스 배처)과 오프라인 파일 단위 처리(다이나믹 배처 전환)의 아키텍처 차이점 및 메모리 관리 이슈(중단 시 메모리 누수) 고민
  • Kaldi의 nnet3-pipeline2에서 오프라인 케이스 시 final ivector를 기다린 후 feature extraction 수행하는 방식 확인
  • TTS 학습 환경(CocoaAI, HifiGAN, Tacotron2) 구축 중 conda 패키지 설치 문제 해결 및 레시피 학습 시도
  • rescorer 구현 실패로 인한 코드 리베이스 및 David와의 협업 진행 상황