[파이썬] fastai 웹 애플리케이션에 모델 배포

fastai_logo

fastai는 딥러닝 모델을 구축하고 훈련하기 위한 파이썬 라이브러리입니다. 이 라이브러리는 초보자부터 전문가까지 쉽게 사용할 수 있도록 딥러닝 작업을 간소화하고, 인공지능 모델을 개발 및 배포하는 일련의 과정을 제공합니다.

이번 블로그에서는 fastai를 사용하여 웹 애플리케이션에 모델을 배포하는 방법에 대해 알아보겠습니다. 모델 배포는 모델을 서버에 올리고 사용자들이 모델에 접근할 수 있는 웹 애플리케이션을 만드는 과정입니다. 이를 통해 사용자는 웹 페이지를 통해 모델을 활용할 수 있게 됩니다.

웹 애플리케이션 개발 준비

먼저, fastai 패키지를 설치해야 합니다. 다음 명령어를 터미널 또는 콘솔에서 실행하여 fastai 패키지를 설치합니다.

pip install fastai

그리고 필요한 다른 패키지들도 함께 설치해야 합니다. 아래의 명령어를 실행하여 fastapi와 uvicorn 패키지를 설치합니다.

pip install fastapi uvicorn

웹 애플리케이션 코드 작성

이제 fastai를 사용하여 웹 애플리케이션 코드를 작성해보겠습니다. 먼저, 모델을 훈련하고 .pkl 형식으로 저장합니다. 그런 다음, 웹 애플리케이션 코드에서 이 .pkl 파일을 로드하여 예측에 사용합니다.

다음은 예시 코드입니다.

from fastai.vision.all import *
from fastapi import FastAPI, UploadFile, File
from PIL import Image

app = FastAPI()
learn = load_learner('path/to/model.pkl')

@app.post('/predict')
async def predict(file: UploadFile = File(...)):
    img = PILImage.create(await file.read())
    pred = learn.predict(img)[0]
    return {'prediction': pred}

if __name__ == '__main__':
    uvicorn.run(app, host='0.0.0.0', port=8000)

위의 코드는 FastAPI와 PIL, 그리고 fastai.vision.all의 일부 모듈을 가져옵니다. load_learner 함수를 사용하여 사전에 훈련한 모델을 로드하고, 업로드된 이미지 파일을 받아서 예측을 수행합니다. 예측 결과는 JSON 형식으로 반환됩니다.

모델 배포

위의 코드를 작성한 후, 이 코드를 서버에 배포하면 웹 애플리케이션을 사용할 수 있게 됩니다. 서버에 배포하기 전에 app.run 문장을 주석 처리하고, 배포용 서버에 맞게 수정해야 할 수도 있습니다.

웹 애플리케이션을 실행하기 위해 다음 명령어를 터미널 또는 콘솔에서 실행합니다.

uvicorn app:app --reload

위의 명령어를 실행하면 FastAPI 서버가 실행되며, 기본적으로 http://localhost:8000에서 접속할 수 있습니다. 따라서 웹 브라우저에서 해당 URL로 접속하면 웹 페이지에서 모델 예측 결과를 확인할 수 있습니다.

마치면서

이렇게 간단하게 fastai와 FastAPI를 사용하여 웹 애플리케이션에 모델을 배포할 수 있습니다. fastai의 간편한 모델 훈련 및 배포과정은 개발자들에게 큰 편의를 줄 수 있습니다. 따라서 fastai를 사용하여 더욱 다양한 웹 애플리케이션을 개발해보세요!