OpenAI 추론 팀이 전하는 프로덕션 AI 라우팅의 진화
이들은 엔진 신호 기반의 피드백 루프 방식에서 벗어나, 명시적 정책을 기반으로 한 새로운 라우팅 시스템으로 전환했음을 밝혔다. 발표에서는 로드 밸런서의 역할, 최신 아키텍처 구성, 그리고 시스템 안정성 메커니즘을 상세히 설명했다.
OpenAI가 AI 추론 라우팅 기술의 발전 과정을 설명하며, 엔진 신호 기반 피드백 루프에서 명시적 정책 기반의 최신 아키텍처로의 전환을 발표했다.
이들은 엔진 신호 기반의 피드백 루프 방식에서 벗어나, 명시적 정책을 기반으로 한 새로운 라우팅 시스템으로 전환했음을 밝혔다. 발표에서는 로드 밸런서의 역할, 최신 아키텍처 구성, 그리고 시스템 안정성 메커니즘을 상세히 설명했다.
IRB는 주로 엔진 선택과 요청 프록시를 담당하며, 프론트엔드 클러스터 내에서 실행되면서도 전체 추론 흐름의 교량 역할을 수행한다. 이 위치를 통해 IRB는 들어오는 요청을 가장 적합한 엔진으로 효율적으로 분배하는 책임을 진다.
추론 라우팅 시에는 실시간으로 보고되는 여러 핵심 지표를 고려한다. 주요 지표로는 첫 토큰 생성 시간(TTFT), 출력 토큰 간격(토큰 처리량 또는 토큰 간 시간), 그리고 시스템의 전반적인 상태와 활용도 신호가 포함된다. 특히 KV 캐시 활용을 통해 재연산을 방지하고 지연 시간을 단축하는 것이 중요하다. 이러한 지표들을 종합적으로 분석하여 성능, 안정성, 로컬리티, 그리고 캐시 인식을 최적화한다.
초기 라우팅 시스템은 가중치 기반 일관된 해싱(weighted consistent hashing) 방식을 사용하여 특정 요청이나 사용자에게 가장 적합한 대상 엔진을 선택했다. 이 방식은 주기적인 피드백 루프를 통해 엔진의 성능을 기반으로 가중치를 자동으로 계산하고 조정했다. 이를 통해 시스템은 스스로 부하를 분산하며 제어 루프 역할을 수행하여 라우팅 효율을 높였다.
라우팅 시스템의 가중치 관리는 PID 제어기와 개념적으로 유사하게 작동했다. 이는 고전적인 제어 이론 기법으로, 시스템을 원하는 상태로 지속적으로 유도하는 역할을 한다. 이러한 접근 방식은 시스템이 스스로 부하를 균형 있게 분산하도록 돕고, 수동 개입을 최소화하는 자율적인 제어 루프를 구성한다.
기존 피드백 루프 방식은 수많은 신호를 결합하여 라우팅 결정을 내렸기 때문에, 특정 결정의 논리적 근거를 파악하기가 매우 어려웠다. 이는 엔진 간 트래픽 이동 시 나쁜 진동 현상을 유발하고, KV 캐시 활용도를 저하시키는 결과를 초래했다. 이러한 문제점들은 아키텍처 재고의 계기가 되어 새로운 라우팅 시스템 설계의 필요성을 제기했다.
단순 라운드 로빈 방식의 로드 밸런싱은 캐시 지역성을 깨뜨릴 수 있다는 한계가 있다. 이는 동일한 엔진 캐시를 재사용할 수 있는 관련 요청들이 서로 다른 엔진으로 분산될 수 있기 때문이다. 또한, 엔진별 하드웨어 사양과 물리적 거리 차이를 고려하지 못하며, 이는 로컬 엔진 선택에 제약을 가해 효율성을 저하시킨다.
새로운 라우팅 아키텍처는 제어 플레인과 데이터 플레인을 분리하여 역할을 나눈다. 제어 플레인은 전체 CPU 클러스터와 GPU 엔진에 대한 시야를 확보하고, 전역적으로 최적화된 라우팅 해답을 계산한다. 데이터 플레인은 제어 플레인에서 받은 정보를 바탕으로 신속하게 라우팅 결정을 내리며, 엔진 선택기와 비동기 라우팅 상태 새로 고침을 통해 실시간으로 라우팅을 조절한다.
라우팅 가중치는 데이터 로더가 실시간 엔진 신호와 네트워크 오버헤드를 결합하여 생성된다. 이후 용량, TTFT(첫 토큰 생성 시간), TBOT(토큰 간 시간)에 대한 오프라인 회귀 분석을 통해 최적화 도구가 해당 데이터를 라우팅 가중치로 변환한다. 이렇게 계산된 가중치는 데이터 플레인으로 게시되어 실제 라우팅 결정에 활용된다.
시스템에는 세 가지 중요한 경로가 존재한다. 첫째는 동기식으로 처리되는 추론 요청 경로이며, 이는 사용자의 질의가 모델로 전달되는 과정을 포함한다. 둘째는 엔진의 상태와 성능을 지속적으로 모니터링하는 비동기식 엔진 신호 경로이다. 마지막으로, 라우팅 가중치를 계산하고 업데이트하는 비동기식 라우팅 가중치 경로가 있다. 이 세 경로는 시스템의 효율성과 안정성을 보장하기 위해 유기적으로 상호작용한다.
단순히 네트워크 최단 거리에 기반한 라우팅은 지리적 수요와 GPU 용량이 불균형할 때 한계를 드러낸다. 특정 로컬 엔진이 과부하되면 추가 요청들이 대기하게 되어 오히려 전체적인 지연 시간이 길어진다. 따라서 네트워크 거리가 멀더라도 과부하되지 않은 다른 엔진으로 트래픽을 분산하여 엔진 측에서 발생하는 훨씬 더 긴 대기 시간을 피하고, 전체 종단 간 지연 시간을 최적화하는 것이 중요하다.
최적화 도구는 네 가지 유형의 입력을 받는다. 각 CPU 클러스터의 요청, 각 엔진까지의 네트워크 지연 시간, 사용 가능한 엔진 용량 및 상태, 그리고 TTFT와 TBOT 지연 시간 프로필이다. 최적화 목표는 모든 라우팅 트래픽에 걸쳐 예상 종단 간 지연 시간을 최소화하는 것이며, 모든 수요를 라우팅하고 유효 용량을 준수하며 비음수 가중치를 적용하는 제약 조건을 따른다.
과부하 상황에 대비하기 위해 여러 관리 기술을 적용한다. 첫째, 엔진이 이상 징후를 보일 때 이를 감지하여 해당 엔진에 대한 라우팅 가중치를 낮추는 페널티를 적용한다. 둘째, 재시도 폭풍을 방지하기 위해 허용 범위 내로 재시도를 제한하는 한도나 예산을 구현한다. 마지막으로, 추론 수요를 감당할 수 없을 때 사용하는 최후의 수단인 로드 셰딩을 통해 시스템의 안정적인 운영을 보존한다.
자막에서 근거가 되는 대목을 찾아 답합니다.
AI Engineer의 다음 글도 받아볼까요?
AI Engineer에 새 영상이 올라오면, 방금 읽으신 것처럼 정리해서 메일로 보내 드릴게요.
이 채널은 지난 7일 동안 82편 올렸어요.