การเปลี่ยนแปลงครั้งใหญ่ของ ML Framework: PyTorch แซงหน้า TensorFlow ในการวิจัยได้อย่างไร

ทีมชุมชน BigGo
การเปลี่ยนแปลงครั้งใหญ่ของ ML Framework: PyTorch แซงหน้า TensorFlow ในการวิจัยได้อย่างไร

เมื่อมองย้อนกลับจากปี 2025 ภูมิทัศน์ของ machine learning framework ได้ผ่านการเปลี่ยนแปลงอย่างมากที่น้อยคนจะคาดเดาได้เมื่อเพียงหกปีก่อน การอภิปรายในชุมชนเผยให้เห็นเรื่องราวน่าสนใจว่าความนิยมในการวิจัยเปลี่ยนจาก TensorFlow ไปสู่ PyTorch อย่างเด็ดขาด โดยมีผลกระทบระยะยาวต่อการเรียนรู้ของเครื่องทั้งในแวดวงวิชาการและอุตสาหกรรม

กราฟแสดงให้เห็นการครอบงำที่เพิ่มขึ้นของ PyTorch เหนือ TensorFlow ในการกล่าวถึงในงานวิจัยตั้งแต่ปี 2017 ถึง 2020
กราฟแสดงให้เห็นการครอบงำที่เพิ่มขึ้นของ PyTorch เหนือ TensorFlow ในการกล่าวถึงในงานวิจัยตั้งแต่ปี 2017 ถึง 2020

การอพยพของการวิจัยจาก TensorFlow

จุดเปลี่ยนสำคัญเกิดขึ้นประมาณปี 2017-2019 เมื่อนักวิจัยเริ่มละทิ้ง TensorFlow ในสิ่งที่ผู้แสดงความคิดเห็นคนหนึ่งบรรยายไว้ว่าเป็นการหลั่งไหลไปยัง PyTorch เป็นจำนวนมาก นี่ไม่ใช่เพียงการเปลี่ยนแปลงความนิยมเล็กน้อย แต่เป็นการย้ายถิ่นฐานครั้งใหญ่ที่ขับเคลื่อนโดยความแตกต่างพื้นฐานในประสบการณ์ของนักพัฒนา นักวิจัยพบว่า static computation graphs, การจัดการ session, และ variable scoping ที่ซับซ้อนของ TensorFlow สร้างความยุ่งยากที่ไม่จำเป็นต่อการสร้างต้นแบบและการทดลองอย่างรวดเร็ว

TensorFlow คือความยุ่งเหยิงสไตล์ Google ที่ถูกออกแบบมากเกินไป และพวกเขาทำให้เกิดการเปลี่ยนแปลงที่ผิดพลาดอยู่ตลอดเวลา การสร้างกราฟและการรัน session นั้นซับซ้อนเกินไป มี global state มากเกินไป และการแบ่งปันตัวแปรก็ซับซ้อนและอิงตามการตั้งชื่อและ variable scopes และ name scopes และอื่นๆ

ประสบการณ์การดีบักพิสูจน์แล้วว่าเป็นปัจจัยชี้ขาดอย่างยิ่ง โหมด eager execution ของ PyTorch อนุญาตให้นักวิจัยใช้เครื่องมือดีบักมาตรฐานของ Python และตรวจสอบเทนเซอร์โดยตรง ในขณะที่แนวทางแบบกราฟของ TensorFlow ทำให้การดีบักรู้สึกเหมือนกำลังดีบักโปรแกรมที่คอมไพล์แล้วโดยไม่มีซอร์สโค้ด เวิร์กโฟลว์การพัฒนาที่ใช้งานง่ายนี้เร่งวงจรการวิจัยและทำให้ PyTorch น่าสนใจเป็นพิเศษสำหรับสภาพแวดล้อมทางวิชาการที่การทำซ้ำอย่างรวดเร็วมีความสำคัญอย่างยิ่ง

กราฟนี้แสดงแนวโน้มการกล่าวถึงที่ไม่ซ้ำกันของคำศัพท์ที่เกี่ยวข้องกับ PyTorch และ TensorFlow ระหว่างปี 2017 ถึง 2020
กราฟนี้แสดงแนวโน้มการกล่าวถึงที่ไม่ซ้ำกันของคำศัพท์ที่เกี่ยวข้องกับ PyTorch และ TensorFlow ระหว่างปี 2017 ถึง 2020

เหตุใด PyTorch ถึงชนะใจนักวิจัย

ปัจจัยสำคัญสามประการขับเคลื่อนการครอบงำด้านการวิจัยของ PyTorch: ความเรียบง่าย การออกแบบแบบ Pythonic และ dynamic computation graphs เฟรมเวิร์กนี้ให้ความรู้สึกเหมือนการเขียนโค้ด numpy ที่ตรงไปตรงมา แทนที่จะต้องเรียนรู้กระบวนทัศน์ใหม่ที่ซับซ้อน นักวิจัยสามารถมุ่งความสนใจไปที่โมเดลและการทดลองของพวกเขา แทนที่จะต้องต่อสู้กับความซับซ้อนของเฟรมเวิร์ก Python API นี้เป็นธรรมชาติและคาดเดาได้ ไม่เหมือนอินเทอร์เฟซของ TensorFlow ซึ่งบางครั้งรู้สึกเหมือนมีการออกแบบสัญชาตญาณมากขึ้น ดังที่บทความดั้งเดิมปี 2019 ระบุไว้

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

ความแตกต่างหลักของเฟรมเวิร์ก

  • PyTorch: กราฟการคำนวณแบบไดนามิก การดีบักที่เป็นมิตรกับ Python เหมาะสำหรับการวิจัย
  • TensorFlow: เครื่องมือสำหรับการใช้งานจริงที่แข็งแกร่ง ได้รับการสนับสนุนจากองค์กรขนาดใหญ่ มี TensorFlow Lite สำหรับระบบฝังตัว
  • JAX: กระบวนทัศน์การเขียนโปรแกรมเชิงฟังก์ชัน ความสามารถในการประมวลผลแบบขนานที่ยอดเยี่ยม ได้รับความนิยมในห้องปฏิบัติการขนาดใหญ่

การตอบสนองของอุตสาหกรรมและภูมิทัศน์ในปัจจุบัน

ที่น่าสนใจคือ ความนิยมในการวิจัยสำหรับ PyTorch ในที่สุดก็ส่งผลต่อการยอมรับในอุตสาหกรรม ขณะที่ TensorFlow ยังคงได้รับการสนับสนุนจากองค์กรอย่างแข็งแกร่งและมีเครื่องมือสำหรับการผลิต PyTorch ก็ได้พัฒนาความสามารถในการผลิตของตัวเองผ่านคุณสมบัติต่างๆ เช่น TorchScript การรับรู้ว่า PyTorch นั้นโดยทั่วไปดีสำหรับอุตสาหกรรมโดยพิจารณาจากประสิทธิภาพจากการอภิปรายในปี 2019 นั้นถูกพลิก completamente แล้ว

ทุกวันนี้ ภูมิทัศน์ของเฟรมเวิร์กได้พัฒนาต่อไปด้วยการปรากฏตัวของ JAX ในฐานะผู้ท้าชิง โดยเฉพาะในสภาพแวดล้อมการฝึกอบรมขนาดใหญ่ ดังที่ผู้แสดงความคิดเห็นหนึ่งคนระบุ JAX ค่อนข้างได้รับความนิยมในหลายแล็บนอกเหนือจาก Google ที่ทำการฝึกอบรมขนาดใหญ่ เพราะจนถึงเมื่อไม่นานมานี้ หลักการยศาสตร์ของการทำงานแบบขนานนั้นดีกว่ามาก อย่างไรก็ตาม PyTorch ยังคงรักษาการครอบงำด้านการวิจัยในขณะที่ยังคงขยายขีดความสามารถในการผลิตต่อไป

ไทม์ไลน์การนำเฟรมเวิร์กมาใช้ (2017-2025)

  • 2017: PyTorch ได้รับความสนใจในวงการวิจัยครั้งแรก
  • 2018: เอกสารวิจัยแสดงให้เห็นการครอบงำของ PyTorch
  • 2019: TensorFlow 2.0 พยายามตามให้ทันด้วย eager mode
  • 2020-2022: PyTorch ตอกย้ำการครอบงำในวงการวิจัย
  • 2023-ปัจจุบัน: JAX เกิดขึ้นสำหรับการเทรนขนาดใหญ่, PyTorch ขยายขีดความสามารถด้านการใช้งานจริง

บทเรียนสำหรับการพัฒนาเฟรมเวิร์กในอนาคต

เรื่องราวของ PyTorch-TensorFlow ให้บทเรียนที่มีค่าสำหรับนักออกแบบเฟรมเวิร์ก ประสบการณ์ของนักพัฒนามีความสำคัญมากกว่าข้อได้เปรียบทางทฤษฎี — กราฟแบบคงที่ของ TensorFlow สัญญาประสิทธิภาพที่ดีขึ้นแต่สร้างความยุ่งยากมากเกินไป แรงผลักดันของชุมชนมีพลังอย่างไม่น่าเชื่อ — เมื่อนักวิจัยเริ่มแบ่งปันโค้ดและบทช่วยสอน PyTorch ผลกระทบจากเครือข่ายก็เร่งการยอมรับ และบางทีอาจสำคัญที่สุดคือ ไม่มีข้อได้เปรียบใดถาวร — แม้จะมีทรัพยากรของ Google, TPUs, และการตลาดที่สมบูรณ์แบบ ดังที่ผู้แสดงความคิดเห็นหนึ่งคนสังเกต คนของคุณเองจะแยกออกไปและยึดครองตลาด

การแข่งขันของเฟรมเวิร์กยังคงดำเนินต่อไปในปัจจุบัน แต่ความนิยมของชุมชนวิจัยสำหรับเครื่องมือที่ใช้งานง่ายและเป็นแบบเนทีฟของ Python ดูเหมือนจะตั้งมั่นอย่างแน่นอน การเปลี่ยนแปลงที่เริ่มต้นในปี 2017-2019 ได้กำหนดอย่างถาวรว่าการวิจัย machine learning ดำเนินการอย่างไรและผลการค้นพบถูกแบ่งปันทั่วชุมชน AI ทั่วโลกอย่างไร

อ้างอิง: The State of Machine Learning Frameworks in 2019