Rumah > Artikel > Peranti teknologi > Google DeepMind memecahkan meterai algoritma sepuluh tahun, dan AlphaDev membuat penampilan sulung yang menakjubkan, menumbangkan landskap algoritma manusia!
Hari ini, keluarga “Alpha” menambah ahli baharu: AlphaDev.
Asas keseluruhan ekosistem pengkomputeran mungkin digulingkan oleh algoritma baharu yang dicipta oleh AI!
Tidak mengambil masa yang lama untuk Google Brain dan DeepMind bergabung untuk membawakan karya yang begitu menakjubkan.
AlphaDev bukan sahaja boleh mempercepatkan algoritma pengisihan sebanyak 70%, malah boleh menjadi sebanyak 3 kali lebih pantas daripada manusia pada sesetengah algoritma.
Pustaka pengisihan C++ telah berubah buat kali pertama dalam lebih sedekad. AI mengoptimumkan kod dunia dan mencapai pencapaian baharu.
Pada masa ini, penyelidikan terkini telah diterbitkan dalam Nature.
Alamat kertas: https://www.nature.com/articles/s41586-023-06004-9
Melalui pembelajaran pengukuhan, AlphaDev menemui algoritma yang lebih cekap yang secara langsung melepasi dekad penggilapan berhati-hati oleh saintis dan jurutera.
Kini, algoritma baharu adalah sebahagian daripada dua perpustakaan pengekodan C++ standard dan digunakan bertrilion kali setiap hari oleh pengaturcara di seluruh dunia.
Sesetengah netizen berkata bahawa ia akhirnya di sini, kita kini memasuki wilayah yang tidak diketahui: kecerdasan buatan sedang membina kecerdasan buatan!
Seperti pendahulu seperti AlphaZero dan AlphaFold, AlphaDev turut memulakan perubahan secara langsung dalam sesuatu medan.
Saintis komputer DeepMind dan pengarang pertama makalah Daniel Mankowitz berkata, "Kami tidak percaya pada mulanya
"Kepada Sejujurnya, kami tidak menjangkakannya. Dapatkan hasil yang lebih baik: Ini adalah program yang sangat singkat, dan jenis program ini telah dikaji selama beberapa dekad 》
Pada masa ini, GPT-4. , Bard, dsb. Parameter model besar meningkat secara eksponen, dan permintaan untuk sumber seperti kuasa pengkomputeran terus berkembang. Sepanjang 50 tahun yang lalu, manusia terus bergantung pada penambahbaikan cip untuk bersaing.
Tetapi apabila cip mikro menghampiri had fizikal, adalah penting untuk menambah baik kod untuk menjadikan pengkomputeran lebih berkuasa dan berterusan. Ini adalah benar terutamanya untuk algoritma yang menjalankan trilion kod berjalan setiap hari.
Hari ini, Google DeepMind memperkenalkan AlphaDev "pemula" keluarga Alpha buat kali pertama dalam kertas kerja yang diterbitkan dalam Nature.
AlphaDev menemui algoritma pengisihan yang lebih pantas yang berbilion orang tanpa sedar menggunakan algoritma ini setiap hari.
Ia adalah asas untuk segala-galanya daripada hasil carian dalam talian, kepada siaran sosial, kepada cara komputer dan telefon memproses data. Algoritma ini dilaksanakan bertrilion kali setiap hari.
Menggunakan AI untuk menjana algoritma yang lebih baik akan mengubah cara kami memprogram komputer dan mempengaruhi setiap aspek masyarakat digital kami.
Menurut data dalam kertas Nature, algoritma yang dicipta oleh AlphaZero boleh mengisih data tiga kali lebih cepat daripada manusia.
Hari ini, Google DeepMind turut membuka sumber algoritma pengisihan terkini dalam perpustakaan C++ utama, menjadikannya tersedia kepada semua orang.
Alamat sumber terbuka: https://reviews.llvm.org/D118029
Isih ialah cara menyusun berbilang item dalam susunan tertentu.
Seperti menyusun tiga huruf mengikut abjad, menyusun lima nombor daripada terbesar kepada terkecil, atau mengisih pangkalan data yang mengandungi berjuta-juta rekod.
Kaedah pengisihan telah berkembang sepanjang sejarah manusia. Contoh-contoh terawal bermula pada abad kedua dan ketiga, apabila para sarjana secara manual menyusun beribu-ribu buku dalam susunan abjad di rak Perpustakaan Alexandria.
Selepas Revolusi Perindustrian, kami mencipta mesin yang boleh membantu pengelasan - mesin penjadual, yang menyimpan maklumat pada kad tebuk, digunakan untuk mengumpul keputusan Banci A.S. 1890.
Dengan kebangkitan komputer komersial pada tahun 1950-an, algoritma pengisihan sains komputer yang terawal muncul.
Hari ini, banyak teknik pengisihan dan algoritma yang berbeza digunakan dalam pangkalan kod di seluruh dunia untuk mengatur sejumlah besar data dalam talian.
Algoritma pengisihan adalah untuk memasukkan siri nombor yang tidak diisih dan kemudian mengeluarkan nombor yang diisih
Algoritma ini telah menjadi asas sains komputer.
Algoritma kami hari ini memerlukan saintis komputer dan pengaturcara untuk melabur beberapa dekad penyelidikan dan pembangunan.
Ini kerana algoritma sedia ada sangat cekap sehingga setiap langkah ke hadapan adalah cabaran utama.
Tahap kesukaran ini adalah seperti mencari cara baharu untuk menjimatkan tenaga elektrik, atau mencari kaedah matematik yang lebih cekap.
Kepentingan inovatif AlphaDev ialah ia tidak menambah baik algoritma sedia ada, tetapi menemui algoritma yang lebih pantas sepenuhnya dari awal.
Selain itu, ia sebenarnya bermula di tempat yang kebanyakan manusia tidak fikirkan - arahan pemasangan komputer.
Arahan pemasangan digunakan untuk mencipta kod binari. Walaupun pembangun menggunakan bahasa peringkat tinggi seperti C++ semasa menulis kod, agar komputer memahami, bahasa peringkat tinggi ini mesti diterjemahkan ke dalam arahan pemasangan "peringkat rendah".
Biasanya, kami menggunakan bahasa pengaturcaraan peringkat tinggi seperti C++ untuk menulis kod, dan kemudian menyusunnya untuk menterjemahkannya ke dalam arahan CPU peringkat rendah, juga arahan pemasangannya. Pemasang kemudian menukar arahan pemasangan kepada kod mesin boleh laku
Penyelidik di Google DeepMind percaya bahawa terdapat banyak ruang untuk penambahbaikan di peringkat bawah ini, dan Penambahbaikan ini mungkin sukar ditemui dalam bahasa pengaturcaraan peringkat tinggi.
Pada tahap yang lebih rendah ini, komputer lebih fleksibel dalam storan dan operasinya, jadi beberapa lagi potensi peningkatan boleh memberi impak yang besar pada kelajuan dan tenaga.
Rajah A: Algoritma C++ untuk mengisih sehingga dua elemen
Rajah B: Himpunan sepadan dengan kod
Seperti yang kita sedia maklum, model pembelajaran pengukuhan DeepMind telah digunakan dalam Go, Antarabangsa Dia telah berulang kali mengalahkan juara dunia dalam permainan seperti catur dan shogi.
Dan protagonis kami kali ini - AlphaDev, adalah berdasarkan AlphaZero.
AlphaDev berfungsi sama seperti pendahulunya, AlphaZero, yang menggabungkan penaakulan dan gerak hati komputer untuk memilih setiap langkah dalam permainan papan.
Walau bagaimanapun, AlphaDev tidak memilih cara untuk bergerak seterusnya, tetapi memilih arahan untuk ditambah.
Untuk melatih AlphaDev menemui algoritma baharu, DeepMind mengubah masalah pengisihan menjadi "Permainan Perhimpunan".
Dalam setiap pusingan, AlphaDev perlu memerhatikan algoritma yang dihasilkannya dan maklumat yang terkandung dalam unit pemprosesan pusat (CPU) dan membuat langkah dengan menambahkan arahan pada algoritma.
Dan permainan pemasangan ini sangat sukar kerana AlphaDev perlu mencari dengan cekap melalui sejumlah besar kombinasi arahan yang mungkin untuk mencari algoritma yang boleh diisih dan lebih pantas daripada algoritma terbaik semasa.
"Kombinasi arahan yang mungkin" malah boleh dibandingkan secara langsung dengan bilangan zarah di alam semesta, atau kemungkinan dalam catur (10^120 permainan) dan Go (10^700 permainan ) gabungan pergerakan.
Selain itu, sebarang langkah yang salah boleh membatalkan keseluruhan algoritma.
Akhir sekali, DeepMind memberi ganjaran kepada AlphaDev berdasarkan keupayaannya untuk mengisih nombor dengan betul dan seberapa cepat dan cekap ia melengkapkan pengisihan, dan AlphaDev perlu memenangi permainan dengan menemui program yang betul dan lebih pantas.
Rajah A: Permainan perhimpunan. Pemain AlphaDev mengambil keadaan sistem sebagai input dan bergerak dengan memilih arahan pemasangan untuk ditambahkan pada algoritma yang telah dihasilkan.
Rajah B: Pengiraan ganjaran. Selepas setiap langkah, algoritma yang terhasil diuji dan ejen diberi ganjaran berdasarkan ketepatan dan masa tindak balasnya.
Khususnya, apabila menjalankan pertimbangan yang mendalam, AlphaZero akan mempertimbangkan tindakan seterusnya yang mungkin pada setiap titik keputusan, dan kemungkinan langkah seterusnya yang seterusnya. Seperti gambar rajah pokok, kerja ke belakang langkah demi langkah untuk mengetahui tindakan mana yang paling mungkin berjaya.
Tetapi masalahnya ialah jika setiap cabang situasi yang mungkin dipertimbangkan, masa yang diperlukan mungkin lebih lama daripada usia alam semesta. Jadi penyelidik menggunakan sesuatu seperti intuisi untuk menyempitkannya.
Pada setiap langkah, program menyuapkan keadaan semasa ke dalam rangkaian saraf (fungsi matematik yang kompleks dan boleh dilaras) untuk mencari gelagat yang paling sesuai. Pada masa yang sama, semasa proses latihan, rangkaian saraf akan terus dikemas kini berdasarkan keputusan. Kadangkala tingkah laku dengan rating tertinggi sengaja tidak dipilih untuk penerokaan aktif.
Terdapat empat tindakan yang AlphaDev boleh ambil, termasuk membandingkan nilai yang berbeza, mengalihkan nilai ke lokasi lain atau melompat ke bahagian lain program.
Selepas setiap langkah, cuba mengisih set senarai dan dapatkan ganjaran berdasarkan bilangan nilai dalam senarai yang diisih dengan betul.
Dan seterusnya, dan seterusnya, sehingga keseluruhan senarai diisih, atau had panjang program dicapai, dan program baharu dimulakan dari awal.
AlphaDev menemui algoritma pengisihan baharu dan membawa peningkatan ketara pada pustaka pengisihan LLVM libc++.
Untuk jujukan yang lebih pendek, kelajuan adalah 70%, manakala untuk jujukan melebihi 250,000 elemen, kelajuan hanya kira-kira 1.7%.
Penyelidik menumpukan pada memperbaik algoritma pengisihan jujukan dengan 3-5 elemen yang lebih pendek.
Algoritma ini adalah antara yang paling banyak digunakan kerana ia sering dipanggil beberapa kali sebagai sebahagian daripada fungsi pengisihan yang lebih besar.
Memperbaiki algoritma ini boleh meningkatkan kelajuan keseluruhan untuk mengisih sebarang bilangan item.
Untuk menjadikan algoritma pengisihan baharu tersedia kepada semua orang, penyelidik juga merekayasa terbalik dan menterjemahkannya ke dalam C++, bahasa pengekodan yang paling biasa digunakan oleh "pengaturcara".
Pada masa ini, algoritma ini kini tersedia dalam perpustakaan pengisihan standard LLVM libc++.
Selepas menemui algoritma pengisihan yang lebih pantas, DeepMind menguji sama ada AlphaDev boleh membuat generalisasi dan menambah baik algoritma sains Komputer yang berbeza - Hash.
Hashing ialah algoritma asas dalam pengkomputeran dan digunakan untuk mendapatkan semula, menyimpan dan memampatkan data. Sama seperti pustakawan menggunakan sistem klasifikasi untuk mencari buku tertentu, algoritma pencincangan membantu pengguna mengetahui perkara yang mereka cari dan di mana dengan tepat.
Algoritma ini mencincang kunci tertentu (seperti nama pengguna "Jane Doe"), iaitu, menukar data asal kepada rentetan unik (seperti 1234ghfty). Komputer kemudiannya menggunakan nilai cincang ini untuk mendapatkan semula data yang berkaitan dengan kunci dengan cepat, dan bukannya mencari semua data.
Hasilnya menunjukkan bahawa algoritma yang ditemui oleh AlphaDev adalah 30% lebih pantas daripada algoritma tradisional apabila digunakan pada julat 9 hingga 16 bait fungsi cincang.
Kini, DeepMind juga telah mengeluarkan algoritma pencincangan baharu ke dalam perpustakaan Abseil sumber terbuka. Difahamkan, algoritma ini dijangka digunakan bertrilion kali setiap hari.
AlphaDev bukan sahaja menemui algoritma yang lebih pantas;
Algoritma pengisihannya mengandungi urutan arahan baharu, salah satu daripadanya disimpan setiap kali ia digunakan. Ini boleh memberi impak yang besar, kerana algoritma ini digunakan bertrilion kali setiap hari.
Penyelidik memanggilnya "Alih pertukaran AlphaDev" dan "Alih salinan AlphaDev".
Kaedah terkini mengingatkan "Langkah 37" AlphaGo yang mengejutkan.
Dalam perang manusia-mesin 2016, AlphaGo memainkan satu gerakan yang bertentangan dengan gerak hati manusia, serangan bahu yang mudah dan mengalahkan pemain legenda Go Lee Sedol.
Dengan kedua-dua strategi, AlphaDev melangkau satu langkah dan menyambungkan projek dengan cara yang kelihatan salah tetapi sebenarnya adalah jalan pintas.
Ini menunjukkan keupayaan AlphaDev untuk menemui penyelesaian asal dan mencabar cara kita berfikir tentang cara menambah baik algoritma sains komputer.
Seperti yang ditunjukkan dalam rajah di bawah, pelaksanaan sort3 asal mempunyai min(A, B, C) Menggunakan AlphaDev Swap Move, AlphaDev mendapati bahawa anda hanya memerlukan min(A, B) .
Untuk contoh lain, pelaksanaan asal menggunakan algoritma pengisihan yang lebih besar dalam maks(B, min(A,C, D)) untuk mengisih 8 elemen untuk disusun.
AlphaDev mendapati bahawa menggunakan "pergerakan pertukaran dan salin"nya hanya memerlukan maks(B, min(A, C)).
Dengan mengoptimumkan dan melancarkan untuk pembangun global gunakan Dengan algoritma pengisihan dan pencincangan yang dipertingkatkan, AlphaDev telah menunjukkan keupayaannya untuk menyamaratakan dan menemui algoritma baharu bertaraf dunia.
Google DeepMind percaya bahawa AlphaDev ialah satu langkah ke arah membangunkan alatan AGI yang boleh membantu mengoptimumkan keseluruhan ekosistem pengkomputeran dan menyelesaikan masalah lain yang memberi manfaat kepada masyarakat.
Walau bagaimanapun, penyelidik juga mengakui bahawa AlphaDev pada masa ini sangat mampu mengoptimumkan arahan pemasangan peringkat rendah, tetapi terdapat juga pengehadan semasa algoritma berkembang.
Untuk menjadikannya lebih boleh digunakan untuk pembangun, keupayaan AlphaDev untuk mengoptimumkan algoritma menggunakan bahasa peringkat tinggi (seperti C++) sedang diterokai.
Penemuan baharu AlphaDev, seperti "AlphaDev swap move" dan "AlphaDev copy move", bukan sahaja menunjukkan bahawa ia boleh menambah baik algoritma, tetapi juga mencari penyelesaian baharu.
Para penyelidik berharap penemuan ini akan memberi inspirasi kepada penyelidik dan pembangun untuk mencipta teknologi dan kaedah untuk mengoptimumkan lagi algoritma asas untuk mencipta ekosistem pengkomputeran yang lebih kukuh dan lebih mampan.
Saintis NVIDIA Jim Fan membuat ringkasan mendalam tentang AlphaDev:
Algoritma pengisihan adalah kunci kepada segala-galanya Asas perisian. AlphaDev DeepMind mempercepatkan pengisihan jujukan kecil (3-5 item) sebanyak 70%. Perkara utama:
- Algoritma RL utama adalah berdasarkan AlphaZero, yang pada asalnya memainkan Go, Chess & Shogi. Idea yang sama digunakan untuk program carian!
- Para penyelidik tidak mengoptimumkan kod C, tetapi kod pemasangan. Ini adalah pilihan yang disengajakan untuk pergi ke tahap rendah dan memerah setiap arahan yang disimpan.
- Kod pemasangan kemudiannya direkayasa terbalik ke dalam C++ dan sumber terbuka dalam LLVM.
- Walaupun rangkaian perwakilan menggunakan Transformer, ia bukan model asas. Keseluruhan proses hanya berfungsi untuk pengisihan, dan mesti dilatih semula untuk tugas lain seperti pencincangan.
Satu lagi peristiwa penting dalam penemuan algoritma menggunakan ML!
AlphaDev ialah kecerdasan buatan yang mengubah permainan daripada DeepMind yang memperbaharui algoritma teras sains komputer. Ia membayangkan semula kaedah penjujukan untuk membuat jujukan pendek 70% lebih pantas. Malah kelajuan penemuan algoritma pencincangan meningkat sebanyak 30%. Pembelajaran pengukuhan sedang membentuk semula landskap algoritma!
Sesetengah netizen berkata walaupun kami teruja dengan model bahasa, kami tidak seharusnya melupakan kisah kejayaan algoritma pembelajaran mendalam yang lain: AlphaZero, AlphaFold , dan kini AlphaDev.
Atas ialah kandungan terperinci Google DeepMind memecahkan meterai algoritma sepuluh tahun, dan AlphaDev membuat penampilan sulung yang menakjubkan, menumbangkan landskap algoritma manusia!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!