Repolode
OpenNMT

OpenNMT/CTranslate2

C++ 和 Python 推理库,通过量化和优化内核,更快、更省内存地运行 Whisper、Llama、NLLB 等 Transformer 模型。

Star
4,716
Fork
547
未关闭 Issue
281
最近提交
昨天

这是什么?

CTranslate2 是一个基于 C++ 和 Python 的库,用于高效运行 Transformer 模型的推理。它内置自定义运行时,通过权重量化、层融合、批次重排等优化手段,降低模型在 CPU 和 GPU 上的延迟与内存占用。

它支持编码器-解码器模型(如 NLLB、M2M-100、T5、Whisper)、纯解码器模型(如 GPT-2、GPT-J、Llama、Mistral、Gemma、Qwen2)以及纯编码器模型(如 BERT、DistilBERT、XLM-RoBERTa)。模型需先转换为 CTranslate2 的优化格式,项目提供了来自 OpenNMT-py、OpenNMT-tf、Fairseq、Marian、OPUS-MT 和 Hugging Face Transformers 的转换工具。

支持 x86-64 和 ARM64 处理器,可使用 Intel MKL、oneDNN、OpenBLAS、Ruy 及 Apple Accelerate 等后端,并提供依赖较少的 Python 和 C++ 接口。

核心功能

  • 01支持将权重量化为 FP16、BF16、INT8、INT16 及 AWQ INT4。
  • 02可在 CPU 和 GPU 上运行,支持多 GPU 或多核的并行异步批处理。
  • 03运行时根据 CPU 自动选择 AVX、AVX2 等指令集。
  • 04支持张量并行,可将超大模型拆分到多块 GPU 上。
  • 05提供 Python 和 C++ 接口,并支持前缀补全、返回备选结果等高级解码功能。

适用场景

  • 以比通用深度学习框架更低的延迟和内存占用部署机器翻译模型。
  • 在 CPU 或 GPU 服务器上运行 Whisper 语音识别或 Llama 系列大语言模型。
  • 在 ARM 或 Apple 硬件上部署量化后的 Transformer 模型。
  • 配合兼容 OpenAI API 的 Web 服务器,以熟悉的接口对外提供 CTranslate2 模型服务。

快速上手

  1. 1

    使用 pip 安装 Python 包

    pip install ctranslate2
  2. 2

    加载已转换的模型,并在 Python 中运行翻译或生成

使用前须知

  • 使用前必须先将支持的框架模型转换为 CTranslate2 格式。
  • AMD ROCm GPU 支持需要从发布页面下载特定的安装包。

标签

常见问题

CTranslate2 是什么?
C++ 和 Python 推理库,通过量化和优化内核,更快、更省内存地运行 Whisper、Llama、NLLB 等 Transformer 模型。 CTranslate2 是一个基于 C++ 和 Python 的库,用于高效运行 Transformer 模型的推理。它内置自定义运行时,通过权重量化、层融合、批次重排等优化手段,降低模型在 CPU 和 GPU 上的延迟与内存占用。
CTranslate2 可以免费使用吗?用的什么许可证?
CTranslate2 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
CTranslate2 还在维护吗?
活跃维护中。CTranslate2 最近一次提交是在 2026年10月21日。
CTranslate2 适合用来做什么?
以比通用深度学习框架更低的延迟和内存占用部署机器翻译模型。 在 CPU 或 GPU 服务器上运行 Whisper 语音识别或 Llama 系列大语言模型。 在 ARM 或 Apple 硬件上部署量化后的 Transformer 模型。 配合兼容 OpenAI API 的 Web 服务器,以熟悉的接口对外提供 CTranslate2 模型服务。
CTranslate2 怎么安装和运行?
使用 pip 安装 Python 包: pip install ctranslate2 加载已转换的模型,并在 Python 中运行翻译或生成
在哪里获取 CTranslate2?
源代码和安装说明在 GitHub 上:https://github.com/OpenNMT/CTranslate2

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目