ekzhang/openjev-sglang
Jev-compatible API endpoint based on open models (prefill-only)
해결하는 문제
TypeSafe/Jev HTTP API의 서버 구현을 제공하여 Qwen3.6-35B-A3B 모델을 사용해 고효율 분류 및 점수 산정 작업을 수행할 수 있도록 합니다. 단일 요청 내에서 여러 질문(Noul, Choice, Score)에 대해 빠른 1토큰 출력을 요구하는 니즈를 특별히 해결하며, 긴 형식의 생성에 따른 오버헤드를 피합니다.
작동 방식
서버는 SGLang을 추론 백엔드로 사용하고 Rust 프론트엔드, 루트 캐시, 분할 가능한 프리필 CUDA 그래프를 채택합니다. 요청이 도착하면 네이티브 채팅 템플릿을 한 번 렌더링하고 공통 접두사와 여러 질문 접미사로 분할합니다. 공통 접두사로 SGLang의 루트 캐시를 미리 워밍업한 후, 접두사와 각 질문 접미사를 병렬로 백엔드에 전송합니다. 각 호출은 단일 토큰(max_new_tokens=1)만 요청하고 특정 답변 레이블의 로그 확률을 가져옵니다. 이 확률은 안정적인 소프트맥스로 재정규화되어 최종 답변(예: Choice의 argmax 또는 Score의 가중합)을 결정합니다.
대상 사용자
Jev API와 호환되는 고처리량, 저지연 분류 API가 필요한 개발자. 특히 Modal을 통해 NVIDIA B200 GPU에 배포하는 경우를 대상으로 합니다.
주요 특징
- 고효율 추론: 프리필 + 첫 번째 토큰 읽기 방식을 사용해 자기회귀 생성을 회피합니다.
- 루트 캐싱: 여러 질문 간 공통 프롬프트 접두사를 재사용하여 성능을 최적화합니다.
- B200 최적화: SGLang의 Rust 프론트엔드를 활용해 B200 GPU에 최적화된 설계입니다.
- 다중 질문 지원: 1개 요청당 최대 64개의 질문을 처리 가능하며, 각 질문에 여러 선택지가 포함됩니다.
- Modal 통합: Modal에서의 간편한 배포 및 오토스케일링을 내장된 지원 기능으로 제공합니다.
관련
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트
- Dispatch