Pergeseran Fokus ML Menuju Perangkat Lunak

Node Sumber: 1600819

Arsitektur pembelajaran mesin (ML) yang baru terus mendapatkan banyak perhatian seiring dengan persaingan dalam menyediakan arsitektur akselerasi paling efektif untuk cloud dan edge, namun perhatian mulai beralih dari perangkat keras ke perangkat lunak.

Pertanyaan besarnya sekarang adalah apakah abstraksi perangkat lunak pada akhirnya akan mengalahkan detail perangkat keras dalam menentukan siapa pemenang di masa depan.

“Pembelajaran mesin secara historis berasal dari penekanan pada aplikasi akhir yang spesifik, seperti deteksi objek untuk otomotif atau pemahaman bahasa alami menggunakan suara,” kata Sree Harsha Angara, manajer pemasaran produk untuk IoT, komputasi, dan keamanan di Infineon. “Sekarang, ML sudah mulai merambah ke beberapa jenis aplikasi, yang lebih menekankan pada alat desain dan kerangka perangkat lunak.”

Perancang sistem pembelajaran mesin mulai menuntut lebih banyak perangkat pengembangan perangkat lunak (SDK) pembelajaran mesin, dan beberapa vendor menggunakan perangkat lunak mereka untuk menyembunyikan detail perangkat keras. Pada akhirnya, perangkat keras yang kurang optimal dengan perangkat lunak yang baik mungkin akan berhasil dibandingkan perangkat keras yang lebih baik dengan perangkat lunak yang lebih sedikit.

Kami sudah pernah ke sini sebelumnya
Kompiler dan alat pengembangan lainnya telah lama dianggap remeh di sisi perangkat lunak. Namun jika menyangkut perangkat keras di awal tahun 80an, para desainer diharapkan melakukan sebagian besar desain mereka secara manual. Meskipun hal ini telah berubah saat ini, dibutuhkan jalan berbatu untuk mencapainya. Dan pasar logika yang dapat diprogram adalah salah satu tempat pertama di mana perangkat lunak desain berhasil berdiri.

Pada awalnya, perangkat lunak PLD hanya berfungsi untuk menghilangkan kesibukan pekerjaan. Pada masa-masa awal perangkat logika yang dapat diprogram (PLD), para insinyur akan mengerjakan logika mereka dan kemudian mencari tahu koneksi mana yang diperlukan dalam array yang dapat diprogram. Ini secara harfiah akan ditulis tangan dalam “peta sekering”, yang kemudian dapat dimasukkan ke dalam peralatan pemrograman untuk mengkonfigurasi perangkat secara fisik.

Perubahan besar terjadi dengan diperkenalkannya logika array yang dapat diprogram, atau PAL, oleh Monolitik Memories. Ada dua hal yang meningkatkan industri PLD secara keseluruhan. Pertama adalah perubahan arsitektur yang mengurangi biaya dan meningkatkan kecepatan. Namun yang lebih berpengaruh adalah peluncuran pertama dari apa yang disebut assembler PAL, yang dijuluki PALASM.

Hal ini menghilangkan proses membosankan dalam memetakan koneksi. Sebagai gantinya, seseorang dapat memasukkan persamaan Boolean – jauh lebih alami bagi para insinyur untuk bekerja – dan membiarkan alat tersebut mengetahui detail pemrogramannya. Hal ini membantu menciptakan titik perubahan yang serius dalam bisnis.

Beberapa tahun setelah itu, pendatang baru di pasar PLD muncul, memberikan kemampuan program arsitektur yang lebih baik. Selalu ada logika yang tidak dapat diterapkan oleh perangkat seperti itu, sehingga perlombaan terus dilakukan untuk menghasilkan arsitektur paling fleksibel namun tetap cepat dan murah.

Titik balik yang signifikan terjadi ketika Altera merilis arsitektur barunya dengan perangkat lunak desain MAX-PLUS. Para insinyur berjuang untuk menemukan batasan dari apa yang dapat dilakukan oleh arsitektur tersebut, dan mereka sangat terkejut. Persamaan yang diperkirakan gagal dikompilasi ternyata berhasil, karena perangkat lunak kini melakukan lebih dari sekadar mengubah persamaan Boolean menjadi koneksi. Sebaliknya, ia juga mentransformasikan persamaan Boolean tersebut, antara lain dengan menerapkannya teorema DeMorgan untuk mengubah hal-hal yang tidak dapat dilakukan menjadi hal-hal yang dapat dilakukan.

Hal ini merupakan sebuah perubahan besar, dan secara signifikan meningkatkan pertaruhan bagi sisi perangkat lunak dalam bisnis ini. Cobalah sekuat tenaga untuk menunjukkan kelemahan arsitektur pada perangkat keras, selama perangkat lunak menutupi kelemahan tersebut, maka argumen tersebut akan kalah.

Bisnis tersebut hingga saat ini didominasi oleh perusahaan perangkat keras, dengan AMD sebagai pemimpinnya (setelah mengakuisisi Monolitik Memories). Namun perusahaan perangkat keras tidak pandai membuat perangkat lunak, dan mereka tidak suka melakukannya. Jadi, alih-alih berkutat dengan perangkat lunak, AMD mengalihdayakan pekerjaan tersebut ke perusahaan perangkat lunak kecil. Hal ini ternyata merupakan kesalahan strategis, dan perusahaan tersebut akhirnya gulung tikar, menjual sebagian teknologinya kepada anak perusahaan AMD, Vantis, yang baru saja dikeluarkan (yang pada akhirnya tidak berhasil), dan sebagian lagi ke Xilinx, yang saat itu merupakan pendatang baru di dunia dengan perusahaannya. FPGA mewah (yang sangat sukses).

Pada akhirnya, perangkat lunaklah yang menentukan pemenangnya. Fitur perangkat keras mengikuti pola lompatan, dan alat terbukti menjadi pembeda.

“Sejarah dipenuhi dengan arsitektur perangkat keras FPGA yang luar biasa yang semuanya terhenti dan tidak ada lagi, sebagian karena kurangnya rantai alat yang efektif,” kata Stuart Clubb, manajer produk utama di EDA Siemens. “Tidak masalah seberapa bagus platform perangkat keras jika Anda tidak memiliki perangkat lunak untuk memanfaatkan platform tersebut secara efisien dan efektif.”

Paralel pembelajaran mesin?
Saat ini, semua perhatian tertuju pada kecerdasan buatan, dan perusahaan berusaha menemukan arsitektur terbaik untuk akselerator pembelajaran mesin yang dapat bekerja baik di cloud maupun di edge. Meskipun instantiasi cloud mendominasi, implementasi tepi — dengan persyaratan daya dan biaya yang tinggi — telah mendorong lebih banyak kreativitas.

Namun semakin sulit untuk memahami dampak perbedaan antara arsitektur-arsitektur ini. Rasanya seolah-olah ide-ide besar telah berlalu, dengan perusahaan-perusahaan yang mendorong dan menggunakan parameter yang berbeda-beda untuk menemukan titik terbaik dalam hal kinerja, tenaga, dan biaya.

“Masalah yang dihadapi orang-orang adalah mereka memiliki solusi perangkat keras dan tidak dapat mengoptimalkannya atau mendapatkan tingkat pemanfaatan yang mereka inginkan,” kata Dana McCarty, wakil presiden penjualan dan pemasaran, produk inferensi di Logika Fleksibel.

Pembelajaran mesin selalu memiliki elemen perangkat lunak di dalamnya, karena keseluruhan gagasan pelatihan dan penerapan solusi pembelajaran mesin bukanlah hal yang mudah. Keberadaan framework pembelajaran mesin awal seperti Caffe dan TensorFlow menjadikan aplikasi AI praktis dan dapat diakses oleh lebih banyak developer.

Meski begitu, ada banyak pekerjaan yang harus dilakukan untuk membuat desain penuh — terutama untuk aplikasi edge. Keuntungan memberikan contoh penggunaan AI pada data pengujian - misalnya, aplikasi yang kurang menonjol dibandingkan visi.

“Kami mendapatkan kumpulan data besar yang belum dibersihkan, dan diperlukan waktu beberapa minggu untuk memeriksanya secara manual, menerapkan alat secara manual,” kata Keith Schaub, wakil presiden teknologi dan strategi di Advantest. “Anda memiliki ratusan fitur, terkadang 1,000 fitur atau lebih, dan Anda mencoba mencari tahu fitur terpenting yang berkorelasi dengan prediksi Anda. Mereka menemukannya melalui metode regresi dan [analisis komponen utama]. Dan kemudian Anda memiliki model statis dengan 12 fitur.”

Dan itu hanyalah rekayasa fitur tingkat tinggi. Bagian selanjutnya adalah memetakan model tersebut secara efisien ke perangkat tertentu, yang mungkin akan memunculkan keunggulan kompetitif. “Anda harus mampu menjembatani model tersebut secara efisien ke dalam akselerator Anda, dan perusahaan yang dapat melakukan jembatan tersebut akan menang,” kata Sam Fuller, direktur senior pemasaran di Flex Logix.

Meskipun mesin berbasis cloud sebagian besar dapat mengandalkan perangkat keras floating-point penuh, sebagian besar perangkat keras edge menghemat daya dan biaya dengan berfokus pada implementasi bilangan bulat. Itu berarti mengambil desain dan parameter yang dilatih dan mengkuantisasinya — mengubahnya dari floating-point menjadi integer. Hal ini menimbulkan beberapa kesalahan, yang mungkin mengganggu keakuratan inferensi, sehingga mungkin perlu melatih ulang dengan format bilangan bulat yang diinginkan. Menariknya, seiring berjalannya waktu, melatih bilangan bulat secara langsung menjadi lebih mudah.

Mengurangi ukuran dan konsumsi energi dari desain ini juga memerlukan upaya. Seseorang mungkin melalui desain yang mengidentifikasi parameter yang mungkin terlalu kecil untuk menjadi masalah dan kemudian memangkasnya. Ini awalnya merupakan proses manual, yang memerlukan evaluasi ulang keakuratannya untuk memastikan keakuratannya tidak terlalu terganggu oleh proses pemangkasan.

Lalu ada masalah mengadaptasi “kernel” perangkat lunak untuk jenis prosesor apa pun yang digunakan. Ini sering kali merupakan kode bare-metal yang ditulis untuk setiap node dalam jaringan. Beberapa arsitektur memilih elemen pemrosesan yang hanya fokus pada instruksi umum yang digunakan untuk inferensi. Yang lain mempertahankan “kemampuan terprogram penuh” sehingga dapat digunakan lebih fleksibel di luar inferensi.

Dan jika Anda memiliki arsitektur aliran data, Anda mungkin perlu mempartisi perangkat keras dan menetapkan lapisan dan node yang berbeda ke wilayah yang berbeda.

Ini hanyalah beberapa hal yang harus ditangani untuk mengimplementasikan aplikasi pembelajaran mesin yang berfungsi penuh. Beberapa di antaranya dilakukan secara manual, namun jumlah otomatisasi perangkat lunak secara bertahap telah ditingkatkan.

Tahap selanjutnya: menjaga kerahasiaan perangkat keras
Selama setahun terakhir, perubahan terlihat di industri ini. Pada konferensi seperti konferensi Prosesor Linley atau Hot Chips, perusahaan telah mengumumkan penawaran baru dengan diskusi lebih lanjut mengenai perangkat lunak. Dan khususnya dalam beberapa kasus, mereka tidak membicarakan tentang perangkat keras yang mendasarinya.

Hal ini tentu saja bisa terjadi di forum publik seperti konferensi. Terkadang perusahaan membocorkan rinciannya hanya berdasarkan NDA untuk melegitimasi prospek penjualan. Namun arah pembicaraan tampaknya semakin mengarah pada pernyataan, “Jangan khawatir tentang detailnya. Perangkat lunak akan menangani hal itu.”

Hal ini secara signifikan mengubah diskusi penjualan dari upaya meyakinkan calon pelanggan bahwa perbedaan arsitektur yang halus akan memberikan hasil yang berarti, menjadi diskusi di mana pengalaman desain memberikan buktinya. Bisakah Anda mengimplementasikan desain uji coba lebih cepat dibandingkan sebelumnya? Apakah Anda mencapai metrik kinerja target — biaya, kecepatan, daya, akurasi, dll. — dengan iterasi manual yang minimal? Bisakah Anda mencapai implementasi yang baik dengan sedikit atau tanpa intervensi manual?

Jika jawabannya adalah ya, apakah penting bagaimana perangkat keras mencapai hal tersebut? Jika perangkat lunak dapat melakukan transformasi sesuai kebutuhan dengan cepat, apakah penting apakah gerbang yang mendasarinya memiliki batasan yang memerlukan transformasi perangkat lunak? Jika arsitektur lain memiliki lebih banyak fitur, namun membutuhkan lebih banyak upaya untuk menyelesaikan desainnya, apakah fitur tambahan tersebut sepadan dengan usaha tersebut?

Perusahaan-perusahaan yang mengandalkan alat-alat mereka untuk melakukan pembicaraan bertaruh bahwa pelanggan mereka tidak peduli apa yang ada di balik layar – selama, jika dipadukan dengan perangkat lunak yang bagus, perangkat lunak tersebut dapat melakukan pekerjaan yang diinginkan dan kecepatan, tenaga, akurasi, dan biaya yang dibutuhkan. .

Akankah sejarah terulang kembali dengan pembelajaran mesin?
Sama seperti manusia, perusahaan cenderung memiliki kepribadian. Beberapa berorientasi pada perangkat keras, sementara yang lain berorientasi pada perangkat lunak. Beberapa dari keduanya jelas diperlukan untuk penawaran pembelajaran mesin apa pun, tetapi sepertinya keunggulannya mungkin mengarah ke penawaran yang berorientasi perangkat lunak. Itu berarti menjadikan perangkat lunak sebagai yang utama sebagai bintang dalam penawaran, bukan sebagai sesuatu yang mengganggu namun perlu dilakukan. Ini juga berarti bahwa perangkat keras dan perangkat lunak perlu dirancang bersama.

Kebutuhan akan perangkat lunak untuk menyangga detail mungkin lebih besar dengan ML dibandingkan dengan FPGA. Bahkan dengan alat, FPGA dirancang oleh insinyur perangkat keras. Model ML, di sisi lain, dirancang oleh ilmuwan data, yang jauh dari perangkat keras. Jadi alat perlu menjembatani kesenjangan abstraksi.

“Kecuali Anda berbicara dalam bahasa mereka, Anda tidak akan mempunyai peluang,” kata Nick Ni, direktur pemasaran produk untuk AI dan perangkat lunak di Xilinx. “Setiap vendor membicarakan tentang dukungan TensorFlow dan Python karena mereka tidak punya cara lain. Mau tidak mau, Anda harus mendukungnya. Namun untuk mendukung kerangka setinggi ini, Anda harus melakukan segala sesuatu di antaranya.”

Kegagalan lain dalam industri PLD adalah merancang arsitektur yang cerdas hanya untuk kemudian menemukan bahwa perangkat lunak sangat sulit dibuat untuk itu. Tim perangkat keras dan perangkat lunak yang paling sukses bekerja sama, dengan perangkat keras disesuaikan sesuai kebutuhan untuk menghasilkan algoritme perangkat lunak yang lancar dan kuat.

Gambar 1: Evolusi alat desain, dimulai dengan desain manual dan berkembang melalui penghapusan kebosanan, kemampuan aktual untuk memanipulasi desain, dan, akhirnya, mengoptimalkannya. Pada tahap terakhir, desain bersama perangkat keras/perangkat lunak sangat penting untuk kesuksesan. Sumber: Bryon Moyer/Teknik Semikonduktor

Gambar 1: Evolusi alat desain, dimulai dengan desain manual dan berkembang melalui penghapusan kebosanan, kemampuan aktual untuk memanipulasi desain, dan, akhirnya, mengoptimalkannya. Pada tahap terakhir, desain bersama perangkat keras/perangkat lunak sangat penting untuk kesuksesan. Sumber: Bryon Moyer/Teknik Semikonduktor

Hal ini juga berlaku untuk pembelajaran mesin. Jika trik perangkat keras yang cerdas sulit dimanfaatkan dalam perangkat lunak, kemungkinan besar trik tersebut tidak akan pernah digunakan. Pada akhirnya, penawaran yang paling sukses mungkin adalah arsitektur yang berpasangan dengan baik dengan alat mereka dan yang telah menghilangkan fitur apa pun yang tidak dapat digunakan secara efektif oleh alat tersebut.

“Salah satu premis mendasar perusahaan adalah kebutuhan perangkat lunak harus mendorong desain perangkat keras,” kata CTO Quadric.io Nigel Drago pada Konferensi Prosesor Linley musim gugur lalu.

Pada konferensi yang sama, Ravi Setty, wakil presiden senior Roviero, menyebutkan peran perangkat lunak dalam mendefinisikan arsitektur perusahaan. “Kami mungkin telah menambahkan 5% kompleksitas pada perangkat keras untuk mencapai sekitar 90% kesederhanaan dalam kompiler. Perangkat kerasnya murni agnostik terhadap informasi jaringan saraf mana pun. Kompilerlah yang memiliki semua pengetahuan. Dan perangkat kerasnya – ini hanyalah mesin eksekusi.”

Meskipun peran alat semakin meningkat, kami masih belum sepenuhnya mengubur perangkat keras. Masih terdapat perpaduan kaya eksplorasi arsitektur yang belum terselesaikan. Seperti banyak lintasan otomasi desain lainnya, kita memasuki dunia di mana banyak desain dapat dilakukan secara otomatis, dengan penyesuaian tangan yang diperlukan untuk mendapatkan hasil maksimal dari perangkat keras.

Pada tahap pasar ini, terdapat juga ketegangan antara arsitektur yang lebih umum dengan abstraksi perangkat lunak dan arsitektur yang dibuat khusus. “Meskipun solusi perangkat keras untuk tujuan umum yang berbasis perangkat lunak mungkin menawarkan fleksibilitas yang lebih besar, solusi tersebut sering kali kalah dibandingkan perangkat keras khusus ketika dimensi tertentu (area, daya, kecepatan, biaya) menjadi lebih penting,” kata Clubb dari Siemens EDA.

Hal ini dapat menimbulkan tantangan bagi perangkat lunak yang menargetkan perangkat keras khusus. “Setiap arsitektur memiliki keunggulan unik dan dioptimalkan untuk kasus penggunaan tertentu,” jelas Anoop Saha, manajer senior, strategi dan pertumbuhan di Siemens EDA. “Tetapi tantangan bagi pengguna tetap ada – bagaimana mereka dapat mengkompilasi jaringan mereka pada arsitektur perangkat keras tertentu? Dan jika mereka mampu melakukannya, bagaimana mereka dapat mengoptimalkannya untuk perangkat keras tertentu dan memanfaatkan berbagai komponen yang tersedia? Optimalisasi dan fleksibilitas khusus perangkat keras perlu ditangani oleh perangkat lunak dengan cara yang lebih otomatis.”

Apakah alat berkuasa?
Pada akhirnya, tampaknya pemenang perangkat keras jangka panjang adalah mereka yang memberikan pengalaman desain terbaik, dengan hanya perangkat keras yang cukup untuk membantu pengembang dalam mengambil keputusan desain. Itulah cara kerja FPGA saat ini. Faktanya, dalam beberapa kasus, ada hal-hal yang secara teoritis dapat dilakukan oleh perangkat keras FPGA namun tidak diizinkan oleh perangkat lunak.

ML tampaknya mengikuti jalur yang sama. “Inovasi dalam perangkat keras yang memberikan keunggulan signifikan dalam hal kekuatan dan kecepatan dikemas dalam kerangka perangkat lunak atau API yang umum,” kata Angara dari Infineon. “Ini berarti mereka memberikan keuntungan yang signifikan dalam menjalankan ML tanpa kesulitan dengan perangkat lunak yang 'sederhana'.”

Masih harus dilihat apakah para insinyur akan berhenti memikirkan perangkat kerasnya. “Dapatkah 'kompiler' ML cukup pintar untuk menargetkan platform perangkat keras generik hingga perangkat keras tidak terlalu penting? Mungkin tidak,” kata Clubb. “Spesialisasi perangkat keras ML tentu memiliki kelebihan dan kekurangan dalam mengunci fleksibilitas dan kemampuan pemrograman ulang solusinya. Arsitek dan perancang perangkat keras yang inventif akan selalu perlu merekayasa solusi yang lebih efektif ketika solusi tujuan umum tidak memenuhi kebutuhan aplikasi.”

Namun, skala dan sebagian besar pasar dapat mempengaruhi hal ini. Ketika sintesis masih baru, banyak insinyur yang berpikir bahwa mereka selalu dapat melakukan pekerjaan lebih baik daripada sebuah alat. Hal ini mungkin benar, namun hal ini menjadi tidak praktis seiring dengan meningkatnya skala desain, ekspektasi produktivitas yang meningkat, dan peralatan yang semakin canggih.

Jadi, meskipun perangkat keras akan selalu penting sampai batas tertentu, tampaknya dalam jangka panjang, seperti halnya dengan logika yang dapat diprogram, perangkat lunak seringkali menjadi penentu.

Sumber: https://semiengineering.com/ml-focus-shifting-toward-software/

Stempel Waktu:

Lebih dari Rekayasa Semikonduktor