Rumah >Peranti teknologi >AI >Laksanakan latihan kelebihan dengan memori kurang daripada 256KB dan kosnya kurang daripada seperseribu PyTorch

Laksanakan latihan kelebihan dengan memori kurang daripada 256KB dan kosnya kurang daripada seperseribu PyTorch

WBOY
WBOYke hadapan
2023-04-08 13:11:031802semak imbas

Mengenai latihan rangkaian saraf, tanggapan pertama semua orang ialah GPU + pelayan + platform awan. Disebabkan overhed memori yang besar, latihan tradisional sering dilakukan dalam awan dan platform tepi hanya bertanggungjawab untuk inferens. Walau bagaimanapun, reka bentuk sedemikian menyukarkan model AI untuk menyesuaikan diri dengan data baharu: lagipun, dunia sebenar adalah senario yang dinamik, berubah dan berkembang Bagaimana satu latihan boleh merangkumi semua senario?

Untuk membolehkan model terus menyesuaikan diri dengan data baharu, bolehkah kami melakukan latihan di tepi (latihan pada peranti) supaya peranti boleh terus belajar sendiri? Dalam kerja ini, kami melaksanakan latihan pada peranti menggunakan kurang daripada 256KB memori, dan overhed adalah kurang daripada 1/1000 PyTorch, dan pada masa yang sama, kami menunjukkan prestasi yang baik on the visual wake word task (VWW) Mencapai ketepatan latihan awan. Teknologi ini membolehkan model menyesuaikan diri dengan data sensor baharu. Pengguna boleh menikmati perkhidmatan tersuai tanpa memuat naik data ke awan, dengan itu melindungi privasi.

Laksanakan latihan kelebihan dengan memori kurang daripada 256KB dan kosnya kurang daripada seperseribu PyTorch

  • Tapak web: https://tinytraining.mit.edu/
  • Kertas: https://arxiv.org/abs/2206.15472
  • Demo: https://www.bilibili.com/ video/BV1qv4y1d7MV
  • Kod: https://github.com/mit-han-lab/tiny-training

Latar Belakang

Latihan pada peranti membolehkan model pra-latihan menyesuaikan diri dengan persekitaran baharu selepas penggunaan. Dengan melatih dan menyesuaikan diri secara tempatan pada mudah alih, model boleh terus meningkatkan keputusannya dan menyesuaikan model untuk pengguna. Contohnya, model bahasa penalaan halus membolehkan mereka belajar daripada sejarah input melaraskan model penglihatan membolehkan kamera pintar mengenali objek baharu secara berterusan. Dengan mendekatkan latihan kepada terminal dan bukannya awan, kami boleh meningkatkan kualiti model dengan berkesan sambil melindungi privasi pengguna, terutamanya apabila memproses maklumat peribadi seperti data perubatan dan sejarah input.

Walau bagaimanapun, latihan pada peranti IoT kecil pada asasnya berbeza daripada latihan awan dan sangat mencabar Pertama, saiz SRAM peranti AIoT (MCU) biasanya terhad (256KB). Tahap ingatan ini sangat sukar untuk membuat inferens, apatah lagi latihan. Tambahan pula, algoritma pembelajaran pemindahan kos rendah dan cekap sedia ada, seperti hanya melatih pengelas lapisan terakhir (FC terakhir) dan hanya mempelajari istilah bias, selalunya mempunyai ketepatan yang tidak memuaskan dan tidak boleh digunakan dalam amalan, apatah lagi dalam beberapa aplikasi moden rangka kerja pembelajaran mendalam tidak dapat menterjemahkan nombor teori algoritma ini kepada penjimatan yang diukur. Akhir sekali, rangka kerja latihan mendalam moden (PyTorch, TensorFlow) biasanya direka untuk pelayan awan dan melatih model kecil (MobileNetV2-w0.35) memerlukan jumlah memori yang besar walaupun saiz kelompok ditetapkan kepada 1. Oleh itu, kita perlu reka bentuk bersama algoritma dan sistem untuk mencapai latihan pada peranti terminal pintar.

Laksanakan latihan kelebihan dengan memori kurang daripada 256KB dan kosnya kurang daripada seperseribu PyTorch

Kaedah dan Keputusan

Kami mendapati bahawa latihan pada peranti mempunyai dua cabaran unik: (1) Model ini berada pada peranti tepi Ia adalah kuantitatif. Graf yang benar-benar terkuantisasi (seperti yang ditunjukkan di bawah) adalah sukar untuk dioptimumkan kerana tensor berketepatan rendah dan kekurangan lapisan normalisasi kelompok (2) sumber perkakasan yang terhad (memori dan pengiraan) perkakasan kecil tidak membenarkan perambatan balik penuh, yang Memori; penggunaan boleh dengan mudah melebihi had SRAM mikropengawal (dengan lebih daripada susunan magnitud), tetapi jika hanya lapisan terakhir dikemas kini, ketepatan akhir pasti akan menjadi tidak memuaskan.

Laksanakan latihan kelebihan dengan memori kurang daripada 256KB dan kosnya kurang daripada seperseribu PyTorch

Untuk mengatasi kesukaran pengoptimuman, kami mencadangkan Quantization-Aware Scaling (QAS) untuk menskalakan kecerunan tensor secara automatik dengan bit yang berbeza ketepatan (seperti berikut) ditunjukkan di sebelah kiri). QAS secara automatik boleh memadankan kecerunan dan skala parameter serta menstabilkan latihan tanpa memerlukan hiperparameter tambahan. Pada 8 set data, QAS boleh mencapai prestasi yang konsisten dengan latihan titik terapung (gambar kanan di bawah).

Laksanakan latihan kelebihan dengan memori kurang daripada 256KB dan kosnya kurang daripada seperseribu PyTorch

Untuk mengurangkan jejak memori yang diperlukan untuk perambatan belakang, kami mencadangkan Kemas Kini Jarang untuk melangkau pengiraan kecerunan lapisan dan subhelaian yang kurang penting. Kami membangunkan kaedah automatik berdasarkan analisis sumbangan untuk mencari skim kemas kini yang optimum. Berbanding dengan kemas kini lapisan k yang berat sebelah sahaja sebelum ini, skim kemas kini jarang yang kami cari mempunyai 4.5 kali hingga 7.5 kali penjimatan memori, dan purata ketepatan pada 8 set data hiliran adalah lebih tinggi.

Laksanakan latihan kelebihan dengan memori kurang daripada 256KB dan kosnya kurang daripada seperseribu PyTorch

Untuk menukar pengurangan teori dalam algoritma kepada nilai berangka sebenar, kami mereka bentuk Enjin Latihan Kecil (TTE): ia memindahkan kerja pembezaan automatik untuk menyusun masa, dan menggunakan codegen untuk mengurangkan overhed masa jalan. Ia juga menyokong pemangkasan graf dan penyusunan semula untuk penjimatan dan percepatan sebenar. Kemas Kini Jarang berkesan mengurangkan memori puncak sebanyak 7-9x berbanding Kemas Kini Penuh, dan boleh dipertingkatkan lagi kepada 20-21x jumlah penjimatan memori dengan penyusunan semula. Berbanding dengan TF-Lite, kernel yang dioptimumkan dan kemas kini jarang dalam TTE meningkatkan kelajuan latihan keseluruhan sebanyak 23-25 ​​kali.

Laksanakan latihan kelebihan dengan memori kurang daripada 256KB dan kosnya kurang daripada seperseribu PyTorch

Laksanakan latihan kelebihan dengan memori kurang daripada 256KB dan kosnya kurang daripada seperseribu PyTorch

Kesimpulan

Dalam kertas kerja ini, kami telah mencadangkan pelaksanaan pertama pada mikropengawal Penyelesaian latihan (hanya menggunakan 256KB RAM dan 1MB Flash). Reka bentuk bersama sistem algoritma kami (Reka bentuk Bersama Sistem-Algoritma) sangat mengurangkan memori yang diperlukan untuk latihan (1000 kali berbanding PyTorch) dan masa latihan (20 kali ganda berbanding TF-Lite), dan mencapai ketepatan yang lebih tinggi pada kadar tugas hiliran. Latihan Kecil boleh memperkasakan banyak aplikasi menarik Contohnya, telefon mudah alih boleh menyesuaikan model bahasa berdasarkan e-mel/sejarah input pengguna, kamera pintar boleh terus mengenali wajah/objek baharu, dan beberapa senario AI yang tidak boleh disambungkan ke Internet juga boleh diteruskan. untuk belajar (seperti pertanian, marin, barisan pemasangan perindustrian). Melalui kerja kami, peranti hujung kecil boleh melakukan bukan sahaja inferens tetapi juga latihan. Dalam proses ini, data peribadi tidak akan dimuat naik ke awan, jadi tiada risiko privasi Pada masa yang sama, model AI boleh terus belajar sendiri untuk menyesuaikan diri dengan dunia yang berubah secara dinamik.

Atas ialah kandungan terperinci Laksanakan latihan kelebihan dengan memori kurang daripada 256KB dan kosnya kurang daripada seperseribu PyTorch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam