model 필드 값만 변경함으로써 원하는 모델으로 라우팅할 수 있습니다. 엔드포인트와 API 키는 그대로 유지되며, 변경되는 것은 오직 model 값뿐입니다.
라우팅이 어떻게 작동하는지
각 배포마다 고유한 공개 이름이 존재합니다. Tokios가 요청을 수신하면model 필드 값을 읽어 해당 이름을 가진 배포를 찾은 뒤, 그 배포의 업스트림 모델 ID로 값을 변경하여 커넥터 터널을 통해 전달합니다. 클라이언트 설정은 전혀 변경되지 않으며, 오직 model 값만 바뀌게 됩니다.
하나의 커넥터로 다양한 모델을 사용할 수 있습니다
하나의 커넥터로 여러 모델을 처리할 수 있습니다.Routes에 각 업스트림 모델 ID를 기재하고 Upstreams에 해당하는 명칭의 로컬 업스트림 모델로 매핑해주세요:
tokios-connector.json
gemma-tunnel → gemma4:e4b, qwen-coder → qwen2.5-coder), all pointing at this connector.
요청 시 업스트림 모델 ID를 변경하는 방법
두 배포 환경이 모두 등록된 상태에서,model 필드만 변경하여 모델을 전환할 수 있습니다:
클라이언트를 수정하지 않고도 백엔드를 교체할 수 있습니다.
클라이언트는 공개된 모델 이름만 참조하므로 업스트림 모델 ID나 커넥터 설정을 새 서버로 변경하고 동일한 공개 이름을 유지하기만 하면 기존 클라이언트 설정을 바꾸지 않고도 모델을 다른 하드웨어나 백엔드로 옮길 수 있습니다. 그러면 기존 요청들도 정상적으로 작동합니다.라우팅 전략들
여러 로컬 모델을 운용할 때 모든 요청을 동일한 모델으로 보내면 자원이 낭비됩니다. 코딩 요청에는 120B 추론용 모델이 필요 없으며 단순 분류 작업에도 70B 대형 모델이 필요하지 않습니다. 라우팅 기능을 활용하면 각 요청을 해당 작업에 가장 적합한 모델으로 보낼 수 있어 작업 부하에 따라 속도, 품질, 비용을 최적화할 수 있습니다. 모든 작업에 1 모델 하나만 사용하는 방식은 여러 단점을 수반합니다. 대형 모델은 어떤 작업이든 잘 처리하지만 응답 속도가 느리고 VRAM 소모도 많습니다. 소형 모델은 응답 속도는 빠르지만 복잡한 추론에는 어려움을 겪습니다. 라우팅을 이용하면 두 가지 모델을 모두 활용할 수 있습니다.- 속도: 간단한 질문은 빠르게 처리하는 소형 모델로, 복잡한 작업은 대형 모델로 전달됩니다.
- 품질: 코딩 관련 요청은 코딩 전문 모델로, 일반 대화는 범용 모델로 보내집니다.
- 비용: 소형 모델은 전력과 VRAM 소모가 적어 고부하 작업을 위한 여유 공간을 확보할 수 있습니다.
- 복원력: 기본 모델이 과부하 상태이거나 다운되었을 때 요청은 백업 모델로 자동 전달됩니다.
작업 기반 라우팅
작업 기반 라우팅
작업 유형에 따라 라우팅합니다. 코딩 관련 요청은 코드 전문 모델로, 일반 대화는 범용 모델로, 추론 작업은 고성능 모델로 전송하죠. 클라이언트나 미들웨어 계층이 요청 내용을 분석하여 적절한 배포 대상을 선택합니다.보다 정교한 라우팅이 필요한 경우, 요청 내용을 분석하여 설정된 규칙에 따라 올바른 백엔드로 전달하는 LiteLLM이나 OpenRouter와 같은 게이트웨이를 활용하시기 바랍니다.
가장 간단한 구현 방법은 애플리케이션 코드 내에서 이루어집니다. 요청 유형을 확인한 뒤 적절한 배포 이름을 선택하시면 됩니다.
게이트웨이 수준의 라우팅
게이트웨이 수준의 라우팅
클라이언트와 Tokios 사이에 라우팅 프록시를 배치하세요. 이 프록시는 요청 속성, 부하 상태 또는 사용자 정의 규칙에 따라 어떤 Tokios 배포 인스턴스를 사용할지 결정합니다.LiteLLM은 여러 Tokios 배포 인스턴스 앞에 배치되어 모델 별칭에 따라 요청을 라우팅할 수 있습니다.클라이언트는 별칭
litellm_config.yaml
gpt-4을 사용해 LiteLLM 프록시로 요청을 전송하며, 프록시는 설정된 Tokios 배포 인스턴스로 해당 요청을 전달합니다.OpenRouter는 여러 제공업체 간 모델 폴백 및 부하 분산 기능을 지원합니다. Tokios 엔드포인트를 사용자 정의 제공업체로 추가한 뒤 OpenRouter 대시보드에서 라우팅 규칙을 설정하시면 됩니다.폴백 체인 구조
폴백 체인 구조
Configure a primary model with 1 or more fallback models. If the primary is busy, offline, or returns an error, the request falls through to the next model in the chain.Tokios 커넥터들은 자신의 상태를 게이트웨이에 보고합니다. 커넥터가 오프라인 상태가 되면 해당 커넥터에 배포된 서비스에 대한 요청은 503 응답을 반환하게 됩니다. 애플리케이션에서는 이를 감지하여 다른 배포 서비스로 재시도할 수 있으며, LiteLLM과 같은 게이트웨이를 설정해 자동으로 대체 모델을 선택하도록 할 수도 있습니다.
비용 기반 라우팅
비용 기반 라우팅
간단하고 빈번한 요청은 크기가 작고 비용이 저렴한 모델으로 보내고, 대규모 모델은 꼭 필요한 작업에만 사용하세요.
이 전략은 전체 연산량과 전력 소비를 줄여줍니다. VRAM과 전력 공급이 제한적인 일반 사용자용 하드웨어에서 실행할 때 매우 유용합니다.
의사결정 매트릭스
이 전략들은 서로 배타적이지 않습니다. 실제 운영 환경에서는 작업 유형에 따른 라우팅(코드 → 코드 모델)과 게이트웨이 프록시 뒤에서의 폴백 체인(주 모델 → 백업 모델)이 함께 사용되기도 합니다
다음 단계
로컬 모델을 선택하세요
어떤 배포 환경을 등록할지 결정하기 위해 모델과 백엔드를 비교해보세요.
해당 배포 환경의 성능을 벤치마크하세요.
실제 워크로드 상황에서 라우팅 결정이 적절한지 확인하기 위해 처리량과 지연 시간을 측정해보세요.