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

การปรับขนาดและปรับขนาดอัตโนมัติของจุดปลายทางแบบจำลอง

Kubernetes HPA สำหรับพ็อดแบบจำลอง การปรับขนาดตามปริมาณการรับส่งข้อมูล การนำไปใช้งานแบบ A/B และการเผยแพร่แบบคานารี

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

เหตุผลที่ต้องปรับขนาดอัตโนมัติ

ปริมาณการรับส่งข้อมูลสำหรับการอนุมานแทบไม่คงที่ การจัดเตรียมทรัพยากรสำหรับปริมาณสูงสุดทำให้สิ้นเปลืองเงินในเวลากลางคืน ส่วนการจัดเตรียมสำหรับค่าเฉลี่ยจะรองรับช่วงสูงสุดไม่ไหว การปรับขนาดอัตโนมัติ จะปรับจำนวนเรพลิกาโดยอัตโนมัติตามความต้องการ ทำให้คุณจ่ายเท่าที่ใช้และยังคงตอบสนองได้ดี

พ็อดและเรพลิกา

บน Kubernetes เซิร์ฟเวอร์โมเดลจะทำงานเป็น Deployment ที่ประกอบด้วย พ็อด เหมือนกันหลายรายการ (เรพลิกา) การปรับขนาดหมายถึงการเปลี่ยนจำนวนเรพลิกา Service จะกระจายคำขอไปยังเรพลิกาที่มีอยู่

apiVersion: apps/v1
kind: Deployment
metadata:
  name: model-server
spec:
  replicas: 2
  template:
    spec:
      containers:
        - name: server
          image: my-model:latest

Horizontal Pod Autoscaler

Horizontal Pod Autoscaler (HPA) จะเฝ้าดูเมตริกและเพิ่มหรือลบพ็อด เพื่อรักษาค่าให้อยู่ใกล้เป้าหมาย เมตริกแบบคลาสสิกคือการใช้ CPU

HPA ตามการใช้ CPU

targetCPUUtilizationPercentage บอกให้ HPA รักษาค่า CPU เฉลี่ยให้อยู่ใกล้เป้าหมาย หากพ็อดใช้ CPU เฉลี่ย 80% และเป้าหมายคือ 50% HPA จะเพิ่มขนาดจนการใช้ CPU ลดกลับเข้าใกล้ 50%

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: model-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: model-server
  minReplicas: 2
  maxReplicas: 10
  targetCPUUtilizationPercentage: 50

ข้อจำกัดของการปรับขนาดตาม CPU

CPU ไม่ใช่ตัวแทนที่ดีสำหรับงานบางประเภท โมเดล GPU อาจติดคอขวดที่ GPU ขณะที่การใช้ CPU ยังต่ำ หรือผู้ประมวลผลแบบอะซิงโครนัสอาจมีคิวเพิ่มขึ้นขณะที่ CPU ไม่ได้ใช้งาน สำหรับกรณีเหล่านี้ ให้ปรับขนาดตามสัญญาณเฉพาะของงานแทน

KEDA สำหรับการปรับขนาดตามเหตุการณ์

KEDA (การปรับขนาดอัตโนมัติตามเหตุการณ์ของ Kubernetes) ปรับขนาดตามเมตริกภายนอก เช่น ความยาวคิว ความล่าช้าของ Kafka หรือคำค้นหา Prometheus นอกจากนี้ยังปรับขนาดลงเหลือศูนย์ได้เมื่อไม่มีงาน ซึ่ง HPA ไม่สามารถทำได้ด้วยตัวเอง

ScaledObject ของ KEDA ที่อิงตามคิว

ScaledObject ของ KEDA นี้จะเพิ่มผู้ประมวลผลเมื่อคิวข้อความมีขนาดใหญ่ขึ้น งานค้างแต่ละหน่วยใน queueLength จะกระตุ้นให้เพิ่มเรพลิกาอีกหนึ่งรายการ ทำให้ผู้รับข้อความรองรับช่วงที่มีงานพุ่งสูงได้ทัน

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: inference-worker
spec:
  scaleTargetRef:
    name: inference-worker
  minReplicaCount: 0
  maxReplicaCount: 20
  triggers:
    - type: rabbitmq
      metadata:
        queueName: inference
        queueLength: "10"

การกระจายโหลดด้วย Ingress

การรับส่งข้อมูลภายนอกจะเข้าถึงพ็อดผ่าน Ingress ตัวควบคุม Ingress ของ nginx จะยุติการเชื่อมต่อ TLS และกระจายคำขอไปยัง Service ที่อยู่เบื้องหลังเรพลิกาของคุณ ดังนั้นเมื่อเพิ่มขนาด ระบบจะกระจายโหลดทันที

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: model-ingress
spec:
  ingressClassName: nginx
  rules:
    - host: api.example.com
      http:
        paths:
          - path: /predict
            pathType: Prefix
            backend:
              service:
                name: model-server
                port:
                  number: 8000

การเผยแพร่อย่างปลอดภัย: Canary

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

Canary ด้วยสัดส่วนการรับส่งข้อมูล

คำอธิบายประกอบ Canary ของ Ingress ของ nginx จะกำหนดเส้นทางคำขอบางเปอร์เซ็นต์ไปยังการติดตั้งใช้งานชุดที่สอง เริ่มที่ 10% ตรวจสอบอัตราข้อผิดพลาดและเวลาแฝง แล้วจึงเพิ่มสัดส่วนเป็น 100%

metadata:
  annotations:
    nginx.ingress.kubernetes.io/canary: "true"
    nginx.ingress.kubernetes.io/canary-weight: "10"

การรวมการปรับขนาดเข้าด้วยกัน

การตั้งค่าที่แข็งแกร่งจะรวมทุกองค์ประกอบเหล่านี้เข้าด้วยกัน:

  • HPA หรือ KEDA กำหนดจำนวนเรพลิกาตามความต้องการ
  • Ingress กระจายโหลดไปยังเรพลิกา
  • สัดส่วน Canary ช่วยเผยแพร่เวอร์ชันใหม่อย่างปลอดภัย

เมื่อใช้ร่วมกัน องค์ประกอบเหล่านี้จะทำให้การให้บริการโมเดลปรับขนาดตามภาระงาน มีความทนทาน และมีความเสี่ยงต่ำ

ตรวจสอบอย่างรวดเร็ว

ทดสอบความรู้ของคุณเกี่ยวกับการปรับขนาด

สรุปทบทวน

คุณได้เรียนรู้การปรับขนาดปลายทางของโมเดล:

  • HPA ที่ใช้ targetCPUUtilizationPercentage จะปรับขนาดตาม CPU
  • KEDA ปรับขนาดตามความยาวคิวและรองรับการปรับขนาดลงเหลือศูนย์
  • Ingress ของ nginx กระจายโหลดไปยังเรพลิกา
  • สัดส่วน Canary ค่อย ๆ เปลี่ยนการรับส่งข้อมูลเพื่อการเผยแพร่ที่ปลอดภัย

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

บทเรียน “การปรับขนาดและปรับขนาดอัตโนมัติของจุดปลายทางแบบจำลอง” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การปรับขนาดและปรับขนาดอัตโนมัติของจุดปลายทางแบบจำลอง”

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

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

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

บทเรียน “การปรับขนาดและปรับขนาดอัตโนมัติของจุดปลายทางแบบจำลอง” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การบรรจุโมเดลแมชชีนเลิร์นนิงลงคอนเทนเนอร์ด้วย Docker
  2. การนำไปใช้งานบนคลาวด์: AWS SageMaker
  3. การให้บริการประสิทธิภาพสูงด้วย Triton Inference Server
  4. การปรับขนาดและปรับขนาดอัตโนมัติของจุดปลายทางแบบจำลอง
← กลับไปที่ Learn AI with Python