# RouteLLM - LLM 라우터 서빙 및 평가를 위한 프레임워크

> Clean Markdown view of GeekNews topic #15800. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=15800](https://news.hada.io/topic?id=15800)
- GeekNews Markdown: [https://news.hada.io/topic/15800.md](https://news.hada.io/topic/15800.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-07-12T09:58:19+09:00
- Updated: 2024-07-12T09:58:19+09:00
- Original source: [github.com/lm-sys](https://github.com/lm-sys/RouteLLM)
- Points: 3
- Comments: 0

## Topic Body

- RouteLLM은 LMSys와 Anyscale이 협력하여 개발한 LLM 라우터 serving 및 평가를 위한 프레임워크  
- 핵심 기능:   
  - OpenAI 클라이언트를 대체하여 간단한 쿼리를 저렴한 모델로 라우팅  
  - 학습된 라우터 제공, 새로운 라우터 확장 및 벤치마크에서 라우터 성능 비교 등  
  
##### 모델 지원  
- GPT-4와 Mixtral 8x7B 외에도 `strong-model`과 `weak-model` 인수를 수정하여 다양한 모델 조합 사용 가능  
- LiteLLM을 활용해 다양한 오픈소스 및 closed 모델에서 chat completions 지원  
- OpenAI 호환 엔드포인트도 사용 가능  
- 다양한 모델 제공업체의 API 키 설정 방법 제공  
  
### 개발 동기  
- 비용과 기능이 다양한 LLM을 배포할 때 고품질 응답을 위해 가장 강력한 모델을 사용하면 비용이 많이 들고, 저렴한 모델을 사용하면 품질이 낮아질 수 있음  
- LLM 라우팅은 간단한 쿼리를 저렴한 모델로 보내 비용을 절감하면서 품질을 유지하는 솔루션 제공  
- 각 요청에는 비용-품질 tradeoff를 결정하는 cost threshold가 연관됨  
  
### 서버  
- RouteLLM은 다양한 라우팅 전략에 따라 요청을 라우팅하기 위한 경량 OpenAI 호환 서버 제공  
- `--routers`로 사용 가능한 라우터 목록 지정, `--config`로 라우터 설정 파일 경로 지정  
- 대부분의 경우 강력하고 가벼운 `mf` 라우터 사용 권장  
- 클라이언트는 `model` 필드에 라우터 이름과 threshold를 지정하여 요청  
  
### Threshold 보정   
- 라우팅에 사용되는 threshold는 비용-품질 tradeoff를 제어함  
- 라우터 유형과 받는 쿼리에 따라 의미 있는 threshold 범위가 다르므로, 샘플 쿼리와 강한 모델로 보낼 쿼리 비율을 사용해 보정하는 것이 좋음  
- 기본적으로 Chatbot Arena 데이터셋을 기반으로 threshold 보정 지원  
- 실제 수신하는 쿼리 유형과 유사한 데이터셋에서 보정하는 것이 좋음  
  
### 평가  
- RouteLLM은 벤치마크에서 다양한 라우팅 전략의 성능을 측정하기 위한 평가 프레임워크도 포함  
- `--routers`로 평가할 라우터 목록 지정, `--benchmark`로 평가할 특정 벤치마크 지정  
- 평가 결과는 콘솔에 출력되고, 라우터 성능 그래프도 생성됨  
- 기본적으로 GPT-4와 Mixtral이 평가에 사용되는 모델 쌍이며, `--strong-model`과 `--weak-model` 플래그로 수정 가능  
  
### 라우터  
- RouteLLM은 `gpt-4-1106-preview`와 `mixtral-8x7b-instruct-v0.1` 모델 쌍에 대해 훈련된 4개의 라우터 제공  
- 라우터 목록: `mf`, `sw_ranking`, `bert`, `causal_llm`, `random`   
- 이 라우터들은 다른 강한/약한 모델 쌍에도 잘 일반화되므로 모델 쌍을 교체해도 다시 학습할 필요 없음  
  
### GN⁺의 의견  
- RouteLLM은 다양한 LLM을 효율적으로 사용할 수 있는 유용한 프레임워크로 보임. 특히 간단한 쿼리를 저렴한 모델로 라우팅하여 비용을 절감하면서 품질을 유지할 수 있다는 점이 매력적임   
- 제공되는 라우터들이 다양한 모델 쌍에 잘 일반화된다는 점도 좋음. 사용자가 직접 라우터를 학습시키지 않아도 된다는 장점이 있음  
- Threshold 보정 기능도 유용해 보임. 사용자의 실제 쿼리 데이터를 활용해 최적의 threshold를 찾을 수 있음  
- 평가 프레임워크를 통해 다양한 라우터와 벤치마크의 성능을 쉽게 비교해볼 수 있다는 점도 장점임  
- 다만 프레임워크 사용을 위해서는 강한 모델과 약한 모델에 대한 API 키 설정 등 사전 준비가 필요함. 초보자가 사용하기에는 다소 진입 장벽이 있을 수 있음  
- 유사한 기능을 제공하는 다른 프로젝트로는 Multi-model라는 오픈소스가 있음. 여러 언어 모델을 단일 API로 통합하고 라우팅하는 기능을 제공함

## Comments



_No public comments on this page._
