基于Firefox模型的私有翻译服务MTranServer
本文题图背景由 AI 生成;
简介
什么是 MTranServer ?
MTranServer是一个低资源消耗、快速且可私有部署的翻译服务器,旨在提供与1G内存即可运行,无需显卡。单个请求平均响应时间50ms。支持全世界主要语言的翻译。
主要特点
- 低资源占用:仅需
1GB内存即可运行,无需图形处理单元(GPU),适合在资源有限的环境中部署。 - 快速响应:单个请求的平均响应时间为
50毫秒,支持高并发处理,适合需要快速翻译的应用场景。 - 多语言支持:支持多种主要语言的翻译,翻译质量与
Google翻译相当。 - 私有部署:用户可以在自己的服务器上部署
MTranServer,确保数据的隐私性和安全性。 - 使用方便:提供
Docker部署方式,使得安装和配置变得简单。 - 适配性:当前版本主要支持
AMD64架构的CPU,并正在适配其他架构。 - 性能测试:与其他翻译解决方案相比,
MTranServer在速度和内存占用方面表现良好。
应用场景
- Web 应用: 为
Web应用提供机器翻译功能。 - 移动应用: 为移动应用提供机器翻译功能。
- 聊天机器人: 为聊天机器人提供机器翻译功能。
- 内容本地化: 用于内容本地化,将内容翻译成不同的语言。
- API 服务: 作为一个独立的
API服务提供机器翻译功能。

当前限制
- 目前仅支持
amd64架构CPU的Docker部署。 - 需要
CPU支持AVX2指令集, 其他CPU的兼容版本等作者测试完成发布。
总的来说,MTranServer 是一个适合需要快速、低资源消耗的翻译服务的解决方案,尤其对于希望在私有环境中保护数据的用户。
准备
建文件夹
在 docker 文件夹中,创建一个新文件夹 mtranserver,并在其中建一个子文件夹 models
下载模型
【注意】:需要先下载翻译模型文件再启动镜像,否则容器会因为找不到模型文件而自动终止;
- 模型国内下载地址: https://ocn4e4onws23.feishu.cn/drive/folder/C3kffkLr8lxdtid5GYicAcFAnTh
- 模型国外下载地址: https://github.com/xxnuo/MTranServer/releases/tag/models

根据需要下载模型文件
例如: enzh.zip:表示是英文翻译成中文的模型

将 zip 文件上传到 models 文件夹后解压

文件夹结构示意图
1 | models/ |

如果没有下载模型,直接启动镜像,会遇到下面的错误
1 | mtranserver | Fatal error: No valid translation models found in directory: /app/./models |
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 mtranserver ,选择第一个 xxnuo/mtranserver,版本选择 latest。
本文写作时,
latest版本对应为1.0.4;

卷
| 文件夹 | 装载路径 | 说明 |
|---|---|---|
docker/mtranserver/models |
/app/models |
存放模型文件 |

端口
本地端口不冲突就行,不确定的话可以用命令查一下
1 | # 查看端口占用 |
| 本地端口 | 容器端口 |
|---|---|
8989 |
8989 |

环境
| 可变 | 值 |
|---|---|
CORE_API_TOKEN |
为你自己设置的一个密码,使用英文大小写和数字。自己内网可以不设置 |

命令行安装
如果你熟悉命令行,可能用 docker cli 更快捷
1 | # 新建文件夹 mtranserver 和 子目录 |
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | services: |
然后执行下面的命令
1 | # 新建文件夹 mtranserver 和 子目录 |

运行
不能像往常那样,在浏览器中输入 http://群晖IP:8989 进行访问,因为这不是一个 web 服务,而是个 api 接口服务,需要搭配翻译插件使用
你可以使用 沉浸式翻译 或者 简约翻译

设置
下面以
沉浸式翻译的chrome插件为例
在设置页面,开发者模式 中启用 Beta 测试特性

在 翻译服务 的最后,能找到 自定义 API

进入设置
API URL: 指向我们前面安装的mtranserver容器的地址http://192.168.0.197:8989/imme?token=123456。如果前面没用设置密码,使用http://192.168.0.197:8989/imme;每秒最大请求数: 老苏设了5000;每次请求最大段落数:老苏设了10;

回到基本设置,修改 翻译服务 为 自定义API

或者在使用时动态切换

使用
打开一篇英文的文档

点右侧的 沉浸式翻译 的图标

翻译速度超快,同时显示双语

看下容器的资源占用情况

参考文档
xxnuo/MTranServer: Low-resource, fast, and privately self-host free version of Google Translate - 低占用速度快可私有部署的自由版 Google 翻译
地址:https://github.com/xxnuo/MTranServerMTranServer
地址:https://mtranserver.2020818.xyz/