Data science

แมชชีนเลิร์นนิง ตั้งแต่คอร์เดียวไปจนถึงทั้งคลัสเตอร์

ความต้องการซอฟต์แวร์คุณภาพการผลิตสำหรับข้อมูลเชิงลึกด้านการขุดจากชุดข้อมูลข้ามสเกลได้เพิ่มขึ้นอย่างมากในช่วงหลายปีที่ผ่านมา ขนาดที่เพิ่มขึ้นของชุดข้อมูลทั่วทั้งอุตสาหกรรม ภาครัฐ และสาขาอื่นๆ ได้เพิ่มความต้องการโซลูชันการเรียนรู้ของเครื่องแบบกระจายที่ปรับขนาดได้ ซึ่งสามารถใช้ฮาร์ดแวร์ที่มีอยู่ได้อย่างเต็มที่เพื่อวิเคราะห์ชุดข้อมูลที่ใหญ่ที่สุด บทความนี้จัดทำขึ้นเพื่อแนะนำสั้นๆ เกี่ยวกับเครื่องมือที่มีอยู่มากมายสำหรับแมชชีนเลิร์นนิงข้ามเครื่องชั่ง อันดับแรก เราจะดูเครื่องมือแบบโต้ตอบที่เหมาะสำหรับการวิเคราะห์ข้อมูลเชิงสำรวจบนเวิร์กสเตชันเครื่องเดียว ต่อไป เราจะพิจารณาการพัฒนาไปป์ไลน์การเรียนรู้ของเครื่องสำหรับชุดข้อมูลขนาดเล็กถึงขนาดกลางบนโหนดเดียว สุดท้าย เราจะสำรวจโซลูชันบางส่วนที่พร้อมใช้งานสำหรับการใช้ประโยชน์จากทรัพยากรคลัสเตอร์สำหรับแอปพลิเคชันการเรียนรู้ของเครื่องขนาดใหญ่ ทำความคุ้นเคยกับข้อมูลของคุณ: GUI Machine Learning Frameworks สำหรับผู้ใช้ที่ยังใหม่ต่อการเรียนรู้ของเครื่อง หรือสำหรับผู้ที่ชื่นชอบอินเทอร์เฟซแบบโต้ตอบสำหรับการสำรวจข้อมูลเบื้องต้น เครื่องมือที่ใช้ GUI เช่น Weka และ Orange เป็นตัวเลือกที่ยอดเยี่ยมในการทำความคุ้นเคยกับชุดข้อมูลอย่างรวดเร็ว . แพ็คเกจทั้งสองมีสิ่งอำนวยความสะดวกสำหรับการโหลด การสุ่มตัวอย่าง การแปลง และการแสดงข้อมูล เช่นเดียวกับการใช้และประเมินแบบจำลองภายใต้การดูแลและไม่ได้รับการดูแล โดยเฉพาะอย่างยิ่ง Weka มีอัลกอริธึมที่คัดสรรมาอย่างดี ในขณะที่ Orange มีอินเทอร์เฟซที่ใช้งานง่ายและสวยงามเป็นพิเศษตามโมเดลเครือข่ายโดยตรง แม้ว่าเครื่องมือเหล่านี้จะไม่เหมาะสำหรับการประมวลผลในระดับการผลิตของชุดข้อมูลขนาดใหญ่ แต่เป็นเครื่องมือที่สะดวกสำหรับเป็นแนวทางในการตัดสินใจตั้งแต่เนิ่นๆ ในการสร้างไปป์ไลน์แมชชีนเลิร์นนิง การวิเคราะห์ชุดข้อมูลขนาดเล็กถึงขนาดกลาง เมื่อถึงเวลาที่ต้องพัฒนาไปป์ไลน์การเรียนรู้ของเครื่องที่เข้ารหัสแล้ว สำหรับชุดข้อมูลที่สามารถจัดการได้ด้วยโหนดเดียว เป็นเรื่องยากที่จะเอาชนะแพ็คเกจ scikit-learn ที่ใช้ Python แพ็คเกจนี้ได้รับการดูแลอย่างดีและพบในการสำรวจ Kaggle 2018 ว่าเป็นหนึ่งในแพ็คเกจการเรียนรู้ของเครื่องที่ได้รับความนิยมมากที่สุด ประกอบด้วยอัลกอริธึมการจำแนกประเภท การถดถอย และการจัดกลุ่มที่กว้างขวางไม่เพียง แต่ชุดคำสั่งสำหรับการแปลงข้อมูลและการแยกคุณลักษณะ (รวมถึง vectorization ของเอกสาร) การปรับพารามิเตอร์/การเลือกแบบจำลอง และการตรวจสอบและประเมินแบบจำลอง แพ็คเกจ scikit-learn มีความสามารถแบบขนานแบบมัลติคอร์ (โหนดเดียว) ที่จำกัดผ่าน joblib อัลกอริธึมถูกนำไปใช้กับกลยุทธ์การทำงานแบบขนานที่แตกต่างกัน ดังนั้นการเจาะเข้าไปในเอกสารประกอบหรือโค้ดจึงเป็นความคิดที่ดีก่อนที่จะพยายามดำเนินการไปป์ไลน์การเรียนรู้ของเครื่องบนหลายคอร์ รูทีนการเลือกแบบจำลอง เช่น GridSearchCV ให้ตัวเลือกหนึ่งที่ตรงไปตรงมาสำหรับการขนานกันเมื่อปรับไฮเปอร์พารามิเตอร์: การทำฟาร์มแต่ละกระบวนการฝึกอบรมให้เข้ากับกระบวนการ/เธรดของตัวเอง ข้อแม้ที่สำคัญประการหนึ่งสำหรับความสะดวกนี้คือ หากพารามิเตอร์ที่กำลังค้นหารวมถึงขนาดชุดข้อมูลหรือประเภทอัลกอริธึม แนวทางนี้อาจนำไปสู่ความไม่สมดุลของปริมาณงาน เมื่อขนาดชุดข้อมูลหรือข้อกำหนดในการประมวลผลจำเป็นต้องมีโหนดหลายโหนด แพ็คเกจ Dask จะให้ชุดการแทนที่แบบดรอปอินจำนวนหนึ่งสำหรับรูทีนของ scikit-learn จำนวนหนึ่ง ซึ่งช่วยให้รันในรูปแบบหน่วยความจำแบบกระจายได้ Scaling Up: CPU และ GPU Parallelism ในแอปพลิเคชัน Deep Learning สำหรับชุดข้อมูลขนาดใหญ่และแอปพลิเคชันที่มีความซับซ้อนมากขึ้น เช่น การเรียนรู้เชิงลึก เราต้องการสิ่งที่มีประสิทธิภาพมากกว่าแพ็คเกจที่เราเคยดูมา PyTorch เป็นที่นิยมในหมู่เฟรมเวิร์กการเรียนรู้เชิงลึกในด้านความเป็นมิตรกับผู้ใช้ การผสานรวมกับ Python และความสามารถในการใช้ประโยชน์จาก GPU เฟรมเวิร์ก PyTorch ได้รับการปรับแต่งอย่างสูง โดยใช้เฟรมเวิร์กที่พัฒนาเต็มที่ เช่น Intel MKL และไลบรารี cuDNN ของ NVIDIA ภายใต้ประทุน ฟังก์ชันระดับสูงทำให้มีอุปสรรคเพียงเล็กน้อยในการเข้าสู่การเรียนรู้เชิงลึกในเชิงพาณิชย์ ทำให้เป็นแพ็คเกจที่ดีเยี่ยม กรอบงาน TensorFlow ถือเป็นหนึ่งในมาตรฐานอุตสาหกรรมในการเรียนรู้เชิงลึก มีประสิทธิภาพที่ฉาวโฉ่ ยืดหยุ่นอย่างฉาวโฉ่ และซับซ้อนอย่างฉาวโฉ่ อย่างน้อยเมื่อเทียบกับแพ็คเกจอย่าง scikit-learn และ PyTorch ซึ่งโดยทั่วไปแล้วทั้งคู่จะมีเวลาในการพัฒนาที่สั้นลง เช่นเดียวกับ PyTorch TensorFlow สามารถทำงานบน CPU หรือ GPU และมีความสามารถในตัวที่จำกัดสำหรับการคำนวณแบบกระจาย ทั้ง TensorFlow และ PyTorch สามารถแจกจ่ายผ่านคลัสเตอร์โดยใช้เฟรมเวิร์ก Horovod ที่ใช้ MPI ของ Uber โดยทั่วไปแล้ว การใช้ Horovod นั้นต้องการมากกว่าการปรับขนาดโมเดล scikit-learn ด้วย Dask เล็กน้อย แต่สำหรับแอปพลิเคชันการเรียนรู้เชิงลึกที่ต้องการพลังของหลายโหนด Horovod มอบโซลูชันที่เสถียรและได้รับการสนับสนุนอย่างดี สิ่งนี้ทำให้การผสมผสานของ PyTorch และ Horovod เป็นตัวเลือกที่ดีเป็นพิเศษสำหรับผู้ใช้ที่ต้องการลดเวลาในการพัฒนาให้เหลือน้อยที่สุดในขณะที่ยังคงเปิดใช้งานการเรียนรู้ในระดับคลัสเตอร์ MLlib: กรอบการเรียนรู้ของเครื่องแบบกระจายโดยกำเนิด Apache Spark เฟรมเวิร์กการคำนวณแบบกระจายซึ่งใช้ทั่วทั้งอุตสาหกรรม รวมถึง MLlib ซึ่งเป็นไลบรารีการเรียนรู้ของเครื่องที่แข่งขันกับ scikit-learn ในฟังก์ชันการทำงานที่หลากหลาย สามารถใช้ผ่านภาษายอดนิยมได้หลายภาษา เนื่องจาก Spark และตัวกำหนดตารางเวลาที่เข้ากันได้กับ Spark หลายตัวเช่น Hadoop ถูกรวมเข้ากับบริการคลาวด์อย่าง Google Cloud และ Amazon Web Services อย่างแน่นหนา MLlib ทำให้สะดวกต่อการพัฒนาขั้นตอนเบื้องต้นของไปป์ไลน์การเรียนรู้ของเครื่องบนเวิร์กสเตชันเดียว จากนั้นจึงเปลี่ยนไปสู่การทดสอบในระบบคลาวด์อย่างรวดเร็ว ก่อนนำไปใช้ในระดับคลัสเตอร์ นี่คือแผนภูมิที่แสดงรายการคุณสมบัติที่เกี่ยวข้องของเฟรมเวิร์กที่เพิ่งกล่าวถึง: Package Developer Interface/ ภาษา รองรับ Native GPU หรือไม่ การคำนวณแบบกระจายพื้นเมือง? กรณีการใช้งานทั่วไป Weka U. Waikato GUI (แบบ Java) ไม่ใช่ ไม่ใช่ การวิเคราะห์ข้อมูลเบื้องต้น Orange U. Lyubljana GUI (แบบ Python) ไม่ใช่ ไม่ใช่ การวิเคราะห์ข้อมูลเบื้องต้น ชุมชนการเรียนรู้ scikit Python No No (ความต้องการ เช่น Dask) Small-to – ชุดข้อมูลขนาดกลาง ไปป์ไลน์ที่ซับซ้อน ชุมชน PyTorch Python ใช่ ไม่ใช่ (ความต้องการ เช่น Horovod) การเรียนรู้อย่างลึกซึ้ง ชุดข้อมูลขนาดกลางถึงใหญ่ TensorFlow Google Brain Team Python, C, การสนับสนุนจากบุคคลที่สามสำหรับผู้อื่น ใช่ จำกัด (ขยายได้ด้วย Horovod) การเรียนรู้เชิงลึก; ชุดข้อมูลขนาดกลางถึงใหญ่ MLlib Apache Java, Scala, Python ไม่ใช่ ใช่ ชุดข้อมูลขนาดกลางถึงใหญ่ ไปป์ไลน์ที่ซับซ้อน ไม่มีเฟรมเวิร์กใดที่สามารถตอบสนองความต้องการสำหรับแมชชีนเลิร์นนิ่งที่พัฒนาอย่างรวดเร็วและทำงานได้รวดเร็วในสภาพแวดล้อมการประมวลผลประสิทธิภาพสูง การปรับใช้แมชชีนเลิร์นนิงให้สำเร็จในระดับคลัสเตอร์ต้องเลือกใช้เฟรมเวิร์กซอฟต์แวร์อย่างรอบคอบ เช่นเดียวกับการใช้กลยุทธ์การคำนวณที่สอดคล้องกับฮาร์ดแวร์ ข้อมูล และข้อจำกัดทางธุรกิจ แม้ว่าจะมีเฟรมเวิร์กแมชชีนเลิร์นนิงมากกว่าที่กล่าวถึงในบทความนี้มากมาย แต่เฟรมเวิร์กที่กล่าวถึงในที่นี้ได้รับการสนับสนุนอย่างดีและมีประสิทธิภาพ และจะช่วยให้ผู้ใช้ประสบความสำเร็จในแอปพลิเคชันการเรียนรู้ของเครื่อง ตั้งแต่แบบ single-core ไปจนถึงทั้งคลัสเตอร์ เกี่ยวกับผู้แต่ง: Alex Richert, PhD, เป็นโปรแกรมเมอร์/นักวิเคราะห์อาวุโสด้านวิทยาศาสตร์ที่ RedLine Performance Solutions Dr. Richert มีประสบการณ์มากกว่า 10 ในด้านการวิเคราะห์ทางวิทยาศาสตร์ การพัฒนาซอฟต์แวร์ และการคำนวณแบบคู่ขนาน นับตั้งแต่ 2019 เขาได้ทำงานให้กับ RedLine เพื่อสนับสนุนการดำเนินงานในระบบซุปเปอร์คอมพิวติ้งในการปฏิบัติงานด้านสภาพอากาศและสภาพอากาศแห่งชาติ (WCOSS) ของ National Weather Service รวมถึงเตรียมพร้อมสำหรับการดำเนินการกับ WCOSS2 ที่สืบทอดต่อจากนี้ รายการที่เกี่ยวข้อง: จาก Amazon ถึง Uber บริษัทต่างๆ นำ Ray A 'Glut' ของนวัตกรรมที่พบใน Data Science และ ML Platforms มาใช้

  • บ้าน
  • Business
  • Data science
  • Marketing
  • Leave a Reply

    Your email address will not be published. Required fields are marked *

    Back to top button