Hành trình hiện đại hóa TorchVision – Hồi ký của một nhà phát triển TorchVision – 3 PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Hành trình hiện đại hóa TorchVision - Hồi ức của một nhà phát triển TorchVision - 3

Hành trình hiện đại hóa TorchVision - Hồi ức của một nhà phát triển TorchVision - 3

Đã lâu rồi kể từ lần cuối tôi đăng một mục mới trên hồi ký TorchVision loạt. Nghĩ rằng, trước đây tôi đã chia sẻ tin tức trên blog PyTorch chính thức và trên Twitter, Tôi nghĩ sẽ là một ý kiến ​​hay khi nói thêm về những gì đã xảy ra trên bản phát hành cuối cùng của TorchVision (v0.12), những gì sắp ra mắt trong bản tiếp theo (v0.13) và kế hoạch của chúng tôi cho năm 2022H2 là gì. Mục tiêu của tôi là không chỉ cung cấp một cái nhìn tổng quan về các tính năng mới và thay vào đó cung cấp thông tin chi tiết về nơi chúng tôi muốn thực hiện dự án trong những tháng tiếp theo.

TorchVision v0.12 là một bản phát hành khá lớn với trọng tâm kép: a) cập nhật chính sách đóng góp mô hình và không dùng nữa của chúng tôi để cải thiện tính minh bạch và thu hút nhiều cộng tác viên cộng đồng hơn và b) tăng gấp đôi nỗ lực hiện đại hóa của chúng tôi bằng cách thêm các kiến ​​trúc mô hình mới, bộ dữ liệu và kỹ thuật ML.

Cập nhật các chính sách của chúng tôi

Chìa khóa cho một dự án nguồn mở thành công là duy trì một cộng đồng lành mạnh, tích cực đóng góp vào nó và thúc đẩy nó tiến lên. Do đó, mục tiêu quan trọng đối với nhóm của chúng tôi là tăng số lượng đóng góp của cộng đồng, với tầm nhìn dài hạn là cho phép cộng đồng đóng góp các tính năng lớn (mô hình mới, kỹ thuật ML, v.v.) trên các cải tiến gia tăng thông thường (sửa lỗi / tài liệu , các tính năng nhỏ, v.v.).

Trong lịch sử, mặc dù cộng đồng đã hăng hái để đóng góp các tính năng như vậy, nhóm của chúng tôi đã do dự không chấp nhận chúng. Chặn chính là thiếu chính sách đóng góp mô hình cụ thể và không dùng nữa. Để giải quyết vấn đề này, Joao Gomes đã làm việc với cộng đồng để soạn thảo và xuất bản hướng dẫn đóng góp mô hình cung cấp sự rõ ràng về quá trình đóng góp các kiến ​​trúc mới, các trọng số được đào tạo trước và các tính năng yêu cầu đào tạo mô hình. Hơn nữa, Nicolas Hug đã làm việc với các nhà phát triển cốt lõi của PyTorch để xây dựng và áp dụng một chính sách không dùng nữa.

Những thay đổi nói trên đã có tác động tích cực ngay lập tức đến dự án. Chính sách đóng góp mới đã giúp chúng tôi nhận được nhiều đóng góp của cộng đồng cho các tính năng lớn (thêm chi tiết bên dưới) và chính sách ngừng sử dụng rõ ràng cho phép chúng tôi dọn dẹp cơ sở mã của mình trong khi vẫn đảm bảo rằng TorchVision cung cấp các đảm bảo Khả năng tương thích ngược mạnh mẽ. Nhóm của chúng tôi rất có động lực để tiếp tục làm việc với các nhà phát triển nguồn mở, nhóm nghiên cứu và những người tạo thư viện hạ nguồn để duy trì TorchVision phù hợp và mới mẻ. Nếu bạn có bất kỳ phản hồi, nhận xét hoặc yêu cầu tính năng nào, vui lòng tiếp cận cho chúng tôi.

Hiện đại hóa TorchVision

Không có gì bí mật khi trong một vài bản phát hành cuối cùng của chúng tôi mục tiêu là thêm vào TorchVision tất cả các Tiện ích tăng cường, Mất mát, Lớp, Tiện ích đào tạo và kiến ​​trúc mới cần thiết để người dùng của chúng tôi có thể dễ dàng tạo lại kết quả SOTA bằng cách sử dụng PyTorch. TorchVision v0.12 tiếp tục theo lộ trình đó:

  • Những người đóng góp cho cộng đồng rockstar của chúng tôi, Hu Ye và Zhiqiang Wang, đã đóng góp FCOS kiến trúc là một mô hình phát hiện đối tượng một giai đoạn.

  • Nicolas Hug đã thêm hỗ trợ luồng quang học trong TorchVision bằng cách thêm RAFT kiến trúc.

  • Yiwen Song đã hỗ trợ thêm cho Máy biến áp tầm nhìn (ViT) và tôi đã thêm Chuyển đổiNeXt kiến trúc cùng với các trọng số được đào tạo trước được cải tiến.

  • Cuối cùng với giúp đỡ cộng đồng của chúng tôi, chúng tôi đã thêm 14 phân loại mới5 luồng quang học mới bộ dữ liệu.

  • Như thường lệ, bản phát hành đi kèm với nhiều cải tiến nhỏ hơn, sửa lỗi và cải tiến tài liệu. Để xem tất cả các tính năng mới và danh sách các cộng tác viên của chúng tôi, vui lòng kiểm tra ghi chú phát hành v0.12.

TorchVision v0.13 sắp ra mắt, dự kiến ​​sẽ phát hành vào đầu tháng XNUMX. Đây là một bản phát hành rất lớn với một số tính năng mới đáng kể và những cải tiến lớn về API.

Kết thúc các cải tiến và thu hẹp khoảng cách so với SOTA

Chúng tôi đang tiếp tục hành trình hiện đại hóa thư viện bằng cách thêm các nguyên thủy cần thiết, kiến ​​trúc mô hình và tiện ích công thức để tạo ra kết quả SOTA cho các tác vụ Máy tính chính:

  • Với sự giúp đỡ của Victor Fomin, tôi đã bổ sung các kỹ thuật Tăng cường dữ liệu còn thiếu quan trọng như tháng XNUMXMix, Jitter quy mô lớn v.v ... Những kỹ thuật này cho phép chúng tôi thu hẹp khoảng cách với SOTA và tạo ra trọng số tốt hơn (xem bên dưới).

  • Với sự giúp đỡ của Aditya Oke, Hu Ye, Yassine Alouini và Abhijit Deo, chúng tôi đã thêm các khối xây dựng chung quan trọng như thả khối lớp, MLP khối, thông tin liên lạc & dIOU mất mát, v.v. Cuối cùng, tôi đã làm việc với Shen Li để khắc phục một vấn đề lâu dài trên PyTorch's Đồng bộ hàng loạtNorm lớp ảnh hưởng đến các mô hình phát hiện.

  • Hu Ye với sự hỗ trợ của Joao Gomes đã được thêm vào Máy biến áp Swin cùng với mức tạ đã được tập luyện trước được cải tiến. Tôi đã thêm Hiệu quảNetV2 kiến trúc và một số tối ưu hóa kiến ​​trúc sau báo cáo về việc triển khai RetinaNet, FasterRCNN và MaskRCNN.

  • Như tôi đã thảo luận trước đó trên blog PyTorch, chúng tôi đã nỗ lực đáng kể để cải thiện mức tạ đã được đào tạo trước của mình bằng cách tạo ra công thức đào tạo. Điều này cho phép chúng tôi cải thiện độ chính xác của Mô hình phân loại 3 điểm chính xác, đạt được SOTA mới cho các kiến ​​trúc khác nhau. Một nỗ lực tương tự đã được thực hiện cho Phát hiện và phân đoạn, nơi chúng tôi đã cải thiện độ chính xác của các mô hình trung bình hơn 8.1 mAP. Cuối cùng Yosua Michael M đã làm việc với Laura Gustafson, Mannat Singhand và Aaron Adcock để thêm hỗ trợ SWAG, một tập hợp các quả cân được đào tạo trước có độ chính xác cao mới dành cho ViT và RegNets.

API hỗ trợ nhiều trọng lượng mới

Như tôi đã thảo luận trước đây trên blog PyTorch, TorchVision đã mở rộng cơ chế xây dựng mô hình hiện có của mình để hỗ trợ nhiều trọng số được đào tạo trước. API mới hoàn toàn tương thích ngược, cho phép khởi tạo các mô hình với các trọng số khác nhau và cung cấp các cơ chế để có được siêu dữ liệu hữu ích (chẳng hạn như danh mục, số lượng tham số, số liệu, v.v.) và các phép chuyển đổi suy luận tiền xử lý của mô hình. Có một phản hồi chuyên dụng vấn đề trên Github để giúp chúng tôi ủi mọi góc cạnh thô ráp của chúng tôi.

Tài liệu Cải tiến

Nicolas Hug đã dẫn đầu những nỗ lực tái cấu trúc tài liệu mô hình của TorchVision. Cấu trúc mới có thể sử dụng các tính năng đến từ API hỗ trợ nhiều trọng lượng để cung cấp tài liệu tốt hơn cho các quả cân được đào tạo trước và việc sử dụng chúng trong thư viện. Đồng loạt kêu gọi các thành viên cộng đồng của chúng tôi giúp chúng tôi ghi lại tất cả các kiến ​​trúc đúng thời hạn.

Tưởng rằng lộ trình chi tiết của chúng tôi cho năm 2022H2 vẫn chưa được hoàn thiện, đây là một số dự án chính mà chúng tôi hiện đang lên kế hoạch thực hiện:

Nếu bạn muốn tham gia vào dự án, vui lòng xem vấn đề đầu tiên tốtcần giúp đỡ danh sách. Nếu bạn là một cựu chiến binh PyTorch / Computer Vision dày dạn kinh nghiệm và bạn muốn đóng góp, chúng tôi có một số dự án ứng viên cho khai thác, thiệt hại, augmentationsmô hình.

Tôi hy vọng bạn thấy bài viết thú vị. Nếu bạn muốn liên lạc, hãy liên hệ với tôi LinkedIn or Twitter.

Dấu thời gian:

Thêm từ Hộp dữ liệu