ONNX Runtime generate() API 개요

ONNX Runtime generate() API 개요

ONNX Runtime의 generate() API(onnxruntime-genai 라이브러리)는 생성형 AI 모델을 ONNX Runtime 위에서 돌리는 고수준 인터페이스예요. 현재 Preview 단계라서 앞으로 달라질 수 있다는 점만 알아두시면 돼요. 이 라이브러리는 토큰화 같은 전처리부터 logits 처리, 탐색·샘플링, KV cache 관리까지 생성 루프 전체를 한 번에 맡아주기 때문에, ONNX로 변환된 모델 하나만 있으면 바로 채팅이나 생성 애플리케이션을 만들 수 있답니다. 소스는 github.com/microsoft/onnxruntime-genai에서 볼 수 있어요.

출처: ONNX Runtime generate() API (공식 문서)

한 번에 끝내는 generate()

가장 간단한 사용법은 프롬프트를 넣고 한 번에 결과를 받아내는 방식이에요. 높은 수준의 generate() 메서드를 호출하면 전처리, 추론, 디코딩까지 순서대로 알아서 진행돼요.

한 토큰씩 루프로 실행하기

generate()를 쓰는 대신, 모델의 각 반복을 루프로 직접 돌면서 한 번에 한 토큰씩 생성할 수도 있어요. 이런 방식의 장점은 토큰 사이사이에 생성 파라미터를 갱신할 수 있다는 점이에요. 예를 들어 특정 시점부터 샘플링 옵션을 바꾸거나 사용자 정의 scoring을 끼워 넣는 식으로 말이죠.

지원하는 탐색·샘플링 기능

  • 탐색(search): greedy search, beam search
  • 샘플링(sampling): TopP, TopK 샘플링으로 토큰 시퀀스 생성
  • logits 처리: 반복 페널티(repetition penalty) 같은 기능이 내장돼 있고, 사용자 정의 scoring도 쉽게 추가할 수 있어요

그 밖에 지원하는 것

  • 채팅 템플릿(chat template) 적용: 대화 형식 모델에 맞게 프롬프트를 감싸 줘요
  • 구조화된 출력(structured output): 도구 호출(tool calling) 등이 필요할 때 출력을 정형화해요

더 알아보기