모델 서빙이란?
학습된 머신러닝 모델을 실제 애플리케이션에서 사용할 수 있도록 제공하는 과정이다. 서빙된 모델은 외부에서 입력 데이터를 받아 예측을 수행하고, 그 결과를 응답으로 반환한다. 이를 위해 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 |