เขียนโดย:Lukasz Cmielowski, PhD, Trent Gray-Donald

วันนี้ เราจะเรียกใช้การทดลอง “IBM AutoAI” จาก “Microsoft Azure Machine Learning Studio” จากนั้นปรับใช้กับ Azure Kubernetes Service (AKS) อ่านเรื่องราวเพื่อดูประสบการณ์ข้ามคลาวด์และผลลัพธ์สุดท้าย

ทำการทดลอง IBM Watson AutoAI

ในการรันการทดลอง IBM Watson AutoAI เราได้ใช้ Microsoft Azure Machine Learning Studio และสภาพแวดล้อมโน้ตบุ๊ก

เราเริ่มต้นด้วยการอัปเดตแพ็คเกจรันไทม์เป็นเวอร์ชันที่ตรงกับ AutoAI จำเป็นต้องติดตั้งและอัพเดตแพ็คเกจต่อไปนี้ (คำสั่ง pip):

pip install ibm-watson-machine-learning
pip install snapml
pip install scikit-learn==1.0.2
pip install xgboost==1.5.1
pip install lightgbm==3.3.1
pip install gensim==4.1.2

ขณะนี้ รันไทม์สมุดบันทึกของเราพร้อมที่จะเรียกใช้การทดสอบ AutoAI แล้ว และค้นหาโมเดลการจำแนกประเภทที่ดีที่สุดสำหรับกรณีการใช้งาน "ความเสี่ยงด้านเครดิตของเยอรมนี" ใช้ สมุดบันทึกตัวอย่าง นี้ (เตรียมไว้สำหรับ IBM Watson Studio) เพื่อตั้งค่าอินสแตนซ์ IBM Watson Machine Learning และ python API (ข้อมูลประจำตัว พื้นที่ และการอนุญาต) ต่อไป เรามากำหนดเครื่องมือเพิ่มประสิทธิภาพ AutoAI และฝึกโมเดลกัน

คำจำกัดความของเครื่องมือเพิ่มประสิทธิภาพ & การเรียกที่เหมาะสม

เช่นเดียวกับ scikit-learn API การเรียก fit จะเริ่มกระบวนการค้นหาและฝึกอบรม การคำนวณเกิดขึ้นในบริการ IBM Watson Machine Learning (ไป ที่นี่ เพื่อรับอินสแตนซ์) ความคืบหน้าจะแสดงในสมุดบันทึกบน Microsoft Azure

ลีดเดอร์บอร์ดไปป์ไลน์

รายการโมเดลที่ดีที่สุดที่พบโดย IBM Watson Studio AutoAI จัดอันดับตามคะแนนการปรับให้เหมาะสม roc_auc คะแนน (ตัวชี้วัด) ได้รับการคำนวณจากทั้งชุดข้อมูลรถไฟ (การตรวจสอบความถูกต้องข้ามด้วย 3 เท่า) และชุดข้อมูลการระงับ

รับโมเดลที่ดีที่สุด

เมธอด get_pipeline ดาวน์โหลดและโหลดโมเดลดองโดยใช้แพ็คเกจ joblib โมเดลนี้เป็นโมเดลไปป์ไลน์ scikit-learn พร้อมการแปลงแบบกำหนดเองที่มีอยู่ในแพ็คเกจ autoai-libs คุณยังสามารถแสดงเมทริกซ์ความสับสนหรือความสำคัญของฟีเจอร์ได้โดยใช้เมธอด get_pipeline_details

รับซอร์สโค้ดของโมเดล (คำจำกัดความไปป์ไลน์)

AutoAI นำเสนอความโปร่งใสของไปป์ไลน์เต็มรูปแบบ — คุณสามารถดูตัวอย่างคำจำกัดความของไปป์ไลน์ (ซอร์สโค้ด) ได้โดยการเรียกเมธอด pretty_print

รับคำทำนาย

โมเดลนี้สามารถใช้ได้กับทุกสภาพแวดล้อม โดยไม่จำเป็นต้องพึ่งพา IBM Cloud เช่นเดียวกับการใช้โมเดลไปป์ไลน์ scikit-learn ปกติเรียกเมธอด predict เพื่อรับการคาดการณ์กลับ โมเดลดำเนินการกับอาร์เรย์ numpy

ดังที่เราเห็นการเรียก AutoAI API บน Microsoft Azure ก็ไม่ต่างจากการเรียกบน IBM Cloud

การปรับใช้บริการเว็บกับ Azure Kubernetes Service (AKS)

ในส่วนนี้ เราจะอธิบายขั้นตอนทั้งหมดที่จำเป็นในการปรับใช้โมเดล IBM Watson AutoAI ที่ดีที่สุดบน Microsoft Azure Kubernetes Service ดังที่คุณจะเห็นด้านล่าง นอกเหนือจากการกำหนดการพึ่งพา Python เพิ่มเติม (ส่วน สร้างสภาพแวดล้อม) แล้ว ไม่มีอะไรพิเศษ (ขั้นตอนที่เหลือคือขั้นตอนการปรับใช้ AKS มาตรฐาน)

ขั้นแรก เราจำเป็นต้องได้รับพื้นที่ทำงานและลงทะเบียนโมเดล AutoAI

ในการลงทะเบียนโมเดล best_pipeline (โมเดลที่ดีที่สุดของ AutoAI) จะถูกเลือกโดยใช้แพ็คเกจ joblib ต่อไป เราใช้วิธี register() จากโมดูล azureml.core.model เพื่อลงทะเบียนโมเดลสำหรับการปรับใช้บริการเว็บ การใช้โมดูล สภาพแวดล้อม และ CondaDependencies เรากำหนดสภาพแวดล้อมการปรับใช้ที่จะใช้เพื่อรองรับโมเดล AutoAI รายการของ

หลังจากสร้างสภาพแวดล้อมแล้ว เราจำเป็นต้องเขียนสคริปต์การให้บริการซึ่งประกอบด้วยสองฟังก์ชัน init และ run. ฟังก์ชัน init โหลดโมเดลโดยใช้แพ็คเกจ joblib run แปลงเพย์โหลด json เป็นอาร์เรย์ numpy และส่งต่อไปยังโมเดลที่โหลดเพื่อรับการคาดการณ์กลับ

ในขั้นตอนถัดไปเราต้องสร้าง AKS Cluster ต้องระบุ InferenceConfig ที่เชื่อมโยงสคริปต์การให้บริการและชื่อคลัสเตอร์ของเรา

ในที่สุด คลัสเตอร์ AKS ของเราก็พร้อมแล้ว การใช้วิธี Model.deploy เราสามารถสร้างบริการเว็บ (บริการ AKS)

การดำเนินการบริการ AKS เสร็จสิ้น สถานะบริการคือ สุขภาพดี มาทดสอบโมเดลที่ปรับใช้ของเราโดยใช้วิธี run ที่นำเสนอโดยวัตถุ aks_service บริการนี้สามารถทดสอบได้โดยใช้ GUI และแท็บ ทดสอบ (ดังแสดงในภาพหน้าจอด้านล่าง) การทดสอบผ่านไป

ตอนนี้ เราสามารถใช้โมเดล AutoAI ที่ปรับใช้ของเราผ่านการร้องขอ http จากแอปพลิเคชันใดก็ได้ คำขอต้องใช้ url , api_key (สามารถคัดลอกได้จากแท็บ บริโภค) และเพย์โหลดพร้อมตัวอย่างใหม่

ดังที่คุณเห็นว่าการอนุมานโมเดล AutoAI บน Azure Kubernetes Service นั้นง่ายมาก เพลิดเพลินไปกับการให้คะแนน!.