이 글은 LiteLLM 기술을 소개한다.
LIteLLM 필요성
정교한 AI 도구 통합 시스템을 구축한 후에도, 클라이언트가 비용 절감을 위해 OpenAI 모델에서 Claude 모델로의 전환을 요구하는 상황이 발생할 수 있다. 또는 민감한 데이터 처리를 위해 로컬 모델을 사용하고, 일반 질의에는 클라우드 모델을 활용해야 하는 복합적인 요구사항이 존재한다. 적절한 추상화 계층이 부재할 경우, 이러한 변경 사항은 매번 통합 코드를 재작성해야 하는 복잡성을 초래한다.
LiteLLM과 MCP(Model Context Protocol)의 결합은 이러한 문제를 단순한 설정 변경 수준으로 단순화하는 아키텍처를 제공한다. LiteLLM은 보편적인 게이트웨이(Universal Gateway) 역할을 수행하며, MCP는 모델과 도구 간의 상호작용을 표준화한다. 이 통합을 통해 OpenAI, Anthropic, AWS Bedrock 또는 Ollama를 통한 로컬 모델 등 다양한 환경에서도 MCP 기반 도구들이 원활하게 작동한다.
언어 모델과 게이트웨이 기능
MCP 서버는 AI 시스템이 활용할 수 있는 표준화된 도구 집합을 노출한다. 예를 들어, 고객 서비스 MCP 서버는 `get_recent_customers` (최근 고객 목록 조회), `create_support_ticket` (지원 티켓 생성), `calculate_account_value` (계정 가치 분석)와 같은 도구(Tool)를 제공할 수 있다. MCP의 핵심은 이 도구들이 OpenAI, Claude, LangChain 등 MCP 호환 클라이언트를 사용하는 모든 시스템에서 동일하게 작동한다는 점이다. 이는 도구 통합에 대한 표준화의 이점을 명확히 보여준다.
LiteLLM은 언어 모델을 위한 보편적 번역기(Universal Translator)로 기능하는 라이브러리이다. 이는 한 번 작성된 코드가 지원되는 모든 모델에서 실행될 수 있도록 보장한다. 주요 기능으로는 백 개 이상의 다수 모델 지원, 통합된 인터페이스 제공, 요청 분산을 위한 로드 밸런싱, 공급자 전반의 비용 추적, 그리고 장애 발생 시 자동 전환되는 폴백(Fallback) 지원이 포함된다.
LiteLLM은 근본적으로 다양한 LLM 공급자의 API 엔드포인트를 OpenAI의 API 명세와 유사한 표준화된 인터페이스로 추상화한다. 이는 일종의 프록시(Proxy) 서버 역할을 수행하며, 각기 다른 입력 및 출력 형식을 동적으로 변환한다. 이로 인해 개발자는 기본 코드를 변경하지 않고도 백엔드에서 사용하는 모델을 자유롭게 교체할 수 있다.
LiteLLM과 MCP의 결합은 유연성을 지원한다. MCP 도구는 모든 LLM 공급자와 호환되며, 공급자 간 전환 시에도 도구 통합 코드를 변경할 필요가 없다. 이는 공급자 종속성(Vendor Lock-in)을 제거한다. 또한 가장 비용 효율적인 공급자에게 요청을 라우팅하여 비용을 최적화할 수 있다. 민감 데이터는 로컬 모델로, 일반 쿼리는 클라우드 모델로 처리하는 컴플라이언스 준수 아키텍처 구현이 용이해진다.
LiteLLM 기능
LiteLLM은 여러 공급자에 걸쳐 도구 실행 과정을 표준화한다. 모델이 도구 호출(Tool Call)을 반환하면, LiteLLM은 이를 표준 형식으로 수신한다. 이후 MCP를 통해 해당 도구를 실행하고, 그 결과(Tool Result)를 다시 각 공급자가 요구하는 적절한 형식(예: `tool` 역할의 메시지)으로 변환하여 대화 흐름을 완성한다.
이 아키텍처는 다양한 실제 시나리오에 적용 가능하다. 단순 쿼리는 저비용 모델로, 복잡한 쿼리는 고성능 모델로 라우팅하는 비용 최적화 라우팅이 가능하다. 또한 개인식별정보(PII)가 포함된 메시지는 로컬 모델로, 그 외에는 클라우드 모델로 전송하는 규정 준수 기반 라우팅을 구현할 수 있다. LiteLLM은 여러 모델에 대한 폴백 체인을 구성하여, 특정 공급자에서 장애가 발생하더라도 다음 모델로 자동 전환하여 서비스 안정성을 확보한다.
LiteLLM 동작 과정(BerriAI/litellm: Python SDK, Proxy Server)
고급 활용 패턴으로, 각 공급자별로 최적화된 매개변수(예: `temperature`, `max_tokens`)를 동적으로 적용할 수 있다. LiteLLM은 `completion_cost` 유틸리티를 통해 요청별 비용을 자동으로 추적하는 기능도 제공한다. 결론적으로, 도구 계층을 MCP로 추상화하고 모델 계층을 LiteLLM으로 추상화함으로써, AI 시스템은 코드 변경 없이 비즈니스 요구사항 변화에 능동적으로 적응할 수 있다.
레퍼런스
댓글 없음:
댓글 쓰기