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

コメントを残す

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

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)