FastAPI에서 머신러닝 모델의 실시간 예측 기능 구현하기

FastAPI는 파이썬 기반의 웹 프레임워크로, 빠른 속도와 간편한 사용법으로 인해 많은 개발자들에게 인기가 있습니다. 이번 블로그 포스트에서는 FastAPI를 사용하여 머신러닝 모델의 실시간 예측 기능을 구현하는 방법에 대해 알아보겠습니다.

1. FastAPI와 머신러닝 모델 설치하기

FastAPI를 설치하기 위해 다음 명령어를 사용합니다:

pip install fastapi

또한, 머신러닝 모델을 설치하기 위해 필요한 패키지들도 함께 설치해줍니다:

pip install scikit-learn

2. FastAPI 애플리케이션 만들기

FastAPI 애플리케이션을 만들기 위해 다음과 같이 코드를 작성합니다:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello, World!"}

위 코드에서는 FastAPI 앱을 생성하고, “/” 경로로 요청이 오면 “Hello, World!”라는 메시지를 반환하는 기본 라우트를 정의했습니다.

3. 머신러닝 모델 로드하기

머신러닝 모델을 로드하기 위해 다음과 같이 코드를 작성합니다:

import joblib

model = joblib.load("model.pkl")

위 코드에서는 joblib 패키지를 사용하여 저장된 머신러닝 모델을 로드합니다. model.pkl은 머신러닝 모델의 파일 경로입니다.

4. 예측을 위한 API 엔드포인트 생성하기

머신러닝 모델을 사용하여 예측을 수행하기 위해 다음과 같이 코드를 작성합니다:

from pydantic import BaseModel

class PredictionInput(BaseModel):
    feature1: float
    feature2: float

@app.post("/predict")
async def predict(data: PredictionInput):
    features = [data.feature1, data.feature2]
    prediction = model.predict([features])
    return {"prediction": prediction[0]}

위 코드에서는 PredictionInput이라는 입력 모델을 정의하고, POST 메서드로 “/predict” 경로에 요청이 오면 입력 데이터를 받아 머신러닝 모델로 예측을 수행합니다. 예측 결과를 JSON 형태로 반환합니다.

5. FastAPI 애플리케이션 실행하기

FastAPI 애플리케이션을 실행하기 위해 다음과 같이 코드를 작성합니다:

if __name__ == "__main__":
    import uvicorn

    uvicorn.run(app, host="0.0.0.0", port=8000)

위 코드에서는 FastAPI 서버를 실행하기 위해 uvicorn 패키지를 사용합니다. 호스트와 포트를 설정하여 FastAPI 서버를 실행합니다.

마무리

이제 FastAPI로 머신러닝 모델의 실시간 예측 기능을 구현하는 방법에 대해 알아보았습니다. FastAPI의 빠른 속도와 간편한 사용법을 통해 웹 기반의 실시간 예측 서비스를 쉽게 구현할 수 있습니다. 더 자세한 내용은 FastAPI 공식 문서를 참고하시기 바랍니다.

#FastAPI #머신러닝