เมื่อเร็วๆ นี้ Google ได้ประกาศ "Vertex AI" ซึ่งเป็นแพลตฟอร์มแมชชีนเลิร์นนิงแบบครบวงจรใหม่ที่ช่วยให้คุณปรับใช้โมเดลได้เร็วขึ้นโดยใช้ประโยชน์จากเครื่องมือ AI ของ Google
เมื่อมองจากภายนอก Vertex เป็นการรีแบรนด์แพลตฟอร์ม AI ที่มีอยู่ของ Google พร้อมส่วนเพิ่มเติมบางส่วน และมุ่งเป้าไปที่คู่แข่งอย่าง Amazon SageMaker มันยังสัญญาว่า เหมาะสม MLOps ซึ่งเป็นสิ่งยอดนิยมที่ทุกคนพูดถึงในทุกวันนี้
เราอยากเห็นว่า Vertex สามารถทำอะไรได้บ้าง เราจึงนั่งรถไฟขบวนนี้ไปชม
แต่ก่อนอื่น MLOps คืออะไร?
ทุกวันนี้เราพบว่าเราไม่ค่อยพูดถึงสิ่งที่ AI สามารถทำได้สำหรับธุรกิจ แต่พูดถึงวิธีนำไปใช้อย่างมีประสิทธิภาพมากขึ้น เราจะย้ายจากแนวคิดไปสู่การผลิตโดยเร็วที่สุดได้อย่างไร?
MLOps เป็นแนวทางสำหรับการเรียนรู้ของเครื่องที่ช่วยลดความเจ็บปวดของโมเดลการผลิต และรับประโยชน์สูงสุดจากการเรียนรู้ของเครื่องโดยเร็วที่สุดในขณะที่ลดความเสี่ยง
มีเครื่องมือมากมายสำหรับโมเดลการฝึก แต่นั่นยังไม่เพียงพอ โมเดลเป็นเพียงจุดเริ่มต้นเท่านั้น สำหรับเรา กุญแจสู่ความสำเร็จในการเรียนรู้ของเครื่องคือ:
- การทำงานร่วมกัน — ผู้ที่มีความเชี่ยวชาญต่างกันจะได้รับพลังในการทำงานร่วมกันอย่างมีประสิทธิภาพ
- แหล่งที่มา — สำหรับโมเดลใดๆ เราสามารถติดตามเวอร์ชันโค้ด เวอร์ชันข้อมูล และพารามิเตอร์ที่ใช้สร้างโมเดลนั้นได้
- ความสามารถในการทำซ้ำ — ทั้งแบบจำลองการทดลองและการผลิตสามารถทำซ้ำได้อย่างง่ายดายตามความต้องการ
- ความต่อเนื่อง — เราสามารถสร้าง ทดสอบ และปรับใช้โมเดลและโครงสร้างพื้นฐานที่เกี่ยวข้องได้โดยอัตโนมัติและสม่ำเสมอ
แผนภาพด้านล่างเน้นย้ำถึงคุณค่าเหล่านี้ ควบคู่ไปกับ 5 ระยะที่โครงการ ML ต้องผ่าน ตั้งแต่การทดลองไปจนถึงการฝึกอบรมอย่างต่อเนื่องเต็มรูปแบบ ในอีกไม่นาน เราจะได้เห็นว่าแต่ละระยะจะเป็นอย่างไรใน Vertex
ด้วยเหตุนี้ เรามาเจาะลึกการทบทวน Vertex AI กันดีกว่า
บล็อกนี้เป็นภาพรวมระดับสูง และในบล็อกต่อๆ ไป เราจะเจาะลึกแง่มุมบางประการของ Vertex AI ข้อสรุปของเราอิงจากการเปรียบเทียบประสบการณ์ของเราในการทำงานกับแพลตฟอร์ม AI ดั้งเดิมกับแพลตฟอร์มที่คล้ายกัน รวมถึง AWS SageMaker
ปล. หากคุณกำลังรีบ เพียงเลื่อนไปจนสุดเพื่อดูข้อสรุปของเรา
ขึ้นรถไฟขบวนนั้น
การทดลอง
ทุกโครงการ ML เริ่มต้นด้วยการทดลอง โดยปกติแล้วจะมีจำนวนมาก โดยแต่ละวิธีมีวิธี การกำหนดค่า และชุดข้อมูลที่แตกต่างกัน การติดตามการทดสอบถือเป็นสิ่งสำคัญสำหรับการรักษาความร่วมมือในขั้นตอนนี้
ใน Vertex เราสามารถสร้างชุดข้อมูลที่มีการจัดการได้ มันค่อนข้างมีประโยชน์ การมีศูนย์กลางสำหรับข้อมูลหมายความว่ามีแหล่งความจริงแหล่งเดียว ฟีเจอร์เดียวที่ขาดหายไป (ในตอนนี้) คือการกำหนดเวอร์ชันข้อมูล ซึ่งจำเป็นหากเราต้องการแหล่งที่มาของโมเดลแบบเต็ม ชุดข้อมูลมีหลายประเภท รูปภาพ ตาราง ข้อความ และวิดีโอ
สำหรับการติดตามการทดลอง Vertex สัญญาว่าจะติดตามพารามิเตอร์และประสิทธิภาพแบบรวมศูนย์ผ่าน TensorBoard น่าเสียดายที่เราประสบปัญหาที่นี่เช่นกัน เนื่องจากแม้ว่า TensorBoard จะทำงานได้ดีเมื่อทำงานในเครื่อง แต่เราไม่สามารถอัปโหลดบันทึกไปยัง Vertex ได้ ซึ่งหมายความว่าคุณไม่สามารถแชร์การทดลองระหว่างทีมได้อย่างง่ายดาย ซึ่งเอาชนะเป้าหมายของการติดตามการทดสอบได้
โดยรวมแล้วเราพบว่าเครื่องมือในระยะนี้จำเป็นต้องปรับปรุงบ้าง ในตอนนี้ เราต้องการใช้ระบบการกำหนดเวอร์ชันข้อมูลพิเศษและเครื่องมือติดตามการทดสอบ
การฝึกอบรม
คุณมีโมเดลที่คุณพอใจแล้ว คุณได้ฝึกฝนและทดสอบมันในเครื่องโดยเป็นส่วนหนึ่งของการทดลอง และตอนนี้คุณต้องการทำให้ใช้งานได้จริง Vertex มีสองสิ่ง: งานฝึกอบรม และ ไปป์ไลน์
ก่อนอื่น มาดูตัวเลือกการฝึกอบรมกันก่อน ในอดีต Google นำเสนอผลิตภัณฑ์ 'AutoML' สองรายการ ได้แก่ Cloud Vision และ Cloud Language สิ่งเหล่านี้ทำให้สามารถอัปโหลดชุดข้อมูลและฝึกโมเดลได้โดยไม่ต้องเขียนโค้ดใดๆ
ทั้งหมดนี้รวมอยู่ใน Vertex แล้ว ดังนั้นคุณจึงมีสองทางเลือก:
- ใช้ AutoML ในกรณีนี้ คุณให้งบประมาณการประมวลผลแก่ Vertex และปล่อยให้ฝึกอบรมโมเดลที่ดีที่สุดเท่าที่จะสามารถทำได้ภายในงบประมาณนั้น งบประมาณขั้นต่ำคือ 1 ชั่วโมง และเราใช้จ่าย 14 ปอนด์สำหรับการฝึกอบรมหนึ่งชั่วโมง
- ใช้รหัสการฝึกอบรมของคุณเอง นี่เป็นงานที่มากกว่า แต่ให้คุณควบคุมได้มากขึ้น จำเป็นหากคุณกำลังทำอะไรนอกเหนือจากที่ผู้ฝึกสอน AutoML สามารถทำได้
เมื่อคุณตัดสินใจแล้ว สิ่งต่อไปที่ต้องสร้างคือขั้นตอนการฝึกอบรม ไปป์ไลน์ประกอบด้วยขั้นตอนทั้งหมดที่จำเป็นในการฝึกโมเดล จากนั้นบันทึกโมเดลลงในการลงทะเบียนโมเดลเพื่อใช้ในภายหลัง
ไปป์ไลน์เป็นฟีเจอร์แพลตฟอร์ม Google AI ที่มีมายาวนาน และไม่น่าแปลกใจเลยที่ฟีเจอร์เหล่านี้ยังคงทำงานได้ดีใน Vertex ไปป์ไลน์ทดสอบของเรามี 3 ขั้นตอน:
- สร้างชุดข้อมูลที่มาจากที่เก็บข้อมูล Cloud Storage
- สร้างงานการฝึกด้วย AutoML
- ปรับใช้โมเดล (ดูขั้นตอนถัดไป!)
ไปป์ไลน์ใน Vertex จริงๆ แล้วคือไปป์ไลน์ KubeFlow สำหรับผู้ที่ไม่คุ้นเคย Kubeflow คือเฟรมเวิร์กการเรียนรู้ของเครื่องที่ทำงานบน Kubernetes
สิ่งสำคัญคือด้วย Vertex คุณจะได้รับประสิทธิภาพของ KubeFlow โดยไม่ต้องใช้โครงสร้างพื้นฐานของคุณเอง ซึ่งอาจยุ่งยากได้ ในทางกลับกัน พูดได้อย่างปลอดภัยว่า KubeFlow ก็มีข้อเสียอยู่เช่นกัน ข้อโต้แย้งในความคิดเห็น
การปรับใช้
โมเดลไม่ค่อยมีประโยชน์มากนักเว้นแต่จะนำไปใช้ที่ไหนสักแห่ง ไปป์ไลน์ด้านบน ฝึกฝนและปรับใช้โมเดลกับ Vertex แต่จริงๆ แล้ว เรามีทางเลือกสองสามทางสำหรับวิธีที่เราทำสิ่งนั้นใน Vertex:
- รันโมเดลในคอนเทนเนอร์ที่สร้างไว้ล่วงหน้าของ Vertex ตัวเลือกที่ง่ายที่สุด มีคอนเทนเนอร์ที่สร้างไว้ล่วงหน้าสำหรับเฟรมเวิร์ก ML จำนวนมาก
- รันโมเดลในคอนเทนเนอร์ของคุณเอง มีความยืดหยุ่นมากขึ้น เช่น หากคุณมีข้อกำหนดไลบรารีพิเศษสำหรับการรันโมเดลของคุณ
การโฮสต์โมเดลเป็นฟีเจอร์แพลตฟอร์ม AI ที่มีอยู่ และทำงานได้ดีมากเช่นเดียวกับไปป์ไลน์ นอกจากการโฮสต์โมเดลและอาร์ติแฟกต์ที่เกี่ยวข้องแล้ว เรายังสามารถแนบข้อมูลเมตากับโมเดลได้ด้วย ดังนั้นหากคุณต้องการ คุณสามารถเพิ่มสิ่งต่าง ๆ เช่น Git commit hash เพื่อให้คุณสามารถติดตามที่มาของโมเดลได้
โปรดทราบว่าโมเดลเพียงอย่างเดียวไม่ได้ถูกเปิดเผยเป็นบริการบนเว็บ การปรับใช้โมเดลหมายถึงการวางโมเดลลงในการลงทะเบียนโมเดล Vertex หลังจากนั้น คุณยังคงต้องสร้างสิ่งที่ Vertex เรียกว่า ปลายทาง หากไม่มีสิ่งนี้ ก็จะไม่มีทางเข้าถึงโมเดลจากภายนอกได้
การโฮสต์โมเดลเป็นคุณสมบัติที่สมบูรณ์ซึ่งเราอยากจะแนะนำสำหรับการใช้งานจริง
การตรวจสอบ
โอกาสในการตรวจสอบโมเดลใน Vertex นั้นค่อนข้างน่าตื่นเต้น ตามเอกสารประกอบ สามารถตรวจสอบโมเดลที่ปรับใช้ของคุณเพื่อหาอินพุตที่น่าสงสัย โดยเฉพาะมันทำงานในโหมดใดโหมดหนึ่งจากสองโหมด:
- ค้นหาอินพุตที่อยู่นอกช่วงของข้อมูลการฝึก
- มองหาการเปลี่ยนแปลงที่สำคัญในอินพุตโดยการเปรียบเทียบอินพุตกับค่าในอดีต
สิ่งนี้ให้ข้อมูลเชิงลึกที่สำคัญแก่คุณเกี่ยวกับพฤติกรรมระยะยาวของแบบจำลอง โมเดลที่ทำงานได้ดีในปัจจุบันอาจทำงานได้ไม่ดีในอนาคต โดยเฉพาะอย่างยิ่งหากประเภทของอินพุตที่ได้รับจะค่อยๆ เคลื่อนไป
น่าเสียดายที่แม้ว่าเราจะตั้งค่าการตรวจสอบได้โดยใช้เครื่องมือบรรทัดคำสั่ง gcloud เนื่องจากดูเหมือนว่าจะไม่สามารถทำได้ผ่าน UI ในขณะนี้ แต่เราไม่สามารถรับการแจ้งเตือนใดๆ ได้
แม้ว่าเราจะทำให้มันใช้งานได้ แต่การขาด UI ก็ยังคงเป็นผลเสียร้ายแรง ข้อสรุปของเราก็คือ แม้ว่าสิ่งนี้จะดูเหมือนเป็นสิ่งที่มีประโยชน์จริงๆ แต่มันก็ยังไม่พร้อม
การฝึกอบรมอย่างต่อเนื่อง
ไม่มีอะไรที่เสร็จสมบูรณ์อย่างแท้จริง เราจำเป็นต้องฝึกโมเดลของเราใหม่เสมอ ไม่ว่าจะขึ้นอยู่กับการตัดสินใจด้วยตนเองหรือระบบอัตโนมัติ การฝึกอบรมอย่างต่อเนื่องคือการช่วยให้ทีมฝึกอบรมใหม่และปรับใช้โมเดลเวอร์ชันใหม่ได้อย่างรวดเร็ว
ไปป์ไลน์ Vertex ไม่เพียงแต่นำเสนอระบบอัตโนมัติสำหรับการฝึกอบรมและการปรับใช้เท่านั้น แต่ยังให้มุมมองประวัติของการเรียกใช้ไปป์ไลน์ในอดีตอีกด้วย สิ่งนี้ช่วยให้การฝึกอบรมมีการทำงานร่วมกันโดยให้ทุกคนมองเห็นประวัตินี้
สำหรับการฝึกอบรมอย่างต่อเนื่อง เรายังต้องการทราบตัวเลือกของเราในการทริกเกอร์ไปป์ไลน์ด้วย บางทีเราต้องการฝึกโมเดลใหม่ทุกครั้งที่ระบบตรวจสอบตรวจพบการเบี่ยงเบนในเอาท์พุตของโมเดล หรือเราอาจต้องการฝึกโมเดลใหม่ตามกำหนดเวลาเพื่อรวมข้อมูลใหม่เพื่อให้โมเดลได้รับการดูแลให้ทันสมัยอยู่เสมอ -วันที่.
น่าเสียดายที่ตัวเลือกเหล่านี้ไม่ใช่ตัวเลือกใน Vertex ดังนั้นคุณจะต้องรวมเครื่องมืออื่นๆ เพื่อให้ได้ฟังก์ชันประเภทนี้ เราคิดว่าจำเป็นต้องมีอะไรเพิ่มเติมจาก Vertex เพื่อให้ได้รับการฝึกอบรมอย่างต่อเนื่อง
บทสรุป
Vertex ดำเนินชีวิตตามกระแสได้หรือไม่? บางทีอาจจะยังไม่ใช่ แม้ว่ามันอาจจะเป็นแพลตฟอร์มที่น่าตื่นเต้น แต่เครื่องมือหลายอย่างก็ถูกทำเครื่องหมายเป็นในหน้าตัวอย่างบนแพลตฟอร์มและในเอกสารประกอบ
เราได้เห็นเครื่องมือ MLOps ที่ดีขึ้นจากภายนอกระบบนิเวศของ Google และตามความเป็นจริง เรารู้สึกว่า Vertex เพียงอย่างเดียวไม่สามารถให้ทุกสิ่งที่คุณต้องการในแง่ของการทำงานร่วมกัน แหล่งที่มา ความสามารถในการทำซ้ำ และความต่อเนื่อง มีแนวโน้มว่าเครื่องมือโอเพ่นซอร์สบางส่วนจะปรากฏขึ้นมาเพื่อเติมเต็มช่องว่างบางส่วน
ทั้งการฝึกอบรมและการปรับใช้ทำงานได้ดีมากและประโยชน์ที่ใหญ่ที่สุดที่นี่คือความสามารถในการมีทรัพยากรการประมวลผลตามความต้องการสำหรับการฝึกอบรม โดยจ่ายเฉพาะสิ่งที่คุณใช้ ซึ่งสามารถทำงานได้ถูกกว่าและง่ายกว่าการโฮสต์โครงสร้างพื้นฐานทั้งหมดเพื่อทำสิ่งนี้ด้วยตัวเอง ไม่ว่าจะผ่าน Kubernetes หรืออย่างอื่นก็ตาม
นี่เป็นสิ่งที่มีคุณค่ามหาศาลสำหรับหลาย ๆ คน การจัดการโครงสร้างพื้นฐานของคุณเองต้องใช้ทักษะที่แตกต่างอย่างมากจากทักษะที่จำเป็นในการฝึกโมเดลแมชชีนเลิร์นนิง ในการจัดการโครงสร้างพื้นฐาน คุณจำเป็นต้องรู้เกี่ยวกับการประมวลผลแบบคลาวด์ โครงสร้างพื้นฐานตามโค้ด และการ Devop ในขณะที่แพลตฟอร์มอย่าง Vertex ช่วยให้คุณมุ่งเน้นไปที่โมเดลการฝึกอบรมได้โดยไม่ต้องกังวลกับโครงสร้างพื้นฐาน
เราไม่ได้ให้มุมมองเชิงลึกเกี่ยวกับต้นทุนในการรีวิวนี้ แต่เราจะกลับมาดูข้อมูลนี้อีกครั้งในบล็อกต่อๆ ไป อย่างไรก็ตาม เพื่อให้เป็นข้อบ่งชี้ เราได้ใช้เวลา 60 ปอนด์ในช่วง 10 วันในการโฮสต์โมเดล และ 14 ปอนด์สำหรับการฝึกอบรม AutoML หนึ่งชั่วโมง
เพื่อรวบรวมบทวิจารณ์นี้ เราได้ทดสอบส่วนประกอบต่างๆ ของ Vertex ด้วยตัวอย่างของเล่น ซึ่งฝึกแบบจำลองเพื่อทำนายคุณภาพไวน์จากชุดข้อมูลคุณสมบัติทางเคมีของไวน์ หากคุณต้องการลองใช้ โปรดดูโค้ดนี้: https://github.com/fuzzylabs/mlops-gcp/tree/master/examples/sklearn-wine-vertex