Project Icon

nllb-serve

开源多语言翻译服务器与API实现

nllb-serve是一个开源项目,为Meta的NLLB翻译模型提供web界面和REST API。该项目支持200种语言间的翻译,具有便捷的部署流程。它提供服务器配置、命令行工具、API文档和批量翻译功能,支持GPU加速和自定义模型,适用于需要大规模多语言翻译能力的场景。

NLLB Serve

图片

该项目提供了一个网页界面和REST API,用于使用Meta的No Language Left Behind(NLLB)模型进行200种语言之间的翻译。

安装

# 选项1:以只读方式安装;建议按原样使用
pip install git+https://github.com/thammegowda/nllb-serve

# 选项2:以可编辑模式安装;如果您想修改代码,建议使用此选项
git clone https://github.com/thammegowda/nllb-serve
cd nllb-serve
pip install -e .

# 入口点:以下任一选项都应该可以使用
nllb-serve -h
python -m nllb_serve -h

启动服务器

# 以下任一选项都应该可以使用
nllb-serve
# 或
python -m nllb_serve

# 使用CPU,即使存在GPU也忽略
CUDA_VISIBLE_DEVICES= nllb-serve

# 使用GPU设备0
CUDA_VISIBLE_DEVICES=0 nllb-serve

默认情况下,这将在http://localhost:6060启动服务。

Cuda和Torch兼容性问题

# 检查1:
$ python -c 'import torch; print(torch.cuda.is_available())'
True

# 检查2:将安装的cudatoolkit版本与编译torch二进制文件的版本匹配
# 如果无法完全匹配版本,请尝试使版本尽可能接近
$ python -c 'import torch; print(torch.version.cuda)'
11.7
$ nvidia-smi | grep -o 'CUDA.*'
CUDA Version: 12.0

命令行选项:

$ nllb-serve -h
用法:nllb-serve [-h] [-d] [-p PORT] [-ho HOST] [-b BASE] [-mi MODEL_ID] [-msl MAX_SRC_LEN]

将NLLB模型部署到RESTful服务器

可选参数:
  -h, --help            显示此帮助信息并退出
  -d, --debug           以调试模式运行Flask服务器(默认:False)
  -p PORT, --port PORT  服务器运行的端口(默认:6060)
  -ho HOST, --host HOST 要绑定的主机地址。(默认:0.0.0.0)
  -b BASE, --base BASE  所有URL的基本前缀路径。例如,/v1(默认:无)
  -mi MODEL_ID, --model_id MODEL_ID
                        模型ID;参见https://huggingface.co/models?other=nllb(默认:facebook/nllb-200-distilled-600M)
  -msl MAX_SRC_LEN, --max-src-len MAX_SRC_LEN
                        最大源长度;较长的序列将被截断(默认:250)

REST API

  • /translate端点接受带有以下参数的GET和POST请求:
    • source -- 源文本。可以是单个字符串或批量(即字符串列表)
    • src_lang -- 源语言ID,例如eng_Latn
    • tgt_lang -- 目标语言ID,例如eng_Latn HTTP客户端可以通过以下三种方式发送这些参数:
  1. 查询参数(GET) 例如:

  2. URL编码表单(POST)

 curl --data "source=Comment allez-vous?" --data "source=Bonne journée" \
 --data "src_lang=fra_Latn" --data "tgt_lang=eng_Latn" \
  http://localhost:6060/translate
  1. JSON主体(POST)
$ curl -H "Content-Type: application/json" -X POST \
    http://localhost:6060/translate \
   --data '{"source": ["Comment allez-vous?"], "src_lang": "fra_Latn", "tgt_lang": "kan_Knda"}'

语言代码列表: https://huggingface.co/facebook/nllb-200-distilled-600M/blob/main/special_tokens_map.json

NLLB-Batch

这个命令行工具用于解码批量数据。虽然REST API针对一次翻译单个句子进行了优化,但nllb-batch针对解码大型文件进行了优化。

$ nllb-batch  --help
INFO:root:torch device=cuda
用法: nllb-batch [-h] [-mi MODEL_ID] -sl SRC_LANG -tl TGT_LANG [-i INP] [-o OUT] [-msl MAX_SRC_CHARS] [-b BATCH_SIZE]

通过命令行提供NLLB模型服务

选项:
  -h, --help            显示此帮助信息并退出
  -mi MODEL_ID, --model-id MODEL_ID
                        模型ID; 参见 https://huggingface.co/models?other=nllb (默认值: facebook/nllb-200-distilled-600M)
  -sl SRC_LANG, --src-lang SRC_LANG
                        源语言标识符; 例如: eng_Latn (默认值: None)
  -tl TGT_LANG, --tgt-lang TGT_LANG
                        目标语言标识符; 例如: eng_Latn (默认值: None)
  -i INP, --inp INP     输入文件 (默认值: <_io.TextIOWrapper name='<stdin>' mode='r' encoding='utf-8'>)
  -o OUT, --out OUT     输出文件 (默认值: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)
  -msl MAX_SRC_CHARS, --max-src-chars MAX_SRC_CHARS
                        最大源字符长度; 更长的序列将被截断 (默认值: 512)
  -b BATCH_SIZE, --batch-size BATCH_SIZE
                        批量大小; 句子数量 (默认值: 10)

许可证

代码和模型权重采用不同的许可证。 此存储库中的代码通过 Apache License 2.0 分发。 但模型权重是从Huggingface Hub访问的,原始模型权重的许可证仍然适用。 在撰写本文时,NLLB模型的作者通过CC-BY-NC-4.0许可证分发权重。更多信息请参阅 LICENSE.model.mdCreative Commons License

参考资料

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号