NVIDIA-NeMo/Switchyard

Switchyard lets LLM applications route traffic across models and providers while preserving native OpenAI and Anthropic API compatibility - enabling flexible model selection, benchmarking, and cost/performance optimization.

NVIDIA NeMo Switchyard – 빠른 개요

개요 – Switchyard는 AI 에이전트(또는 모든 LLM 기반 서비스)와 언어 모델 풀 사이에 위치하는 NVIDIA NeMo의 오픈소스 라우팅 라이브러리입니다. 모든 요청을 단일하고 비용이 많이 드는 모델로 보내는 대신, Switchyard가 요청마다 어떤 모델이 처리해야 할지 결정하므로 저렴하고 빠른 모델과 더 뛰어난 대규모 모델을 혼합하여 사용할 수 있습니다.

중요성 – LLM 운영 환경에서는 항상 다음 세 가지를 절충해야 합니다.

  • 작업 성공률 (모델이 좋은 답변을 생성하는가?)
  • 비용 (토큰 또는 API 호출당 지불하는 비용)
  • 지연 시간 (사용자가 기다리는 시간). Switchyard는 단일 모델을 하드코딩하는 대신, 이러한 절충안을 자동으로 최적화할 수 있는 프로그래밍 가능한 방법을 제공합니다.

작동 방식 (상위 수준 흐름)

  1. 모델 풀 정의 – 액세스 가능한 모델을 나열합니다 (예: 저렴한 7B 모델, 대규모 70B 모델, Anthropic Claude 등).
  2. 라우팅 알고리즘 선택 – Switchyard는 여러 전략(Auto, Task-based, Execution-based, Composite 및 escalation이나 sub-agent와 같은 고급 전략)을 제공합니다. 알고리즘은 들어오는 요청을 분석하고, 필요에 따라 에이전트의 최근 도구 사용 신호를 참조합니다.
  3. 라우팅 결정 – 알고리즘은 요청을 처리해야 할 모델의 ID를 반환합니다.
  4. 게이트웨이의 요청 전달 – 주변 서비스(OpenRouter, LiteLLM, NeMo Relay 또는 사용자 정의 하네스)가 선택된 모델을 호출하고 사용자에게 응답을 반환합니다.
  5. 반복 – 에이전트가 작업을 계속할 때, 라우터는 필요에 따라 대화 도중에 모델을 재평가하고 전환할 수 있습니다.

주요 기능

기능 이점
다양한 통합 포인트 기존 게이트웨이(OpenRouter, LiteLLM, NeMo Relay)를 통해 사용하거나, 데모용 로컬 프록시 서버를 실행하거나, Rust/Python 라이브러리를 서비스에 직접 임베딩할 수 있습니다.
플러그인 가능한 라우팅 알고리즘 • Auto – 합리적인 기본값 (효율성 우선, 신뢰도 0.5, 분류기 없음).
• Task – 분류기 모델이 저렴한 모델로 처리 가능한지 판단.
• Execution – 최근 도구 사용 상황과 결과를 분석 (stage-router).
• Composite – Task와 Execution을 결합하여 더 강력한 결정 구현.
• 기타 전략: Plan/Execute, Escalation, Advisor, Sub-agent, Random.
설정 기반 모든 라우팅 동작은 TOML 파일로 정의되므로 코드 변경 없이 쉽게 실험할 수 있습니다.
비용 대 정확도 평가 벤치마크 문서와 시각화 도구(비용-정확도 차트 등)가 내장되어 있어 단일 모델 기준과 비교할 수 있습니다.
확장 가능한 구성 요소 라이브러리 (switchyard-libsy), HTTP 클라이언트 (switchyard-llm-client), 러너 (switchyard-runner), 데모용 프록시 서버 (switchyard-server)가 별도의 크레이트로 제공됩니다.
오픈소스 (Apache-2.0) 상용 제품에 자유롭게 임베딩하거나 수정할 수 있습니다 (NVIDIA 라이선스 조건 준수 필요).

시작하기 옵션

경로 대상 사용자 단계 (요약)
OpenRouter 게이트웨이 이미 OpenRouter API를 사용하는 사용자 API 호출에서 model=nvidia/switchyard를 설정합니다. OpenRouter가 라우팅 서비스를 호스팅합니다.
LiteLLM 플러그인 자체 추론 스택을 운영하는 개발자 리포지토리를 복제하고 examples/litellm 퀵스타트를 따르며, LiteLLM 1.102.0을 고정합니다. 참고: Stage 및 Random 라우팅만 지원.
NeMo Relay 플러그인 NVIDIA NeMo Relay 프레임워크 사용자 Rust 툴체인과 Python 3를 사용하여 Rust 플러그인 (crates/switchyard-nemo-relay-plugin)을 빌드하고 Relay 서버를 설정합니다.
로컬 프록시 서버 빠른 데모, 평가 또는 개인용 switchyard-server를 실행하고(docs/getting_started.md#server-path 참조) 클라이언트를 로컬 엔드포인트로 지정합니다.
임베디드 라이브러리 사용자 정의 게이트웨이 또는 에이전트 하네스를 구축하는 팀 switchyard-libsy(Rust)를 추가하거나 Python 예제 examples/libsy.py를 사용하고, TOML 설정을 제공하여 라우팅 API를 직접 호출합니다.

Switchyard 권장 사용자

  • 제품 팀: 품질을 유지하면서 LLM 비용을 절감하려는 팀.
  • RAG / 에이전트 개발자: 도구 사용 상황에 따라 작업 도중 모델을 전환하려는 개발자.
  • 연구원: 라우팅 전략을 평가하거나 새로운 알고리즘을 구축하려는 연구원.
  • Ops 엔지니어: 단일 모델 기준과 비교 가능한 플러그 앤 플레이 프록시를 찾는 엔지니어.

제한 사항 및 성숙도

  • 이 프로젝트는 pre-1.0입니다. API와 동작이 변경될 수 있으므로 프로덕션 환경에서는 특정 버전을 고정하십시오.
  • 일부 통합(예: LiteLLM)은 experimental로 표시되어 있으며 특정 알고리즘에 필요한 중간 모델 호출 지원이 부족합니다.
  • NeMo Relay 사용 시, 0.8.x/0.9.0 버전에서는 Switchyard 외부 경로에 대한 상위 오류 세부 정보가 손실될 수 있습니다.

라이선스 및 커뮤니티

  • Apache 2.0 – 관대한 오픈소스 라이선스.
  • 문제 보고 및 기여는 GitHub를 통해 처리됩니다 (issues, PRs, 행동 강령).

요약

Switchyard는 요청마다 최적의 LLM을 풀에서 동적으로 선택하여 비용, 지연 시간, 성공률의 균형을 맞추는 라우팅 계층입니다. 주요 게이트웨이를 통해 사용하거나 로컬 데모 서버로 실행, 또는 서비스에 직접 임베딩할 수 있으며, TOML로 설정 가능한 다양한 라우팅 전략을 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트
  • 프로젝트