bentoml/OpenLLM

Run any open-source LLMs, such as DeepSeek and Llama, as OpenAI compatible API endpoint in the cloud.

OpenLLM – OpenAI 호환 API 뒤에서 자체 호스팅 LLM

정의

  • 오픈소스 대규모 언어 모델(LLM)을(Llama 3.x부터 Qwen 2.5, Mistral, Phi-4 등) 로컬 서버로 실행하여 OpenAI API가 제공하는 것과 동일한 REST 엔드포인트를 노출하는 Python 패키지입니다.
  • 경량 채팅 UI, CLI 도구, Docker/Kubernetes 배포 헬퍼를 번들로 제공하므로 단일 명령으로 프로덕션 등급 추론 서비스를 시작할 수 있습니다.

주요 기능

  • 한 줄 모델 실행 – openllm serve llama3.2:1b는 모델을 다운로드하고(Hugging Face 통해), vLLM 기반 추론 서버를 시작하며, http://localhost:3000에서 접근 가능하게 합니다.
  • OpenAI 호환 엔드포인트 – /v1/chat/completions, /v1/completions 등은 OpenAI와 통신하는 모든 클라이언트 라이브러리(예: openai Python SDK, LlamaIndex)에서 작동합니다.
  • 내장 채팅 UI – http://localhost:3000/chat을 방문하면 프런트엔드 코드를 작성하지 않고도 대화형 웹 채팅을 사용할 수 있습니다.
  • 확장 가능한 모델 카탈로그 – 기본 GitHub 호스팅 모델 리포지토리가 지원되는 모델을 나열합니다. BentoML 패키지 모델의 자체 리포지토리를 추가할 수 있습니다.
  • 엔터프라이즈급 배포 – BentoML의 프로덕션 서빙 스택을 활용하여 Docker 이미지와 Kubernetes용 Helm 차트를 생성합니다.
  • 백엔드 유연성 – 내부적으로 고성능 vllm 엔진을 사용하여 GPU에서 빠른 추론을 제공합니다.

시작하기

pip install openllm          # 패키지 설치
openllm hello               # 정상 동작 확인 데모
openllm serve llama3.2:1b   # LLM 서버 시작 (게이트 모델에는 HF 토큰 필요)
  • 서버는 포트 3000에서 수신하며 API와 /chat UI를 모두 제공합니다.
  • Python 클라이언트 예시:
from openai import OpenAI
client = OpenAI(base_url='http://localhost:3000/v1', api_key='na')
resp = client.chat.completions.create(
    model='meta-llama/Llama-3.2-1B-Instruct',
    messages=[{'role':'user','content':'초전도체를 5살 아이에게 설명해줘'}],
    stream=True,
)
for chunk in resp:
    print(chunk.choices[0].delta.content or '', end='')

일반적인 사용 사례

  • 외부 API 사용 비용을 지불하지 않고 LLM 기반 기능의 빠른 프로토타이핑.
  • 온프레미스 또는 클라우드 VPC에서 비공개 또는 규제 대상 모델 배포.
  • 기존 OpenAI 기반 도구와 상호 운용해야 하는 내부 AI 서비스 구축.
  • 모델 리포지토리에 추가하기만 하면 새로운 오픈소스 모델을 실험.

커뮤니티 및 기여

  • 활발한 Slack 커뮤니티, 포럼, GitHub 이슈 트래커.
  • 기여 환영: 새 모델 추가, CLI 개선, 배포 스크립트 확장, 버그 수정 제출.
  • 이 프로젝트는 Apache-2.0 라이선스이며 BentoML, vLLM 및 기타 오픈소스 구성 요소를 기반으로 합니다.

결론 OpenLLM은 모델 다운로드, GPU 설정, API 설계의 무거운 작업을 추상화하여 개발자에게 오픈소스 LLM을 OpenAI 서비스인 것처럼 제공하는 플러그 앤 플레이 방식을 제공하며, 선택적으로 엔터프라이즈급 Docker/Kubernetes 배포를 지원합니다.

관련

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