본문 바로가기
Coding/TIL & 배운것들

모델 서빙

by 코딩짜는 머글 2024. 11. 12.

모델 서빙이란?

학습된 머신러닝 모델을 실제 애플리케이션에서 사용할 수 있도록 제공하는 과정이다. 서빙된 모델은 외부에서 입력 데이터를 받아 예측을 수행하고, 그 결과를 응답으로 반환한다. 이를 위해 API(애플리케이션 프로그래민 인터페이스)를 활용해 모델에 접근할 수 있도록 한다. 

 

▼ 주요 개념

  • RESTful API : REST(Representational State Transfer) 아키텍처 스타일을 따르는 API로, HTTP프로토콜을 사용하여 클라이언트와 서버 간에 데이터를 주고받는 방식이다. 
  • FastAPI : Python으로 작성된 빠르고 간단한 웹 프레임워크로, RESTful API를 구축하는 데 매우 적합하다. 

 

 

▼ RESTful API 개요

  • GET : 서버에서 데이터를 가져올 때 사용한다. 
  • POST : 서버에 데이터를 보낼 때 사용한다.
  • PUT : 서버의 데이터를 업데이트할 때 사용한다. 
  • DELETE : 서버의 데이터를 삭제할 떄 사용한다.

RESTful API 경로(Path)를 통해 리소스(Resource)에 접근하며, 경로에 포함된 매개변수를 통해 다양한 작업을 수행할 수 있다.

 

 

▼ 간단한 API 구축
  

 

▶ FastAPI 설치 및 기본 설정
먼저 FastAPI와 Uvicorn(ASGI 서버)를 설치한다. Uvicorn은 FastAPI 애플리케이션을 실행하는 데 사용된다.

pip install fastapi uvicorn

 

▶ 'Hello World' API작성

from fastapi import FastAPI

# FastAPI 인스턴스 생성
app = FastAPI()

# 루트 경로에 GET 요청이 들어왔을 때 "Hello World!"를 반환하는 엔드포인트 정의
@app.get("/")
def read_root():
    return {"message": "Hello World!"}

 

▶  FastAPI 서버 실행

uvicorn your_script_name:app --reload
  • your_script_name : 위에 작성한 파이썬 파일의 이름
  • -reload : 코드가 변경될 때 서버를 자동으로 다시 로드해 준다. 서버가 정상적으로 시작되면, 터미널에 다음과 같은 메시지가 표시될 것이다. 
INFO:     Uvicorn running on <http://127.0.0.1:8000> (Press CTRL+C to quit)

 

  API호출 및 테스트

브라우저 또는 Postman과 같은 API 테스트 도구에서 다음 URL을 입력하여 API를 호출할 수 있다. 

<http://127.0.0.1:8000/>

요청을 보내면 다음과 같은 JSON 응답이 반환된다. 

{
    "message": "Hello World!"
}

 

▶ FastAPI 문서화 기능 활용

FastAPI는 자동으로 API 문서를 생성해주는 기능을 제공한다. 서버가 실행된 상태에서 다음 URL로 접속해보자!

<http://127.0.0.1:8000/docs>

이 페이지에서는 API의 엔드포인트와 요청/응답 스키마를 Swagger UI 형태로 확인할 수 있다. 또한, 아래 URL에서는 ReDoc으로 문서화된 API를 확인할 수 있다. 

<http://127.0.0.1:8000/redoc>

'Coding > TIL & 배운것들' 카테고리의 다른 글

FastAI 사전 학습된 모델 실습  (1) 2024.11.12
Ultralytics YOLO활용  (1) 2024.11.12
생성형 모델의 기본 원리  (0) 2024.11.12
생성형 AI  (1) 2024.11.12
사전 학습 & 파인 튜닝  (0) 2024.11.11