[生成AI] J-Moshi ローカル環境導入(ざっくり説明)

AI

日本語でのリアルタイム音声対話モデル J-Moshi というものが公開された。

GitHub - nu-dialogue/j-moshi: J-Moshi: A Japanese Full-duplex Spoken Dialogue System
J-Moshi: A Japanese Full-duplex Spoken Dialogue System - nu-dialogue/j-moshi

面白そうだったので、これをローカル環境(Windows)に導入してみようと思った。で、入れてみたのだが……結論からいうと、ローカル環境では重過ぎて使い物にならなかった。ちなみに、私のローカルPCのGPUは RTX 4070 でメモリ 12GB。これで画像生成とか音楽生成などの生成AIはある程度動作したのだけど、今回はちょっと重荷過ぎた感じ。

それでも一応、動くには動いたので、その導入手順を備忘として置いておく。なお、Python はあらかじめインストールされている前提とする。ちなみに、J-Moshi は Python 3.10 以上が必要とのことなので、ローカル環境の Python も 3.10 以上となっていること。

まず、仮想環境をつくる。適当なディレクトリをつくって、そこへ移動。ここでは D:\Tools\J-Moshi というディレクトリで作業する。

そのディレクトリに仮想環境を作成。

python -m venv venv

できたら、仮想環境を起動。

venv\Scripts\activate.bat

「(venv)」 というプロンプトが表示されればOK。

pip を更新。

python -m pip install --upgrade pip

「Successfully installed」が表示されたらOK。

これでいったん前準備はおわり。

ということで、Moshi をインストール。しばらく時間がかかる。

pip install moshi

「Successfully built Moshi」と表示されたら、インストール完了。

これだけで起動すれば苦労はなかったが、Windows 上で動作させるには少し小細工がいる。

どうやら、最新の torch では動作しないようなので、一度現状の torch をアンインストールする。

pip uninstall torch

処理を進めるか聞かれるので「y」で進める。「Successfully uninstalled」が表示されればOK。

次に torch の 2.2.0 をインストールする。

pip install torch==2.2.0 -f https://download.pytorch.org/whl/torch_stable.html

「Successfully installed」が表示されればOK。

同様に numpy も最新だと動作しないようなので、これも 1.26.4 に入れ替える。

pip uninstall numpy

からの

pip install numpy==1.26.4

で Successfully すればOK。

次に、Windows を拒否っているコードがあるので、そこをオミットする。

venv の下にある Lib\site-packages\torch_dynamo\eval_frame.py というファイルを適当なテキストエディタで開く。このファイルに check_if_dynamo_supported という関数がある(700行目あたり)ので、以下の2行をコメントアウト、もしくは削除する。

def check_if_dynamo_supported():
    #if sys.platform == "win32":
    #    raise RuntimeError("Windows not yet supported for torch.compile")
    if sys.version_info >= (3, 12):
        raise RuntimeError("Python 3.12+ not yet supported for torch.compile")

同じく、venv の下にある Lib\site-packages\torch_inductor\scheduler.py というファイルを開いて、ファイルの先頭から import が書かれているところの一番下あたり(from .virtualized import V という記述をみつけて、その下くらい)に、以下の2行を追記する。

import torch._dynamo
torch._dynamo.config.suppress_errors = True

ちなみに、何でこんなことをするのかというと、torch で使用される triton というモジュールが Windows をサポートしてないので、そもそも Win だったら起動できないようになっていて、上記の手順はそこを誤魔化す対応となる。もしかしたら、WSL(Windows Subsystem for Linux)を使えばこんなことしなくて済むかもしれない。(それはまた後日、余裕があればやってみる)

とりあえず、これで起動準備はできたので、いざ起動。

python -m moshi.server --hf-repo nu-dialogue/j-moshi-ext

初回起動はモデルのダウンロードが入るので、起動まで数分時間がかかる。

起動すると Running on http://0.0.0.0:8998 (URL部分は環境によって異なるかも)と表示される。ローカルの場合は http://localhost:8998 でアクセスできるので、ブラウザでこの URL を開く。

上のような画面が開くので、PCに音声入力できるマイクを接続して「Connect」を押す。

これで話しかけると(話しかけなくても)どんどん喋り始める。喋るのだけど、すごいブツブツ切れる感じで、話しかけてからの反応も遅い。

上手いこと調整すればもうちょっとまともな会話になるのかな。とりあえず、J-Moshi は Windows PC 上で動くことは動いたが、RTX 4070 ではちょっと厳しいかもしれない(?)という結論でした。

タイトルとURLをコピーしました