LibreTranslate

Deploy LibreTranslate offline via docker.

简介

LibreTranslate 是一个轻量、开源的机器翻译服务,可以在本地部署或部署到云服务器,实现低延迟、无外部依赖的翻译系统。 LibreTranslate 自身是 Argos Translate 官方推荐的 WebUI,而 Argos Translate 则基于 OpenNMT 开源架构训练翻译模型。

相比于如今火爆的大语言模型LLM提供的翻译,LibreTranslate提供的传统的轻巧的翻译服务更加便捷,无需独立显卡,只占用少量内存,尤其便于在个人终端上配合LLM使用,比如生成图片的LLM通常基于英文提示词,且可能直接耗尽显存无力在笔电上再起其他LLM用于翻译,那么使用LibreTranslate即可方便的将中文想法转换为英文提示词。 LibreTranslate 官方提供Container部署方式,可以更加轻易的完成本地部署,本文聚焦使用Docker在个人设备部署可离线使用的轻便翻译服务。

Docker环境

下载并安装Docker可以参见前一篇博文。

LibreTranslate镜像

从v1.6.3版本开始LibreTranslate镜像的体积异常变大,不知道是打包过程出了什么bug。 本着轻量级可靠的原则,这里推荐v1.6.2和v1.7.2版本,寻求更新的版本建议先在 DockerHub 上看看镜像尺寸。

1
2
3
4
# 联网Pull镜像
docker pull docker.io/libretranslate/libretranslate:v1.6.2
# 导出镜像可迁往离线环境
docker save -o LibreTranslate.tar libretranslate:v1.6.2

下载翻译模型

LibreTranslate只是WebUI,Docker镜像中集成了 Argos Translate 翻译引擎,工作所需的翻译模型需要单独下载。 Argos官方列出了所有支持的语言翻译模型。从结构上可以看出此工具是通过英文过渡的方式实现不同语言之间的翻译的,选择自己需要的语言和英语之间的翻译包下载。 下载的 .argosmodel 格式翻译模型包存放到一个资料夹中,如 C:\Users\UserName\Downloads\MTpackages

启动服务

在个人设备上装好Docker打开命令行,我们需要将下载的翻译模型包通过卷的方式挂载到容器内,由于默认联网检查并下载所有翻译模型,所以需要通过 –load-only 限制只加载已下载好的翻译语言模型。

1
2
3
4
# 导入镜像(假设放在U盘Z:中)
docker load -i Z:\LibreTranslate.tar
# 从镜像启动容器
docker run -d -m 2g -p 5000:5000 -v C:\Users\UserName\Downloads\MTpackages:/home/libretranslate/.local/share/argos-translate/packages -w /app --name="LibreTranslate" libretranslate/libretranslate:v1.6.2 --load-only en,zh

打开浏览器,在地址栏输入 localhost:5000 即可访问WebUI,体验LibreTranslate的机器翻译服务。如果5000端口被其他程式占用了,修改 -p 参数的第一个5000为其他空闲端口号即可。

持久运行

首次启动后,LibreTranslate会将翻译包解压到同一个资料夹,之后再 -v 挂载可以加上 :ro 选项限制容器写入存储翻译模型包的资料夹。 从命令行启动服务后,即可在 DockerDesktop 的图形界面中停止/启动这一服务,之前的启动命令当然也可以在图形界面配置,但似乎图形界面的配置还不是很完善。

效果体验

毕竟轻量级,不是大语言模型,但对于配合其他LLM等重型应用,是非常充足的。 翻译结果可能有些机器味,结合个人理解润色一下即可,毕竟用LLM画图的你英文不会太差的。

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy