Lightning Serve API로 모델 REST API 제공 방법
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

모델을 REST API를 통해 제공하는 방법: Lightning Serve API 사용

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • 소프트웨어 개발자 (모델 서빙, REST API 구현, 프레임워크 선택에 관심 있는 분야)
  • ML 엔지니어 (모델 배포 및 성능 최적화 필요)
  • 난이도: 중간 (FastAPI/REST API 기초 지식 필요)

핵심 요약

  • Lightning Serve APIsetup()predict() 메서드를 통해 모델 로딩 로직과 요청 처리를 간결하게 구현 가능
  • 기본적으로 요청 배치(Batching)를 지원하여 모델 처리 성능 향상
  • 단일 클래스로 서빙 애플리케이션 구현 가능 (Rapid prototyping 지원)

섹션별 세부 요약

1. 프레임워크 선택과 배경

  • LitServe API는 FastAPI와 Uvicorn을 기반으로 하되, "batteries-included" 방식으로 불필요한 보일러플레이트 코드 제거
  • FastAPI 수동 구현 대비 보다 빠른 개발 속도와 효율성 제공

2. 주요 기능 및 이점

  • Rapid prototyping:
  • LitServe를 사용하면 하나의 클래스로 서빙 애플리케이션 완성 가능
  • 자동 배치 처리:
  • startup arguments를 통해 요청을 일괄 처리하여 모델 성능 최적화
  • 커스텀 로직 지원:
  • setup() 메서드로 모델 로딩, predict() 메서드로 요청 처리 가능

3. 프로젝트 구조 및 배포

  • app/ 디렉토리:
  • 모델 서빙 및 로딩 로직 구현
  • model/ 디렉토리:
  • 로컬 저장소에 가중치 직접 커밋 (개발자 편의성 및 비용 절감)
  • Dockerfile:
  • 컨테이너화를 통해 클라우드 환경 배포 가능

4. 실행 예제 및 결과

  • curl 명령어 사용:
  • POST 요청으로 입력 텍스트 전달
  • JSON 형식의 응답으로 요약 결과 반환
  • 예시:

```bash

curl -X POST -H "Content-Type: application/json" -d '{"input": "The CNN/Daily Mail dataset..."}'

```

```json

{"output":"A dataset of news articles used for summarisation."}

```

결론

  • Lightning Serve API모델 로딩 로직과 REST 인터페이스 처리를 분리하여 개발 생산성 향상
  • Docker 컨테이너화즉시 클라우드 배포 가능
  • 배치 처리 기능을 통해 모델 성능 최적화 가능 (예: setup()/predict() 메서드 활용)