ทีมวิศวกรจาก IBM และ Meta รายงานถึงการทดลองเปลี่ยนเคอร์เนลการรัน LLM ใน PyTorch จากเดิมที่ใช้ CUDA เป็นหลัก มาเป็นภาษา Triton ของ OpenAI โดยพบว่าประสิทธิภาพเริ่มใกล้เคียงกับ CUDA
OpenAI เปิดตัวโครงการ Triton มาตั้งแต่ปี 2021 โดยมุ่งจะพัฒนาภาษาที่ทำให้โปรแกรมเมอร์เขียนโปรแกรมโดยตรงบนชิปกราฟิกได้ง่ายขึ้น นอกจากการถอด CUDA แล้วยังต้องเลือกเอนจิน Flash Attention มาแทน cuDNN Flash Attention เพื่อรันโมเดล LLM พบว่า AMD Flash Attention ทำงานได้ครบถ้วนทุกโหมด
ไมโครซอฟท์ประกาศเดินหน้าผลักดัน DirectML ให้เป็นแพลตฟอร์มหลักในการพัฒนา AI บนพีซีหากผู้ใช้ต้องการใช้โมเดลของตัวเอง หลังพัฒนามาระยะหนึ่งและรองรับ NPU ตั้งแต่ปลายปีที่ผ่านมา
ไมโครซอฟท์พยายามผลักดันให้ DirectML กลายเป็นมาตรฐานสำหรับการพัฒนาแอปพลิเคชั่นปัญญาประดิษฐ์โดยไม่ต้องสนใจฮาร์ดแวร์ด้านล่าง ไม่ว่าเครื่องที่รันอยู่จะมี GPU, NPU, หรือใช้ CPU เฉยๆ ในงาน Build ปีนี้ก็ประกาศว่า PyTorch รองรับ DirectML บน GPU ตั้งแต่วันนี้ไป และจะรองรับ NPU ในเร็วๆ นี้ ส่วนการใช้งาน AI บนเว็บก็จะเริ่มพรีวิวมาตรฐาน WebNN โดยเบื้องหลังเป็น DirectML เช่นกัน
Fedora Linux ออกเวอร์ชัน 40 มีของใหม่ดังนี้
ที่มา - Fedora
ซอฟต์แวร์ของวงการ AI ตอนนี้มีศูนย์กลางอยู่ที่โครงการ PyTorch ที่ริเริ่มโดย Facebook/Meta แต่ปีที่แล้ว 2022 โอนโครงการมาให้ PyTorch Foundation ดูแลแทน
PyTorch เป็นเหมือนซอฟต์แวร์ AI หลายๆ ตัวที่ยุคแรกรองรับเฉพาะจีพียู NVIDIA เท่านั้น แต่ภายหลังในยุค PyTorch 2.0 ก็รองรับจีพียู AMD มากขึ้น โดยมีศักดิ์ฐานะเท่ากับจีพียู NVIDIA แล้ว ไม่ต้องรออัพเดตตามหลังอีกต่อไป
บริษัท MosaicML ที่เพิ่งถูกซื้อกิจการโดย Databricks เปิดเผยการใช้ชิปเร่งประมวลผล AI สองค่ายเปรียบเทียบกัน ได้แก่ NVIDIA A100 และ AMD MI250 (ทั้งสองรุ่นยังไม่ใช่ตัวใหม่ล่าสุด) พบว่าตอนนี้ชิปของ AMD สามารถทำประสิทธิภาพได้ราว 80% ของชิป NVIDIA แล้ว
Soumith Chintala ผู้ก่อตั้ง PyTorch และตัวแทน PyTorch Foundation ขึ้นเวทีงาน AMD ประกาศว่าซอฟต์แวร์ PyTorch 2.0 จะทำงานได้บนแพลตฟอร์มของ AMD ตั้งแต่แรก (Day 0 support) ไม่ต้องรออัพเดตตามหลังเหมือนกับสมัยก่อนๆ ที่ซอฟต์แวร์ด้าน AI มักอิงอยู่บนแพลตฟอร์ม NVIDIA CUDA อย่างเดียว
AMD เข้าเป็นสมาชิกร่วมก่อตั้ง PyTorch Foundation ตั้งแต่ต้น เพื่อผลักดันให้ PyTorch รองรับแพลตฟอร์ม ROCm ของตัวเอง โดยเริ่มตั้งแต่ PyTorch 1.12 ที่ออกกลางปี 2022
PyTorch 2.0 จะรองรับ ROCm เวอร์ชัน 5.4.2 และทดสอบว่าทำงานได้บน AMD Instinct ทุกรุ่น โดยที่นักพัฒนาไม่ต้องแก้ไขอะไรเพิ่มเลย
Meta เปิดตัวชิปเร่งการประมวลผล AI รุ่นแรกของบริษัท ใช้ชื่อว่า MTIA v1 ย่อมาจาก Meta Training and Inference Accelerator
Meta ให้เหตุผลว่างานประมวลผล AI ของบริษัทในปัจจุบัน โดยเฉพาะงานกลุ่ม recommendation ในบริการโซเชียลต่างๆ ไม่ได้เหมาะกับ GPU มากนัก จึงออกแบบชิป ASIC ขึ้นมาใหม่ให้สอดคล้องกับโมเดล recommendation ของบริษัทเอง และเน้นการปรับแต่งมาเพื่อ PyTorch ซึ่งเป็นไลบรารีประมวลผล AI ที่เกิดจาก Meta ด้วย
เมื่อเดือนมีนาคมที่ผ่านมา Meta เปิดตัวโครงการ Velox เป็น unified execution engine กลางสำหรับฐานข้อมูลหรือระบบจัดการข้อมูลหลายรูปแบบ ตอบโจทย์ระดับโครงสร้างพื้นฐานของบริษัทใหญ่ระดับ Meta ที่ต้องใช้ฐานข้อมูลหลากหลาย และซับซ้อนขึ้นเรื่อยๆ
Velox จึงถูกสร้างขึ้นเพื่อจัดระเบียบวิธีการเก็บและเรียกใช้ข้อมูลที่แตกต่างกัน ช่วยลดความซ้ำซ้อนในการพัฒนา และรีดประสิทธิภาพของการเก็บข้อมูลให้ดีขึ้น แก้ปัญหาเอนจินแต่ละตัวมีวิธี optimized ที่แตกต่างกัน
เบื้องต้น Velox รองรับฐานข้อมูล 3 รูปแบบ ได้แก่ Apache Spark, Presto, PyTorch สำหรับงานปัญญาประดิษฐ์ ซึ่งทั้ง 3 แบบเป็นระบบที่ใช้บ่อยภายในบริษัท Meta
โครงการ PyTorch (ที่ปัจจุบัน Meta ยกให้ Linux Foundation ไปดูแลต่อแล้ว) เปิดตัว PyTorch 2.0 เวอร์ชันอัพเกรดครั้งใหญ่ที่รอคอยกันมานาน และทดสอบแบบพรีวิวมาสักระยะหนึ่งแล้ว
ฟีเจอร์ใหม่ที่สำคัญที่สุดคือ torch.compile ที่เป็น API หลักตัวใหม่ของ PyTorch ที่ช่วยเพิ่มประสิทธิภาพของโมเดล (เฉลี่ย 21% บนทศนิยม Float32 และ 51% บนทศนิยม AMP/Float16) และจะเป็นแกนหลักของ PyTorch ซีรีส์ 2.x ต่อไปในอนาคต ตอนนี้ torch.compile ยังเป็น "ตัวเลือก" (optional) เลือกใช้ได้ตามต้องการ และเข้ากันได้กับโค้ดเก่า 100%
PyTorch เฟรมเวิร์คด้าน AI ยอดนิยม โดนแฮ็กระบบแพ็กเกจ (Python Package Index หรือ PyPI) ในช่วงวันคริสต์มาส 2022 ที่ผ่านมา และตัวไฟล์ไบนารีของ PyTorch ถูกฝังมัลแวร์แอบมาด้วย
ความโชคดีคือไบนารี PyTorch ที่ถูกฝังมีเฉพาะเวอร์ชันทดสอบรายวัน (nightly) ที่มีผู้ใช้งานไม่เยอะนัก อย่างไรก็ตาม ผู้ที่ใช้แพ็กเกจ PyTorch-nightly ผ่านระบบแพ็กเกจ pip ของลินุกซ์ระหว่าง 25-30 ธันวาคม 2022 ควรถอนการติดตั้งและตรวจสอบระบบทันที
บริษัท Meta ประกาศยกโครงการ PyTorch เฟรมเวิร์คสำหรับงาน AI ให้กับ Linux Foundation ไปดูแลต่อ
Linux Foundation จะตั้งองค์กรลูก PyTorch Foundation โดยมีตัวแทนจากบริษัทอื่นๆ ในอุตสาหกรรม ได้แก่ AMD, Amazon Web Services, Google Cloud, Meta, Microsoft Azure, Nvidia ร่วมเป็นคณะกรรมการกำกับดูแลทิศทางการพัฒนา PyTorch ต่อไป
PyTorch เริ่มพัฒนาในปี 2016 โดยเป็นการต่อยอดจากเฟรมเวิร์ค Torch ที่เขียนด้วยภาษา Lua แต่ปรับให้เป็นภาษา Python ที่ใช้งานกว้างขวางกว่าแทน (โครงการ Torch ก็หยุดพัฒนาไปตั้งแต่ปี 2018) ถือเป็นเฟรมเวิร์ค machine learning ยอดนิยมอีกตัวเคียงคู่กับ TensorFlow/Keras ที่สร้างโดยฝั่งกูเกิล
PyTorch เฟรมเวิร์คปัญญาประดิษฐ์ประกาศเตรียมรองรับ API กราฟิก Metal ใน macOS ทำให้สามารถเร่งความเร็วด้วย Apple Silicon ได้เต็มรูปแบบ ทำให้การรันโมเดลปัญญาประดิษฐ์ทั้งการฝึกโมเดลและการใช้งานโมเดลประสิทธิภาพดีขึ้นมาก การฝึกโมเดลเร็วขึ้น 6-8 เท่า ขณะที่การรันโมเดลประสิทธิภาพดีขึ้นกว่า 20 เท่าตัวในบางกรณี
การเร่งความเร็วใช้ Metal Performance Shaders (MPS) มาทำงานเบื้องหลัง ความได้เปรียบสำคัญของ Apple Silicon คือ unified memory ที่ใช้หน่วยความจำรวมกันทั้งกราฟิกและซีพียู ทำให้ไม่เสียเวลาโอนข้อมูลไปมา และสามารถประมวลผลชุดข้อมูลขนาดใหญ่บนวงจรกราฟิกได้
NVIDIA เปิดตัว Medical Open Network for AI (MONAI) เฟรมเวิร์คโอเพนซอร์สสำหรับ AI วิเคราะห์ภาพถ่ายทางการแพทย์ (medical imaging เช่น x-ray, CT, MRI, ultrasound) ตัวมันเองพัฒนาจาก PyTorch โดยมีโมเดลที่เทรนมาให้พร้อมใช้งานแล้ว 20 ตัว รวมถึงโมเดลใหม่ๆ ที่สร้างขึ้นมาสำหรับ COVID-19 ด้วย
MONAI เริ่มพัฒนาโดย NVIDIA และ King’s College London แต่ภายหลังก็มีสถาบันวิจัยด้านการแพทย์ในหลายประเทศ เช่น สหรัฐอเมริกา เยอรมนี และจีน เข้ามาร่วมพัฒนาด้วย
กูเกิลส่งเสริมการประมวลผล AI ขนาดเบาภายในตัวเครื่องสมาร์ทโฟน (on-device ML) มาได้สักพักใหญ่ๆ โดยตัวระบบปฏิบัติการ Android มีฟีเจอร์ชื่อ Neural Networks API (NNAPI) มาตั้งแต่ Android 8.1 เพื่อให้เฟรมเวิร์ค AI เรียกใช้งานชิปประมวลผลในเครื่อง (GPU หรือ NPU แล้วแต่ฮาร์ดแวร์มีให้ใช้)
ก่อนหน้านี้ เฟรมเวิร์ค AI ที่รองรับ Android NNAPI มีเพียงแค่ TensorFlow Lite ที่พัฒนาโดยกูเกิลเอง แต่ล่าสุด เฟรมเวิร์คยอดนิยมอีกตัวคือ PyTorch (ทีมพัฒนาหลักคือ Facebook) ประกาศรองรับ NNAPI อย่างเป็นทางการแล้ว
OpenAI บริษัทปัญญาประดิษฐ์ที่ไม่เน้นผลกำไรที่ก่อตั้งในปี 2015 มีผลงานเด่นๆ ต่อเนื่อง ออกมาประกาศว่าจะพยายามพัฒนาปัญญาประดิษฐ์ใหม่ๆ โดยใช้ PyTorch เป็นไลบรารีมาตรฐานแทนที่จะพิจารณาเป็นรายโครงการเหมือนที่ผ่านมา
โครงการเด่นๆ ของ OpenAI ที่ผ่านมา อย่าง GPT-2 ปัญญาประดิษฐ์ทำนายคำที่ใช้สร้างแชตบอตหรือตัวช่วยเขียนโปรแกรมนั้นใช้ Tensorflow ในการพัฒนา
ทีมงาน PyTorch เปิดตัวบริการ PyTorch Hub บริการเชื่อมงานวิจัยเข้ากับโมเดลปัญญาประดิษฐ์เพื่อให้นักวิจัยภายนอกสามารถตรวจการทำงานของโมเดลที่เผยแพร่ออกมาได้ดีขึ้น
PyTorch Hub ทำให้ผู้ใช้สามารถค้นหาและดาวน์โหลดโมเดลได้ง่ายๆ เหมือนการดาวน์โหลดอิมเมจของ Docker เช่น การรันโค้ด torch.hub.list('pytorch/vision')
ก็จะได้รายการโมเดลของ PyTorch สำหรับการประมวลผลภาพออกมา และสามารถสั่งดาวน์โหลดได้ด้วยคำสั่งเดียว
กระบวนการส่งโมเดลขึ้น Hub ต้องส่งผ่าน pull request บน GitHub เพื่อให้ทีมงานพิจารณา และอาจขอให้เจ้าของโมเดลปรับแก้เพื่อให้ใช้งานได้ง่ายขึ้น จากนั้นโมเดลจะได้เผยแพร่บนเว็บ PyTorch Hub
ฝ่ายวิจัย AI ของ Facebook ได้โอเพ่นซอร์ส Pythia เฟรมเวิร์คแบบ plug-and-play สำหรับนักวิทยาการข้อมูลเพื่อการสร้าง, ทำสำเนา และวัด benchmark ของ AI model โดยเฟรมเวิร์คนี้พัฒนาบน PyTorch อีกชั้นหนึ่ง
Facebook ระบุว่า Pythia รองรับ distributed training และดาต้าเซ็ทหลายแบบ รวมถึง custom loss, metrics, scheduling และ optimizers แบบปรับแต่งเอง ซึ่งตัวเฟรมเวิร์คออกแบบมาให้เหมาะกับงานประเภท vision และงานด้านภาษา เช่น การสร้างแคปชั่นของภาพ เป็นต้น
PyTorch ไลบรารี deep learning จากค่าย Facebook ออกเวอร์ชัน 1.0 stable แล้ว หลังออกเวอร์ชัน 1.0 dev มาตั้งแต่เดือนพฤษภาคม และรุ่นพรีวิวก่อนตัวจริงเมื่อเดือนตุลาคม
PyTorch เป็นไลบรารีที่พัฒนาจาก Torch ที่ได้รับความนิยมในสายงานวิจัย แต่รองรับภาษา Python เป็นหลัก ทำให้ใช้งานง่ายกว่า Torch (ที่เขียนด้วย Lua เป็นหลัก) ทีมพัฒนาหลักของ PyTorch คือพนักงานของ Facebook และเป็นไลบรารีที่ได้รับความนิยมมากขึ้นเรื่อยๆ ในช่วงหลัง โดยเป็นโครงการที่เติบโตเร็วเป็นอันดับสองบน GitHub (อันดับหนึ่งคือ Azure Docs)
เฟซบุ๊กเปิดตัว PyTorch 1.0 ตั้งแต่เดือนพฤษภาคมที่ผ่านมา โดยตอนนี้ก็ยังเป็นเพียงรุ่นพรีวิวอยู่ อย่างไรก็ตามที่งาน PyTorch Developer Conference เมื่อวานนี้ก็มีการประกาศความก้าวหน้าของโครงการเพิ่มเติม
ฟีเจอร์ที่เพิ่มมาคือการทำงานในโหมด eager ที่ช่วยให้นักพัฒนาสามารถทดลองกับกราฟประมวลผลได้ง่ายขึ้น และมีการปรับปรุงไลบรารี torch.distributed โดยตอนนี้รองรับทั้ง Python และ C++
เฟซบุ๊ก "เปิดตัว" PyTorch 1.0 รุ่นสำหรับโปรดักชั่น โดยเฟซบุ๊กประกาศฟีเจอร์ใหม่ๆ ในงาน F8 ก่อน และโค้ดจริงจะปล่อยออกมาในอีกไม่กี่เดือนข้างหน้า
ฟีเจอร์สำคัญคือการรองรับ ONNX ฟอร์แมตกลางสำหรับการเก็บโมเดลปัญญาประดิษฐ์ ตัวอย่างของเฟซบุ๊กคือการใช้งาน PyTorch ในงานพัฒนา ไปรันในระบบโปรดักชั่นที่ใช้ Caffe2 โดยใน PyTorch 1.0 การเซฟโมเดลจะใช้ ONNX เป็นหลัก
นอกจาก ONNX แล้ว PyTorch 1.0 ยังเพิ่มเครื่องมือ, ไลบรารี, และโมเดลสำเร็จรูปมาให้อีกจำนวนหนึ่ง แต่เฟซบุ๊กไม่ได้ระบุชัดเจนว่าจะมีอะไรบ้าง
เมื่อวันอาทิตย์ที่ 6 สิงหาคมที่ผ่านมาทางหน้าเพจ PyTorch ใน Facebook ได้ประกาศการอัพเดท PyTorch เวอร์ชัน 0.2
ก่อนเข้าเนื้อหา อยากแนะนำ PyTorch ให้ทุกคนรู้จักซักนิด
PyTorch เป็น Deep Learning Library ซึ่ง Facebook พัฒนาบนภาษา Python (เมื่อก่อนอยู่บนภาษา Lua) จุดเด่นอยู่ที่การทำ Dynamic Computation และระบบการหาอนุพันธ์แบบ Automatic Differentiation นอกจากนี้ยังเป็นไลบรารีที่เป็นระบบ Define by run (ไม่ต้องเปิด-ปิด Session เพื่อการรัน) ปัจจุบันรองรับระบบปฏิบัติการ Linux และ macOS เท่านั้น
การอัพเดทที่สำคัญมีดังนี้
1.การ Broadcasting ของ Tensor โดยฟังก์ชันนี้หลายคนจะคุ้นเคยใน Numpy Array