generate() API — 빔 서치 설정 조정

generate() API — 빔 서치 설정 조정

Transformers에서 텍스트 생성은 프레임워크마다 GenerationMixingenerate() 메서드로 이뤄져요. PyTorch의 transformers.GenerationMixin.generate() 가 가장 대표적이에요.

핵심 설정

generate() 는 각 프레임워크에서 동일하게 다양한 인자를 받아요:

  • num_beams: 빔 수 (1보다 크면 빔 서치 활성화).
  • do_sample: 샘플링 여부.
  • max_new_tokens: 새로 생성할 토큰 수.
  • early_stopping: 빔 서치에서 EOS 를 만나면 일찍 멈출지.

로그잇 프로세서와의 관계

일반적인 인자만으로는 부족해 logits_processor 로 커스텀 로직을 넣을 수 있어요. 빔 서치는 이 프로세서들을 내부적으로 조합해 동작해요. 고급 사용자라면 생성 설정을 GenerationConfig 로 정리해 재사용하기도 해요.

주의

빔 서치 설정은 결과 품질과 지연·메모리를 함께 바꿔요. num_beams 를 올리면 계산량이 늘므로, 전용 GPU가 아니라면 과하지 않은 값에서 시작하는 걸 권장해요.

더 알아보기