paint-brush
Thư viện nguồn mở này tăng tốc độ suy luận của AI lên 5-20 lần trong một vài dòng mãtừ tác giả@emilec
821 lượt đọc
821 lượt đọc

Thư viện nguồn mở này tăng tốc độ suy luận của AI lên 5-20 lần trong một vài dòng mã

từ tác giả Nebuly7m2022/04/11
Read on Terminal Reader
Read this story w/o Javascript

dài quá đọc không nổi

Thư viện nebullvm là một công cụ mã nguồn mở để tăng tốc tính toán AI. Nó lấy mô hình AI của bạn làm đầu vào và đầu ra một phiên bản được tối ưu hóa chạy nhanh hơn 5-20 lần trên phần cứng của bạn. Nebullvm nhanh chóng trở nên phổ biến, với hơn 250 ngôi sao GitHub vào ngày phát hành. Mục tiêu của thư viện là: mô hình học sâu bất khả tri. Cần một vài dòng mã để cài đặt thư viện và tối ưu hóa các mô hình của bạn. Nó rất dễ dàng để sử dụng. Nó chạy cục bộ trên máy của bạn. Mọi thứ đều chạy cục bộ.

People Mentioned

Mention Thumbnail
Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coins Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Thư viện nguồn mở này tăng tốc độ suy luận của AI lên 5-20 lần trong một vài dòng mã
Nebuly HackerNoon profile picture

Nebullvm hoạt động như thế nào?

Nó lấy mô hình AI của bạn làm đầu vào và đầu ra một phiên bản được tối ưu hóa chạy nhanh hơn 5-20 lần trên phần cứng của bạn. Nói cách khác, nebullvm kiểm tra nhiều trình biên dịch học sâu để xác định cách tốt nhất có thể để thực thi mô hình của bạn trên máy cụ thể mà không ảnh hưởng đến độ chính xác của mô hình.

Và đó là nó. Chỉ trong một vài dòng mã.

Và xin chân thành cảm ơn mọi người đã ủng hộ dự án mã nguồn mở này! Thư viện đã nhận được hơn 250 sao trên Github⭐ vào ngày phát hành và điều đó thật tuyệt vời 🚀

Bản đồ định hướng

Hãy cùng tìm hiểu thêm về tối ưu hóa nebullvm và AI. Chúng ta nên bắt đầu từ đâu? Từ...

  • MỘT SỐ BỐI CẢNH về lý do tại sao một số nhà phát triển tối ưu hóa AI và các hậu quả tiêu cực liên quan
  • Tổng quan về cách thức hoạt động của LIBRARY
  • MỘT SỐ TRƯỜNG HỢP SỬ DỤNG , trình diễn công nghệ và điểm chuẩn
  • Mô tả về CÔNG NGHỆ đằng sau thư viện

Hoặc chúng ta hãy chuyển thẳng đến thư viện → nebullvm

Định nghĩa bài văn

Cuối cùng, việc áp dụng Trí tuệ nhân tạo (AI) đang phát triển nhanh chóng, mặc dù chúng ta vẫn còn lâu mới khai thác hết tiềm năng của công nghệ này.

Thật vậy, điều thường xảy ra là các nhà phát triển AI dành phần lớn thời gian của họ vào việc phân tích dữ liệu, làm sạch dữ liệu và kiểm tra / đào tạo mô hình với mục tiêu xây dựng các mô hình AI rất chính xác.

Tuy nhiên ... rất ít mô hình được đưa vào sản xuất. Nếu họ làm vậy, hai tình huống phát sinh:

Các mô hình AI được phát triển bởi các nhà khoa học dữ liệu lành nghề và các kỹ sư AI giỏi, những người thường có ít kinh nghiệm với đám mây, trình biên dịch, phần cứng và tất cả các vấn đề cấp thấp. Khi các mô hình của họ sẵn sàng được triển khai, họ chọn GPU hoặc CPU đầu tiên mà họ có thể nghĩ đến trên đám mây hoặc máy chủ của công ty / trường đại học của họ, không nhận thức được tác động nghiêm trọng đến hiệu suất của mô hình (tức là máy tính chậm hơn và đắt hơn nhiều) do không được thông tin lựa chọn phần cứng, cấu hình cơ sở hạ tầng đám mây kém và thiếu mô hình / phần cứng tối ưu hóa sau đào tạo.

Các công ty khác đã phát triển các mô hình AI nội bộ hoạt động mạnh mẽ. Suy luận của AI là rất quan trọng đối với các công ty này, vì vậy họ thường xây dựng một đội ngũ kỹ sư phần cứng / đám mây, những người dành hàng giờ để tìm kiếm các phương pháp vượt trội để tối ưu hóa việc triển khai mô hình.

Bạn có thuộc một trong hai nhóm này không? Sau đó, bạn có thể quan tâm đến thư viện nebullvm và dưới đây chúng tôi giải thích lý do tại sao.

Thư viện

Nebullvm hoạt động như thế nào?

Bạn nhập thư viện, nebullvm thực hiện một số phép thuật và mô hình AI của bạn sẽ chạy nhanh hơn 5-20 lần.

Và đó là nó. Chỉ trong một vài dòng mã.

Mục tiêu của thư viện nebullvm là cho phép bất kỳ nhà phát triển nào được hưởng lợi từ các trình biên dịch học sâu mà không phải mất hàng đống giờ để hiểu, cài đặt, thử nghiệm và gỡ lỗi công nghệ mạnh mẽ này.

Nebullvm đang nhanh chóng trở nên phổ biến, với hơn 250 ngôi sao GitHub vào ngày phát hành và hàng trăm người dùng tích cực từ cả các công ty khởi nghiệp và các công ty công nghệ lớn. Thư viện nhằm mục đích:

💻 Mô hình học sâu bất khả tri. nebullvm hỗ trợ tất cả các kiến trúc phổ biến nhất như máy biến áp, LSTM, CNN và FCN.

🤖 Phần cứng bất khả tri . Thư viện hiện hoạt động trên hầu hết các CPU và GPU và sẽ sớm hỗ trợ TPU và các ASIC dành riêng cho học sâu khác.

🔥 Khung bất khả tri . nebullvm hỗ trợ các khuôn khổ được sử dụng rộng rãi nhất (PyTorch, TensorFlow và Hugging Face) và sẽ sớm hỗ trợ nhiều khuôn khổ khác.

🔑 Bảo mật. Mọi thứ chạy cục bộ trên máy của bạn.

☘️ Dễ sử dụng . Cần một vài dòng mã để cài đặt thư viện và tối ưu hóa các mô hình của bạn.

Tận dụng các trình biên dịch học sâu tốt nhất . Có rất nhiều trình biên dịch DL tối ưu hóa cách các mô hình AI của bạn chạy trên phần cứng của bạn. Sẽ mất rất nhiều giờ để một nhà phát triển cài đặt và kiểm tra chúng ở mỗi lần triển khai mô hình. Thư viện làm điều đó cho bạn!

Trường hợp sử dụng

Tại sao tăng tốc máy tính lên 5-20x lại có giá trị như vậy?

Để tiết kiệm thời gian → Tăng tốc các dịch vụ AI của bạn và biến chúng thành thời gian thực.

Để tiết kiệm tiền → Giảm chi phí điện toán đám mây.

Để tiết kiệm năng lượng → Giảm mức tiêu thụ điện và lượng khí thải carbon của các dịch vụ AI của bạn.

Có lẽ bạn có thể dễ dàng nắm bắt được cách tính toán tăng tốc có thể mang lại lợi ích cho trường hợp sử dụng cụ thể của bạn như thế nào. Chúng tôi cũng sẽ cung cấp cho bạn một số trường hợp sử dụng về cách nebullvm đang giúp đỡ nhiều người trong cộng đồng trên các lĩnh vực khác nhau:

Máy tính nhanh giúp các công cụ tìm kiếm và đề xuất nhanh hơn, dẫn đến trải nghiệm người dùng thú vị hơn trên các trang web và nền tảng. Bên cạnh đó, AI gần thời gian thực là một yêu cầu nghiêm ngặt đối với nhiều công ty công nghệ y tế và đối với lái xe tự hành, khi thời gian phản hồi chậm có thể khiến tính mạng con người gặp nguy hiểm. Metaverse và ngành công nghiệp trò chơi cũng yêu cầu độ trễ gần như bằng 0 để cho phép mọi người tương tác liền mạch. Tốc độ cũng có thể mang lại lợi thế trong các lĩnh vực như tiền điện tử / NFT / giao dịch nhanh.

Giảm chi phí với nỗ lực tối thiểu không bao giờ làm tổn thương bất kỳ ai. Có rất ít điều để giải thích về điều này.

AI xanh là một chủ đề ngày càng trở nên phổ biến hơn theo thời gian. Mọi người đều nhận thức rõ những rủi ro và tác động của biến đổi khí hậu và điều quan trọng là phải giảm tiêu thụ năng lượng nếu có thể. Nhận thức rộng rãi về vấn đề này được phản ánh trong cách hành vi mua hàng giữa các ngành đang tiến tới tính bền vững hơn. Ngoài ra, tiêu thụ điện năng thấp là một yêu cầu hệ thống trong một số trường hợp, đặc biệt là trên các thiết bị IoT / edge có thể không được kết nối với nguồn điện liên tục.

Trình diễn Công nghệ

Chúng tôi khuyên bạn nên thử nghiệm thư viện trên mô hình AI của mình ngay lập tức bằng cách làm theo hướng dẫn cài đặt trên Github . Thay vào đó, nếu bạn muốn thực tế về khả năng của thư viện, hãy xem sổ tay tại liên kết này , nơi bạn có thể kiểm tra nebullvm trên các mô hình học sâu phổ biến. Lưu ý rằng máy tính xách tay sẽ vẫn yêu cầu bạn cài đặt thư viện vì bạn sẽ kiểm tra nebullvm trên các mô hình của mình, quá trình này sẽ mất vài phút. Sau khi được cài đặt, nebullvm sẽ tối ưu hóa các mô hình của bạn trong thời gian ngắn.

Điểm chuẩn

Chúng tôi cũng đã thử nghiệm nebullvm trên các mô hình và phần cứng AI phổ biến từ các nhà cung cấp hàng đầu.

  • Phần cứng: M1 Pro, NVIDIA T4, Intel Xeon, AMD EPYC
  • Mô hình AI: EfficientNet, Resnet, SqueezeNet, Bert, GPT2

Thoạt nhìn, chúng ta có thể quan sát thấy khả năng tăng tốc rất khác nhau giữa các khớp nối mô hình phần cứng. Nhìn chung, thư viện cung cấp các kết quả tích cực tuyệt vời, hầu hết đều tăng tốc từ 2 đến 30 lần.

Tóm lại, kết quả là:

Nebullvm cung cấp khả năng tăng tốc tích cực cho các mô hình AI không được tối ưu hóa

  • Kết quả ban đầu cho thấy hiệu suất kém hơn (nhưng tích cực) trên các mẫu khuôn mặt ôm. Hỗ trợ ôm mặt vừa được phát hành và các cải tiến sẽ được triển khai trong các phiên bản sau
  • Nebullvm cung cấp mức tăng ~ 2-3 lần trên phần cứng Intel. Những kết quả này rất có thể liên quan đến việc triển khai PyTorch đã được tối ưu hóa cao cho các thiết bị Intel
  • Hiệu suất cực tốt trên máy NVIDIA
  • Thư viện cung cấp hiệu suất tuyệt vời cũng trên chip Apple M1
  • Và trong tất cả các tình huống, nebullvm rất hữu ích vì dễ sử dụng, cho phép bạn tận dụng các trình biên dịch học sâu mà không cần phải dành hàng giờ để nghiên cứu, thử nghiệm và gỡ lỗi công nghệ này

Bảng dưới đây hiển thị thời gian phản hồi tính bằng mili giây (mili giây) của mô hình không được tối ưu hóa và mô hình được tối ưu hóa cho các khớp nối mô hình-phần cứng khác nhau dưới dạng giá trị trung bình trên 100 thử nghiệm. Nó cũng hiển thị tốc độ tăng do nebullvm cung cấp, trong đó tốc độ tăng được định nghĩa là thời gian phản hồi của mô hình được tối ưu hóa so với thời gian phản hồi của mô hình không được tối ưu hóa.

Phần cứng được sử dụng cho thử nghiệm như sau:

  • M1 Pro → Apple M1 Pro 16GB RAM
  • Intel Xeon → Phiên bản EC2 trên AWS - t2.large
  • AMD EPYC → Phiên bản EC2 trên AWS - t4a.large
  • Phiên bản Nvidia T4 → EC2 trên AWS - g4dn.xlarge

Công nghệ

Nebullvm tận dụng các trình biên dịch học sâu tốt nhất để tăng tốc các mô hình AI trong suy luận.

Vậy chính xác thì trình biên dịch học sâu là gì?

Một trình biên dịch học sâu lấy mô hình của bạn làm đầu vào và tạo ra một phiên bản hiệu quả của nó để chạy biểu đồ tính toán mô hình nhanh hơn trên một phần cứng cụ thể.

Làm sao?

Về nguyên tắc, có một số phương pháp cố gắng sắp xếp lại các tính toán của mạng nơ-ron để sử dụng tốt hơn bố cục bộ nhớ phần cứng và tối ưu hóa việc sử dụng phần cứng.

Nói một cách đơn giản, tối ưu hóa học sâu có thể đạt được bằng cách tối ưu hóa toàn bộ đồ thị tính toán đầu cuối, cũng như bằng cách cơ cấu lại các toán tử (chủ yếu cho các vòng lặp liên quan đến phép nhân ma trận) trong biểu đồ [ 1 , 2 ]. Dưới đây là một số ví dụ về các kỹ thuật tối ưu hóa:

  • Hợp nhất nhà điều hành . Nó đề cập đến quá trình trong đó một trình tự các nhà khai thác đủ điều kiện để hợp nhất được xác định trước tiên và sau đó được thay thế bằng một triển khai viết tay tương ứng. Các toán tử hợp nhất cho phép chia sẻ tính toán tốt hơn, loại bỏ các phân bổ trung gian và tạo điều kiện tối ưu hóa hơn nữa bằng cách kết hợp các tổ vòng lặp. [ 3 ]
  • Lượng tử hóa . Nó đề cập đến các kỹ thuật để thực hiện tính toán và lưu trữ tensor ở tốc độ bit thấp hơn độ chính xác dấu phẩy động. Một mô hình lượng tử hóa thực hiện một số hoặc tất cả các hoạt động trên tensors với số nguyên chứ không phải giá trị dấu phẩy động. [ 4, 5 ]
  • Cắt tỉa đồ thị . Cắt bỏ đề cập đến việc loại bỏ các tham số nhất định trong mạng nơ-ron vì chúng dư thừa và không đóng góp đáng kể vào đầu ra, dẫn đến mạng nhỏ hơn, nhanh hơn. [ 6 ]

Tối ưu hóa học sâu phụ thuộc rất nhiều vào khớp nối phần cứng-phần mềm cụ thể và các trình biên dịch cụ thể hoạt động tốt nhất trên các khớp nối cụ thể. Vì vậy, rất khó để biết trước hiệu suất của nhiều trình biên dịch học sâu trên thị trường cho từng trường hợp sử dụng cụ thể và việc kiểm tra là cần thiết. Đây chính xác là những gì nebullvm làm, tiết kiệm cho các lập trình viên vô số giờ.

Sự nhìn nhận

Đội ngũ đằng sau nebullvm là một nhóm các cựu thành viên MIT, ETH và EPFL, những người đã hợp tác với nhau và ra mắt Nebuly . Họ đã phát triển thư viện mã nguồn mở này cùng với rất nhiều công nghệ tuyệt vời khác để làm cho AI hiệu quả hơn. Bạn có thể tìm hiểu thêm về Nebuly trên trang web của nó, LinkedIn , Twitter hoặc Instagram .

Nhiều kudo đến với Diego Fiori , người đóng góp chính của thư viện. Diego là một người tò mò và luôn khát khao kiến thức, anh ấy thích tiêu thụ nhiều như thức ăn ngon và rượu vang. Anh ấy là một lập trình viên đa năng, rất ghen tị với mã của mình và không bao giờ để mã của mình trông kém đẹp mắt. Tóm lại, Diego là CTO của Nebuly .

Xin gửi lời cảm ơn sâu sắc đến cộng đồng mã nguồn mở đã phát triển nhiều trình biên dịch DL cho phép tăng tốc các mô hình AI.

Và cuối cùng, xin gửi lời cảm ơn chân thành nhất đến tất cả những người đang hỗ trợ cộng đồng mã nguồn mở nebullvm , tìm ra lỗi và sửa chúng, đồng thời cho phép tạo ra công cụ gia tốc AI siêu mạnh mẽ hiện đại này.

Người giới thiệu

Các tài liệu và bài báo về trình biên dịch học sâu.

  • [1] Phần giới thiệu thân thiện về trình biên dịch và tối ưu hóa máy học của Chip Huyền
  • [2] The Deep Learning Compiler: Khảo sát toàn diện của Mingzhen Li & Al
  • [3] Nguyên tắc tối ưu hóa mạng nơ-ron động của Jared Roesch
  • [4] Khảo sát về các phương pháp lượng tử hóa để suy luận mạng nơron hiệu quả của Amir Gholami & Al.
  • [5] Lượng tử hóa cho mạng thần kinh của Lei Mao
  • [6] Tỉa mạng thần kinh 101 của Hugo Tessier

Tài liệu về trình biên dịch học sâu được nebullvm sử dụng.