0Pricing
Learn AI with Python · บทเรียน

พื้นฐาน FastAPI สำหรับวิศวกรแมชชีนเลิร์นนิง

แอป FastAPI ปลายทาง GET/POST พารามิเตอร์เส้นทางและคำค้น และความแตกต่างระหว่าง async def กับ def สำหรับการอนุมานแมชชีนเลิร์นนิง

พื้นฐาน FastAPI สำหรับวิศวกรแมชชีนเลิร์นนิง เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงใช้ FastAPI สำหรับการเรียนรู้ของเครื่อง

FastAPI เป็นเฟรมเวิร์กเว็บไพธอนสมัยใหม่ที่เหมาะอย่างยิ่งสำหรับการให้บริการโมเดล เนื่องจากทำงานรวดเร็ว สร้างเอกสารแบบโต้ตอบโดยอัตโนมัติ และตรวจสอบคำขอด้วยคำใบ้ชนิดข้อมูล จึงกลายเป็นวิธีมาตรฐานในการนำโมเดลมาไว้เบื้องหลังเอพีไอผ่าน HTTP

การสร้างแอปพลิเคชัน

สร้างแอปพลิเคชัน FastAPI โดยวัตถุ app นี้จะเก็บจุดเชื่อมต่อทั้งหมดของท่าน

from fastapi import FastAPI

app = FastAPI(title="Model Serving API")

จุดเชื่อมต่อ GET /health

การตรวจสอบสถานะ ช่วยให้ตัวกระจายโหลดและระบบจัดการบริการยืนยันได้ว่าบริการยังทำงานอยู่ โดยจะส่งคืนสถานะแบบง่าย ๆ และไม่ทำงานหนัก

@app.get("/health")
def health():
    return {"status": "ok"}

จุดเชื่อมต่อ POST /predict

การทำนายต้องใช้ข้อมูลนำเข้า จึงใช้ POST พร้อมเนื้อหาคำขอ ฟังก์ชันจะรับข้อมูลที่แยกวิเคราะห์แล้วและส่งคืนผลลัพธ์ของโมเดล

@app.post("/predict")
def predict(features: list[float]):
    result = model.predict([features])
    return {"prediction": result[0]}

GET เทียบกับ POST

  • GET: ใช้ดึงข้อมูล ไม่มีเนื้อหาคำขอ และใช้สำหรับการตรวจสอบสถานะหรือการอ่านข้อมูลแบบง่าย
  • POST: ใช้ส่งข้อมูลในเนื้อหาคำขอ และใช้สำหรับการทำนายที่มีการส่งคุณลักษณะเข้าไป

การทำงานด้วยยูวิคอร์น

ยูวิคอร์น คือเซิร์ฟเวอร์ ASGI ที่ใช้เรียกใช้ FastAPI โดยสามารถเริ่มทำงานจากโค้ดหรือบรรทัดคำสั่งได้

import uvicorn

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

การเปิดใช้งานผ่านบรรทัดคำสั่ง

โดยทั่วไป ท่านจะเปิดใช้งานผ่าน CLI โดยระบุมอดูลและวัตถุแอปพลิเคชันให้ยูวิคอร์นทราบ --reload จะเริ่มเซิร์ฟเวอร์ใหม่โดยอัตโนมัติเมื่อโค้ดมีการเปลี่ยนแปลงระหว่างการพัฒนา

# terminal
uvicorn main:app --host 0.0.0.0 --port 8000 --reload

เอกสารแบบโต้ตอบที่มีให้โดยอัตโนมัติ

FastAPI สร้างส่วนติดต่อผู้ใช้สแวกเกอร์ที่ /docs และ ReDoc ที่ /redoc โดยอัตโนมัติจากคำใบ้ชนิดข้อมูลของท่าน ทำให้สามารถทดสอบจุดเชื่อมต่อในเบราว์เซอร์ได้โดยไม่ต้องเขียนโค้ดเพิ่มเติม

ฟังก์ชันแบบอะซิงก์สำหรับงานที่ผูกกับ IO

ใช้ ฟังก์ชันแบบอะซิงก์ กับจุดเชื่อมต่อที่ต้องรอ IO เช่น ฐานข้อมูล เอพีไอภายนอก หรือการอ่านไฟล์ การทำงานแบบอะซิงก์ช่วยให้เซิร์ฟเวอร์จัดการคำขออื่นระหว่างรอได้ จึงเพิ่มอัตราการประมวลผล

@app.get("/external")
async def fetch():
    data = await call_remote_service()
    return data

ฟังก์ชันแบบซิงก์สำหรับการอนุมานที่ผูกกับ CPU

โมเดล predict มักเป็นงานที่ผูกกับ CPU ควรกำหนดจุดเชื่อมต่อเหล่านี้ด้วย ฟังก์ชันแบบซิงก์ ตามปกติ โดย FastAPI จะเรียกใช้ผ่านกลุ่มเธรดเพื่อไม่ให้ขัดขวางวงจรเหตุการณ์ หากใช้การทำงานแบบอะซิงก์กับงานที่ใช้ CPU หนัก เซิร์ฟเวอร์อาจหยุดตอบสนองได้จริง

@app.post("/predict")
def predict(features: list[float]):
    # CPU-bound inference -> sync def
    return {"prediction": model.predict([features])[0]}

การเลือกแบบอะซิงก์หรือซิงก์

  • ฟังก์ชันแบบอะซิงก์: งานที่ผูกกับ IO ซึ่งรอเครือข่ายหรือดิสก์
  • ฟังก์ชันแบบซิงก์: การอนุมานโมเดลที่ผูกกับ CPU ซึ่งทำงานในกลุ่มเธรด

การเลือกให้เหมาะสมช่วยให้เซิร์ฟเวอร์ตอบสนองได้ดีขณะมีภาระงานสูง

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความรู้พื้นฐานเกี่ยวกับ FastAPI ของท่าน

ทบทวน

ท่านสร้างบริการ FastAPI แล้ว: สร้าง app เพิ่ม GET /health และ POST /predict เรียกใช้ด้วย ยูวิคอร์น และเรียนรู้การใช้ ฟังก์ชันแบบอะซิงก์ สำหรับงานที่ผูกกับ IO กับ ฟังก์ชันแบบซิงก์ สำหรับการอนุมานที่ผูกกับ CPU ขั้นถัดไป: สคีมาคำขอและการตอบกลับด้วยไพแดนติก

คำถามที่พบบ่อย

บทเรียน “พื้นฐาน FastAPI สำหรับวิศวกรแมชชีนเลิร์นนิง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พื้นฐาน FastAPI สำหรับวิศวกรแมชชีนเลิร์นนิง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐาน FastAPI สำหรับวิศวกรแมชชีนเลิร์นนิง”

แอป FastAPI ปลายทาง GET/POST พารามิเตอร์เส้นทางและคำค้น และความแตกต่างระหว่าง async def กับ def สำหรับการอนุมานแมชชีนเลิร์นนิง คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “พื้นฐาน FastAPI สำหรับวิศวกรแมชชีนเลิร์นนิง” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม

ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐาน FastAPI สำหรับวิศวกรแมชชีนเลิร์นนิง
  2. สคีมา Pydantic สำหรับคำขอและการตอบกลับ
  3. การโหลดและให้บริการโมเดลแมชชีนเลิร์นนิง
  4. การจัดแบบจำลอง API ไว้ใน Docker
← กลับไปที่ Learn AI with Python