15 คะแนน โดย xguru 2021-12-20 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • โดยทั่วไปมักพูดกันว่า TensorFlow เหมาะกับงานอุตสาหกรรม ส่วน PyTorch เหมาะกับงานวิจัย แต่ข้อมูลนี้อิงกับมุมมองเก่าแล้ว

  • ข้อพิจารณาเชิงปฏิบัติ: โดยมากสรุปได้เป็นการเปรียบเทียบ 3 ด้าน

→ ความพร้อมใช้งานของโมเดล: มีโมเดลที่เปิดให้ใช้งานสาธารณะมากแค่ไหน

→ โครงสร้างพื้นฐานสำหรับการดีพลอย: สามารถดีพลอยได้มีประสิทธิภาพแค่ไหน

→ ระบบนิเวศ: รองรับสภาพแวดล้อม/ฮาร์ดแวร์ที่หลากหลายเพียงใด

Model Availability

  • ทั้ง PyTorch และ TensorFlow ต่างก็มีคลังโมเดลอย่างเป็นทางการของตัวเอง

  • HuggingFace

→ 85% ใช้งานได้เฉพาะบน PyTorch เท่านั้น และในบรรดาโมเดลที่ไม่ใช่แบบ exclusive ก็มีเพียง 50% ที่ใช้งานได้ มีเพียง 16% ของทั้งหมดที่ใช้กับ TensorFlow ได้ (มีแค่ 8% ที่เป็น TF เท่านั้น)

→ สำหรับ 30 โมเดลยอดนิยมอันดับต้น ๆ ทั้งหมดใช้งานได้บน PyTorch แต่ TensorFlow ใช้งานได้เพียง 18 โมเดลเท่านั้น

  • งานวิจัย

→ การใช้งาน PyTorch ในงานวิจัยที่ส่งตีพิมพ์ในแต่ละปีเพิ่มขึ้นอย่างต่อเนื่อง

โฆษณา

→ เริ่มจาก 7% ในปี 2017 และในปี 2021 ก็เพิ่มขึ้นจนเกือบ 80%

→ หลายคนเลือก PyTorch เพราะความยากในการใช้งาน TensorFlow 1

→ แม้ปัญหาเหล่านี้จะได้รับการปรับปรุงอย่างมากใน TensorFlow 2 ที่ออกในปี 2019 แต่ PyTorch ก็ได้ยึดตำแหน่งฝั่งงานวิจัยไปแล้ว

→ ในบรรดานักวิจัยที่ใช้ TensorFlow ในปี 2018 มี 55% ที่ย้ายมา PyTorch ในปี 2019

→ ในบรรดานักวิจัยที่ใช้ PyTorch ในปี 2018 มี 85% ที่ยังใช้ PyTorch ต่อในปี 2019

  • ตามข้อมูลจาก Papers With Code

→ การใช้งาน TensorFlow ลดลงต่อเนื่อง ขณะที่ PyTorch และเฟรมเวิร์กอื่น ๆ ถูกใช้งานมากขึ้นเรื่อย ๆ

→ แนวโน้มนี้ยังคงต่อเนื่องแม้หลังการออก TensorFlow 2 โดยยังไม่มากพอจะลบภาพความยากที่ผู้ใช้เคยเจอใน TF1

  • สรุปคือในด้านความพร้อมใช้งานของโมเดล PyTorch ครองตลาด

  • ข้อยกเว้นอื่น ๆ

→ GoogleAI ใช้ TensorFlow เป็นหลัก แต่ Google Brain ใช้ JAX/Flax

→ DeepMind ก็ได้นำ JAX มาใช้ และยังพัฒนา Haiku ซึ่งเป็นไลบรารี neural network สำหรับ JAX ด้วย (Sonnet for JAX)

→ JAX: เฟรมเวิร์กที่ Google สร้างแยกขึ้นมา และกำลังได้รับความนิยมในฝั่งงานวิจัย

โฆษณา

Deployment

  • TensorFlow ถูกออกแบบมาให้เหมาะกับแอปพลิเคชันที่เน้นการดีพลอยตั้งแต่แรก

→ ด้วย TensorFlow Serving, TensorFlow Lite ฯลฯ จึงสามารถดีพลอยไปยังคลาวด์/เซิร์ฟเวอร์/มือถือ/อุปกรณ์ IoT ได้อย่างไม่ลำบาก

  • PyTorch เคยล้าหลังมากในมุมของการดีพลอย แต่ในช่วงไม่กี่ปีที่ผ่านมาได้พยายามลดช่องว่างนี้

→ TorchServe และ PyTorch Live

  • โดยสรุป ตอนนี้ TensorFlow ยังเหนือกว่าในด้านการดีพลอย

→ โดยเฉพาะการใช้งาน TFLite บนเครื่องโลคัลและอุปกรณ์ Coral เป็นสิ่งที่หลายอุตสาหกรรมยังต้องการอย่างมาก

→ PyTorch Live มุ่งเน้นที่มือถือเท่านั้น และ TorchServe ก็ยังอยู่ในช่วงเริ่มต้น

Ecosystems

  • PyTorch

→ มี PyTorch Hub อย่างเป็นทางการ: มีโมเดลหลากหลายทั้ง Audio/Vision/NLP เป็นต้น

→ SpeechBrain: ชุดเครื่องมือเสียงโอเพนซอร์สอย่างเป็นทางการ มีฟีเจอร์มากมาย เช่น ASR/การรู้จำผู้พูด/การยืนยันตัวตน

→ มีเครื่องมือและไลบรารีหลากหลาย รวมถึง Fast.ai

→ TorchElastic: โปรเจกต์ความร่วมมือระหว่าง AWS กับ Facebook

→ TorchX: ไลบรารีสำหรับพัฒนาและดีพลอยแมชชีนเลิร์นนิงอย่างรวดเร็ว

โฆษณา

→ PyTorch Lightning: Keras of PyTorch

  • TensorFlow

→ TensorFlow Hub อย่างเป็นทางการ: มีโมเดลหลากหลายรวมถึง BERT

→ Model Garden: คลังซอร์สโค้ดสำหรับโมเดล SOTA(State-of-the-ART)

→ TensorFlow Extended(TFX): แพลตฟอร์ม E2E สำหรับการดีพลอยโมเดล

→ Vertex AI: แพลตฟอร์มแมชชีนเลิร์นนิงแบบ Unified ของ Google Cloud

→ Media Pipe: เฟรมเวิร์กแบบ multimodal และ cross-platform สำหรับสร้างแมชชีนเลิร์นนิงไปป์ไลน์ที่รองรับงานอย่างการรู้จำใบหน้า การติดตามมือ และการรู้จำวัตถุ

→ Coral: ชุดเครื่องมือที่สร้างขึ้นเพื่อรองรับผลิตภัณฑ์ที่มี Local AI ในตัว (IOT)

→ TensorFlow.js: ไลบรารี JavaScript สำหรับแมชชีนเลิร์นนิง

→ TensorFlow Cloud: เชื่อมสภาพแวดล้อมการพัฒนาแบบโลคัลเข้ากับ Google Cloud

→ Colab: สภาพแวดล้อมโน้ตบุ๊กบนคลาวด์ (คล้าย Jupyter)

→ Playground: เครื่องมือการศึกษาที่เหมาะสำหรับทำความเข้าใจพื้นฐานของ neural network

→ Datasets: จัดเก็บชุดข้อมูลที่ Google เผยแพร่อย่างสม่ำเสมอ (ผู้ใช้ PyTorch ก็ใช้ได้)

โฆษณา
  • สรุปคือ TensorFlow เหนือกว่าในด้านระบบนิเวศ

→ เพราะ Google ลงทุนไว้มากตลอดช่วงที่ผ่านมา

→ ทั้งการเชื่อมต่อกับ Google Cloud หรือการพอร์ตไปยังอุปกรณ์อย่าง Coral ก็ทำได้ดีกว่าในบางด้าน

แล้วควรเลือกใช้อันไหนดี?

  • ถ้าคุณอยู่ในภาคอุตสาหกรรม การเลือกอาจแตกต่างกันไปตามอุตสาหกรรมที่คุณอยู่ (ต้นฉบับมี flow chart เพื่อช่วยตัดสินใจอย่างง่าย)

→ ถ้าใช้ deep learning ในสภาพแวดล้อมอุตสาหกรรมอยู่แล้ว ก็มักจะใช้ TensorFlow อยู่ก่อนแล้วและใช้ต่อได้เลย

→ แต่ก็อาจพิจารณา PyTorch ได้เช่นกันเพราะมี TorchServe

→ ถ้าเป็นมือถือให้ใช้ PyTorch Live แต่ถ้าเป็นอินพุตเสียง/วิดีโอให้ใช้ TensorFlow

→ ถ้าใช้ AI บน IoT ให้เลือก TensorFlow Lite + Coral

  • ถ้าเป็นนักวิจัยล่ะ?

→ มีโอกาสสูงว่าคุณใช้งาน PyTorch อยู่แล้ว และใช้ต่อได้เลย

→ ข้อยกเว้นพิเศษคือถ้าทำ Reinforcement Learning อาจพิจารณา TensorFlow

→ ถ้าไม่อยากใช้ TensorFlow ก็อาจลองพิจารณา JAX

→ ไม่ว่าจะเลือกอะไร ในปี 2022 JAX เป็นสิ่งที่ควรจับตา

  • ถ้าเป็นอาจารย์?
โฆษณา

→ อาจขึ้นอยู่กับเป้าหมายของหลักสูตร

→ ถ้าต้องการผลิตวิศวกรที่พร้อมใช้งานแมชชีนเลิร์นนิงในงานจริงได้ทันที ให้เลือก TensorFlow

→ ถ้าต้องการให้เข้าใจ deep learning และโมเดล deep learning ให้เลือก PyTorch

  • ถ้ากำลังเปลี่ยนสายอาชีพ?

→ ทั้ง PyTorch / TensorFlow ล้วนเป็นตัวเลือกที่ดี

→ ให้เลือกสิ่งที่ใช้งานง่ายกว่าสำหรับตัวเอง

→ หากไม่ได้ผูกติดกับเฟรมเวิร์กใดเป็นพิเศษ TensorFlow ที่เป็นมาตรฐานในอุตสาหกรรมอาจเหมาะกว่า

→ ในตลาดหางาน/รับสมัครงาน ฝั่ง TensorFlow ดูดีกว่า

  • ถ้าทำ deep learning เป็นงานอดิเรก?

→ ขึ้นอยู่กับว่าคุณอยากทำอะไร แต่โดยพื้นฐานแล้ว PyTorch เหมาะกว่า

  • ถ้าเป็นมือใหม่ด้าน deep learning แบบสุด ๆ ล่ะ?

→ แนะนำให้เริ่มจาก Keras

→ ถ้าต้องการสภาพแวดล้อมที่ใกล้เคียงกับ Python native ให้เลือก PyTorch โดยเฉพาะ PyTorch Lightning

1 ความคิดเห็น

 
xguru 2021-12-20

การลองเปรียบเทียบกับประเด็นที่เคยพูดถึงกันในปี 2019/2020 ก็น่าสนุกดีเช่นกัน

  • สถานะปัจจุบันของเฟรมเวิร์กแมชชีนเลิร์นนิง [2019] https://th.news.hada.io/topic?id=696

  • ผู้เชี่ยวชาญด้านแมชชีนเลิร์นนิงคาดการณ์ทิศทางของ AI ในปี 2020 https://th.news.hada.io/topic?id=1213

  • สัมภาษณ์นักวิจัยที่เรียน AI ด้วยตนเองและได้เข้าทำงานที่ Google https://th.news.hada.io/topic?id=1347

  • ระบบนิเวศ TensorFlow: ตั้งแต่การพัฒนาแมชชีนเลิร์นนิงไปจนถึงการนำขึ้นใช้งานจริง https://th.news.hada.io/topic?id=1757

  • หลักสูตรแมชชีนเลิร์นนิงแบบเร่งรัดที่ Google สร้างด้วย TensorFlow [ภาษาเกาหลี] https://th.news.hada.io/topic?id=1052