Repolode
OpenNMT

OpenNMT/CTranslate2

Библиотека на C++ и Python для быстрого запуска моделей Transformer, таких как Whisper, Llama и NLLB, с меньшим расходом памяти благодаря квантованию и оптимизированным ядрам.

Звёзды
4,716
Форки
547
Открытые issues
281
Последний коммит
вчера

Что это?

CTranslate2 — библиотека на C++ и Python для инференса моделей Transformer. Она использует собственную среду выполнения с оптимизациями, такими как квантование весов, объединение слоёв и изменение порядка элементов в батче, чтобы сократить задержки и расход памяти как на CPU, так и на GPU.

Библиотека поддерживает модели encoder-decoder (например, NLLB, M2M-100, T5 и Whisper), decoder-only (например, GPT-2, GPT-J, Llama, Mistral, Gemma и Qwen2) и encoder-only (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. Она предоставляет API для Python и C++ и требует минимум зависимостей.

Ключевые возможности

  • 01Поддерживает квантование весов в FP16, BF16, INT8, INT16 и AWQ INT4.
  • 02Работает на CPU и GPU, включая параллельную и асинхронную обработку батчей на нескольких GPU или ядрах.
  • 03Автоматически выбирает наборы инструкций CPU, например AVX и AVX2, во время выполнения.
  • 04Поддерживает тензорный параллелизм, позволяющий распределять очень большие модели между несколькими GPU.
  • 05Предоставляет API для Python и C++ с расширенными возможностями декодирования, например дополнением префикса и генерацией альтернативных вариантов.

Сценарии использования

  • Развёртывание моделей машинного перевода с меньшими задержками и расходом памяти, чем при использовании универсальных фреймворков.
  • Запуск распознавания речи Whisper или LLM семейства Llama на CPU- и GPU-серверах.
  • Развёртывание квантованных моделей Transformer на устройствах с ARM или оборудовании Apple.
  • Подключение OpenAI-совместимого веб-сервера, чтобы предоставлять доступ к моделям CTranslate2 через привычный API.

Быстрый старт

  1. 1

    Установите пакет Python с помощью pip

    pip install ctranslate2
  2. 2

    Загрузите преобразованную модель и запустите перевод или генерацию на Python

Что важно знать

  • Перед использованием модели необходимо преобразовать из поддерживаемого фреймворка в формат CTranslate2.
  • Для поддержки GPU AMD ROCm требуются специальные wheel-файлы со страницы релизов.

Темы

Частые вопросы

Что такое CTranslate2?
Библиотека на C++ и Python для быстрого запуска моделей Transformer, таких как Whisper, Llama и NLLB, с меньшим расходом памяти благодаря квантованию и оптимизированным ядрам. CTranslate2 — библиотека на C++ и Python для инференса моделей Transformer. Она использует собственную среду выполнения с оптимизациями, такими как квантование весов, объединение слоёв и изменение порядка элементов в батче, чтобы сократить задержки и расход памяти как на CPU, так и на GPU.
CTranslate2 можно использовать бесплатно? Какая у него лицензия?
CTranslate2 распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
CTranslate2 всё ещё поддерживается?
Активно поддерживается. Последний коммит в CTranslate2 — 21 окт. 2026 г..
Для чего можно использовать CTranslate2?
Развёртывание моделей машинного перевода с меньшими задержками и расходом памяти, чем при использовании универсальных фреймворков. Запуск распознавания речи Whisper или LLM семейства Llama на CPU- и GPU-серверах. Развёртывание квантованных моделей Transformer на устройствах с ARM или оборудовании Apple. Подключение OpenAI-совместимого веб-сервера, чтобы предоставлять доступ к моделям CTranslate2 через привычный API.
Как установить CTranslate2?
Установите пакет Python с помощью pip: pip install ctranslate2 Загрузите преобразованную модель и запустите перевод или генерацию на Python
Где скачать CTranslate2?
Исходный код и инструкции по установке — на GitHub: https://github.com/OpenNMT/CTranslate2

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты