Kecerdasan buatan

EfficientViT: Vision Transformer yang Efisien dalam Menggunakan Memori untuk Penglihatan Komputer Beresolusi Tinggi

mm

Model Vision Transformer telah menikmati kesuksesan besar dalam beberapa waktu terakhir karena kapasitas model yang tinggi. Meskipun performa mereka, model vision transformer memiliki satu kelemahan besar: kemampuan komputasi yang luar biasa datang dengan biaya komputasi yang tinggi, dan itulah alasan mengapa vision transformer tidak menjadi pilihan pertama untuk aplikasi waktu nyata. Untuk mengatasi masalah ini, sekelompok pengembang meluncurkan EfficientViT, sebuah keluarga vision transformer berkecepatan tinggi.

Ketika bekerja pada EfficientViT, pengembang mengamati bahwa kecepatan model transformer saat ini sering dibatasi oleh operasi memori yang tidak efisien, terutama fungsi element-wise dan perubahan bentuk tensor dalam jaringan Self Attention Multi-Head. Untuk mengatasi operasi memori yang tidak efisien ini, pengembang EfficientViT bekerja pada sebuah blok bangunan baru menggunakan tata letak sandwich, yaitu model EfficientViT menggunakan satu lapisan Self Attention Multi-Head yang terikat memori antara lapisan jaringan feed forward yang efisien yang membantu meningkatkan efisiensi memori, dan juga meningkatkan komunikasi saluran secara keseluruhan. Selain itu, model juga menemukan bahwa peta perhatian sering memiliki kesamaan tinggi di seluruh kepala yang menyebabkan redundansi komputasi. Untuk mengatasi masalah redundansi, model EfficientViT memperkenalkan modul Perhatian Grup Berkaskade yang memberi makan kepala perhatian dengan split fitur lengkap yang berbeda. Metode ini tidak hanya membantu menghemat biaya komputasi, tetapi juga meningkatkan keragaman perhatian model.

Eksperimen komprehensif yang dilakukan pada model EfficientViT di berbagai skenario menunjukkan bahwa EfficientViT outperforms model efisien yang ada untuk penglihatan komputer sambil mencapai keseimbangan yang baik antara akurasi dan kecepatan. Jadi, mari kita lihat lebih dalam dan menjelajahi model EfficientViT dengan lebih detail.

Pengenalan Vision Transformer dan EfficientViT

Vision Transformer tetap menjadi salah satu kerangka kerja paling populer di industri penglihatan komputer karena menawarkan kinerja yang unggul dan kemampuan komputasi yang tinggi. Namun, dengan meningkatnya akurasi dan kinerja model vision transformer, biaya operasional dan overhead komputasi juga meningkat. Misalnya, model saat ini yang dikenal memberikan kinerja terbaik pada dataset ImageNet seperti SwinV2 dan V-MoE menggunakan 3B dan 14,7B parameter masing-masing. Ukuran model yang besar ini, dikombinasikan dengan biaya komputasi dan persyaratan, membuatnya tidak cocok untuk perangkat dan aplikasi waktu nyata.

Model EfficientNet bertujuan untuk mengeksplorasi bagaimana meningkatkan kinerja model vision transformer dan menemukan prinsip-prinsip yang terlibat dalam merancang arsitektur framework transformer yang efisien dan efektif. Model EfficientViT didasarkan pada framework vision transformer yang ada seperti Swim dan DeiT, dan menganalisis tiga faktor esensial yang mempengaruhi kecepatan interferensi model, termasuk redundansi komputasi, akses memori, dan penggunaan parameter. Selain itu, model mengamati bahwa kecepatan model vision transformer dibatasi oleh akses memori, yang berarti bahwa pemanfaatan daya komputasi penuh dalam CPU/GPU dibatasi oleh keterlambatan akses memori, yang berdampak negatif pada kecepatan runtime transformer. Fungsi element-wise dan perubahan bentuk tensor dalam jaringan Self Attention Multi-Head adalah operasi yang paling tidak efisien dalam memori. Model juga mengamati bahwa penyesuaian rasio antara jaringan feed forward dan Self Attention dapat membantu mengurangi waktu akses memori tanpa mempengaruhi kinerja. Namun, model juga mengamati beberapa redundansi dalam peta perhatian sebagai hasil dari kecenderungan kepala perhatian untuk belajar proyeksi linier yang sama.

Model ini adalah hasil akhir dari temuan selama penelitian untuk EfficientViT. Model ini memiliki blok baru dengan tata letak sandwich yang menerapkan satu lapisan Self Attention yang terikat memori antara lapisan jaringan feed forward. Pendekatan ini tidak hanya mengurangi waktu yang dibutuhkan untuk mengeksekusi operasi yang terikat memori dalam Self Attention, tetapi juga membuat proses lebih efisien dalam memori dengan memungkinkan lebih banyak lapisan feed forward untuk memfasilitasi komunikasi antara saluran yang berbeda. Model ini juga menggunakan modul Perhatian Grup Berkaskade baru yang bertujuan untuk membuat komputasi lebih efektif dengan mengurangi redundansi komputasi tidak hanya dalam kepala perhatian, tetapi juga meningkatkan kedalaman jaringan yang menghasilkan kapasitas model yang ditingkatkan. Akhirnya, model ini memperluas lebar saluran komponen jaringan yang penting, termasuk proyeksi nilai, sambil mengurangi komponen jaringan dengan nilai rendah seperti dimensi tersembunyi dalam jaringan feed forward untuk mendistribusikan parameter dalam framework.

Seperti yang dapat dilihat pada gambar di atas, framework EfficientViT memiliki kinerja yang lebih baik daripada model CNN dan ViT saat ini dalam hal akurasi dan kecepatan. Tapi, bagaimana framework EfficientViT dapat outperform beberapa framework saat ini? Mari kita temukan.

EfficientViT: Meningkatkan Efisiensi Vision Transformer

Model EfficientViT bertujuan untuk meningkatkan efisiensi model vision transformer yang ada menggunakan tiga perspektif,

  1. Redundansi Komputasi.
  2. Akses Memori.
  3. Penggunaan Parameter.

Model ini bertujuan untuk mengetahui bagaimana parameter di atas mempengaruhi efisiensi model vision transformer dan bagaimana untuk mengatasi mereka untuk mencapai hasil yang lebih baik dengan efisiensi yang lebih baik. Mari kita bahas lebih lanjut.

Akses Memori dan Efisiensi

Salah satu faktor esensial yang mempengaruhi kecepatan model adalah akses memori overhead atau MAO. Seperti yang dapat dilihat pada gambar di bawah, beberapa operator dalam transformer termasuk penambahan element-wise, normalisasi, dan perubahan bentuk tensor yang sering terjadi adalah operasi yang tidak efisien dalam memori, karena mereka memerlukan akses ke unit memori yang berbeda yang merupakan proses yang memakan waktu.

Meskipun ada beberapa metode yang ada yang dapat menyederhanakan komputasi perhatian self softmax standar seperti aproksimasi low-rank dan perhatian yang jarang, mereka sering menawarkan percepatan yang terbatas dan mengurangi akurasi.

Di sisi lain, framework EfficientViT bertujuan untuk mengurangi biaya akses memori dengan mengurangi jumlah lapisan yang tidak efisien dalam framework. Model ini menskalakan DeiT-T dan Swin-T ke subjaringan kecil dengan throughput interferensi yang lebih tinggi sebesar 1,25X dan 1,5X, dan membandingkan kinerja subjaringan ini dengan proporsi lapisan MHSA. Seperti yang dapat dilihat pada gambar di bawah, ketika diimplementasikan, pendekatan ini meningkatkan akurasi lapisan MHSA sebesar 20-40%.

Efisiensi Komputasi

Lapisan MHSA cenderung membenamkan urutan input ke dalam beberapa subruang atau kepala, dan menghitung peta perhatian secara individual, sebuah pendekatan yang dikenal dapat meningkatkan kinerja. Namun, peta perhatian tidak murah dari segi komputasi, dan untuk mengeksplorasi biaya komputasi, model EfficientViT mengeksplorasi bagaimana mengurangi perhatian yang berlebihan dalam model ViT yang lebih kecil. Model ini mengukur kesamaan kosin maksimum dari setiap kepala dan kepala yang tersisa dalam setiap blok dengan melatih model DeiT-T dan Swim-T yang diskalakan ke bawah dengan kecepatan interferensi 1,25X. Seperti yang dapat dilihat pada gambar di bawah, ada banyak kesamaan antara kepala perhatian yang menunjukkan bahwa model mengalami redundansi komputasi karena banyak kepala cenderung belajar proyeksi yang sama dari fitur lengkap.

Untuk mendorong kepala untuk belajar pola yang berbeda, model ini secara eksplisit menerapkan solusi yang intuitif di mana setiap kepala hanya diberi sebagian dari fitur lengkap, sebuah teknik yang menyerupai ide konvolusi grup. Model ini melatih aspek yang berbeda dari model yang diskalakan ke bawah yang menampilkan lapisan MHSA yang dimodifikasi.

Efisiensi Parameter

Model ViT rata-rata mewarisi strategi desain seperti menggunakan lebar yang setara untuk proyeksi, menyetel rasio ekspansi ke 4 dalam FFN, dan meningkatkan kepala lebih dari tahap dari NLP transformer. Konfigurasi komponen ini perlu dirancang dengan hati-hati untuk modul yang ringan. Model EfficientViT menerapkan pemangkasan struktur Taylor untuk menemukan komponen yang penting dalam lapisan Swim-T dan DeiT-T secara otomatis, dan lebih lanjut mengeksplorasi prinsip-prinsip alokasi parameter yang mendasarinya. Di bawah konstrain sumber daya tertentu, metode pemangkasan ini menghapus kanal yang tidak penting dan menjaga kanal yang kritis untuk memastikan akurasi tertinggi. Gambar di bawah membandingkan rasio kanal ke embedding input sebelum dan setelah pemangkasan pada framework Swin-T. Diamati bahwa: Akurasi baseline: 79,1%; akurasi yang dipangkas: 76,5%.

Gambar di atas menunjukkan bahwa dua tahap pertama framework ini mempertahankan lebih banyak dimensi, sedangkan dua tahap terakhir mempertahankan lebih sedikit dimensi. Ini mungkin berarti bahwa konfigurasi kanal yang khas yang menggandakan kanal setelah setiap tahap atau menggunakan kanal yang setara untuk semua blok, mungkin menghasilkan redundansi yang signifikan di blok terakhir.

Efficient Vision Transformer: Arsitektur

Berdasarkan temuan yang diperoleh selama analisis di atas, pengembang bekerja pada membuat model hierarkis baru yang menawarkan kecepatan interferensi yang cepat, model EfficientViT. Mari kita lihat lebih detail pada struktur framework EfficientViT. Gambar di bawah memberikan gambaran umum tentang framework EfficientViT.

Blok Bangunan Framework EfficientViT

Blok bangunan untuk jaringan vision transformer yang lebih efisien digambarkan pada gambar di bawah.

Framework ini terdiri dari modul perhatian grup berkaskade, tata letak sandwich yang efisien dalam memori, dan strategi realokasi parameter yang fokus pada meningkatkan efisiensi model dalam hal komputasi, memori, dan parameter, masing-masing. Mari kita bahas lebih lanjut.

Tata Letak Sandwich

Model ini menggunakan tata letak sandwich baru untuk membangun blok memori yang lebih efektif dan efisien untuk framework. Tata letak sandwich menggunakan lapisan self-attention yang terikat memori yang lebih sedikit dan menggunakan jaringan feed forward yang lebih efisien dalam memori untuk komunikasi saluran. Lebih spesifik, model ini menerapkan satu lapisan self-attention untuk pencampuran spasial yang disandwichkan antara lapisan jaringan feed forward. Desain ini tidak hanya membantu mengurangi waktu konsumsi memori karena lapisan self-attention, tetapi juga memungkinkan komunikasi yang efektif antara saluran yang berbeda dalam jaringan berkat penggunaan lapisan jaringan feed forward. Model ini juga menerapkan lapisan token interaksi tambahan sebelum setiap lapisan jaringan feed forward menggunakan DWConv atau Konvolusi Menipu, dan meningkatkan kapasitas model dengan memperkenalkan bias struktural lokal.

Perhatian Grup Berkaskade

Salah satu masalah besar dengan lapisan MHSA adalah redundansi dalam kepala perhatian yang membuat komputasi menjadi tidak efisien. Untuk mengatasi masalah ini, model ini memperkenalkan Perhatian Grup Berkaskade atau CGA untuk vision transformer, sebuah modul perhatian baru yang mengambil inspirasi dari konvolusi grup dalam CNN yang efisien. Dalam pendekatan ini, model ini memberi makan kepala perhatian dengan split fitur lengkap yang berbeda, dan dengan demikian menguraikan komputasi perhatian secara eksplisit di seluruh kepala. Membagi fitur alih-alih memberi makan fitur lengkap ke setiap kepala menghemat komputasi, dan membuat proses menjadi lebih efisien, dan model ini terus bekerja pada meningkatkan akurasi dan kapasitasnya lebih lanjut dengan mendorong lapisan untuk belajar proyeksi pada fitur yang memiliki informasi yang lebih kaya.

Realokasi Parameter

Untuk meningkatkan efisiensi parameter, model ini merealokasikan parameter dalam jaringan dengan memperluas lebar kanal komponen jaringan yang penting, sementara mengurangi lebar kanal komponen yang tidak penting. Berdasarkan analisis Taylor, model ini baik menyetel dimensi kanal yang kecil untuk proyeksi dalam setiap kepala pada setiap tahap atau memungkinkan proyeksi untuk memiliki dimensi yang sama dengan input. Rasio ekspansi jaringan feed forward juga dikurangi menjadi 2 dari 4 untuk membantu mengurangi redundansi parameter. Strategi realokasi yang diusulkan oleh framework EfficientViT ini mengalokasikan lebih banyak kanal ke komponen yang penting untuk memungkinkan mereka belajar representasi dalam ruang dimensi yang lebih tinggi dengan lebih baik yang meminimalkan kehilangan informasi fitur. Selain itu, untuk mempercepat proses interferensi dan meningkatkan efisiensi model lebih lanjut, model ini secara otomatis menghapus parameter yang berlebihan dalam komponen yang tidak penting.

Gambaran framework EfficientViT dapat dilihat pada gambar di atas, di mana bagian-bagian,

  1. Arsitektur EfficientViT,
  2. Blok Tata Letak Sandwich,
  3. Perhatian Grup Berkaskade.

 

EfficientViT: Arsitektur Jaringan

Gambar di atas merangkum arsitektur jaringan framework EfficientViT. Model ini memperkenalkan embedding patch yang tumpang tindih [20,80] yang membenamkan patch 16×16 ke dalam token dimensi C1 yang meningkatkan kapasitas model untuk melakukan pembelajaran representasi visual yang lebih baik. Arsitektur model ini terdiri dari tiga tahap di mana setiap tahap menumpuk blok bangunan yang diusulkan oleh framework EfficientViT, dan jumlah token pada setiap lapisan subsampling (2× subsampling resolusi) dikurangi oleh 4X. Untuk membuat subsampling lebih efisien, model ini memperkenalkan blok subsampling yang juga memiliki tata letak sandwich yang diusulkan dengan pengecualian bahwa blok residual terbalik menggantikan lapisan perhatian untuk mengurangi kehilangan informasi selama sampling. Selain itu, alih-alih menggunakan LayerNorm (LN) konvensional, model ini menggunakan BatchNorm (BN) karena BN dapat dilipat ke dalam lapisan linear atau konvolusional sebelumnya yang memberikan keuntungan runtime daripada LN.

 

Keluarga Model EfficientViT

Keluarga model EfficientViT terdiri dari 6 model dengan skala kedalaman dan lebar yang berbeda, dan jumlah kepala yang ditetapkan untuk setiap tahap. Model ini menggunakan lebih sedikit blok pada tahap awal dibandingkan dengan tahap akhir, sebuah proses yang serupa dengan yang diikuti oleh framework MobileNetV3 karena proses pengolahan tahap awal dengan resolusi yang lebih besar memakan waktu. Lebar juga ditingkatkan melalui tahap dengan faktor kecil untuk mengurangi redundansi pada tahap akhir. Tabel yang dilampirkan di bawah memberikan detail arsitektur keluarga model EfficientViT di mana C, L, dan H mengacu pada lebar, kedalaman, dan jumlah kepala pada tahap tertentu.

EfficientViT: Implementasi Model dan Hasil

Model EfficientViT memiliki ukuran batch total 2.048, dibangun dengan Timm dan PyTorch, dilatih dari awal selama 300 epoch menggunakan 8 GPU Nvidia V100, menggunakan jadwal pembelajaran kosinus, optimizer AdamW, dan melakukan eksperimen klasifikasi gambar pada ImageNet-1K. Gambar input secara acak dipotong dan diubah ukurannya menjadi resolusi 224×224. Untuk eksperimen yang melibatkan klasifikasi gambar downstream, framework EfficientViT melakukan fine-tuning model selama 300 epoch dan menggunakan optimizer AdamW dengan ukuran batch 256. Model ini menggunakan RetineNet untuk deteksi objek pada COCO dan melanjutkan untuk melatih model selama 12 epoch dengan pengaturan yang sama.

Hasil pada ImageNet

Untuk menganalisis kinerja EfficientViT, model ini dibandingkan dengan model ViT dan CNN saat ini pada dataset ImageNet. Hasil dari perbandingan ini dilaporkan pada gambar di bawah. Seperti yang dapat dilihat, keluarga model EfficientViT outperforms framework saat ini dalam sebagian besar kasus dan mencapai keseimbangan yang ideal antara kecepatan dan akurasi.

Perbandingan dengan CNN Efisien dan ViT Efisien

Model ini pertama-tama membandingkan kinerjanya dengan CNN Efisien seperti EfficientNet dan framework CNN vanilla seperti MobileNets. Seperti yang dapat dilihat, ketika dibandingkan dengan framework MobileNet, model EfficientViT mendapatkan skor akurasi top-1 yang lebih baik, sementara berjalan 3,0X dan 2,5X lebih cepat pada CPU Intel dan GPU V100 masing-masing.

Gambar di atas membandingkan kinerja model EfficientViT dengan model ViT besar yang ada yang berjalan pada dataset ImageNet-1K.

Klasifikasi Gambar Downstream

Model EfficientViT diterapkan pada berbagai tugas downstream untuk mempelajari kemampuan pembelajaran transfer model, dan gambar di bawah merangkum hasil eksperimen. Seperti yang dapat dilihat, model EfficientViT-M5 berhasil mencapai hasil yang lebih baik atau serupa di semua dataset sambil mempertahankan throughput yang jauh lebih tinggi. Satu-satunya pengecualian adalah dataset Cars, di mana model EfficientViT gagal memberikan akurasi.

Deteksi Objek

Untuk menganalisis kemampuan deteksi objek EfficientViT, model ini dibandingkan dengan model efisien lainnya pada tugas deteksi objek COCO, dan gambar di bawah merangkum hasil perbandingan.

Pemikiran Akhir

Dalam artikel ini, kita telah membahas tentang EfficientViT, sebuah keluarga model vision transformer yang cepat yang menggunakan perhatian grup berkaskade dan operasi yang efisien dalam memori. Eksperimen komprehensif yang dilakukan untuk menganalisis kinerja EfficientViT telah menunjukkan hasil yang menjanjikan karena model EfficientViT outperforms model CNN dan vision transformer saat ini dalam sebagian besar kasus. Kita juga telah mencoba memberikan analisis tentang faktor-faktor yang mempengaruhi kecepatan interferensi vision transformer.

Seorang insinyur oleh profesi, seorang penulis oleh hati. Kunal adalah seorang penulis teknis dengan cinta yang mendalam & pemahaman tentang AI dan ML, yang didedikasikan untuk menyederhanakan konsep-konsep kompleks dalam bidang ini melalui dokumentasi yang menarik dan informatif.