Mô hình và nền tảng AI
EfficientViT: Bộ chuyển đổi tầm nhìn hiệu quả về bộ nhớ cho tầm nhìn máy tính có độ phân giải cao

Do khả năng mô hình cao, các mô hình Transformer thị giác đã đạt được nhiều thành công trong thời gian gần đây. Mặc dù hiệu suất của chúng, các mô hình transformer thị giác có một khiếm khuyết lớn: khả năng tính toán đáng kể của chúng đi kèm với chi phí tính toán cao, và đó là lý do tại sao các transformer thị giác không phải là lựa chọn đầu tiên cho các ứng dụng thời gian thực. Để giải quyết vấn đề này, một nhóm các nhà phát triển đã ra mắt EfficientViT, một họ các transformer thị giác tốc độ cao.
Khi làm việc trên EfficientViT, các nhà phát triển đã quan sát thấy rằng tốc độ của các mô hình bộ chuyển đổi hiện tại thường bị giới hạn bởi các hoạt động truy cập bộ nhớ không hiệu quả, đặc biệt là các hàm phần tử và biến đổi tensor trong mạng Tự chú ý đa đầu. Để giải quyết các hoạt động truy cập bộ nhớ không hiệu quả này, các nhà phát triển EfficientViT đã làm việc trên một khối xây dựng mới sử dụng bố cục sandwich, tức là mô hình EfficientViT sử dụng một mạng Tự chú ý đa đầu bị ràng buộc bởi bộ nhớ giữa các lớp mạng truyền thẳng hiệu quả, giúp cải thiện hiệu quả bộ nhớ và cũng tăng cường giao tiếp kênh tổng thể. Mô hình còn nhận thấy các bản đồ chú ý giữa các đầu thường rất giống nhau, gây tính toán dư thừa. Để giải quyết vấn đề này, EfficientViT đưa ra mô-đun chú ý nhóm nối tầng (CGA), cung cấp cho mỗi đầu chú ý một phần khác nhau của toàn bộ đặc trưng. Cách này vừa giảm chi phí tính toán vừa tăng tính đa dạng của chú ý.
Các thí nghiệm toàn diện được thực hiện trên mô hình EfficientViT trên các kịch bản khác nhau cho thấy rằng EfficientViT vượt trội so với các mô hình hiệu quả hiện có cho thị giác máy tính trong khi đạt được sự cân bằng tốt giữa độ chính xác và tốc độ. Vì vậy, hãy cùng tìm hiểu sâu hơn về mô hình EfficientViT.
Giới thiệu về Transformer thị giác và EfficientViT
Transformer thị giác vẫn là một trong những khuôn khổ phổ biến nhất trong ngành thị giác máy tính vì chúng cung cấp hiệu suất vượt trội và khả năng tính toán cao. Tuy nhiên, với độ chính xác và hiệu suất ngày càng cải thiện của các mô hình transformer thị giác, chi phí hoạt động và chi phí tính toán cũng tăng lên. Ví dụ, các mô hình hiện tại được biết đến với hiệu suất tốt nhất trên các tập dữ liệu ImageNet như SwinV2 và V-MoE sử dụng 3B và 14,7B tham số tương ứng. Quy mô lớn cùng chi phí và yêu cầu tính toán khiến các mô hình này hầu như không phù hợp với thiết bị và ứng dụng thời gian thực.
Mô hình EfficientViT nhằm khám phá cách cải thiện hiệu suất của các mô hình transformer thị giác và tìm ra các nguyên tắc đằng sau việc thiết kế các kiến trúc khuôn khổ bộ chuyển đổi dựa trên hiệu quả. Mô hình EfficientViT dựa trên các khuôn khổ transformer thị giác hiện có như Swin và DeiT, và nó phân tích ba yếu tố thiết yếu ảnh hưởng đến tốc độ suy luận của mô hình, bao gồm tính toán thừa, truy cập bộ nhớ và sử dụng tham số. Tốc độ của các mô hình transformer thị giác bị giới hạn bởi bộ nhớ: độ trễ truy cập bộ nhớ hạn chế khả năng khai thác đầy đủ sức mạnh tính toán của CPU/GPU và làm giảm tốc độ chạy. Các phép toán theo từng phần tử và thao tác định hình lại tensor trong MHSA là những thao tác kém hiệu quả bộ nhớ nhất. Điều chỉnh tối ưu tỷ lệ giữa mạng truyền thẳng (FFN) và MHSA có thể giảm đáng kể thời gian truy cập bộ nhớ mà không ảnh hưởng đến hiệu năng. Các bản đồ chú ý cũng có tính dư thừa vì nhiều đầu có xu hướng học những phép chiếu tuyến tính tương tự nhau.
Mô hình là một kết quả cuối cùng của các phát hiện trong quá trình nghiên cứu cho EfficientViT. Mô hình này có một khối xây dựng mới với bố cục sandwich áp dụng một lớp tự chú ý đa đầu bị ràng buộc bởi bộ nhớ giữa các lớp mạng truyền thẳng, giúp giảm thời gian thực hiện các hoạt động truy cập bộ nhớ và cho phép giao tiếp hiệu quả giữa các kênh khác nhau trong mạng. Mô-đun CGA mới giúp giảm tính toán dư thừa giữa các đầu chú ý, đồng thời tăng độ sâu của mạng và nâng cao năng lực mô hình. Cuối cùng, mô hình mở rộng số kênh của các thành phần quan trọng, như phép chiếu giá trị, và thu hẹp các thành phần ít quan trọng hơn, như số chiều ẩn trong FFN, để phân bổ lại tham số.

Như có thể thấy trong hình ảnh trên, khuôn khổ EfficientViT thực hiện tốt hơn so với các mô hình CNN và ViT hiện tại về cả độ chính xác và tốc độ. Nhưng làm thế nào mà khuôn khổ EfficientViT quản lý để vượt trội so với một số khuôn khổ hiện tại?
EfficientViT: Cải thiện hiệu quả của Transformer thị giác
Mô hình EfficientViT nhằm cải thiện hiệu quả của các mô hình transformer thị giác hiện có từ ba góc độ:
- Tính toán thừa.
- Truy cập bộ nhớ.
- Sử dụng tham số.
Mô hình này nhằm tìm ra cách các tham số trên ảnh hưởng đến hiệu quả của các mô hình transformer thị giác và cách giải quyết chúng để đạt được kết quả tốt hơn với hiệu quả tốt hơn.
Truy cập bộ nhớ và hiệu quả
Một yếu tố quan trọng ảnh hưởng đến tốc độ mô hình là chi phí truy cập bộ nhớ (MAO). Như hình dưới đây cho thấy, các phép cộng theo từng phần tử, chuẩn hóa và định hình lại tensor thường xuyên trong transformer đều kém hiệu quả bộ nhớ: chúng phải truy cập nhiều đơn vị bộ nhớ khác nhau, một quá trình tốn thời gian.

Mặc dù có một số phương pháp hiện có có thể đơn giản hóa các tính toán tự chú ý softmax tiêu chuẩn như xấp xỉ hạng thấp, và chú ý thưa thớt, chúng thường cung cấp gia tốc hạn chế và làm giảm độ chính xác.
Mặt khác, khuôn khổ EfficientViT nhằm giảm chi phí truy cập bộ nhớ bằng cách giảm số lượng lớp kém hiệu quả bộ nhớ trong mô hình. DeiT-T và Swin-T được thu nhỏ thành các mạng con có thông lượng suy luận cao hơn lần lượt 1,25 và 1,5 lần; hiệu năng của chúng được so sánh theo tỷ lệ các lớp MHSA. Hình dưới minh họa tác động của cách bố trí này. Theo phần mô tả trong bài gốc, mức cải thiện được nêu là khoảng 20–40%.

Hiệu quả tính toán
Các lớp MHSA có xu hướng nhúng chuỗi đầu vào vào nhiều không gian con hoặc đầu, và tính toán các bản đồ chú ý riêng lẻ, một cách tiếp cận được biết đến với việc tăng cường hiệu suất. Tuy nhiên, việc tính toán bản đồ chú ý không rẻ. EfficientViT nghiên cứu cách giảm chú ý dư thừa trong các ViT nhỏ. Mô hình đo độ tương đồng cosine tối đa giữa mỗi đầu và các đầu còn lại trong từng khối, bằng cách huấn luyện DeiT-T và Swin-T thu hẹp chiều rộng để tăng tốc suy luận 1,25 lần. Hình dưới cho thấy độ tương đồng giữa các đầu rất cao: nhiều đầu học các phép chiếu tương tự trên cùng toàn bộ đặc trưng, dẫn đến tính toán dư thừa.

Để khuyến khích các đầu học các mẫu khác nhau, mô hình áp dụng một giải pháp trực quan trong đó mỗi đầu chỉ được cung cấp một phần của tính năng đầy đủ, một kỹ thuật tương tự tích chập nhóm. Nghiên cứu huấn luyện các biến thể mô hình thu nhỏ với các lớp MHSA đã được sửa đổi.
Hiệu quả tham số
Các mô hình ViT trung bình kế thừa các chiến lược thiết kế như sử dụng chiều rộng tương đương cho các phép chiếu, đặt tỷ lệ mở rộng lên 4 trong FFN, và tăng số đầu qua các giai đoạn từ transformer dùng cho NLP. Cần thiết kế lại cẩn thận các cấu hình này cho mô-đun gọn nhẹ. EfficientViT sử dụng cắt tỉa có cấu trúc theo phương pháp Taylor để tự động xác định các thành phần thiết yếu trong Swin-T và DeiT-T, đồng thời nghiên cứu nguyên tắc phân bổ tham số. Với nguồn lực giới hạn, phương pháp loại bỏ các kênh không quan trọng và giữ lại các kênh thiết yếu nhằm duy trì độ chính xác cao nhất có thể. Hình dưới so sánh tỷ lệ số kênh so với embedding đầu vào trước và sau cắt tỉa trong Swin-T: độ chính xác ban đầu là 79,1%, sau cắt tỉa là 76,5%.

Hình ảnh trên cho thấy rằng hai giai đoạn đầu tiên của khuôn khổ bảo tồn nhiều chiều hơn, trong khi hai giai đoạn cuối cùng giữ lại ít chiều hơn đáng kể. Điều đó cho thấy cấu hình thông thường — tăng gấp đôi số kênh sau mỗi giai đoạn hoặc dùng cùng số kênh cho mọi khối — có thể gây dư thừa lớn ở các khối cuối.
Transformer thị giác hiệu quả: Kiến trúc
Dựa trên các phát hiện trong phân tích trên, các nhà phát triển đã làm việc trên một mô hình phân cấp mới cung cấp tốc độ suy luận nhanh, mô hình EfficientViT.
Các khối xây dựng của khuôn khổ EfficientViT
Khối xây dựng cho mạng transformer thị giác hiệu quả hơn được minh họa trong hình dưới.

Khuôn khổ này bao gồm một mô-đun chú ý nhóm tầng, bố cục sandwich hiệu quả về bộ nhớ, và một chiến lược phân bổ lại tham số tập trung vào việc cải thiện hiệu quả của mô hình về tính toán, bộ nhớ và tham số.
Bố cục sandwich
Mô hình sử dụng bố cục sandwich mới để xây dựng khối có hiệu quả bộ nhớ tốt hơn. Bố cục này dùng ít lớp tự chú ý bị giới hạn bởi bộ nhớ và nhiều mạng truyền thẳng hiệu quả bộ nhớ hơn để trao đổi giữa các kênh. Cụ thể, một lớp tự chú ý thực hiện trộn thông tin không gian được đặt giữa các lớp FFN. Thiết kế vừa giảm thời gian truy cập bộ nhớ của tự chú ý vừa giúp các kênh trao đổi hiệu quả thông qua FFN. Trước mỗi lớp FFN, mô hình còn thêm lớp tương tác giữa các token bằng tích chập theo chiều sâu (DWConv), đưa thiên kiến quy nạp về cấu trúc cục bộ vào mô hình để nâng cao năng lực.
Chú ý nhóm nối tầng
Một vấn đề chính của MHSA là tính dư thừa giữa các đầu chú ý, gây lãng phí tính toán. EfficientViT đề xuất CGA, mô-đun chú ý nhóm nối tầng lấy cảm hứng từ tích chập nhóm trong các CNN hiệu quả. Mỗi đầu nhận một phần của toàn bộ đặc trưng, nhờ đó phép tính chú ý được phân chia rõ ràng giữa các đầu. Việc chia đặc trưng thay vì cấp toàn bộ đặc trưng cho mọi đầu giúp tiết kiệm tính toán. Mô hình tiếp tục tăng độ chính xác và năng lực bằng cách khuyến khích các lớp học phép chiếu trên các đặc trưng giàu thông tin hơn.

Phân bổ lại tham số
Để tăng hiệu quả sử dụng tham số, mô hình mở rộng số kênh của các mô-đun quan trọng và thu hẹp số kênh của các mô-đun ít quan trọng hơn. Dựa trên phân tích Taylor, mô hình đặt số chiều kênh nhỏ cho các phép chiếu trong từng đầu ở mỗi giai đoạn, hoặc cho phép các phép chiếu có cùng số chiều với đầu vào. Tỷ lệ mở rộng của FFN cũng giảm từ 4 xuống 2 để hạn chế dư thừa tham số. Chiến lược này dành nhiều kênh hơn cho các mô-đun quan trọng, giúp chúng học biểu diễn trong không gian nhiều chiều và giảm mất thông tin đặc trưng. Mô hình tự động loại bỏ tham số dư thừa ở các mô-đun không quan trọng để tăng tốc suy luận và cải thiện hiệu quả.

Tổng quan về khuôn khổ EfficientViT có thể được giải thích trong hình ảnh trên, nơi các phần:
- Kiến trúc của EfficientViT,
- Khối bố cục sandwich,
- Chú ý nhóm nối tầng.
EfficientViT: Kiến trúc mạng

Hình trên tóm tắt kiến trúc mạng EfficientViT. Mô hình dùng embedding các mảnh ảnh chồng lấn [20,80], ánh xạ mảnh 16×16 thành token có số chiều C1 để cải thiện việc học biểu diễn thị giác cấp thấp. Kiến trúc gồm ba giai đoạn, mỗi giai đoạn xếp chồng các khối được đề xuất. Tại mỗi lớp lấy mẫu giảm, độ phân giải giảm 2 lần và số token giảm 4 lần. Khối lấy mẫu giảm cũng dùng bố cục sandwich, nhưng thay lớp chú ý bằng khối phần dư đảo để giảm mất thông tin khi lấy mẫu. Thay vì LayerNorm (LN), mô hình sử dụng BatchNorm (BN), vì BN có thể được gộp vào lớp tuyến tính hoặc tích chập đứng trước, mang lại lợi thế về thời gian chạy.
Họ mô hình EfficientViT
Họ mô hình EfficientViT bao gồm 6 mô hình với các quy mô độ sâu và chiều rộng khác nhau, và một số lượng đầu nhất định được phân bổ cho mỗi giai đoạn. Các giai đoạn đầu dùng ít khối hơn các giai đoạn cuối, tương tự MobileNetV3, vì xử lý độ phân giải lớn ở đầu mạng tốn thời gian. Chiều rộng tăng với hệ số nhỏ qua các giai đoạn để hạn chế dư thừa về cuối. Trong bảng dưới, C, L và H lần lượt là chiều rộng, độ sâu và số đầu của từng giai đoạn.

EfficientViT: Triển khai mô hình và kết quả
Mô hình EfficientViT có kích thước lô tổng thể là 2.048, được xây dựng với Timm và PyTorch, được đào tạo từ đầu cho 300 epoch sử dụng 8 GPU Nvidia V100, sử dụng lịch trình học cosine, bộ tối ưu hóa AdamW, và thực hiện thí nghiệm phân loại hình ảnh trên ImageNet-1K. Ảnh đầu vào được cắt ngẫu nhiên và đổi kích thước thành 224×224. Với các tác vụ phân loại ảnh phía sau, mô hình được tinh chỉnh trong 300 epoch bằng AdamW với kích thước lô 256. Đối với phát hiện đối tượng trên COCO, mô hình dùng RetinaNet và được huấn luyện thêm 12 epoch với cùng thiết lập.
Kết quả trên ImageNet
Để phân tích hiệu suất của EfficientViT, nó được so sánh với các mô hình ViT và CNN hiện tại trên tập dữ liệu ImageNet. Hình dưới trình bày kết quả: họ EfficientViT vượt các mô hình hiện có trong phần lớn trường hợp và đạt sự cân bằng tốt giữa tốc độ và độ chính xác.

So sánh với CNN hiệu quả và ViT hiệu quả
Mô hình đầu tiên so sánh hiệu suất của nó với các CNN hiệu quả như EfficientNet và các CNN thông thường như MobileNet. So với MobileNet, EfficientViT đạt độ chính xác top-1 tốt hơn, đồng thời chạy nhanh hơn 3,0 lần trên CPU Intel và 2,5 lần trên GPU V100.

Hình ảnh trên so sánh hiệu suất của mô hình EfficientViT với các mô hình ViT lớn hiện tại trên tập dữ liệu ImageNet-1K.
Phân loại hình ảnh hạ lưu
Mô hình EfficientViT được áp dụng cho các nhiệm vụ hạ lưu khác nhau để nghiên cứu khả năng học chuyển của mô hình, và hình dưới tóm tắt kết quả. EfficientViT-M5 đạt kết quả tốt hơn hoặc tương đương trên mọi tập dữ liệu trong khi duy trì thông lượng cao hơn nhiều. Ngoại lệ là tập Cars, nơi độ chính xác của EfficientViT chưa đạt yêu cầu.

Phát hiện đối tượng
Để phân tích khả năng phát hiện đối tượng của EfficientViT, nó được so sánh với các mô hình hiệu quả trên nhiệm vụ phát hiện đối tượng trên COCO.

Suy nghĩ cuối cùng
Trong bài viết này, chúng ta đã thảo luận về EfficientViT, một họ các mô hình transformer thị giác tốc độ cao sử dụng chú ý nhóm nối tầng và các thao tác hiệu quả bộ nhớ. Những thí nghiệm đánh giá toàn diện cho kết quả đầy hứa hẹn: EfficientViT vượt các CNN và transformer thị giác hiện có trong phần lớn trường hợp. Bài viết cũng phân tích các yếu tố ảnh hưởng đến tốc độ suy luận của transformer thị giác.












