Ứng dụng học sâu tại điện toán biên – Deep Learning on the Edge Computing

Phân tích chi tiết về việc sử dụng Học sâu (Deep Learning) tại biên, bao gồm cả ưu điểm và nhược điểm và so sánh điều này với các phương pháp điện toán cloud truyền thống hơn. Detailed analysis into utilizing deep learning on the edge, covering both advantages and disadvantages and comparing this against more traditional cloud computing methods.

Các dịch vụ Deep Learning có thể mở rộng phụ thuộc vào một số hạn chế. Tùy thuộc vào ứng dụng mục tiêu của bạn, bạn có thể yêu cầu độ trễ thấp, bảo mật nâng cao hoặc hiệu quả chi phí dài hạn. Lưu trữ mô hình Deep Learning của bạn trên cloud có thể không phải là giải pháp tốt nhất trong những trường hợp như vậy.

Điện toán trên Edge ( Nguồn )
Học sâu (Deep Learning) tại biên (edge)  làm giảm bớt các vấn đề trên, và cung cấp các lợi ích khác. biên (edge) ở đây đề cập đến tính toán được thực hiện cục bộ trên các sản phẩm của người tiêu dùng. Blog này khám phá những  lợi ích của việc sử dụng tính toán biên (edge) cho Deep Learning và các  vấn đề  liên quan đến nó.

Vì sao phải là điện toán biên (edge)? Vì sao không sử dụng cloud?

Có rất nhiều lý do thuyết phục để ưu tiên tính toán biên (edge) trên điện toán cloud.

Băng thông và độ trễ

Thời gian khứ hồi hữu hình (RTT) liên quan đến các lệnh gọi API đến máy chủ từ xa. Các ứng dụng yêu cầu suy luận tức thời không thể hoạt động đúng với độ trễ cho phép. Trong trường hợp sử dụng cloud computing, nếu máy chủ quá xa sẽ gây nhiều ảnh hưởng đến độ trễ.

Lấy  trường hợp xe tự lái  chẳng hạn, độ trễ lớn có thể làm tăng đáng kể nguy cơ gây ra tai nạn. Hơn nữa, các sự kiện bất ngờ như xe băng qua động vật hoặc người đi bộ có thể xảy ra chỉ trong một vài khung hình. Trong những trường hợp này, thời gian đáp ứng là vô cùng quan trọng. Đây là lý do tại sao Nvidia có các thiết bị tính toán trên thiết bị tùy chỉnh của họ để thực hiện các suy luận tại biên.

Hơn nữa, khi bạn có một số lượng lớn thiết bị được kết nối với cùng một mạng, băng thông hiệu quả sẽ bị giảm. Điều này có thể được giảm đáng kể nếu tính toán được thực hiện trên các biên (edge).

Yêu cầu băng thông cho các ứng dụng khác nhau. 
 

Lấy trường hợp xử lý video 4K HD trên nhiều thiết bị. Xử lý chúng cục bộ sẽ tiết kiệm rất nhiều việc sử dụng băng thông. Điều này là do chúng ta không cần phải tải dữ liệu lên cloud để suy luận. Do đó, chúng tôi có thể mở rộng mạng lưới này tương đối dễ dàng.

 

An ninh và phân cấp

Máy chủ thương mại dễ bị tấn công và hack. Tất nhiên, rủi ro là không đáng kể nếu bạn sử dụng một nhà cung cấp đáng tin cậy. Nhưng, bạn được yêu cầu tin tưởng vào bên thứ ba để bảo mật dữ liệu bạn thu thập và tài sản trí tuệ (IP) của bạn. Có các thiết bị tại biên giúp bạn  kiểm soát tuyệt đối  IP của mình.

Tập trung vs Phân cấp vs Phân phối. ( Nguồn )
 

Nếu bạn đã nghe nói về blockchain, việc phân cấp hoặc phân phối có thể quen thuộc với bạn. Tuy nhiên, có một số thiết bị trên các biên (edge) gặt hái tất cả các lợi ích của phân cấp. Đó là  khó khăn hơn  để mang lại xuống cả một mạng lưới các thiết bị ẩn sử dụng một  cuộc tấn công DDoS đơn , so với một máy chủ tập trung. Điều này đặc biệt hữu ích cho các ứng dụng như sử dụng máy bay không người lái để tuần tra biên giới.

 

Cách sử dụng cụ thể của công việc (Tùy biến)

Hãy tưởng tượng bạn có một nhà máy sản xuất đồ chơi. Nó có một vài trăm trạm làm việc. Bạn yêu cầu một dịch vụ phân loại hình ảnh tại mỗi trạm làm việc. Vấn đề là, mỗi trạm làm việc có một bộ đối tượng khác nhau và việc đào tạo một trình phân loại duy nhất có thể không hiệu quả. Hơn nữa, lưu trữ và phân loại nhiều trên  cloud  sẽ  tốn kém tài nguyên.

Giải pháp hiệu quả về chi phí là đào tạo các bộ phân loại cụ thể cho từng bộ phận trên cloud và gửi các  mô hình được đào tạo  cho các  thiết bị biên (edge). Bây giờ, các thiết bị này được tùy chỉnh để trạm làm việc của họ. Họ sẽ có hiệu suất tốt hơn so với phân loại dự đoán trên tất cả các trạm làm việc.

 

Trí thông minh đám đông giống nhau

Tiếp tục với ý tưởng được đề cập ở trên, các thiết bị biên (edge) cũng có thể hỗ trợ đào tạo các mô hình học máy. Điều này đặc biệt hữu ích cho  Học tập Củng cố , mà bạn có thể mô phỏng một số lượng lớn các tập phim trên YouTube .

Hơn nữa, các thiết bị biên (edge) có thể được sử dụng để thu thập dữ liệu cho  Học trực tuyến  (hoặc  Học liên tục ). Chẳng hạn, chúng ta có thể sử dụng nhiều máy bay không người lái để khảo sát một khu vực để phân loại. Sử dụng các kỹ thuật tối ưu hóa như SGD không đồng bộ, một mô hình duy nhất có thể được  đào tạo song song  giữa tất cả các thiết bị biên (edge). Nó cũng có thể chỉ được sử dụng để tổng hợp và xử lý dữ liệu từ nhiều nguồn khác nhau.

 

Dự phòng

Dự phòng là cực kỳ quan trọng đối với kiến ​​trúc mạng và bộ nhớ mạnh mẽ. Thất bại của một nút trong mạng có thể có tác động nghiêm trọng đến các nút khác. Trong trường hợp của chúng tôi, các thiết bị biên (edge) có thể cung cấp một mức độ dự phòng tốt. Nếu một trong các thiết bị biên (edge) của chúng tôi (ở đây, một nút) không thành công, nút hàng xóm của nó có thể tạm thời tiếp quản. Điều này rất đảm bảo độ tin cậy và giảm đáng kể thời gian chết.

Chi phí hiệu quả trong dài hạn

Về lâu dài, các dịch vụ cloud sẽ trở nên đắt hơn so với việc có một bộ thiết bị suy luận chuyên dụng. Điều này đặc biệt đúng nếu các thiết bị của bạn có chu kỳ nhiệm vụ lớn (nghĩa là chúng hoạt động hầu hết thời gian). Hơn nữa, các thiết bị biên (edge) rẻ hơn nhiều nếu chúng được chế tạo đồng loạt, giảm chi phí đáng kể.

Các ràng buộc cho Deep Learning trên Edge

Các mô hình Deep Learning  được biết đến là  lớn  và  tính toán tốn kém . Đó là một thách thức để phù hợp với các mô hình này vào  các thiết bị biên (edge)  thường có  bộ nhớ hạn chế . Có một số cách mà chúng ta có thể tiếp cận những vấn đề này.

Tham số Mạng thần kinh hiệu quả

Một tính năng nổi bật về mạng lưới thần kinh là kích thước khổng lồ của chúng. Các thiết bị biên (edge) thường không thể xử lý các mạng thần kinh lớn. Điều này thúc đẩy các nhà nghiên cứu giảm thiểu kích thước của các mạng lưới thần kinh, trong khi vẫn duy trì độ chính xác. Hai tham số mạng thần kinh hiệu quả phổ biến là  MobileNet  và  SqueezeNet .

Các  SqueezeNet  kết hợp rất nhiều các chiến lược như cuối xuống lấy mẫu và giảm số lượng bộ lọc, để có được hiệu suất cao tại một số tham số thấp. Họ giới thiệu các mô-đun của Fire Fire, trong đó có các phần mềm có khả năng nén và tối ưu hóa hiệu quả của mạng.

 

Các  MobileNet  factorizes nhiều nếp cuộn bình thường thành một sự kết hợp của nhiều nếp cuộn khôn ngoan sâu sắc và nhiều nếp cuộn 1×1. Sự sắp xếp này làm giảm đáng kể số lượng tham số liên quan.

Độ chính xác hàng đầu trong bộ dữ liệu ImageNet liên quan đến số lượng tích lũy nhân (MAC). ( Nguồn)

Cắt tỉa và cắt ngắn nơ ron

Một số lượng lớn tế bào thần kinh trong các mạng được đào tạo là  lành tính  và không đóng góp cho độ chính xác cuối cùng. Trong trường hợp này, chúng ta có thể  cắt tỉa  các nơ-ron như vậy để tiết kiệm không gian. Google  Learn2Compress  đã phát hiện ra rằng chúng tôi có thể giảm kích thước  theo hệ số 2 , trong khi vẫn giữ được 97% độ chính xác. Hơn nữa, hầu hết các tham số mạng thần kinh là các giá trị float 32 bit. Mặt khác, các thiết bị biên (edge) có thể được thiết kế để hoạt động trên các giá trị 8 bit hoặc ít hơn. Giảm độ chính xác có thể làm giảm đáng kể kích thước mô hình. Ví dụ, giảm một  mô hình 32 bit  để  mô hình 8 bit  lý tưởng làm giảm kích thước mô hình bởi một  yếu tố của 4 .

Cô đọng mạng nơ ron

Cô đọng là quá trình giảng dạy các mạng nhỏ hơn bằng cách sử dụng mạng giáo viên giáo dục lớn hơn. Google  Learn2Compress  kết hợp điều này trong quy trình giảm kích thước của họ. Kết hợp với học chuyển, đây trở thành một phương pháp mạnh mẽ để giảm kích thước mô hình mà không mất nhiều độ chính xác.

Phương pháp đào tạo và chưng cất chung để học các mô hình sinh viên nhỏ gọn. ( Nguồn )
 

Thiết kế bộ vi xử lý được tối ưu hóa

Cho đến nay chúng tôi đã thảo luận về cách thu nhỏ mạng lưới thần kinh để phù hợp với các thiết bị biên (edge) của chúng tôi. Một phương pháp thay thế (hoặc bổ sung) sẽ là tăng quy mô hiệu suất của bộ vi xử lý.

Giải pháp đơn giản nhất là có GPU trên bộ vi xử lý, chẳng hạn như Nvidia Jetson nổi tiếng  . Tuy nhiên, các thiết bị này có thể không hiệu quả về chi phí khi được triển khai trên quy mô lớn.

Nvidia Jetson
Một giải pháp thú vị hơn là sử dụng Bộ xử lý Tầm nhìn (VPU). Intel tuyên bố rằng các VPU Movidius của họ có hiệu suất tốc độ cao với mức tiêu thụ năng lượng cực thấp. Bộ dụng cụ AIY của Google và  Cây điện toán thần kinh   của Intel  sử dụng VPU này.

Vision Bonnet của Google AIY sử dụng VPU Movidius. 
 

Ngoài ra, chúng ta có thể sử dụng các GPU. Chúng có mức tiêu thụ năng lượng thấp hơn GPU và có thể chứa các kiến ​​trúc bit thấp hơn (<32 bit). Tuy nhiên, hiệu suất có thể giảm nhẹ so với GPU do xếp hạng FLOP thấp hơn.

Để triển khai quy mô lớn, ASIC tùy chỉnh sẽ là giải pháp tốt nhất. Chế tạo các kiến ​​trúc vi mô tương tự như V100 của Nvidia để tăng tốc nhân ma trận có thể giúp tăng hiệu suất rất nhiều.

Kiến trúc Pascal vs Volta; Nvidia. 

Đăng ký để nhận ebook
Đăng ký để nhận ebook "Ứng dụng IoT" từ chúng tôi.
Đăng ký để được nhận ebook "The Technical Foundations of IoT" và "Building Arduino Projects for the Internet of Things ".