RBLN Sampler¶
실험적 기능
이 기능의 일부는 실험적 단계이며, 곧 완전히 지원될 예정입니다.
개요¶
샘플링은 토큰을 생성할 때마다 모델의 출력 분포를 바탕으로 다음 토큰을 선택하는 과정입니다. 어휘 크기가 큰 LLM에서는 이 과정이 추론 시간의 상당 부분을 차지할 수 있습니다. 특히 top-k와 top-p 샘플링은 후보 토큰을 선택하기 위한 필터링과 정렬로 인해 추가 연산 비용이 발생할 수 있습니다.
RBLN vLLM은 이러한 연산 비용을 줄이기 위해 RBLN NPU에서 샘플링을 수행하는 커스텀 연산(custom op)을 지원하며, RBLNSampler에서 이를 사용합니다. 특히 top-k / top-p 샘플링용 custom op에는 FlashInfer 샘플링 알고리즘이 적용되어, rejection sampling으로 전체 어휘를 정렬하지 않고 토큰을 선택합니다.
샘플링 지원 범위¶
Greedy 및 top-k / top-p 샘플링은 안정적으로 지원합니다. 그 외 샘플링 방식은 실험적 단계입니다.
설정¶
샘플러 선택¶
RBLNSampler는 기본적으로 활성화되어 있습니다. 이를 비활성화하고 upstream vLLM 샘플러를 사용하려면 --no-rbln-use-custom-sampler를 지정해야 합니다.
워밍업¶
기본 설정(VLLM_RBLN_ENABLE_WARM_UP=1)에서는 초기화 중에 샘플링 그래프를 컴파일합니다. 값을 0으로 설정하면 샘플러를 포함한 모든 그래프의 워밍업을 생략하므로 초기 추론 속도가 느려질 수 있습니다.
캐시¶
샘플링 그래프는 컴파일 캐시에 저장하지 않습니다.
Speculative 샘플링¶
Speculative decoding에서도 샘플링을 지원합니다. 지원 방식과 설정은 Speculative Decoding에서 확인할 수 있습니다.