Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Trang Chủ Hướng Dẫn Đồ Án Chuyển mô hình học máy sang ứng dụng thực tế bằng FastAPI
Hướng Dẫn Đồ ÁnLập Trình AI

Chuyển mô hình học máy sang ứng dụng thực tế bằng FastAPI

Chia sẻ
Chia sẻ

Trong lĩnh vực học máy, việc xây dựng một mô hình dự đoán chính xác chỉ là một phần của quá trình. Để mô hình có thể phục vụ người dùng hoặc tích hợp vào hệ thống lớn, nó cần được triển khai dưới dạng một API. FastAPI, một framework web hiện đại cho Python, đang nổi lên như một lựa chọn lý tưởng để hiện thực hóa điều này nhờ tốc độ xử lý nhanh, hỗ trợ async và khả năng tích hợp dễ dàng với các thư viện học máy.

Bài viết này sẽ hướng dẫn bạn từng bước chuyển một mô hình học máy đã huấn luyện thành API thực tế bằng FastAPI. Nếu bạn đã từng thử triển khai với Flask (Hướng dẫn xây dựng API dự đoán bằng Flask + ML model), thì FastAPI sẽ cho bạn thấy sự khác biệt về hiệu suất và khả năng mở rộng.

Mô tả bài toán

Mục tiêu là xây dựng một API dự đoán giá nhà từ các thông tin đầu vào như diện tích, số phòng ngủ, số phòng tắm… bằng mô hình học máy đã huấn luyện (Linear Regression). API sẽ nhận dữ liệu JSON, xử lý dữ liệu, đưa vào mô hình và trả về kết quả dự đoán.

Pipeline thực hiện gồm:

  1. Tải và chuẩn bị mô hình học máy.
  2. Xây dựng API bằng FastAPI.
  3. Tạo endpoint nhận dữ liệu và trả kết quả.
  4. Test API bằng Postman hoặc cURL.
  5. Đóng gói và triển khai.

Cài đặt FastAPI và các thư viện cần thiết

Để xây dựng và chạy API, cần cài đặt FastAPI và một server ASGI như Uvicorn để phục vụ ứng dụng. Ngoài ra, các thư viện như scikit-learn, joblib, Pandas sẽ được sử dụng để xử lý mô hình và dữ liệu.

Cài đặt qua pip:

pip install fastapi uvicorn scikit-learn joblib pandas

Chuẩn bị mô hình học máy

Để API có thể dự đoán được đầu ra từ mô hình học máy, ta cần nạp mô hình đã huấn luyện bên trong ứng dụng. Bước này giúp tách rõ phần huấn luyện và phần API, giúp API nhẹ nhàng và phục vụ nhanh.

Tải file house_price_model.pkl từ repo iam-prabha/house-price-prediction. Tại đây!

Lưu vào thư mục model/ trong project của bạn.

Sử dụng joblib.load() để load mô hình.

import joblib

model = joblib.load('model/house_price_model.pkl')

Tạo ứng dụng FastAPI

Đây là bước chính để tạo một ứng dụng web có thể nhận yêu cầu từ client và trả kết quả dự đoán từ mô hình học máy.

Tạo file main.py với nội dung:

from fastapi import FastAPI
from pydantic import BaseModel
import model_loader

app = FastAPI()

class HouseData(BaseModel):
    area: float
    bedrooms: int
    bathrooms: int

@app.get("/")
def read_root():
    return {"message": "API dự đoán giá nhà đã sẵn sàng!"}

Tạo endpoint dự đoán

Endpoint /predict sẽ xử lý dữ liệu người dùng gửi đến, chạy mô hình để dự đoán và trả về kết quả.

Thêm vào file main.py:

@app.post("/predict")
def predict_price(data: HouseData):
    input_data = [[data.area, data.bedrooms, data.bathrooms]]
    predicted_price = model_loader.model.predict(input_data)
    return {"predicted_price": predicted_price[0]}

Chạy ứng dụng FastAPI

Sau khi tạo ứng dụng và endpoint, bạn cần chạy server để phục vụ API. FastAPI sử dụng Uvicorn làm server ASGI.

Chạy server cục bộ:

uvicorn main:app --reload

Truy cập Swagger UI tại http://127.0.0.1:8000/docs để thử API qua giao diện trực quan.

Test API bằng Postman hoặc cURL

Kiểm tra API đảm bảo nó hoạt động đúng trước khi triển khai thực tế.

Gửi yêu cầu POST bằng cURL:

curl -X 'POST' \
  'http://127.0.0.1:8000/predict' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"area": 120, "bedrooms": 3, "bathrooms": 2}'

Kết quả trả về:

{
  "predicted_price": 258000.0
}

Đóng gói và triển khai

Để API sẵn sàng phục vụ trên Internet, cần đóng gói ứng dụng và triển khai lên cloud (Heroku, AWS, GCP).

Tạo requirements.txt:

fastapi
uvicorn
scikit-learn
joblib
pandas

Deploy bằng Heroku hoặc Docker (hướng dẫn cụ thể sẽ tùy môi trường triển khai).

Kết luận

Triển khai một mô hình học máy thành API thực tế giúp bạn biến kết quả nghiên cứu thành sản phẩm phục vụ người dùng. Với FastAPI, việc này trở nên đơn giản, nhanh chóng và hiệu quả hơn so với các framework truyền thống.

Tiếp theo, bạn có thể mở rộng hệ thống để nhận dữ liệu hình ảnh (Tự động nhận diện chữ số từ ảnh viết tay) hoặc kết hợp với xử lý dữ liệu lớn (Xử lý dữ liệu lớn trước khi phân tích) để tạo thành một pipeline hoàn chỉnh.

Tham Gia Nhóm – Hỗ Trợ Lập Trình

Hỗ Trợ Đồ Án – ThueDoAn.vn

Liên quan
Hướng Dẫn Đồ Án

Checklist 10 bước kiểm tra cuối cùng trước khi nhấn nút nộp đồ án

Thời điểm chuẩn bị nhấn nút nộp đồ án luôn mang lại...

Hướng Dẫn Đồ Án

Tuyệt chiêu đối phó với những giảng viên hướng dẫn ‘khó tính’ nhất

Giai đoạn làm đồ án tốt nghiệp luôn đi kèm với vô...

Hướng Dẫn Đồ Án

Tại sao việc quản lý Source Code bằng Git lại quan trọng hơn bạn nghĩ?

Trong thế giới lập trình hiện đại, mã nguồn chính là linh...

Hướng Dẫn Đồ Án

Những chức năng ‘thừa’ khiến bạn tốn thời gian mà không được cộng điểm

Làm đồ án tốt nghiệp là một cuộc đua thực thụ với...

Hướng Dẫn Đồ Án

Cách xử lý khi đề tài bị trùng lặp ý tưởng với các khóa trước quá nhiều

Lựa chọn đề tài đồ án luôn là bước khởi đầu đầy...

Hướng Dẫn Đồ Án

Làm sao để giải trình với giảng viên khi code bị nghi ngờ là đi chép?

Trong quá trình thực hiện đồ án, việc tham khảo mã nguồn...

Hướng Dẫn Đồ Án

Cảnh báo: Những nguồn share code ‘rác’ trên mạng cần tuyệt đối tránh

Trong quá trình làm đồ án, việc tìm kiếm sự hỗ trợ...

Hướng Dẫn Đồ Án

Sai lầm khi chọn công nghệ quá khó so với năng lực thực tế của bản thân

Chọn đề tài và công nghệ cho đồ án luôn là bước...

Liên Hệ
Liên hệ để được tư vấn & hỗ trợ đồ án CNTT nhé bạn!