LLM 앱에 Litellm 사용의 이점

LLM 앱에 Litellm 사용의 이점

LLM APPS_1에 Litellm 사용의 이점LLM APPS_1에 Litellm 사용의 이점저자의 이미지 | ideogram.ai

소개

최근 몇 년 동안 LLM (Large Language Model)의 급증으로 인해 많은 LLM 기반 응용 프로그램이 등장하고 있습니다. LLM 구현은 이전에 존재하지 않은 기능을 도입했습니다.

시간이 지남에 따라 많은 LLM 모델과 제품이 제공되며 각 장단점이 있습니다. 불행히도, 각 회사는 자체 프레임 워크를 개발할 수 있기 때문에 이러한 모든 모델에 액세스하는 표준 방법은 여전히 없습니다. 그렇기 때문에 다음과 같은 오픈 소스 도구가있는 이유입니다 Litellm 추가 비용없이 LLM 앱에 대한 표준화 된 액세스가 필요할 때 유용합니다.

이 기사에서는 Litellm이 LLM 응용 프로그램 구축에 유리한 이유를 살펴 보겠습니다.

들어가자.

혜택 1 : 통합 액세스

Litellm의 가장 큰 장점은 다른 모델 제공 업체와의 호환성입니다. 이 도구는 표준화 된 인터페이스를 통해 100 가지가 넘는 LLM 서비스를 지원하므로 사용하는 모델 제공 업체에 관계없이 액세스 할 수 있습니다. 응용 프로그램이 상호 교환 적으로 작동 해야하는 여러 가지 다른 모델을 사용하는 경우 특히 유용합니다.

Litellm이 지원하는 주요 모델 제공 업체의 몇 가지 예는 다음과 같습니다.

  • GPT-4와 같은 Openai 및 Azure Openai.
  • Claude와 같은 인류.
  • AWS Bedrock & Sagemaker, Amazon Titan 및 Claude와 같은 지원 모델.
  • Gemini와 같은 Google Vertex AI.
  • Llama 및 Mistral과 같은 오픈 소스 모델을위한 Face Hub 및 Ollama를 포옹합니다.

표준화 된 형식은 채팅/완성 스키마를 사용하여 OpenAI의 프레임 워크를 따릅니다. 즉, 원래 모델 제공 업체의 스키마를 이해하지 않고도 모델을 쉽게 전환 할 수 있습니다.

예를 들어 다음은 Litellm과 함께 Google의 Gemini 모델을 사용하는 Python 코드입니다.

from litellm import completion

prompt = "YOUR-PROMPT-FOR-LITELLM"
api_key = "YOUR-API-KEY-FOR-LLM"

response = completion(
      model="gemini/gemini-1.5-flash-latest",
      messages=[{"content": prompt, "role": "user"}],
      api_key=api_key)

response['choices'][0]['message']['content']

모델 이름과 모델 제공 업체로부터 해당 API 키 만 얻기 만하면됩니다. 이 유연성은 Litellm이 여러 모델을 사용하는 응용 프로그램이나 모델 비교를 수행하는 데 이상적입니다.

혜택 2 : 비용 추적 및 최적화

LLM 애플리케이션과 함께 작업 할 때는 구현하는 각 모델과 모든 통합 제공 업체, 특히 실시간 시나리오에서 토큰 사용 및 지출을 추적하는 것이 중요합니다.

Litellm을 통해 사용자는 Model API 통화 사용량의 자세한 로그를 유지하여 비용을 효과적으로 제어하는 데 필요한 모든 정보를 제공 할 수 있습니다. 예를 들어, 위의 ‘완료’호출에는 아래와 같이 토큰 사용에 대한 정보가 있습니다.

usage=Usage(completion_tokens=10, prompt_tokens=8, total_tokens=18, completion_tokens_details=None, prompt_tokens_details=PromptTokensDetailsWrapper(audio_tokens=None, cached_tokens=None, text_tokens=8, image_tokens=None))

응답의 숨겨진 매개 변수에 액세스하면 비용을 포함한보다 자세한 정보도 제공됩니다.

아래와 유사한 출력으로 :

{'custom_llm_provider': 'gemini',
 'region_name': None,
 'vertex_ai_grounding_metadata': [],
 'vertex_ai_url_context_metadata': [],
 'vertex_ai_safety_results': [],
 'vertex_ai_citation_metadata': [],
 'optional_params': {},
 'litellm_call_id': '558e4b42-95c3-46de-beb7-9086d6a954c1',
 'api_base': '
 'model_id': None,
 'response_cost': 4.8e-06,
 'additional_headers': {},
 'litellm_model_name': 'gemini/gemini-1.5-flash-latest'}

많은 정보가 있지만 가장 중요한 부분은`response_cost`입니다. 모델 제공 업체가 무료 액세스를 제공하는 경우에도 여전히 오프셋 될 수 있지만 해당 호출 중에 발생하는 실제 요금을 추정하므로 ‘Response_cost’입니다. 사용자는 모델 (토큰 당 또는 초당)에 대한 사용자 정의 가격을 정의하여 비용을 정확하게 계산할 수 있습니다.

보다 고급 비용 추적 구현을 통해 사용자는 지출 예산 및 제한을 설정하고 Litellm 비용 사용량 정보를 분석 대시 보드에 연결하여보다 쉽게 집계하는 정보를 집계 할 수 있습니다. 특정 사용법이나 부서의 비용을 부여하는 데 도움이되는 사용자 정의 레이블 태그를 제공 할 수도 있습니다.

자세한 비용 사용 데이터를 제공함으로써 Litellm은 사용자와 조직이 LLM 애플리케이션 비용과 예산을보다 효과적으로 최적화 할 수 있도록 도와줍니다.

혜택 3 : 배치 용이성

Litellm은 지역 개발 또는 생산 환경에 사용하든 쉽게 배포 할 수 있도록 설계되었습니다. Python 라이브러리 설치에 필요한 겸손한 리소스를 사용하면 로컬 랩톱에서 Litellm을 실행하거나 복잡한 추가 구성이 필요없이 Docker와 함께 컨테이너화 된 배포에서 호스팅 할 수 있습니다.

구성에 대해 말하면 Yaml 구성 파일을 사용하여 Litellm을보다 효율적으로 설정하여 모델 이름, API 키 및 LLM 앱에 대한 필수 사용자 정의 설정과 같은 필요한 모든 정보를 나열 할 수 있습니다. SQLITE 또는 PostgreSQL과 같은 백엔드 데이터베이스를 사용하여 상태를 저장할 수도 있습니다.

데이터 프라이버시의 경우, 귀하는 Litellm을 직접 배포하는 사용자로서 귀하의 개인 정보를 책임지는 책임이 있지만,이 접근법은 LLM 제공 업체로 보낸 시점을 제외하고는 제어 된 환경을 떠나지 않기 때문에 더 안전합니다. Enterprise 사용자에게 제공하는 Litellm은 응용 프로그램에보다 안전한 환경이 필요한 경우 단일 사인온 (SSO), 역할 기반 액세스 제어 및 감사 로그입니다.

전반적으로 Litellm은 데이터를 안전하게 유지하면서 유연한 배포 옵션 및 구성을 제공합니다.

혜택 4 : 탄력성 기능

LLM 앱을 구축 할 때는 탄력성이 중요합니다. 예상치 못한 문제에도 불구하고 응용 프로그램이 운영 상태를 유지하려고합니다. 탄력성을 촉진하기 위해 Litellm은 응용 프로그램 개발에 유용한 많은 기능을 제공합니다.

Litellm이 가지고있는 기능 중 하나는 Caching이 내장되어 있는데, 여기서 사용자는 LLM 프롬프트 및 응답을 캐시하여 동일한 요청이 반복적 인 비용이나 대기 시간을 초래하지 않도록합니다. 응용 프로그램이 동일한 쿼리를 자주 수신하는 경우 유용한 기능입니다. 캐싱 시스템은 유연하며 벡터 데이터베이스와 같은 메모리 및 원격 캐싱을 모두 지원합니다.

Litellm의 또 다른 기능은 자동 검색이며, 사용자는 요청을 자동으로 재 시도하기 위해 타임 아웃 또는 속도 제한 오류와 같은 오류로 인해 요청이 실패 할 때 메커니즘을 구성 할 수 있습니다. 요청이 이미 재 시도 한계에 도달 한 경우 다른 모델 사용과 같은 추가 폴백 메커니즘을 설정할 수도 있습니다.

마지막으로, 사용 수준을 제한하기 위해 분당 정의 된 요청 또는 분당 토큰 (TPM)에 대한 속도 제한을 설정할 수 있습니다. 오류를 방지하고 애플리케이션 인프라 요구 사항을 존중하기 위해 특정 모델 통합을 제한하는 좋은 방법입니다.

결론

LLM 제품 성장 시대에는 LLM 응용 프로그램을 구축하는 것이 훨씬 쉬워졌습니다. 그러나 많은 모델 제공 업체가 있으므로 특히 멀티 모델 시스템 아키텍처의 경우 LLM 구현의 표준을 설정하기가 어려워집니다. 이것이 Litellm이 LLM 앱을 효율적으로 구축하는 데 도움이되는 이유입니다.

이것이 도움이 되었기를 바랍니다!

Cornellius Yudha Wijaya 데이터 과학 보조 관리자 및 데이터 작성자입니다. 그는 Allianz Indonesia에서 풀 타임으로 일하는 동안 소셜 미디어 및 작문 미디어를 통해 Python과 데이터 팁을 공유하는 것을 좋아합니다. Cornellius는 다양한 AI 및 기계 학습 주제에 대해 글을 씁니다.

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다