OpenLLM
무엇인가
OpenLLM은 오픈소스 LLM을 OpenAI 호환 HTTP API 서버로 띄우는 Python CLI다. 모델 서빙 스택을 직접 조립하던 자리를 대신한다. 모델 이름과 버전을 지정하면 추론 서버가 뜨고, 클라이언트는 OpenAI API를 흉내 낸 엔드포인트로 붙는다.
어떻게 동작하나
동작은 모델 저장소와 Bento 단위로 이뤄진다. `openllm serve <모델>:<버전>`은 기본 모델 저장소에서 해당 모델의 Bento(모델 정의와 서빙 코드 묶음)를 가져와 추론 백엔드에 올린다. 서버는 기본적으로 http://localhost:3000 에 바인딩되고, 같은 주소의 /chat 경로에 채팅 UI가 붙는다. 가중치는 OpenLLM이 보관하지 않고 Hugging Face에서 내려받는다.
무엇과 다른가
FastAPI로 OpenAI 호환 래퍼를 직접 쓰고 모델별 실행 스크립트를 관리하는 방식과 다르다. 모델 정의가 저장소의 Bento로 패키징되어 이름으로 참조되고, 같은 산출물이 로컬 프로세스, Docker 이미지, Kubernetes, BentoCloud 배포로 이어진다. 클라이언트 쪽은 OpenAI Python 클라이언트나 LlamaIndex처럼 OpenAI 호환 API를 받는 도구를 그대로 쓴다.
어떻게 쓰나
설치 후 `openllm serve llama3.1:8b`로 서버를 세운다. 클라이언트에는 호스트 주소(http://localhost:3000), 모델 이름, 선택적 API 키를 넘긴다. 터미널에서 대화하려면 `openllm run`을 쓰고, BentoCloud로 올리려면 `openllm deploy`를 실행한다. 커스텀 모델은 bentos 디렉터리에 Bento를 빌드해 공개 저장소로 등록한 뒤 목록을 동기화해 쓴다.
전제와 한계
게이트 모델은 Hugging Face 토큰(HF_TOKEN)과 해당 모델 접근 승인이 필요하다. 모델마다 요구 GPU 메모리가 정해져 있어 deepseek r1-671b는 80G x 16, llama3.3 70b는 80G x 2를 요구한다. 커스텀 모델 저장소는 공개 저장소만 등록할 수 있다.
관련 논문 2
유사 도구
- harborDocker Compose로 Ollama·llama.cpp·vLLM 백엔드와 Open WebUI·SearXNG·ComfyUI를 한 명령에 묶어 띄우는 Python CLI다.
- optillmOpenAI 호환 API 요청을 가로채 추론 시점 최적화 기법을 끼워 넣는 Python 프록시다. 모델 재학습 없이 추론 정확도를 높인다.
- apfelApple Silicon Mac에 내장된 FoundationModels LLM을 CLI와 OpenAI 호환 로컬 서버로 노출하는 Swift 도구다. API 키와 클라우드 없이 온디바이스로 동작한다.
- genkitGoogle Firebase가 만든 오픈소스 AI 앱 프레임워크다. JS/TS·Go·Python·Dart SDK가 여러 모델 제공자를 하나의 API로 묶고 CLI와 로컬 개발자 UI를 갖춘다.