rinnaとdeepspeedをwindows環境で動かす : 音声認識速度比較

以前、DeepSpeedをwindowsにインストールしたので今回はそれを使って音声認識の速度比較をしてみようと思います。

比較用の音声認識モデルはrinna/nue-asrで、GPUはlaptop用のRTX 3080と4090を用意しました。

実験環境

OS : Windows 10 (11でも動作確認)

CUDA : 11.8

Visual C++ build tools : Visual Studio 2022 community

Python : 3.11.7 (3.10系でも動くそう, Anaconda環境下)

PyTroch : 2.1.1

Transformers : 4.35.2.

先にDeepSpeedをインストールした後にrinna/nue-asrのガイドに従ってモデルのインターフェースを落とします。

pip install git+https://github.com/rinnakk/nue-asr.git

 

データの用意

速度比較用のサンプルデータとして下記の動画の音声を使いました。(5分間)

今回見たいのは認識精度ではないので、取得した音声データを機械的に10sec毎で分割して認識モデルに入力するようにしました。

 

速度比較用コード

import nue_asr
import time
import glob
import re

def format_seconds(seconds):
    mins, secs = divmod(seconds, 60)
    return f"{mins:02d}:{secs:02d}"

files = glob.glob("*.wav")

model = nue_asr.load_model("rinna/nue-asr", use_deepspeed=True)
#model = nue_asr.load_model("rinna/nue-asr")

tokenizer = nue_asr.load_tokenizer("rinna/nue-asr")

secance_time = 0
speedData = []

for f in files:
    start_time = time.time()
    result = nue_asr.transcribe(model, tokenizer, f)
    end_time = time.time()
    
    speedData.append(end_time - start_time)

print("len {}, ave{}".format(len(speedData),sum(speedData)/len(speedData)))

 

結果

DeepSpeedの使用不使用に関わらずモデルのロードにRAMを20~23GB使用されます。

DeepSpeedをONにすると6割程度早くなりました。

DeepSpeedGPU消費VRAM平均速度
(10secファイルの処理時間平均)
ONRTX 4090 laptop8.8GB / 16GB0.42 msec
OFFRTX 4090 laptop8.0GB / 16GB0.65 msec
OFFRTX 3080 laptop7.8GB / 8GB3.89 msec

DeepSpeedをonにするとモデルロード後に+0.8GB程度VARMが消費されます。

下図はタスクマネージャーのGPUパフォーマンス

sam

sam

流山おおたかの森Techブログの管理人です。 お仕事のご依頼などはmail or Twitter[https://twitter.com/sam_sumario]で連絡頂けると反応出来ます。
Previous post Electronのインストールからpreload scriptを使うまで
Next post OBS Studio コードリーティング日記 #8 | 仮想カメラのシステム構成

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です