LibreTranslate のモデルデータのダウンロード

先日新しい端末を入手したので,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 で導入しました.

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 を確認すると,最後の行で,libretranslatrun.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 というオプションもありました.未確認ですが,モデルファイルが壊れている場合などに使えそうです.

コメントを残す

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