การเดินทางของการปรับปรุง TorchVision ให้ทันสมัย ​​– บันทึกความทรงจำของผู้พัฒนา TorchVision – 3 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

การเดินทางของ Modernizing TorchVision – บันทึกความทรงจำของผู้พัฒนา TorchVision – 3

การเดินทางของ Modernizing TorchVision – บันทึกความทรงจำของผู้พัฒนา TorchVision – 3

เป็นเวลานานแล้วตั้งแต่ฉันโพสต์รายการใหม่ในบันทึกความทรงจำของ TorchVision ครั้งล่าสุด ชุด. คิดว่าก่อนหน้านี้ฉันเคยแชร์ข่าวในบล็อกอย่างเป็นทางการของ PyTorch และในบล็อกอื่น ๆ Twitterฉันคิดว่าเป็นความคิดที่ดีที่จะพูดคุยเพิ่มเติมเกี่ยวกับสิ่งที่เกิดขึ้นใน TorchVision (v0.12) รุ่นล่าสุด, สิ่งที่จะออกมาในเวอร์ชันถัดไป (v0.13) และแผนของเราสำหรับปี 2022H2 คืออะไร เป้าหมายของฉันคือการให้มากกว่าแค่การนำเสนอภาพรวมของคุณสมบัติใหม่ๆ และให้ข้อมูลเชิงลึกว่าเราต้องการดำเนินโครงการในส่วนใดในเดือนต่อๆ ไป

ทอร์ชวิชั่น v0.12 เป็นการเปิดตัวครั้งใหญ่โดยมุ่งเน้นที่คู่กัน: ก) อัปเดตนโยบายการเลิกใช้งานและการสนับสนุนโมเดลเพื่อปรับปรุงความโปร่งใสและดึงดูดผู้ร่วมให้ข้อมูลในชุมชนมากขึ้น และ b) ลดความพยายามในการปรับปรุงให้ทันสมัยเป็นสองเท่าโดยการเพิ่มสถาปัตยกรรมโมเดล ชุดข้อมูล และเทคนิค ML ใหม่ยอดนิยม

การอัปเดตนโยบายของเรา

กุญแจสำคัญสำหรับโครงการโอเพ่นซอร์สที่ประสบความสำเร็จคือการรักษาชุมชนที่แข็งแรงและกระตือรือร้นซึ่งมีส่วนสนับสนุนและขับเคลื่อนไปข้างหน้า ดังนั้นเป้าหมายสำคัญสำหรับทีมของเราคือการเพิ่มจำนวนการมีส่วนร่วมของชุมชน โดยมีวิสัยทัศน์ในระยะยาวในการทำให้ชุมชนสามารถมีส่วนร่วมกับฟีเจอร์สำคัญๆ (โมเดลใหม่ เทคนิค ML ฯลฯ) นอกเหนือจากการปรับปรุงที่เพิ่มขึ้นตามปกติ (การแก้ไขข้อบกพร่อง/เอกสาร) คุณสมบัติเล็กๆ น้อยๆ ฯลฯ)

ในอดีตแม้ชุมชนจะ กระตือรือร้น เพื่อสนับสนุนคุณสมบัติดังกล่าว ทีมงานของเราลังเลที่จะยอมรับคุณสมบัติเหล่านั้น ตัวบล็อกคีย์คือการขาดการสนับสนุนโมเดลที่เป็นรูปธรรมและนโยบายการเลิกใช้งาน เพื่อแก้ไขปัญหานี้ Joao Gomes ได้ทำงานร่วมกับชุมชนเพื่อร่างและเผยแพร่ครั้งแรกของเรา แนวทางการสนับสนุนแบบจำลอง ซึ่งให้ความชัดเจนในกระบวนการสนับสนุนสถาปัตยกรรมใหม่ ตุ้มน้ำหนักที่ได้รับการฝึกอบรมล่วงหน้า และคุณสมบัติที่จำเป็นต้องมีการฝึกอบรมโมเดล นอกจากนี้ Nicolas Hug ยังทำงานร่วมกับนักพัฒนาหลักของ PyTorch เพื่อกำหนดและนำคอนกรีตมาใช้ นโยบายการเสื่อมราคา.

การเปลี่ยนแปลงดังกล่าวมีผลดีต่อโครงการทันที นโยบายการสนับสนุนใหม่ช่วยให้เราได้รับการสนับสนุนจากชุมชนจำนวนมากสำหรับคุณสมบัติขนาดใหญ่ (รายละเอียดเพิ่มเติมด้านล่าง) และนโยบายการเลิกใช้งานที่ชัดเจนช่วยให้เราสามารถล้างฐานโค้ดของเราได้ ในขณะเดียวกันก็ทำให้มั่นใจว่า TorchVision เสนอการรับประกันความเข้ากันได้แบบย้อนหลังที่แข็งแกร่ง ทีมของเรามีแรงบันดาลใจอย่างมากที่จะทำงานร่วมกับนักพัฒนาโอเพ่นซอร์ส ทีมวิจัย และผู้สร้างไลบรารีดาวน์สตรีมต่อไป เพื่อรักษา TorchVision ให้ตรงประเด็นและสดใหม่ หากคุณมีข้อเสนอแนะความคิดเห็นหรือคำขอคุณสมบัติโปรด เอื้อมมือออก สำหรับพวกเรา.

การปรับปรุง TorchVision ให้ทันสมัย

ไม่มีความลับว่าสำหรับสองสามรุ่นล่าสุดของเรา เป้า คือการเพิ่ม Augmentations, Losses, Layers, Training utilities และสถาปัตยกรรมใหม่ที่จำเป็นทั้งหมดลงใน TorchVision เพื่อให้ผู้ใช้ของเราสามารถสร้างผลลัพธ์ SOTA ได้อย่างง่ายดายโดยใช้ PyTorch TorchVision v0.12 ดำเนินต่อไปตามเส้นทางนั้น:

  • ผู้ร่วมให้ข้อมูลในชุมชนร็อคสตาร์ของเรา Hu Ye และ Zhiqiang Wang ได้ให้การสนับสนุน เอฟซีโอเอส สถาปัตยกรรมซึ่งเป็นแบบจำลองการตรวจจับวัตถุแบบขั้นตอนเดียว

  • Nicolas Hug ได้เพิ่มการรองรับการไหลของแสงใน TorchVision โดยการเพิ่ม แพ สถาปัตยกรรม.

  • Yiwen Song ได้เพิ่มการสนับสนุนสำหรับ วิสัยทัศน์ Transformer (ViT) และผมได้เพิ่มการ ConvNXt สถาปัตยกรรมพร้อมกับตุ้มน้ำหนักที่ได้รับการฝึกล่วงหน้าที่ได้รับการปรับปรุง

  • ในที่สุดกับ ช่วย ของชุมชนของเรา เราได้เพิ่ม 14 การจำแนกประเภทใหม่ และ 5 การไหลของแสงใหม่ ชุดข้อมูล

  • ตามปกติแล้ว การเปิดตัวมาพร้อมกับการปรับปรุงเล็กๆ น้อยๆ มากมาย การแก้ไขจุดบกพร่อง และการปรับปรุงเอกสารประกอบ หากต้องการดูคุณสมบัติใหม่ทั้งหมดและรายชื่อผู้ร่วมให้ข้อมูลของเรา โปรดตรวจสอบที่ บันทึกประจำรุ่น v0.12.

TorchVision v0.13 ใกล้เข้ามาแล้ว โดยคาดว่าจะเปิดตัวในช่วงต้นเดือนมิถุนายน เป็นการเปิดตัวครั้งใหญ่พร้อมฟีเจอร์ใหม่จำนวนมากและการปรับปรุง API ครั้งใหญ่

ยุติความทันสมัยและปิดช่องว่างจาก SOTA

เรากำลังดำเนินการของเราต่อไป การเดินทางสู่การปรับปรุงห้องสมุดให้ทันสมัย โดยการเพิ่มพื้นฐานที่จำเป็น สถาปัตยกรรมแบบจำลอง และยูทิลิตี้สูตรเพื่อสร้างผลลัพธ์ SOTA สำหรับงาน Computer Vision ที่สำคัญ:

  • ด้วยความช่วยเหลือของ Victor Fomin ฉันได้เพิ่มเทคนิคการเพิ่มข้อมูลที่ขาดหายไปที่สำคัญเช่น ส.ค.มิกซ์, กระวนกระวายใจขนาดใหญ่ ฯลฯ เทคนิคเหล่านี้ช่วยให้เราปิดช่องว่างจาก SOTA และสร้างตุ้มน้ำหนักได้ดีขึ้น (ดูด้านล่าง)

  • ด้วยความช่วยเหลือของ Aditya Oke, Hu Ye, Yassine Alouini และ Abhijit Deo เราได้เพิ่มองค์ประกอบพื้นฐานที่สำคัญ เช่น ดร็อปบล็อค ชั้น MLP บล็อก, the ซีไอยู & ดีไอยู การสูญเสีย ฯลฯ ในที่สุดฉันก็ได้ร่วมงานกับ Shen Li เพื่อแก้ไขปัญหาที่ยืนยาวใน PyTorch SyncBatchNorm ชั้นที่ส่งผลต่อโมเดลการตรวจจับ

  • หู เย่ ได้รับการสนับสนุนจาก เจา โกเมส กล่าวเสริม หม้อแปลงสวิน พร้อมกับน้ำหนักที่ฝึกไว้ล่วงหน้าที่ดีขึ้น ฉันเพิ่ม EfficientNetV2 สถาปัตยกรรมและการเพิ่มประสิทธิภาพสถาปัตยกรรมหลังกระดาษหลายฉบับเกี่ยวกับการใช้งาน RetinaNet, FasterRCNN และ MaskRCNN.

  • ดังที่ฉันได้กล่าวไว้ก่อนหน้านี้ในบล็อกของ PyTorch เราได้ใช้ความพยายามอย่างมากในการปรับปรุงตุ้มน้ำหนักที่ได้รับการฝึกล่วงหน้าของเราโดยการสร้างการปรับปรุงที่ได้รับการปรับปรุง สูตรการฝึกอบรม. สิ่งนี้ทำให้เราสามารถปรับปรุงความแม่นยำของเราได้ แบบจำลองการจำแนกประเภท ด้วยความแม่นยำ 3 จุด บรรลุ SOTA ใหม่สำหรับสถาปัตยกรรมต่างๆ มีการดำเนินการที่คล้ายกันเพื่อ การตรวจจับและการแบ่งส่วนโดยเราได้ปรับปรุงความแม่นยำของโมเดลโดยเฉลี่ยมากกว่า 8.1 mAP ในที่สุด Yosua Michael M ก็ทำงานร่วมกับ Laura Gustafson, Mannat Singhand และ Aaron Adcock เพื่อเพิ่มการสนับสนุน ย้อยชุดตุ้มน้ำหนักล่วงหน้าที่ผ่านการฝึกอบรมที่ทันสมัยและมีความแม่นยำสูงสำหรับ ViT และ RegNets

API การสนับสนุนหลายน้ำหนักใหม่

เป็นฉัน ที่กล่าวถึงก่อนหน้านี้ ในบล็อก PyTorch นั้น TorchVision ได้ขยายกลไกการสร้างโมเดลที่มีอยู่เพื่อรองรับตุ้มน้ำหนักที่ได้รับการฝึกล่วงหน้าหลายรายการ API ใหม่มีความเข้ากันได้แบบย้อนหลังโดยสมบูรณ์ ช่วยให้สามารถสร้างอินสแตนซ์ของแบบจำลองที่มีน้ำหนักต่างกัน และจัดเตรียมกลไกในการรับข้อมูลเมตาที่เป็นประโยชน์ (เช่น หมวดหมู่ จำนวนพารามิเตอร์ ตัวชี้วัด ฯลฯ) และการแปลงรูปแบบการอนุมานก่อนการประมวลผลของโมเดล มีการตอบรับโดยเฉพาะ ปัญหาบน Github เพื่อช่วยเรารีดขอบหยาบๆ ของเรา

เอกสารที่ปรับปรุงใหม่

Nicolas Hug เป็นผู้นำในการปรับโครงสร้างใหม่ เอกสารแบบจำลอง ของ TorchVision โครงสร้างใหม่สามารถใช้คุณสมบัติที่มาจาก Multi-weight Support API เพื่อเสนอเอกสารที่ดีกว่าสำหรับตุ้มน้ำหนักที่ได้รับการฝึกล่วงหน้าและการใช้งานในห้องสมุด ตะโกนอย่างมากมายให้กับสมาชิกในชุมชนของเรา ช่วยเราด้วย จัดทำเอกสารสถาปัตยกรรมทั้งหมดตรงเวลา

แม้ว่าแผนงานโดยละเอียดของเราสำหรับปี 2022H2 ยังไม่สิ้นสุด ต่อไปนี้เป็นโครงการสำคัญบางโครงการที่เรากำลังวางแผนดำเนินการอยู่:

  • เราทำงานอย่างใกล้ชิดกับ Haoqi Fan และ Christoph Feichtenhofer จาก วิดีโอ PyTorch, เพื่อเพิ่ม ปรับปรุง Multiscale Vision Transformer สถาปัตยกรรม (MViTv2) ถึง TorchVision

  • Philip Meier และ Nicolas Hug กำลังทำงานในเวอร์ชันปรับปรุงของ API ชุดข้อมูล (v2) ซึ่งใช้ ท่อ TorchData และ Data. Philip Meier, Victor Fomin และฉันก็กำลังทำงานเพื่อขยายเวลาของเราเช่นกัน แปลง API (v2) ไม่เพียงแต่รองรับรูปภาพเท่านั้น แต่ยังรวมถึงกรอบล้อมรอบ, มาสก์การแบ่งส่วน ฯลฯ

  • ในที่สุด ชุมชนก็ช่วยให้เรารักษา TorchVision ให้สดใหม่และตรงประเด็นโดยการเพิ่มสถาปัตยกรรมและเทคนิคยอดนิยม ปัจจุบัน Lezwon Castelino กำลังทำงานร่วมกับ Victor Fomin เพื่อเพิ่ม SimpleCopyPaste การเสริม Hu Ye กำลังทำงานเพื่อเพิ่ม สถาปัตยกรรม DeTR.

หากคุณต้องการมีส่วนร่วมในโครงการโปรดดูที่ของเรา ประเด็นแรกที่ดี และ ต้องการความช่วยเหลือ รายการ หากคุณเป็นผู้เชี่ยวชาญ PyTorch/Computer Vision ที่ช่ำชอง และต้องการมีส่วนร่วม เรามีโครงการผู้สมัครหลายโครงการสำหรับโครงการใหม่ ผู้ประกอบการ, การสูญเสีย, augmentations และ โมเดล.

ฉันหวังว่าคุณจะพบบทความที่น่าสนใจ หากต้องการติดต่อก็ทักผมได้เลย LinkedIn or Twitter.

ประทับเวลา:

เพิ่มเติมจาก กล่องข้อมูล