先日新しい端末を入手したので,Debian を入れて使っています.これに LibreTranslate を Docker 経由で入れたのですが,モデルのダウンロードに失敗して再ダウンロードしてくれなかったのをダウンロードし直しさせたメモです.
Note
|
HP t430 thin client CPU Intel N4000/RAM 4GB/eMMC 32GB,ヤフオクにて 1,000円 + 送料 1,680円 |
LibreTranslate は Argos Translate に web インターフェイスや API を付けたような感じのもので,セルフホストして回線無しでも使うことが出来ます.
LibreTranslate については 鹿児島らぐの 鹿児島Linux勉強会 2022.12 で発表しました.このときは pip で導入,今回は Docker で導入しました.
- 機械翻訳をローカルマシンで( ArgosTranslate/LibreTranslate )
Docker 利用時は, ./run.sh
を実行すると導入されていなければ導入,そして起動してくれます.
モデルがない場合,モデルのダウンロードもしてくれます.
しかし,回線が不安定だとモデルのダウンロードが途中で失敗してしまうことがあります.
$ ./run.sh : Downloading English → Czech (1.9) ... (IncompleteRead(15249408 bytes read, 56611648 more expected),) : ^c
再度実行するとダウンロードされなかったモデルが使えない状態で起動します.今回は一番使いたい日本語のモデルがない状態です……
$ ./run.sh Checking for docker... found Running on http://*:5000
run.sh
を確認すると,最後の行で,libretranslat
を run.sh
の引数付きで呼んでいるようです.
docker run -ti --rm -p $LT_PORT:$LT_PORT $DB_VOLUME -v lt-local:/home/libretranslate/.local libretranslate/libretranslate ${ARGS[@]}
ということで libretranslat
の usage や README.md の Arguments を見ると --update-models
が使えそうです.このオプションを付けて起動すると足りないモデルのダウンロードをしてくれました.
$ ./run.sh --update-models Checking for docker... found Updating language models Found 88 models Downloading English → Danish (1.3) ... :
しかし,やはり回線が駄目なのでよく転けるし時間がかかります. --load-only
オプションを指定し,一番使う英語と日本語を使うように指定すると,英語と本語のモデルだけをダウンロードしてくれて,英語<→日本語相互翻訳が可能になりました.
$ ./run.sh --load-only 'ja,en' --update-models Checking for docker... found Updating language models Found 88 models Keep 2 models Downloading English → Japanese (1.1) ... Downloading Japanese → English (1.1) ... Loaded support for 13 languages (2 models total)! Running on http://*:5000
残りのモデルはおいおいダウンロードしようと思います.
Note
|
usage を見ると --force-update-models というオプションもありました.未確認ですが,モデルファイルが壊れている場合などに使えそうです. |