Top 10 ML เฟรมเวิร์กที่มาแรงปี 2023 และข้อสงสัย ทำไม 90% ของโปรเจกต์ ML จึงล้มเหลว ?

 

Top 10 ML เฟรมเวิร์กที่มาแรงปี 2023

และข้อสงสัย ทำไม 90% ของโปรเจกต์ ML จึงล้มเหลว ?

credit: รูปจาก www.robogenius.com

แมชชีนเลิร์นนิงเฟรมเวิร์ก คือ คอลเลกชั่นคำสั่งพร้อมใช้-ไลบรารี, อินเทอร์เฟซ, รวมทั้งเครื่องมือต่างๆ ที่จะช่วยให้นักพัฒนาสร้างโมเดล ML ได้ง่ายและรวดเร็วขึ้น โดยไม่ต้องเรียนรู้-เจาะลึก “อัลกอริทึมที่ใช้งานอยู่เบื้องหลัง” มีวิธีใช้ที่ตรงไปตรงมา แค่เรียกใช้คำสั่งในเฟรมเวิร์กแล้วปรับแต่งให้เหมาะสม ทำให้กระบวนการพัฒนาแอปพลิเคชัน ML สำหรับองค์กรธุรกิจ รวดเร็ว และมีประสิทธิภาพมากขึ้น

ไม่มีเฟรมเวิร์กไหนที่ “ดีที่สุด” มีแต่..เฟรมเวิร์กไหน “เหมาะสมที่สุด” สำหรับงานแต่ละชนิด ใหญ่ เล็ก เลือกใช้ไม่เหมือนกัน ที่น่าสังเกต โปรเจกต์ ML เกือบ 90% ล้มเหลวระหว่างทาง จบแค่งานต้นแบบ งานทดลอง แต่ไปไม่ถึงโปรดักชั่น..เปิดใช้จริงกับยูสเซอร์ (อ้างอิง https://www.qwak.com/post/what-does-it-take-to-deploy-ml-models-in-production) ส่วนหนึ่งของความล้มเหลวไปไม่ถึงดวงดาว..โปรดักชั่น นอกจากเรื่องงบหมด-อธิบายประโยชน์และความคืบหน้าของโปรเจกต์ไม่ได้ ยังเกิดจากการที่นักพัฒนาถอดใจกับงานวนลูปซ้ำ(จำเจ) และงานจุกจิกงานบริหารหลังโปรดักชั่น ซึ่งมักจะเกิดขึ้นเนื่องจากการเลือกเฟรมเวิร์กที่มีข้อจำกัด ไม่ลดงานหลังโปรดักชั่น และไม่เป็น end-to-end solutions

ปัจจุบันมี ML เฟรมเวิร์กมากกว่า 70 ชนิด แต่ละเฟรมเวิร์กมีจุดแข็งจุดอ่อนไม่เหมือนกัน บางเฟรมเวิร์กดูทันสมัยทันกระแสเพราะมีบริษัทไอทีระดับโลกใช้ แต่อาจจะเหมาะกับงานวิจัยหรือทำต้นแบบ มากกว่างานธุรกิจองค์กร ซึ่งต้องการความรวดเร็วในการพัฒนาแบบ end-to-end ตั้งแต่จุดเริ่มต้นพัฒนาไปสู่การปรับใช้ (deployment) รวมทั้งต้องคำนึงถึงเรื่องต้นทุน ผลกำไร การปฏิบัติตามกฎหมาย และประสบการณ์ยูสเซอร์ มากกว่าแค่..ค่าความแม่นยำเปอร์เซนต์สูงๆ ในการคาดคะเนของโมเดล ML

งานองค์กรส่วนใหญ่ยังต้องการ “ชุดเครื่องมือหลังโปรดักชั่น” ด้วย เพื่อทำ log, monitor ได้ง่าย ช่วยเฝ้าติดตามโมเดลที่เริ่มเสื่อม ล้าสมัย ไม่สอดคล้องกับข้อมูลใหม่เนื่องจากบริบทเปลี่ยนไป (data distribution shift) รวมทั้งช่วยลดงานเทรนโมเดลซ้ำและย้ำประสิทธิภาพด้วยการทำ hyperparameter tuning และ testing ได้ง่าย

บางครั้งยังต้องการคอมไพล์และออปติไมซ์เส้นทางการประมวลผล (computational graph) สำหรับแต่ละดีไวซ์ปลายทาง…ซึ่งมีจำนวน CPU/GPU/TPU ไม่เหมือนกัน เพื่อเร่งความเร็วโมเดล โดยการทำงานขนานและกระจายงานระหว่างคอร์ของหน่วยประมวลผลได้ง่าย ซึ่งบางเฟรมเวิร์กอาจจะสนับสนุนแบบ “dynamic” computational graph บางเฟรมเวิร์กอาจจะเป็นแค่ static เป็นต้น อย่างไรก็ตาม บางโจทย์งานหรือบางโปรเจกต์ที่เป็นงานเล็กแอปพลิเคชันไม่ซับซ้อน ก็ไม่จำเป็นต้องขี่ช้างจับตั๊กแตนโดยใช้เฟรมเวิร์กขนาดใหญ่ เพราะนั่นจะเป็นภาระมากกว่าโอกาส ทำให้เสียเวลาและสิ้นเปลืองโดยไม่จำเป็น เป็นต้น

เฟรมเวิร์กยอดนิยมที่คนค้นหามากที่สุดใน Google กลับไม่ใช่ TensorFlow และ PyTorch กลับเป็น Keras **ข้อสังเกต จีน ฮ่องกง และอิสราเอลสนใจ PyTorch มากที่สุดในโลก

เฟรมเวิร์ก “ที่เหมาะสม” นอกจากจะต้องตอบโจทย์ธุรกิจและยูสเซอร์ได้ดีแล้ว ยังต้องตอบโจทย์เรื่องการสเกลอัพ ขยายขีดความสามารถได้ตามความต้องการ รวมทั้งต้องพิจารณาเงื่อนไขความต้องการของทุกฝ่ายที่เกี่ยวข้อง เช่น ความต้องการของฝ่ายขาย ฝ่ายการตลาด ผู้บริหาร ฯลฯ ซึ่งผู้บริหารไอทีและนักพัฒนา ML ต้องรู้ทันและเข้าใจข้อดีข้อด้อยของแต่ะเฟรมเวิร์กก่อน รวมทั้งต้องตีโจทย์งานให้ชัดรัดกุมก่อน จึงจะเลือกเฟรมเวิร์กได้ “เหมาะสม” (แนะอ่านเทคนิค framing ML problem ในหนังสือ Designing ML Systems ของ O’Reilly ซึ่งมีฉบับภาษาไทยแล้ว)

สรุป Top 10 เฟรมเวิร์ก ML มาแรงปี 2023 นี้ รวบรวมจากกระทู้และบทความจัดอันดับเฟรมเวิร์กใน Kaggle, GitHub, Stack Overflow, และ Reddit โดยไม่นับรวมเฟรมเวิร์กชนิด Tool-Based Frameworks ซึ่งเน้นสร้างโมเดล ML แบบไม่ต้องเขียนโค้ดมาก เช่น MATLAB, SAS, IBM-SPSS โดย 10 อันดับเฟรมเวิร์กมาแรง มีดังนี้

เครดิตภาพจาก www.activestate.com

อันดับที่ 1 — TensorFlow (และ Sonnet กับ Swift)

เฟรมเวิร์กนี้ครองแชมป์มาหลายปี แต่อาจจะเสียแชมป์ให้กับ PyTorch ในเร็วๆ นี้ หลังจากค่ายต่างๆ ที่เป็น non-Google หันมาสนับสนุน PyTorch เช่น Facebook, Tesla, Microsoft และ OpenAI ซึ่งกำลังเป็นกระแสเพราะ ChatGPT และ DALL-E2 ฯลฯ อย่างไรก็ตาม TensorFlow ยังมีจุดแข็งโดดเด่นในเรื่องการปรับใช้ (deployment) ในระดับโปรดักชั่น ใช้ได้หลายแพลตฟอร์มตั้งแต่โมเดลบนคลาวด์ บราวเซอร์ ไปจนถึงมือถือทั้ง Android และ iOS นอกจากนี้ ยังมีตัวต่อยอดเสริมทัพเข้ามาเรื่อยๆ เช่น เฟรมเวิร์กจาก Sonnet จากค่าย DeepMind (ของกูเกิ้ลเช่นกัน), Swift for TensorFlow ซึ่งโดดเด่นเรื่อง auto-diff และเครื่องมือหลังโปรดักชั่นจากบริษัทเอกชนชื่อดังต่างๆ ข้อด้อยของ TensorFlow ก็คือความไม่ง่ายกว่าในการใช้เมื่อเทียบกับ PyTorch (แค่ไม่ง่ายกว่า), การไม่เป็นเนื้อเดียวกับภาษา Python ทำให้ไม่สามารถดีบั๊กได้โดยตรงจาก Python, และเรื่อง computational graphs ซึ่งทำให้การออปติไมซ์เร่งสปีดโมเดลโดยใช้ CPU, GPU, TPU แบบขนาน ไม่เก่งเท่า PyTorch (แต่หลายคนแย้งว่า เรื่องความเร็วนี้ แล้วแต่เคส แล้วแต่เทคนิคการออปติไมซ์คอมไพเลอร์) นอกจากนี้ TensorFlow ยังมีข้อด้อยเรื่องการไม่สนับสนุนการพัฒนาบน Windows (เพิ่งจะมาสนับสนุนก็เมื่อปีที่แล้วนี้เอง โดยรองรับตั้งแต่ Windows 10 เป็นต้นไป)

อันดับที่ 2 — PyTorch (และ Hugging Face กับ OpenAI)

PyTorch (Python + Torch) เปิดตัวเมื่อปี 2016 ต่อยอดมาจากเฟรมเวิร์กที่ชื่อว่า Torch แรกเริ่มพัฒนาโดยทีม Facebook ต่อมาก็ผนวกเฟรมเวิร์กคอมพิวเตอร์รู้จำภาพอย่าง Caffe2 เข้าไปด้วย (Convolutional Architecture for Fast Feature Embedding — Caffe2) ทำให้น่าสนใจเพิ่มขึ้นไปอีก ปัจจุบันเฟรมเวิร์กนี้โอนไปอยู่ภายใต้การดูแลของ Linux Foundation แล้ว เฟรมเวิร์กนี้มาแรงแซงโค้งเพราะ OpenAI ใช้ PyTorch พัฒนา GPT-3 และ ChatGPT นอกจากนี้ Tesla ก็ใช้พัฒนาระบบรถขับเคลื่อนเองอัตโนมัติ ส่วนไมโครซอฟท์มีแผนใช้ ChatGPT พัฒนาต่อยอดเสิร์ชเอ็นจิ้น Bing ที่มุ่งหมายจะชนะ Google Search เฟรมเวิร์ก PyTorch มีจุดเด่นอย่างมากเรื่องการใช้งานง่าย, พัฒนาโมเดลได้เร็วเพราะมีโมเดลเทรนล่วงหน้าจำนวนมากจากคอมมูนิตี้ต่างๆ รวมทั้ง Hugging Face, โมเดลที่ได้ก็ทำงานได้เร็วกว่า, มีความเป็นเนื้อเดียวกับภาษา Python ทำให้ดีบั๊กโปรแกรมจาก Python ได้โดยตรง ไม่ต้องใช้ทูลดีบั๊กแยกต่างหากเหมือน TensorFlow นอกจากนี้ ยังสามารถเรียกใช้โมเดลตัวเก่งจากค่าย OpenAI ได้ไร้รอยต่อมากกว่า เพราะเขียนด้วย PyTorch เช่นเดียวกัน เช่น GPT-3, DALL-E2, InstructGPT, Codex เป็นต้น สำหรับจุดอ่อนของ PyTorch ก็คือ ขาดเครื่องมือแสดงภาพ data visualization และเครื่องมือมอนิเตอร์โมเดลหลังโปรดักชั่น ขณะที่ TensorFlow อาจจะโดดเด่นในประเด็นนี้มากกว่า

อันดับที่ 3 — Keras

Keras (อ่าน แคร์รัส) เป็นโอเพ่นซอร์สที่เขียนด้วย Python เฟรมเวิร์กนี้หลังจากผ่านการวิจัยและพัฒนาอย่างต่อเนื่องโดย François Chollet วิศวกรของ Google และทีมงาน ทำให้ Keras ใช้งานง่าย มีโครงสร้างเป็นโมดูล เป็นเฟรมเวิร์กที่เหมาะสำหรับงานวิจัยและสร้างงานต้นแบบ ML แบบรวดเร็ว นักพัฒนาซอฟต์แวร์ ML มักใช้กับงานประเภท ดูแลสุขภาพ วิจัยข้อมูลเชิงลึกขององค์กร คาดการณ์ยอดขาย งานสนับสนุนลูกค้า ผู้ช่วยเสมือนจริง ฯลฯ Keras มีสถาปัตยกรรมที่เรียบง่าย ชื่อคำสั่งเข้าใจได้ง่ายและรัดกุม (ง่ายกว่า PyTorch) ดังนั้นเมื่อ TensorFlow ผนวก Keras เข้าไว้ในเฟรมเวิร์ก จึงช่วยให้ TensorFlow ใช้งานง่ายขึ้น จุดขายอีกประการของ Keras ก็คือ ความเร็ว และสเกลได้ เพราะรองรับการประมวลผลแบบขนาน สามารถดึงพลัง CPU และ GPU ใช้แบบขนานได้ดี นอกจากนี้ยังสามารถทำงานบนเฟรมเวิร์กอื่นได้หลากหลาย เช่น TensorFlow, Theano, Microsoft Cognitive Toolkit และ PlaidML รวมทั้งยังมีโมเดลที่เทรนไว้ล่วงหน้าไว้จำนวนมาก สำหรับข้อด้อยก็คือ error ที่เกิดจากเฟรมเวิร์ก Keras ไม่สามารถระบุสาเหตุได้ง่าย จึงอาจไม่เหมาะสำหรับโปรเจกต์ขนาดใหญ่มาก (แต่บริษัทขนาดใหญ่อย่าง Uber, Netflix ก็ยังใช้อยู่) และ Keras ไม่สามารถจัดการการคำนวณระดับต่ำได้ (low-level computation) อย่างไรก็ตาม จากข้อมูลเทรนด์การ “ค้นหาคำ” ของ Google Trends ย้อนหลังไปตั้งแต่ปี 2015 ถึงปัจจุบัน ก็ยังพบว่า Keras ยังเป็นอันดับหนึ่ง “เหนือกว่า” TensorFlow และ PyTorch เสียอีก

อันดับที่ 4 — Scikit Learn

ใช้อินเทอร์เฟซแบบภาษา Python แต่เฟรมเวิร์กเขียนขึ้นด้วยภาษา C, C++, Python และ Cython โดดเด่นเรื่องการทำงานเชิงตัวเลขและวิทยาศาสตร์ โดยใช้ประโยชน์จากไลบรารีอย่าง SciPy, NumPy และ Matplotlib เหมาะสำหรับอัลกอริทึมทั้งแบบ supervised และ unsupervised มักใช้สร้างแอปพลิเคชันประเภท IoT, ประกันภัย, งานไอทีต่างๆ, การจดจำรูปภาพ ฯลฯ โดยโมเดล ML ที่ผู้คนมักใช้กับ Scikit Learn ได้แก่ linear regression, random forest regression, support vector machines (SVMs), stochastic gradient descent models จุดเด่นของ SciKit Learn คืองานจัดกลุ่มข้อมูลชนิดไม่มีป้ายกำกับ (clustering of unlabeled data) และมีคุณสมบัติทำงานแบบ “กลุ่มโมเดล” (ensemble) ช่วยในการรวมผลการคาดคะเนของโมเดลหลายๆ ตัวและหลากชนิดไว้ภายใต้งานหนึ่งๆ ได้ ส่วนข้อด้อยก็คือ ข้อจำกัดที่อาจจะไม่เหมาะสำหรับงานแบบดีฟเลิร์นนิ่งขนาดใหญ่และเว็บแอป

อันดับที่ 5 — Apache MXNet (และ Gluon)

Apache MXNet เปิดตัวเมื่อปี 2017 โดดเด่นเรื่องการปรับใช้บนระบบคลาวด์ กำหนดเลือกใช้จำนวน CPU และ GPU แบบหยืดหยุ่นได้ มีชุมชนนักพัฒนาจำนวนมาก และรองรับภาษาต่างๆ ได้แก่ C++, Python, Java, Julia, Matlab, JavaScript, Go, R, Scala, Perl และ Wolfram เฟรมเวิร์กนี้พัฒนาโดย Carlos Guestrin จาก University of Washington และนักวิจัยจาก Carnegie Mellon University ความรอบคอบหยืดหยุ่น (หลังจากเห็นปัญหาของเฟรมเวิร์กรุ่นก่อนๆ) ทำให้เฟรมเวิร์กนี้โดดเด่นจนกระทั่ง Amazon เลือกปรับใช้มาเป็น Amazon SageMaker เพื่อให้บริการคลาวด์ของตนเอง ข้อเด่นของ MXNet คือ มี API ที่เป็นมิตรต่อนักพัฒนาแบบเดียวกับ Keras ซึ่งครอบคลุม ยืดหยุ่น และตอบสนองความต้องการที่หลากหลายได้ดี อีกทั้งใช้ได้กับ TensorFlow ได้ด้วย นอกจากนี้ Apache MXNet ยังได้ทัพเสริมจากเฟรมเวิร์กน้องใหม่อย่าง Gluon ซึ่งโดดเด่นเรื่องโมเดลเทรนล่วงหน้าจำนวนมากที่มี API สะอาดและเรียบง่ายสำหรับโปรเจกต์ต่างๆ เช่น GluonCV (สำหรับโปรเจกต์ computer vision), GluonNLP (โปรเจกต์ประมวลผลภาษาธรรมชาติ) และ GluonTS (สำหรับงานอนุกรมเวลา) และเนื่องจาก MXNet กำหนด CPU และ GPU ได้หยืดหยุ่นในสภาพแวดล้อมระบบคลาวด์ จึงใช้ประโยชน์จากโครงสร้างพื้นฐานที่ปรับขนาดได้ของ Amazon EC2 นอกจากนี้ MXNet ยังถูกใช้และผนึกรวมกับ Horovod ชุดเครื่องมือดีฟเลิร์นนิ่งแบบกระจายของ Uber ด้วย จึงทำให้เฟรมเวิร์กนี้เป็นที่นิยมและมาแรงในขณะนี้เช่นเดียวกัน

จำนวนโมเดล Hugging Face บน PyTorch มากกว่าบน TensorFlow อย่างเห็นได้ชัด (เครดิต www.assemblyai.com)

อันดับที่ 6 — Amazon Machine Learning

เป็นเฟรมเวิร์กและบริการบนคลาวด์ที่ช่วยให้นักพัฒนาสร้าง ML ระดับองค์กรได้รวดเร็วและประหยัด(หากจำนวนทรานสแอคชันยังไม่มาก) บริการนี้มาพร้อมกับเครื่องมือและตัวช่วยแสดงภาพ (visualization tools & wizards) ที่หลากหลายระดับยากง่าย นักพัฒนาสามารถเชื่อมต่อกับข้อมูลที่จัดเก็บไว้ใน RDS หรือ Amazon S3 ได้ง่าย เหมาะสำหรับแอปพลิเคชันองค์กรประเภท การจำแนกรูปภาพ การคัดแยกแบบไบนารี การคาดคะเนข้อมูลเชิงลึกขององค์กร การพยากรณ์หุ้น ฯลฯ สำหรับข้อดีของเฟรมเวิร์กนี้คือ เริ่มโปรเจกต์ ML ได้ทันที พัฒนาเร็วและง่าย มีโมเดลเทรนล่วงหน้ากึ่งสำเร็จรูปพร้อมใช้จำนวนมาก และประหยัดการลงทุน ส่วนข้อด้อยคือ ยังไม่ตอบโจทย์งานบางอย่างที่ซับซ้อน และเมื่อใช้คลาวด์นี้ไปแล้ว จะถอนตัวไปที่อื่น หรือดึงโค้ดกลับมารันที่เดต้าเซนเตอร์ขององค์กรได้ยาก

อันดับที่ 7 — Azure ML Studio

เดิมไมโครซอฟท์มีเฟรมเวิร์กของอีกทีมหนึ่ง ชื่อว่า Microsoft Cognitive Toolkit (CNKL) แต่ตอนนี้ภายในไมโครซอฟท์เลิกใช้ไปแล้ว เพราะความสามารถค่อนข้างจำกัดและต้องการให้ Azure ML Studio ใช้ PyTorch เป็นหลักมากกว่า อย่างไรก็ตาม Azure ML Studio ก็ยังสนับสนุนเฟรมเวิร์ก TensorFlow และ Scikit Learn ได้ด้วย จุดเด่นของเฟรมเวิร์กนี้คือ ใช้ฟรีระยะหนึ่ง และมีกราฟิกอินเทอร์เฟซที่ช่วยพัฒนาโมเดล ML ได้เร็วและง่าย มีพื้นที่เก็บข้อมูล 10 GB สำหรับบัญชีเดียวเพื่อจัดเก็บโมเดล มีอัลกอริธึมที่หลากหลายและสามารถทำงานบนเครื่องมือของ Microsoft และซอฟต์แวร์ของบุคคลที่สามได้บางชนิด หากนักพัฒนาต้องการสร้างโปรเจกต์ ML โดยไม่ระบุตัวตน Azure ML studio จะอนุญาตให้รันฟรีเป็นเวลา 8 ชั่วโมง เฟรมเวิร์กบนคลาวด์เซอร์วิซนี้ เหมาะสำหรับการพัฒนาแอปพลิเคชันได้หลากหลาย เช่น โมเดลทำนายทั่วไป, โมเดลรักษาความปลอดภัยระดับองค์กร, โมเดลจัดการและวิเคราะห์ต้นทุน ฯลฯ สำหรับข้อดีอื่นๆ ของ Azure ML Studio คือ เชื่อมต่อที่เก็บข้อมูลบนคลาวด์ Azure ได้, สเกลอัพโมเดลได้ง่าย สำหรับข้อด้อย ก็คือ ค่าบริการและข้อจำกัดหากต้องการใช้เครื่องมือบริหารหลังโปรดักชั่นชนิดอื่นๆ ที่ไม่ใช่มาจาก Microsoft Azure

อันดับที่ 8 — DL4J

Deeplearning4J (DL4J) เป็นไลบรารี Deep Learning แบบกระจายสำหรับนักพัฒนาที่ใช้ Java และ JVM (Java Virtual Machine) ดังนั้นจึงเข้ากันได้กับภาษา JVM เช่น Scala, Clojure และ Kotlin (ส่วนการคำนวณพื้นฐานของเฟรมเวิร์กนี้ พัฒนาจากภาษา C, C++ และ Cuda) เฟรมเวิร์กนี้ใช้ทั้งบน Apache Spark และ Hadoop ซึ่งช่วยลดเวลาการเทรนโมเดลและรวม AI เข้ากับสภาพแวดล้อมทางธุรกิจปัจจุบัน โดยใช้ CPU และ GPU แบบกระจายได้ (distributed CPU & GPU ซึ่งหลายคนบอกว่า ความสามารถกระจายใช้งาน CPU/GPU ได้เก่งเหมือน Caffe) เฟรมเวิร์กดีฟเลิร์นเพื่อจาวาตัวนี้ ขับเคลื่อนโดย ND4J ซึ่งเป็นไลบรารีคำนวณเชิงตัวเลขแบบโอเพ่นซอร์สที่ไม่เหมือนใคร สามารถเทรนโมเดลแบบคู่ขนานเพื่อลดจำนวนรอบการทำซ้ำได้ จึงลดเวลาการเทรนโมเดลได้มาก นอกจากนี้ยังสร้างนิวรอลเน็ตเวิร์กระดับลึกจากการต่อเชื่อมนิวรอลระดับตื้น (shallow nets) ได้ด้วย โดยแต่ละระดับตื้นจะกลายเป็น “เลเยอร์” สิ่งนี้เพิ่มความยืดหยุ่นให้นักพัฒนาสามารถรวม variational autoencoders, sequence-to-sequence autoencoders, convolutional nets หรือ recurrent nets เพื่อทำงานร่วมกับเฟรมเวิร์กแบบ distributed ระดับองค์กรของ Spark และ Hadoop ได้ง่ายอีกด้วย

อันดับที่ 9 — ONNX

โครงการ Open Neural Network Exchange หรือ ONNX เกิดจากแรงผลักดันของ Microsoft และ Facebook เพื่อสร้าง open format เพื่อให้คำสั่งหรือตัวดำเนินการ ML/DL ในทุกเฟรมเวิร์กใช้ร่วมกันได้ เป็นมาตรฐานเปิด ทำให้ง่ายต่อการ “ข้ามเฟรมเวิร์ก” เช่น พัฒนาต้นแบบบน PyTorch แล้วต้องการย้ายไปใช้บน MXNet เป็นต้น ONNX นี้ยังมี run time ที่เก่งสามารถคอมไพล์ให้สอดคล้องกับแต่ละฮาร์ดแวร์ได้ง่ายและมีประสิทธิภาพ เรียกว่า ORT (ONNX Runtime) ขณะนี้ ONNX รองรับการแปลงโค้ดจากเฟรมเวิร์กเก่าอย่าง Caffe2, Microsoft Cognitive Toolkit, MXNet และ PyTorch มาเป็นโค้ดฟอร์แมทมาตรฐานเปิดได้ จุดเด่นของ ONNX คือ ลดการเขียนโค้ดใหม่และลดความกังวลเรื่องตัวดำเนินการหรือคำสั่งที่แต่ละเฟรมเวิร์กไม่เหมือนกัน แล้วต้องการข้ามย้ายเฟรมเวิร์ก นอกจากนี้ยังเก่งเรื่องรันไทม์ที่ปรับแต่งโค้ดให้เข้ากับฮาร์ดแวร์ที่หลากหลายได้ดี ช่วยให้โมเดลทำงานได้เร็วและมีประสิทธิภาพมาก

อันดับที่ 10 — H2O

เป็นอีกหนึ่งโอเพ่นซอร์สที่เน้นภาคธุรกิจ เหมาะสร้างโมเดลวิเคราะห์คาดการณ์ด้วยคณิตศาสตร์เพื่อช่วยตัดสินใจโดยใช้ข้อมูลแบบละเอียด รองรับฐานข้อมูลแบบดั้งเดิมด้วย Breed Technology ที่เป็นโอเพ่นซอร์ส เฟรมเวิร์ก H2O เหมาะสำหรับงานที่ใช้ภาษา Java และต้องการใช้ REST API สามารถทำงานร่วมกับภาษาโปรแกรมและเครื่องมือชนิดอื่นๆ ได้หลากหลาย เหมาะใช้ในระบบวิเคราะห์ข้อมูลเชิงลึกลูกค้า วิเคราะห์ประกัน การโฆษณา การวิเคราะห์ความเสี่ยง การดูแลสุขภาพ การวิเคราะห์การฉ้อโกง (fraud analysis) ฯลฯ ข้อดีของ H2O คือ ใช้งานง่ายสำหรับกลุ่มนักพัฒนาที่มีภูมิหลังการเขียนโปรแกรมที่แตกต่างแล้วมาทำงานร่วมกัน, ปรับแต่งได้ได้ง่าย, สร้างระบบ ML อัตโนมัติได้สะดวก ส่วนข้อด้อยคือ สเกลได้น้อยไป จึงเหมาะกับงานที่ลอจิกชัดเจนและไม่ค่อยเปลี่ยนแปลง

นอกจากนี้ ยังมีเฟรมเวิร์กที่น่าสนใจอีกจำนวนมาก เช่น “Shogun” เฟรมเวิร์กระดับอาวุโสของวงการ เปิดใช้เมื่อปี 1999 แม้เอ็นจิ้นจะเขียนด้วย C++ แต่โชกุนใช้ได้กับหลายภาษา เช่น Python, Java, Ruby, C#, R, Octave, Lua และ Matlab, “Theano” ซึ่งตั้งชื่อมาจากนักคณิตศาสตร์กรีกซึ่งมีคนบอกว่าเป็นภรรยาของพิทาโกรัส โดดเด่นเรื่องไลบรารีคณิตศาสตร์ที่ใช้อาร์เรย์หลายมิติ, “WEKA” โดดเด่นเรื่องอัลกอริทึมสำหรับทำ data mining, “Spark MLLib” เป็นปลั๊กอินต่อยอดบน Spark Core โดดเด่นเรื่องงานสถิติประยุกต์, “ML Pack” เป็นไลบรารี ML สำหรับนักพัฒนาที่ใช้ภาษา C++และ “Apple Core ML” เฟรมเวิร์กสำหรับนักพัฒนาแอปพลิเคชัน ML บน macOS, iOS และ tvOS ซึ่งหลายคนบอกว่า ยังเป็นกล่องดำสำหรับนักพัฒนาและปรับแต่งประสิทธิภาพโมเดลได้ยาก เป็นต้น

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

สรุปหนังสือ AI and Machine Learning for Coders แต่งโดย “หัวหน้าทีมวิจัย AI” ของ Google และหนึ่งในผู้คิดค้น TensorFlow

กูเกิ้ล ลดพนักงาน 1.2 หมื่น แล้วดึงผู้ก่อตั้ง 2 คนกลับมาฉุกเฉิน เพื่อต่อกรกับ ChatGPT จากไมโครซอฟท์-โอเพ่นเอไอ

เคราะห์กระหน่ำ กูเกิ้ลถูกฟ้องผูกขาดโฆษณาอีก นอกจากสงครามเสิร์ชเอ็นจิ้นด้วย AI แล้ว ล่าสุดยังถูกฟ้องจากก.ยุติธรรมสหรัฐฯ