เมื่อเร็วๆ นี้ 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 แล้ว ดังนั้นคุณจึงมีสองทางเลือก:

  1. ใช้ AutoML ในกรณีนี้ คุณให้งบประมาณการประมวลผลแก่ Vertex และปล่อยให้ฝึกอบรมโมเดลที่ดีที่สุดเท่าที่จะสามารถทำได้ภายในงบประมาณนั้น งบประมาณขั้นต่ำคือ 1 ชั่วโมง และเราใช้จ่าย 14 ปอนด์สำหรับการฝึกอบรมหนึ่งชั่วโมง
  2. ใช้รหัสการฝึกอบรมของคุณเอง นี่เป็นงานที่มากกว่า แต่ให้คุณควบคุมได้มากขึ้น จำเป็นหากคุณกำลังทำอะไรนอกเหนือจากที่ผู้ฝึกสอน AutoML สามารถทำได้

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

ไปป์ไลน์เป็นฟีเจอร์แพลตฟอร์ม Google AI ที่มีมายาวนาน และไม่น่าแปลกใจเลยที่ฟีเจอร์เหล่านี้ยังคงทำงานได้ดีใน Vertex ไปป์ไลน์ทดสอบของเรามี 3 ขั้นตอน:

  1. สร้างชุดข้อมูลที่มาจากที่เก็บข้อมูล Cloud Storage
  2. สร้างงานการฝึกด้วย AutoML
  3. ปรับใช้โมเดล (ดูขั้นตอนถัดไป!)

ไปป์ไลน์ใน Vertex จริงๆ แล้วคือไปป์ไลน์ KubeFlow สำหรับผู้ที่ไม่คุ้นเคย Kubeflow คือเฟรมเวิร์กการเรียนรู้ของเครื่องที่ทำงานบน Kubernetes

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

การปรับใช้

โมเดลไม่ค่อยมีประโยชน์มากนักเว้นแต่จะนำไปใช้ที่ไหนสักแห่ง ไปป์ไลน์ด้านบน ฝึกฝนและปรับใช้โมเดลกับ Vertex แต่จริงๆ แล้ว เรามีทางเลือกสองสามทางสำหรับวิธีที่เราทำสิ่งนั้นใน Vertex:

  1. รันโมเดลในคอนเทนเนอร์ที่สร้างไว้ล่วงหน้าของ Vertex ตัวเลือกที่ง่ายที่สุด มีคอนเทนเนอร์ที่สร้างไว้ล่วงหน้าสำหรับเฟรมเวิร์ก ML จำนวนมาก
  2. รันโมเดลในคอนเทนเนอร์ของคุณเอง มีความยืดหยุ่นมากขึ้น เช่น หากคุณมีข้อกำหนดไลบรารีพิเศษสำหรับการรันโมเดลของคุณ

การโฮสต์โมเดลเป็นฟีเจอร์แพลตฟอร์ม AI ที่มีอยู่ และทำงานได้ดีมากเช่นเดียวกับไปป์ไลน์ นอกจากการโฮสต์โมเดลและอาร์ติแฟกต์ที่เกี่ยวข้องแล้ว เรายังสามารถแนบข้อมูลเมตากับโมเดลได้ด้วย ดังนั้นหากคุณต้องการ คุณสามารถเพิ่มสิ่งต่าง ๆ เช่น Git commit hash เพื่อให้คุณสามารถติดตามที่มาของโมเดลได้

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

การโฮสต์โมเดลเป็นคุณสมบัติที่สมบูรณ์ซึ่งเราอยากจะแนะนำสำหรับการใช้งานจริง

การตรวจสอบ

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

  1. ค้นหาอินพุตที่อยู่นอกช่วงของข้อมูลการฝึก
  2. มองหาการเปลี่ยนแปลงที่สำคัญในอินพุตโดยการเปรียบเทียบอินพุตกับค่าในอดีต

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

น่าเสียดายที่แม้ว่าเราจะตั้งค่าการตรวจสอบได้โดยใช้เครื่องมือบรรทัดคำสั่ง 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