2
0

はじめに

Faster-Whisperを使ってみたいけど、環境構築が面倒だなーと感じている私のような輩のために、比較的カンタンでクリーンな環境構築の方法を紹介します。
ここで"クリーンな環境"とは「OSのパッケージを汚さずに設定できてカンタンに元通り」という意味合いです。

この記事は、前回の記事の追加情報です。

結論

NVIDIAのパッケージから必要な部分だけを選び出すことで、OSを汚さずにFaster-Whisperを動かす環境を作成できます。
しかし、今回の手順は、難しく無いと思いますが、面倒かもしれません。

環境構築の手順

前回の記事でFaster-Whisperのやや古いバージョンを動かしましたが、今回は最新版を目指します。NVIDIAの公式パッケージは開発者向けに多くのファイルが含まれており、実際に必要なのはその中のごく一部です。必要なファイルを抽出して環境を構築します。

要するに、nvidiaの公式パッケージは、開発者向けに様々な関連ファイルがどっさり詰まっているので「OSですか?」とツッコミたくなる位の大容量なわけです。実行に必要なのは、その中のほんの一部だけ。

試した環境

OS: Ubuntu 22.04 LST
GPU: nvidia t1000 8GB (nvidia-driver-535)

手順

まずは、前回のおさらい。cudaがインストールされていない時は以下のようなエラー

(Whisper) hoge@mx130:~/LLM/fast-whisper/sample$ python3 test.py

Could not load library libcudnn_ops_infer.so.8. Error: libcudnn_ops_infer.so.8: cannot open shared object file: No such file or directory

中止 (コアダンプ)

このファイルをNVIDIAの公式パッケージから探してみます。

ダウンロードしようとしたらCuda9って書いてありました。ライブラリのファイル名からVer8が必要と思われます。"Archive of Previous Releases"から探してみたら、v8系のパッケージを発見できました。debパッケージやtarアーカイブもありますね。
自分は、もちろんtarアーカイブを選択!
cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz
しかし822MBってデカすぎでしょう。

ここから目的のファイルを探してみます。

tar -Jtvf cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz  | grep '/libcudnn'

lrwxrwxrwx svc-compute-packagin/sw-cuda-installer         0 2023-11-30 17:11 cudnn-linux-x86_64-8.9.7.29_cuda11-archive/lib/libcudnn_ops_infer.so -> libcudnn_ops_infer.so.8
lrwxrwxrwx svc-compute-packagin/sw-cuda-installer         0 2023-11-30 17:11 cudnn-linux-x86_64-8.9.7.29_cuda11-archive/lib/libcudnn_ops_infer.so.8 -> libcudnn_ops_infer.so.8.9.7
-rwxr-xr-x svc-compute-packagin/sw-cuda-installer  90849728 2023-11-30 17:11 cudnn-linux-x86_64-8.9.7.29_cuda11-archive/lib/libcudnn_ops_infer.so.8.9.7

発見しました。このファイルだけ抽出します。

tar -Jxf cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz cudnn-linux-x86_64-8.9.7.29_cuda11-archive/lib/libcudnn_ops_infer.so.8.9.7

出てきたlibcudnn_ops_infer.so.8.9.7を適当なフォルダに移して、シンボリックリンクでファイル名を整えます。

mkdir ~/LLM/faster-whisper/libs
mv libcudnn_ops_infer.so.8.9.7 ~/LLM/faster-whisper/libs/
cd ~/LLM/faster-whisper/libs
ln -s libcudnn_ops_infer.so.8.9.7 libcudnn_ops_infer.so.8

環境変数LD_LIBRARY_PATHを設定します。

export LD_LIBRARY_PATH=~/LLM/faster-whisper/libs

実行してみます。

(Whisper) hoge@mx130:~/LLM/fast-whisper/sample$ python3 test.py
 :
 (すいません、このエラーは記録していません)
 :

次は、libcudnn_cnn_infer.so.8が無いって出てきたので、同じ手口でlibsにコピーします。

(Whisper) hoge@mx130:~/LLM/fast-whisper/sample$ python3 test.py
 :
 (すいません、このエラーは記録していません)
 :

次に無いと言われたのが、libcublasLt.so.11で、これはさっきのtarアーカイブに含まれていませんでした。

ネットの情報から、なんとなくnvidiaのCUDA Toolkitに含まれてそうです。

最新はVer12っぽいですね。必要なのはVer.11だと思うのですが。
cuDNNと同じように"Archive of Previous CUDA Releases"からCUDA11.8を選択してみたのですが、debパッケージしか有りませんでした。

またしばらくネットの記事を検索した結果、Faster-Whisperの公式README.mdにcuBLAS for CUDA 11のリンクがちゃんと記載されていました。READMEはまじめに読まないとダメですね。

nvhpc_2024_241_Linux_x86_64_cuda_multi.tar.gzをダウンロード・・・
ってナニコレ?! 9GBもあるんですけど!!! OSですか? Windowsですか? Officeですか???

そして、この巨大なtarアーカイブから、libcublasLt.so.11を探して追加して、実行して足りないと言われたライブラリを探して追加して、を繰り返して必要なファイルをlibsフォルダに集めていきます。

最終的に音声認識ができるようになった段階でのlibsディレクトリの中身はこうなりました。

lrwxrwxrwx 1 hoge hoge        23  3月  5 15:39 libcublas.so.11 -> libcublas.so.11.11.4.17
-rwxr-xr-x 1 hoge hoge  94729912  1月 27 04:59 libcublas.so.11.11.4.17
lrwxrwxrwx 1 hoge hoge        21  3月  5 15:42 libcublas.so.12 -> libcublas.so.12.3.4.1
-rwxr-xr-x 1 hoge hoge 106679344  1月 27 05:01 libcublas.so.12.3.4.1
lrwxrwxrwx 1 hoge hoge        25  3月  5 15:38 libcublasLt.so.11 -> libcublasLt.so.11.11.4.17
-rwxr-xr-x 1 hoge hoge 574565176  1月 27 04:59 libcublasLt.so.11.11.4.17
lrwxrwxrwx 1 hoge hoge        23  3月  5 15:45 libcublasLt.so.12 -> libcublasLt.so.12.3.4.1
-rwxr-xr-x 1 hoge hoge 518358624  1月 27 05:01 libcublasLt.so.12.3.4.1
lrwxrwxrwx 1 hoge hoge        27  3月  5 15:05 libcudnn_cnn_infer.so.8 -> libcudnn_cnn_infer.so.8.9.7
-rwxr-xr-x 1 hoge hoge 563283840 11月 30 17:11 libcudnn_cnn_infer.so.8.9.7
lrwxrwxrwx 1 hoge hoge        27  3月  5 15:02 libcudnn_ops_infer.so.8 -> libcudnn_ops_infer.so.8.9.7
-rwxr-xr-x 1 hoge hoge  90849728 11月 30 17:11 libcudnn_ops_infer.so.8.9.7

一応、md5sumも記載しておきます。

5c3e7a7148161aa835ab9a55b21717ed  libcudnn_ops_infer.so.8.9.7
12dfd61d1b8ec1c6ec4dceedea8f09a8  libcudnn_cnn_infer.so.8.9.7
b4396e1aa4147bd884a30b442c59dcd1  libcublasLt.so.11.11.4.17
98e84ac45b41f830350fc82fa48842b9  libcublas.so.11.11.4.17
aa0551868dd82ff3570b50022f57f654  libcublas.so.12.3.4.1
5e994ad31afab0cbdbe94f3951a979c5  libcublasLt.so.12.3.4.1

あとは起動スクリプトで起動するとか

run.sh
#!/bin/bash
export LD_LIBRARY_PATH=~/LLM/faster-whisper/libs
source ~/LLM/faster-whisper/libs/.venv/bin/activate
python3 test.py

.bashrcで設定するとか

.bashrc
 # なんか色々書いてある
 # 最後に追加
export LD_LIBRARY_PATH="~/LLM/faster-whisper/libs:$LD_LIBRARY_PATH"

/usr/local/libあたりに環境構築するとか

お好みの方法を選択すると良いかと。

以上で、Faster-whisper最新版( 1.0.x )をローカルで実行する環境ができました。

いや、結構面倒だったわコレ・・・・

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0