การตรวจสอบประสิทธิภาพแบบจำลองในระบบจริง
การตรวจจับการเปลี่ยนแปลงของข้อมูล สัญญาณการเสื่อมประสิทธิภาพของแบบจำลอง ตัวกระตุ้นการฝึกใหม่ และไลบรารี evidently
การตรวจสอบประสิทธิภาพแบบจำลองในระบบจริง เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงต้องติดตามในระบบที่ใช้งานจริง
โมเดลที่ทำงานได้ดีเมื่อเปิดใช้งานอาจเสื่อมประสิทธิภาพลงอย่างเงียบ ๆ เมื่อโลกเปลี่ยนแปลง การติดตามจะตรวจพบการเปลี่ยนแปลงนี้ตั้งแต่เนิ่น ๆ ก่อนที่ตัวชี้วัดทางธุรกิจจะตกลงอย่างเงียบ ๆ ทำให้คุณทราบว่าควรฝึกสอนโมเดลใหม่เมื่อใด
การเปลี่ยนแปลงของข้อมูลกับการเปลี่ยนแปลงของแนวคิด
- การเปลี่ยนแปลงของข้อมูล: การกระจายของข้อมูลเข้าเปลี่ยนไป (สัดส่วนลูกค้ากลุ่มใหม่)
- การเปลี่ยนแปลงของแนวคิด: ความสัมพันธ์ระหว่างข้อมูลเข้ากับเป้าหมายเปลี่ยนไป (สิ่งที่ใช้พยากรณ์การเลิกใช้งานเปลี่ยนไป)
ทั้งสองอย่างทำให้ความแม่นยำลดลง แต่การติดตามจะตรวจจับแต่ละอย่างด้วยวิธีที่แตกต่างกัน
PSI สำหรับการเปลี่ยนแปลงของข้อมูล
ดัชนีเสถียรภาพของประชากร (PSI) เปรียบเทียบการกระจายของคุณลักษณะหนึ่งในปัจจุบันกับค่าพื้นฐาน ให้แบ่งข้อมูลทั้งสองชุดเป็นช่วง แล้วหาผลรวมของ (now% - base%) * ln(now% / base%) ในทุกช่วง
การอ่านค่า PSI
หลักเกณฑ์โดยประมาณ: PSI < 0.1 ไม่มีการเปลี่ยนแปลงที่มีนัยสำคัญ 0.1-0.25 มีการเปลี่ยนแปลงปานกลาง (ควรตรวจสอบ) > 0.25 มีการเปลี่ยนแปลงมาก (ควรฝึกสอนใหม่ในเร็ว ๆ นี้) โดยคำนวณ PSI แยกกันสำหรับแต่ละคุณลักษณะ
import numpy as np
def psi(base, now, bins=10):
edges = np.percentile(base, np.linspace(0, 100, bins + 1))
b_pct = np.histogram(base, edges)[0] / len(base) + 1e-6
n_pct = np.histogram(now, edges)[0] / len(now) + 1e-6
return np.sum((n_pct - b_pct) * np.log(n_pct / b_pct))การทดสอบ KS สำหรับการกระจาย
การทดสอบ Kolmogorov-Smirnov (KS) เปรียบเทียบการกระจายแบบต่อเนื่องสองชุด ค่า p ขนาดเล็กหมายความว่าการกระจายในระบบที่ใช้งานจริงแตกต่างจากการกระจายในการฝึกสอนอย่างมีนัยสำคัญ ซึ่งเป็นสัญญาณของการเปลี่ยนแปลง
from scipy.stats import ks_2samp
stat, pvalue = ks_2samp(train_feature, prod_feature)
if pvalue < 0.05:
print("Distribution drift detected")PSI กับ KS
- PSI: ตัวเลขเดียวที่ตีความได้ง่าย เหมาะสำหรับแดชบอร์ดและเกณฑ์ตัดสิน
- KS: การทดสอบสมมติฐานทางสถิติที่มีค่า p มีความเข้มงวดกว่าสำหรับคุณลักษณะแบบต่อเนื่อง
หลายทีมรายงานทั้งสองค่าไว้เคียงข้างกัน
Evidently คืออะไร
Evidently คือไลบรารีโอเพนซอร์สที่ทำให้การสร้างรายงานการเปลี่ยนแปลงและคุณภาพเป็นแบบอัตโนมัติ แทนที่จะเขียนโค้ดสำหรับตัวชี้วัดแต่ละรายการด้วยตนเอง คุณสามารถประกอบการตรวจสอบที่กำหนดไว้ล่วงหน้า แล้วรับรายงาน HTML/JSON
# pip install evidently
from evidently.report import Report
from evidently.metric_preset import DataDriftPresetการสร้างรายงาน DataDriftPreset
DataDriftPreset เรียกใช้ชุดการทดสอบการเปลี่ยนแปลงทั้งหมดกับทุกคอลัมน์ โดยเปรียบเทียบชุดข้อมูลอ้างอิง (ชุดข้อมูลฝึกสอน) กับข้อมูลปัจจุบัน (ข้อมูลจากระบบที่ใช้งานจริง)
report = Report(metrics=[DataDriftPreset()])
report.run(
reference_data=train_df,
current_data=prod_df
)
report.save_html("drift_report.html")การดึงผลลัพธ์ผ่านโปรแกรม
ส่งออกรายงานเป็นพจนานุกรมเพื่อป้อนให้ตรรกะการแจ้งเตือน ทำให้การติดตามทำงานตามกำหนดเวลาได้โดยไม่ต้องมีผู้ดูแล
result = report.as_dict()
drift_share = result["metrics"][0]["result"]["dataset_drift"]
print("Dataset drift flag:", drift_share)การแจ้งเตือนเมื่อความแม่นยำลดลง
เมื่อคุณมีป้ายกำกับที่เป็นค่าจริง ให้ติดตามความแม่นยำขณะใช้งานจริง และส่งการแจ้งเตือนเมื่อค่าลดลงต่ำกว่าเกณฑ์ ซึ่งเป็นสัญญาณโดยตรงที่สุดว่าถึงเวลาต้องฝึกสอนใหม่แล้ว
THRESHOLD = 0.85
if live_accuracy < THRESHOLD:
send_alert(f"Accuracy dropped to {live_accuracy:.2f}")ปิดวงจรการทำงาน
การตรวจติดตามที่ดีต้องเชื่อมโยงกับการลงมือทำ: ตรวจพบการเปลี่ยนแปลงของข้อมูล -> แจ้งเตือน -> เรียกใช้กระบวนการฝึกโมเดลใหม่ (ไฟล์เมก/รีจิสทรีจากบทเรียนก่อนหน้า) -> นำเวอร์ชันใหม่ไปใช้งาน การตรวจติดตามที่ไม่มีแผนรับมือก็เป็นเพียงสัญญาณรบกวน
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความรู้เกี่ยวกับการตรวจติดตามของท่าน
ทบทวน
ท่านได้ตรวจติดตามโมเดลในระบบจริงแล้ว: PSI และ การทดสอบ KS ตรวจพบการเปลี่ยนแปลงของข้อมูล, เอวิเดนต์ลี สร้างรายงานโดยอัตโนมัติผ่าน DataDriftPreset และท่านจะแจ้งเตือนเมื่อความแม่นยำลดต่ำกว่าเกณฑ์ จากนั้นจึงเรียกใช้การฝึกโมเดลใหม่ หลักสูตรการดำเนินงานแมชชีนเลิร์นนิงจบลงเพียงเท่านี้ หลักสูตรถัดไป: การให้บริการโมเดล AI ด้วย FastAPI
คำถามที่พบบ่อย
บทเรียน “การตรวจสอบประสิทธิภาพแบบจำลองในระบบจริง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การตรวจสอบประสิทธิภาพแบบจำลองในระบบจริง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การตรวจสอบประสิทธิภาพแบบจำลองในระบบจริง”
การตรวจจับการเปลี่ยนแปลงของข้อมูล สัญญาณการเสื่อมประสิทธิภาพของแบบจำลอง ตัวกระตุ้นการฝึกใหม่ และไลบรารี evidently คุณปฏิบัติ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การติดตามการทดลองด้วย MLflow
- การลงทะเบียนและการกำหนดเวอร์ชันแบบจำลอง
- การสร้างไปป์ไลน์แมชชีนเลิร์นนิงที่ทำซ้ำได้
- การตรวจสอบประสิทธิภาพแบบจำลองในระบบจริง