Generation API — generate와 GenerationConfig
Generation API
Transformers의 텍스트 생성은 각 프레임워크의 GenerationMixin에 구현된 generate() 메서드로 이뤄져요. generate()의 동작은 GenerationConfig로 파라미터화해요.
generate()와 GenerationConfig
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3-8B")
outputs = model.generate(**inputs, max_new_tokens=100)
max_new_tokens: 프롬프트를 제외한 새 토큰 수 제한(권장).do_sample,num_beams,temperature,top_p,top_k: 디코딩 전략 제어.num_return_sequences: 생성할 후보 수.
GenerationConfig로 관리
모델마다 기본 생성 설정이 GenerationConfig에 있어요. 직접 인스턴스를 만들어 재사용하거나, 어드혹으로 generate(..., top_p=0.9)처럼 넘길 수 있어요. 커스텀 설정을 만들고 저장(.save_pretrained)해서 모델과 함께 재사용하는 것도 가능해요.
생성 설정 점검
모델의 generation_config를 조회하면 기본값을 알 수 있고, 문서에선 새 설정값을 오버라이드하는 방법도 설명해요. 토큰 스트리밍 같은 부가 기능도 이 API에서 다뤄요.