generate() API — 빔 서치 설정 조정
generate() API — 빔 서치 설정 조정
Transformers에서 텍스트 생성은 프레임워크마다 GenerationMixin 의 generate() 메서드로 이뤄져요. PyTorch의 transformers.GenerationMixin.generate() 가 가장 대표적이에요.
핵심 설정
generate() 는 각 프레임워크에서 동일하게 다양한 인자를 받아요:
num_beams: 빔 수 (1보다 크면 빔 서치 활성화).do_sample: 샘플링 여부.max_new_tokens: 새로 생성할 토큰 수.early_stopping: 빔 서치에서EOS를 만나면 일찍 멈출지.
로그잇 프로세서와의 관계
일반적인 인자만으로는 부족해 logits_processor 로 커스텀 로직을 넣을 수 있어요. 빔 서치는 이 프로세서들을 내부적으로 조합해 동작해요. 고급 사용자라면 생성 설정을 GenerationConfig 로 정리해 재사용하기도 해요.
주의
빔 서치 설정은 결과 품질과 지연·메모리를 함께 바꿔요. num_beams 를 올리면 계산량이 늘므로, 전용 GPU가 아니라면 과하지 않은 값에서 시작하는 걸 권장해요.