CTranslate2 빠른 시작

CTranslate2 빠른 시작

가장 짧은 경로부터 따라가 볼게요. 기계번역이든 텍스트 생성이든, CTranslate2는 모델을 로드해서 여러 문장을 배치로 처리하는 인퍼터(Translater/Generator) 인터페이스를 제공해요.

기본 흐름

  1. 모델을 CTranslate2 포맷으로 변환한다.
  2. ctranslate2.Translator 등으로 모델을 로드한다.
  3. 입력을 배치로 넣어 추론 결과를 받는다.

Transformer 모델을 변환하고 추론하는 흐름은 대략 이렇게 생겼어요.

import ctranslate2

# Hugging Face 모델을 CTranslate2 포맷으로 변환 (양자화 포함)
converter = ctranslate2.converters.TransformersConverter("sshleifer/distilbart-cnn-12-6")
converter.convert("ct2_model", quantization="int8")

# 변환된 모델을 로드해서 추론
translator = ctranslate2.Translator("ct2_model")
results = translator.translate_batch([["Hello world!"]])
print(results[0].hypotheses[0])

확인 포인트

  • 변환할 때 quantization 옵션을 주면 int8 같은 저비트 양자화가 함께 적용돼요.
  • 추론은 평소 파이토치와 달리 동적 배치와 양자화 연산이 CPU/GPU 백엔드에서 돌아간다고 보면 돼요.

출처: https://opennmt.net/CTranslate2/quickstart.html

더 알아보기