免费和开源的机器翻译软件LibreTranslate

什么是 LibreTranslate ?

LibreTranslate 免费开源机器翻译 API,完全自托管。与其他 API 不同,它不依赖于 Google 或 Azure 等专有提供商来执行翻译。它的翻译引擎由开源 Argos Translate 库提供支持。

这个软件在 2022 年 3 月的时候折腾过,但当时容器会停止,从下面的文章看,应该可能是内存不够。

https://www.reddit.com/r/selfhosted/comments/yrdeyc/libretranslate_free_and_open_source_machine

毕竟翻译模型和语言模型都是很耗资源的,当然除了内存,最好还有 GPU 的支持。

今年 618 买了根内存条,所以又把它翻出来了,虽然才 8G,但确实跑起来了,也有可能是老苏选择的语言模型少的缘故。

文中部分截图还是使用的老图,但不会影响您的理解;

如果你不想自己搭建,可以去官方搭建的站点看看,网址:https://libretranslate.com

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 libretranslate ,选择第一个 libretranslate/libretranslate,版本选择 latest。

  1. 本次折腾,latest 对应的版本是 v1.3.11;
  2. 如果你的主机带 nvidia 显卡,可以选择 latest-cuda 试试;

端口

本地端口不冲突就行,不确定的话可以用命令查一下

bash 复制代码
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
5353 5000

环境

LibreTranslate 有很多命令行参数,可以参考官方的文档:https://github.com/LibreTranslate/LibreTranslate#arguments

【注意】:每个参数都有一个可以替代使用的等效环境变量。环境。变量会覆盖默认值,但优先级低于命令参数,并且在与 Docker 一起使用时特别有用。环境变量名称是等效命令参数名称的大写字母,带有LT前缀。

老苏没有使用环境变量,而是在命令行中输入了 --load-only en,zh,意思是只加载中文和英文。如果要使用环境变量,可以用 LT_LOAD_ONLY

命令行运行

命令行方式中,老苏对容器的最大内存使用量和 CPU 占用做了限制;当然机器够强的话,可以不做限制的;

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

bash 复制代码
# 运行容器(低调内敛模式)
docker run -d \
   --restart unless-stopped \
   --name libretranslate \
   --cpu-shares="700" \
   --memory 4096m \
   -p 5353:5000 \
   libretranslate/libretranslate \
   --load-only en,zh

# 运行容器(火力全开模式)
docker run -d \
   --restart unless-stopped \
   --name libretranslate \
   -p 5353:5000 \
   libretranslate/libretranslate \
   --load-only en,zh

参数说明:

  • --cpus-shares="700":为容器提供更少比例的 CPU 周期,默认为 1024;
  • --memory 4096m;为容器的内存使用设置一个无法超越的硬限制;

从上图可以看到,第一次运行时,会下载我们设定的语言模型

docker-compose 安装

不推荐这种方式安装,会看不到容器的日志,原因不明;这会导致你不知道语言模型是否下载成功,因而不知道什么时候才能正常访问

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

yaml 复制代码
version: '3'

services:
  libretranslate:
    image: libretranslate/libretranslate
    container_name: libretranslate
    restart: unless-stopped
    # mem_limit: 4096m
    # cpu_shares: 700
    ports:
      - 5353:5000
    healthcheck:
      test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
    command: --load-only en,zh

如果你想启用资源限制,可以去掉 # 号的注释;

然后执行下面的命令

bash 复制代码
# 新建文件夹 libretranslate 
mkdir -p /volume1/docker/libretranslate

# 进入 libretranslate 目录
cd /volume1/docker/libretranslate

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

第一次运行会需要下载语言模型

当你在日志中看到 Running on http://0.0.0.0:5000 时,就可以在浏览器中输入 http://群晖IP:5353 ,并看到主界面了

复制了下面这段英文,试了下 英翻中

text 复制代码
Free and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.

又用下面这段中文,试了下 中翻英

text 复制代码
Plane 是一个简单的、可扩展的、开源的项目和产品管理工具。

LibreTranslate 翻译的

text 复制代码
Plane is a simple, expanded, open-source project and product management tool

百度翻译的

text 复制代码
Plane is a simple, scalable, open-source project and product management tool.

似乎看起来效果还可以对吧,此外还支持翻译文件,格式也比较丰富

至于 API 一般人也用不上,就不提了

参考文档

LibreTranslate/LibreTranslate: Free and Open Source Machine Translation API. 100% self-hosted, offline capable and easy to setup.

地址:https://github.com/LibreTranslate/LibreTranslate
Docker Container Memory & CPU Limit: Set Up and Manage Resources

地址:https://phoenixnap.com/kb/docker-memory-and-cpu-limit

相关推荐
分布式存储与RustFS5 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
玉&心5 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing5 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
guo_wen_qiang5 天前
上传本地镜像到harbor中
docker·容器·持续部署
羑悻的小杀马特5 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
BianHuanShiZhe5 天前
docker常见命令
docker
正经教主5 天前
【FDE系列】阶段2:Day 43:Docker Compose — 多容器一键编排
人工智能·docker·fde
忆~遂愿5 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器
Zhu7585 天前
docker环境,vLLM 部署 Qwen3.8-27B
docker·qwen·vllm
溜达的大象5 天前
多台服务器不想上重型监控?用 Beszel 搭一套轻量主机与 Docker 看板
docker