Helpex - Trao đổi & giúp đỡ Đăng nhập

Khám phá các mô hình học sâu để nén và tăng tốc

Dương Duy Cẩn
· 17:00 16/09/2018
09:11:45 15/06/2021

1. Nén và tăng tốc với các mô hình học sâu

Khi quy mô của mạng học sâu tăng lên, độ phức tạp của tính toán cũng tăng lên tương ứng, điều này hạn chế nghiêm trọng ứng dụng của nó đối với các thiết bị thông minh như điện thoại di động. Ví dụ, việc sử dụng các mô hình mạng phức tạp quy mô lớn như VGGNet và mạng dư trên một thiết bị đầu cuối là không thực tế.

Khám phá các mô hình học sâu để nén và tăng tốc

Do đó, chúng ta cần một mô hình học sâu để thực hiện nén và tăng tốc. Chúng tôi đã mô tả hai thuật toán nén chính bên dưới.

1.1 Mạng Neural Bit Cực thấp

Mô hình Low Bit đề cập đến việc nén các trọng lượng liên tiếp thành các trọng lượng rời rạc có độ chính xác thấp. Như chúng ta đã trình bày trong hình bên dưới, các tham số của mạng nơ-ron học sâu ban đầu là các biến float và cần không gian lưu trữ 32 bit. Nếu chúng ta chuyển đổi chúng thành một trạng thái chỉ có ba giá trị (0, +1, -1), thì bộ nhớ chỉ chiếm 2 bit, nén đáng kể không gian lưu trữ và đồng thời tránh được các phép toán nhân. Chỉ có bit ký hiệu thay đổi đối với các phép tính cộng và trừ, do đó làm tăng tốc độ tính toán.

Khám phá các mô hình học sâu để nén và tăng tốc

Đây là một bài viết tham khảo về mô hình Low Bit - Mạng Neural Bit Cực thấp: Bóp hết bit cuối cùng với ADMM .

Tiếp theo, chúng ta sẽ sử dụng mạng nhị phân làm ví dụ để giải thích quá trình nén ở trên. Đầu tiên, giả sử rằng chức năng được tối ưu hóa của mạng nơ-ron ban đầu là f (w) và điều kiện giới hạn là các tham số của mạng học sâu bị ràng buộc trong phạm vi C. Nếu C là (-1, 1) thì mạng là một mạng nhị phân, như sau:

Khám phá các mô hình học sâu để nén và tăng tốc

Ở đây, chúng tôi sẽ giới thiệu một ADLM (Phương pháp định hướng thay thế của bội số) giải quyết tối ưu hóa phân tán và tối ưu hóa ràng buộc để giải quyết các vấn đề tối ưu hóa ràng buộc không lồi rời rạc ở trên. Nó có dạng sau:

Khám phá các mô hình học sâu để nén và tăng tốc

Chúng ta sẽ sử dụng ADMM để giải quyết khi hàm mục tiêu là f (x) + g (z), và trong đó điều kiện ràng buộc là tối ưu hóa Ax + Bz = c. Đầu tiên, viết hàm Augmented Lagrangian, sau đó chuyển đổi vấn đề trên bằng cách giải xyz:

Khám phá các mô hình học sâu để nén và tăng tốc

Tức là, giá trị nhỏ nhất của xz được giải quyết đầu tiên, và sau đó giá trị cập nhật của y sẽ nhận được tương ứng. Trên đây là giải pháp chuẩn ADMM. Tiếp theo, hãy xem làm thế nào chúng ta có thể chuyển đổi vấn đề Mạng nơron bit thấp thành vấn đề ADMM. Đầu tiên, chúng ta cần giới thiệu hàm chỉ báo, có dạng như sau:

Khám phá các mô hình học sâu để nén và tăng tốc

Ở đây, hàm mục tiêu của mạng nơron nhị phân tương đương với tổng của hàm mục tiêu được tối ưu hóa và hàm chỉ báo.

Khám phá các mô hình học sâu để nén và tăng tốc

Điều này có nghĩa là khi hàm chỉ báo thuộc C, mục tiêu tối ưu hóa bằng mục tiêu khởi tạo. Khi hàm hiện tại không thuộc C, thì hàm chỉ báo là dương vô cùng, và hàm chỉ báo sẽ được tối ưu hóa trước.

Sau đó, chúng ta cần đưa ra một biện pháp hạn chế nhất quán. Ở đây chúng tôi giới thiệu biến G và ràng buộc W = G, vì vậy hàm mục tiêu tương đương với:

Khám phá các mô hình học sâu để nén và tăng tốc

Sau khi thêm biến trợ giúp này, chúng ta có thể chuyển đổi vấn đề tối ưu hóa của mạng nơron nhị phân thành vấn đề của tiêu chuẩn ADMM. Tiếp theo, chúng tôi viết công thức cho Augmented Langrangian và sử dụng thuật toán ADMM để đạt được mục tiêu tối ưu hóa, như chúng tôi đã mô tả bên dưới:

Khám phá các mô hình học sâu để nén và tăng tốc

Ngoài mạng nhị phân được mô tả ở trên, còn có các không gian tham số phổ biến sau:

Khám phá các mô hình học sâu để nén và tăng tốc

Sau khi thêm 2, 4 và 8 dưới dạng các giá trị trong không gian tham số, vẫn không cần phép nhân. Thay vào đó, chúng ta chỉ cần các hoạt động thay đổi. Do đó, điều này thay thế tất cả các phép toán nhân trong mạng nơ-ron bằng các phép toán dịch chuyển và cộng.

Chúng tôi đã hiển thị kết quả tối ưu hóa cuối cùng sau khi áp dụng mô hình Bit thấp ở trên cho ImageNet để phân loại trong bảng sau:

Khám phá các mô hình học sâu để nén và tăng tốc

Bảng 1 cho thấy kết quả ứng dụng của thuật toán trong AlexNet và VGG-16. Bạn sẽ thấy rằng thuật toán trong mạng nhị phân và mạng ba bậc tốt hơn so với trong phạm vi ban đầu. Hơn nữa, kết quả phân loại trong mạng ba bậc gần như không bị mất khi so sánh với kết quả từ phân loại chính xác đầy đủ. Bảng 2 cho thấy ứng dụng của thuật toán trong ResNet-18 và ResNet-50. Kết quả tương tự như trong Bảng 1.

Về mặt phát hiện, thuật toán vẫn có tính khả dụng cao như bạn có thể thấy trong bảng sau:

Khám phá các mô hình học sâu để nén và tăng tốc

Chúng tôi lấy dữ liệu cho thí nghiệm này từ Pascal VOC 2007. Theo dữ liệu trong bảng trên, độ chính xác của kết quả phát hiện trong không gian ba giá trị hầu như không đáng kể so với không gian tham số chính xác đầy đủ.

1.2 Mạng cực kỳ thưa thớt

Mạng nơron thưa phù hợp với trường hợp hầu hết các tham số trong mạng bằng không. Chúng ta có thể đơn giản hóa các tham số lưu trữ bằng cách sử dụng một thuật toán nén đơn giản, chẳng hạn như mã hóa độ dài lần chạy, để giảm đáng kể không gian lưu trữ tham số. Vì chúng ta không thể liên quan đến số 0 trong tính toán, một lượng lớn không gian tính toán được tiết kiệm, điều này làm tăng đáng kể tốc độ tính toán. Trong các mạng thưa thớt, mục tiêu tối ưu hóa vẫn giống như trên, nhưng các hạn chế được thay đổi như sau:

Khám phá các mô hình học sâu để nén và tăng tốc

Chúng ta có thể thu được gradient giảm cho f (w) và sử dụng nó trong các lần lặp liên tiếp. Trong mỗi lần lặp, chúng ta sẽ thực hiện lược bớt kết nối theo tiêu chuẩn là thông số W càng nhỏ thì càng ít quan trọng. Khi chúng ta thay đổi các thông số nhỏ thành 0, chúng ta có thể duy trì sự thưa thớt.

Khám phá các mô hình học sâu để nén và tăng tốc

Tuy nhiên, có một vấn đề rõ ràng với giải pháp trên, như chúng tôi đã mô tả trong hình sau:

Khám phá các mô hình học sâu để nén và tăng tốc

W1 gần 0 hơn w2; tuy nhiên, nếu w1 được đặt thành 0, thì sự mất mát của hàm sẽ cao hơn. Do đó, khi xác định tầm quan trọng của w phải xem xét đồng thời kích thước và độ dốc. Bạn chỉ có thể đặt nó về 0 nếu giá trị của w và độ dốc đều thấp. Dựa trên các tiêu chí trên, chúng tôi đã tiến hành một thử nghiệm hiếm hoi trên Alexnet và GoogleNet, như chúng tôi đã trình bày bên dưới:

Khám phá các mô hình học sâu để nén và tăng tốc

Chúng ta có thể thấy từ hình ảnh trên rằng cho dù đó là một mạng chập thuần túy hay nó nằm trong một mạng lớp được kết nối đầy đủ, nó có thể đạt tới 90%.

1.3 So sánh các kết quả thử nghiệm

Chúng tôi đã mô tả các phương pháp lượng tử hóa và thưa thớt ở trên. Trong thử nghiệm 1, chúng tôi đã áp dụng hai phương pháp cho Alexnet cùng một lúc. Kết quả như sau:

Khám phá các mô hình học sâu để nén và tăng tốc

Chúng ta có thể thấy từ hình ảnh trên rằng ở 3 bit, khi độ thưa thớt từ 90% trở lên, sự mất độ chính xác gần như không đáng kể, với tốc độ nén hơn 82 lần.

Trong thử nghiệm 2, chúng tôi đã áp dụng cả hai phương pháp cho ImageNet và Pascal VOC. Trong số đó, P thưa và Q định lượng. Từ kết quả trong hình, chúng ta có thể thấy rằng sự mất độ chính xác của quá trình thử nghiệm là tối thiểu và tốc độ suy luận trong ImageNet đã được cải thiện đáng kể. Pascal VOC có thể đạt độ thưa 88,7%, được định lượng bằng 3 bit với tỷ lệ nén 40 lần. Đây chỉ là mức giảm một điểm so với mAP mạng chính xác đầy đủ.

Khám phá các mô hình học sâu để nén và tăng tốc


2. Nền tảng đào tạo

Chúng tôi thành lập nền tảng đào tạo Gauss dựa trên hai phương pháp trên. Nền tảng đào tạo Gauss hiện hỗ trợ một số loại nhiệm vụ đào tạo phổ biến (như nhận dạng khuôn mặt, OCR, phân loại và giám sát) và các mô hình (như CNN và LSTM). Nó cũng hỗ trợ đào tạo nhiều máy và chúng ta có thể thiết lập nó với số lượng thông số nhỏ nhất có thể, giảm bớt công sức của người dùng.

Khám phá các mô hình học sâu để nén và tăng tốc

Đồng thời, nền tảng đào tạo Gauss cũng hỗ trợ hai loại công cụ đào tạo mô hình: Phụ thuộc vào dữ liệu và Không phụ thuộc vào dữ liệu. Các công cụ đào tạo mô hình phụ thuộc vào dữ liệu yêu cầu người dùng cung cấp dữ liệu đào tạo. Thời gian đào tạo dài hơn và phù hợp với các tình huống yêu cầu độ nén và tăng tốc. Các công cụ đào tạo độc lập với dữ liệu không yêu cầu dữ liệu đào tạo do người dùng cung cấp và có tính năng xử lý một cú nhấp chuột và xử lý cấp thứ hai.

3. Công cụ suy luận chuyển tiếp hiệu quả cao

Ngay cả sau khi nền tảng đào tạo được thiết lập, việc sử dụng thực tế mô hình vẫn yêu cầu các công cụ suy luận chuyển tiếp hiệu quả. Chúng tôi có thể triển khai các công cụ tính toán ma trận bit thấp một cách nhanh chóng bằng cách sử dụng các công cụ tính toán ma trận có độ chính xác thấp như AliNN và BNN. Sau khi triển khai, công cụ lập luận nhanh hơn 2-5 lần so với các sản phẩm cạnh tranh trên nền tảng ARM và nhanh hơn ba lần trên nền tảng Intel.

Khám phá các mô hình học sâu để nén và tăng tốc

1 hữu ích 0 bình luận 3.6k xem chia sẻ

Có thể bạn quan tâm