


Satu baris kod, membuat elixir dua kali lebih cepat! PyTorch 2.0 keluar dengan mengejutkan, LeCun dengan bersemangat memajukannya
Pada 2 Disember, PyTorch 2.0 telah dikeluarkan secara rasmi!
Kemas kini ini bukan sahaja mendorong prestasi PyTorch ke tahap yang lebih tinggi, tetapi juga menambah sokongan untuk bentuk dan pengedaran dinamik.
Selain itu, siri 2.0 juga akan mengalihkan beberapa kod PyTorch dari C++ kembali ke Python.
Pada masa ini, PyTorch 2.0 masih dalam fasa ujian, dan versi stabil pertama dijangka tersedia pada awal Mac 2023.
PyTorch 2.x: Lebih pantas, lebih Pythonic!
Sejak beberapa tahun kebelakangan ini, PyTorch telah membuat inovasi dan lelaran daripada 1.0 kepada 1.13 baru-baru ini, dan berpindah ke Yayasan PyTorch yang baru dibentuk untuk menjadi sebahagian daripada Yayasan Linux.
Cabaran dengan versi semasa PyTorch ialah mod eager-mode menghadapi kesukaran untuk mengikuti jalur lebar GPU yang sentiasa meningkat dan seni bina model yang lebih gila.
Kelahiran PyTorch 2.0 secara asasnya akan mengubah dan menambah baik cara PyTorch berjalan pada peringkat pengkompil.
Seperti yang kita sedia maklum, (Py) dalam PyTorch berasal daripada bahasa pengaturcaraan Python sumber terbuka yang digunakan secara meluas dalam sains data.
Walau bagaimanapun, kod PyTorch tidak sepenuhnya menggunakan Python, tetapi memberikan sebahagian daripadanya kepada C++.
Walau bagaimanapun, dalam siri 2.x akan datang, pasukan projek PyTorch merancang untuk mengalihkan kod yang berkaitan dengan torch.nn kembali kepada Python.
Selain itu, memandangkan PyTorch 2.0 ialah ciri tambahan (dan pilihan) sepenuhnya, 2.0 adalah 100% serasi ke belakang.
Dalam erti kata lain, asas kod adalah sama, API adalah sama dan cara menulis model adalah sama.
Lebih banyak sokongan teknikal
- TorchDynamo
Tangkap dengan selamat menggunakan cangkuk penilaian rangka kerja Python Program PyTorch ialah inovasi utama yang dibangunkan oleh pasukan dalam tangkapan graf sepanjang lima tahun yang lalu.
- AOTautograd
membebankan enjin autograd PyTorch sebagai autodiff pengesanan untuk menjana jejak belakang pandang ke hadapan.
- PrimTorch
Mengurangkan ~2000+ pengendali PyTorch menjadi set tertutup ~250 pengendali primitif yang pembangun boleh menyasarkan pengendali untuk membina PyTorch yang lengkap hujung belakang. Halangan untuk menulis kefungsian atau bahagian belakang PyTorch sangat dikurangkan.
- TorchInductor
Pengkompil pembelajaran mendalam yang boleh menjana kod pantas untuk berbilang pemecut dan hujung belakang. Untuk GPU Nvidia, ia menggunakan OpenAI Triton sebagai blok binaan utama.
Perlu diperhatikan bahawa TorchDynamo, AOTautograd, PrimTorch dan TorchInductor semuanya ditulis dalam Python dan menyokong bentuk dinamik.
Kelajuan latihan yang lebih pantas
Dengan memperkenalkan mod kompilasi baharu "torch.compile", PyTorch 2.0 boleh dipercepatkan dengan hanya satu baris kod Latihan model.
Tiada helah diperlukan di sini, cuma jalankan torch.compile() dan itu sahaja:
opt_module = torch.compile(module)
Untuk mengesahkan teknologi ini, pasukan membuat penanda aras ujian dengan teliti, termasuk klasifikasi imej, pengesanan objek, penjanaan imej dan tugas lain, serta pelbagai tugas NLP, seperti pemodelan bahasa, menjawab soalan , klasifikasi jujukan, Sistem pengesyoran dan pembelajaran pengukuhan. Antaranya, penanda aras ini boleh dibahagikan kepada tiga kategori:
- 46 model daripada HuggingFace Transformers
- 61 model daripada TIMM: koleksi PyTorch yang canggih oleh Ross Wightman Model imej
- 56 model daripada TorchBench: satu set pangkalan kod popular daripada github
Hasil ujian menunjukkan bahawa antara 163 model ini merangkumi penglihatan, NLP dan lain-lain medan Pada model sumber terbuka, kelajuan latihan telah dipertingkatkan sebanyak 38%-76%.
Perbandingan pada NVIDIA A100 GPU
Selain itu, pasukan juga Penanda aras telah dijalankan pada beberapa model PyTorch sumber terbuka yang popular dan peningkatan yang ketara daripada 30% kepada 2x telah diperolehi.
Pembangun Sylvain Gugger berkata: "Dengan hanya satu baris kod, PyTorch 2.0 boleh mencapai kelajuan 1.5x hingga 2.0x apabila melatih model Transformers. Ini adalah latihan ketepatan pencampuran sendiri yang paling perkara yang menarik sejak kemunculannya! 》
Tinjauan Teknikal
Penyusun PyTorch boleh dipecahkan kepada tiga bahagian:
- Graf pemerolehan
- Pengurangan graf
- Kompilasi graf
Antaranya, apabila membina pengkompil PyTorch, pemerolehan graf adalah lebih Sukar cabaran.
TorchDynamo
Pada awal tahun ini, pasukan mula mengusahakan TorchDynamo kaedah ini telah digunakan Ciri CPython yang diperkenalkan dalam PEP-0523, dipanggil API Penilaian Rangka Kerja.
Untuk tujuan ini, pasukan mengambil pendekatan dipacu data untuk mengesahkan keberkesanan TorchDynamo pada tangkapan graf - dengan menggunakan lebih daripada 7,000 projek Github yang ditulis dalam PyTorch sebagai set pengesahan.
Hasilnya menunjukkan bahawa TorchDynamo boleh melakukan penangkapan graf dengan betul dan selamat 99% sepanjang masa, dengan overhed yang boleh diabaikan.
TorchInductor
Untuk bahagian belakang pengkompil baharu PyTorch 2.0, pasukan mengambil inspirasi daripada cara pengguna menulis kernel tersuai berprestasi tinggi : Meningkatkan penggunaan daripada bahasa Triton.
TorchInductor menggunakan IR peringkat gelung demi gelung yang ditentukan Pythonic untuk memetakan model PyTorch secara automatik kepada kod Triton yang dihasilkan pada GPU dan C++/OpenMP pada CPU.
IR peringkat gelung teras TorchInductor hanya mengandungi kira-kira 50 operator, dan ia dilaksanakan dalam Python, yang menjadikannya mudah untuk dilanjutkan.
AOTautograd
Untuk mempercepatkan latihan, anda perlu menangkap bukan sahaja kod peringkat pengguna, tetapi juga penyebaran balik.
AOTautograd boleh menggunakan mekanisme lanjutan torch_dispatch PyTorch untuk menjejak enjin Autograd, menangkap rambatan belakang "lebih awal", dan kemudian menggunakan TorchInductor untuk mempercepatkan saluran ke hadapan dan ke belakang.
PrimTorch
PyTorch mempunyai lebih daripada 1200 operator, lebih daripada 2000 jika anda mengambil kira pelbagai beban berlebihan setiap operator secara individu. Oleh itu, menulis fungsi back-end atau merentas domain menjadi tugas yang memakan tenaga.
Dalam projek PrimTorch, pasukan menentukan dua set operator yang lebih kecil dan lebih stabil:
- Ops prim mempunyai kira-kira ~250 operator, sesuai untuk penyusun. Memandangkan cukup tahap rendah, ia hanya perlu menggabungkannya untuk mendapatkan prestasi yang baik.
- Ops ATen mempunyai kira-kira ~750 operator biasa yang sesuai untuk output apa adanya. Ini sesuai untuk hujung belakang yang sudah disepadukan pada peringkat ATen, atau yang tidak disusun, sekali gus memulihkan prestasi set operator peringkat rendah seperti Prim ops.
Bentuk Dinamik
Keperluan utama apabila melihat perkara yang diperlukan untuk menyokong fleksibiliti kod dalam PyTorch ialah sokongan untuk bentuk dinamik dan membolehkan model menerima tensor saiz yang berbeza tanpa menyebabkan penyusunan semula setiap kali bentuk berubah.
Apabila bentuk dinamik tidak disokong, penyelesaian yang biasa adalah dengan mengalasnya kepada kuasa 2 terdekat. Walau bagaimanapun, seperti yang dapat kita lihat daripada carta di bawah, ia menanggung overhed prestasi yang ketara dan juga menghasilkan masa penyusunan yang lebih lama dengan ketara.
Kini, dengan sokongan untuk bentuk dinamik, PyTorch 2.0 telah mencapai prestasi sehingga 40% lebih tinggi daripada Eager.
Akhir sekali, dalam pelan hala tuju untuk PyTorch 2.x, pasukan berharap untuk terus memajukan model kompilasi dari segi prestasi dan kebolehskalaan.
Atas ialah kandungan terperinci Satu baris kod, membuat elixir dua kali lebih cepat! PyTorch 2.0 keluar dengan mengejutkan, LeCun dengan bersemangat memajukannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Bayangkan model kecerdasan buatan yang bukan sahaja mempunyai keupayaan untuk mengatasi pengkomputeran tradisional, tetapi juga mencapai prestasi yang lebih cekap pada kos yang lebih rendah. Ini bukan fiksyen sains, DeepSeek-V2[1], model MoE sumber terbuka paling berkuasa di dunia ada di sini. DeepSeek-V2 ialah gabungan model bahasa pakar (MoE) yang berkuasa dengan ciri-ciri latihan ekonomi dan inferens yang cekap. Ia terdiri daripada 236B parameter, 21B daripadanya digunakan untuk mengaktifkan setiap penanda. Berbanding dengan DeepSeek67B, DeepSeek-V2 mempunyai prestasi yang lebih kukuh, sambil menjimatkan 42.5% kos latihan, mengurangkan cache KV sebanyak 93.3% dan meningkatkan daya pemprosesan penjanaan maksimum kepada 5.76 kali. DeepSeek ialah sebuah syarikat yang meneroka kecerdasan buatan am

AI memang mengubah matematik. Baru-baru ini, Tao Zhexuan, yang telah mengambil perhatian terhadap isu ini, telah memajukan keluaran terbaru "Buletin Persatuan Matematik Amerika" (Buletin Persatuan Matematik Amerika). Memfokuskan pada topik "Adakah mesin akan mengubah matematik?", ramai ahli matematik menyatakan pendapat mereka Seluruh proses itu penuh dengan percikan api, tegar dan menarik. Penulis mempunyai barisan yang kuat, termasuk pemenang Fields Medal Akshay Venkatesh, ahli matematik China Zheng Lejun, saintis komputer NYU Ernest Davis dan ramai lagi sarjana terkenal dalam industri. Dunia AI telah berubah secara mendadak Anda tahu, banyak artikel ini telah dihantar setahun yang lalu.

Prestasi JAX, yang dipromosikan oleh Google, telah mengatasi Pytorch dan TensorFlow dalam ujian penanda aras baru-baru ini, menduduki tempat pertama dalam 7 penunjuk. Dan ujian tidak dilakukan pada TPU dengan prestasi JAX terbaik. Walaupun dalam kalangan pembangun, Pytorch masih lebih popular daripada Tensorflow. Tetapi pada masa hadapan, mungkin lebih banyak model besar akan dilatih dan dijalankan berdasarkan platform JAX. Model Baru-baru ini, pasukan Keras menanda aras tiga hujung belakang (TensorFlow, JAX, PyTorch) dengan pelaksanaan PyTorch asli dan Keras2 dengan TensorFlow. Pertama, mereka memilih satu set arus perdana

Boston Dynamics Atlas secara rasmi memasuki era robot elektrik! Semalam, Atlas hidraulik hanya "menangis" menarik diri daripada peringkat sejarah Hari ini, Boston Dynamics mengumumkan bahawa Atlas elektrik sedang berfungsi. Nampaknya dalam bidang robot humanoid komersial, Boston Dynamics berazam untuk bersaing dengan Tesla. Selepas video baharu itu dikeluarkan, ia telah pun ditonton oleh lebih sejuta orang dalam masa sepuluh jam sahaja. Orang lama pergi dan peranan baru muncul. Ini adalah keperluan sejarah. Tidak dinafikan bahawa tahun ini adalah tahun letupan robot humanoid. Netizen mengulas: Kemajuan robot telah menjadikan majlis pembukaan tahun ini kelihatan seperti manusia, dan tahap kebebasan adalah jauh lebih besar daripada manusia Tetapi adakah ini benar-benar bukan filem seram? Pada permulaan video, Atlas berbaring dengan tenang di atas tanah, seolah-olah terlentang. Apa yang berikut adalah rahang-jatuh

Awal bulan ini, penyelidik dari MIT dan institusi lain mencadangkan alternatif yang sangat menjanjikan kepada MLP - KAN. KAN mengatasi MLP dari segi ketepatan dan kebolehtafsiran. Dan ia boleh mengatasi prestasi MLP berjalan dengan bilangan parameter yang lebih besar dengan bilangan parameter yang sangat kecil. Sebagai contoh, penulis menyatakan bahawa mereka menggunakan KAN untuk menghasilkan semula keputusan DeepMind dengan rangkaian yang lebih kecil dan tahap automasi yang lebih tinggi. Khususnya, MLP DeepMind mempunyai kira-kira 300,000 parameter, manakala KAN hanya mempunyai kira-kira 200 parameter. KAN mempunyai asas matematik yang kukuh seperti MLP berdasarkan teorem penghampiran universal, manakala KAN berdasarkan teorem perwakilan Kolmogorov-Arnold. Seperti yang ditunjukkan dalam rajah di bawah, KAN telah

Pengesanan objek ialah masalah yang agak matang dalam sistem pemanduan autonomi, antaranya pengesanan pejalan kaki adalah salah satu algoritma terawal untuk digunakan. Penyelidikan yang sangat komprehensif telah dijalankan dalam kebanyakan kertas kerja. Walau bagaimanapun, persepsi jarak menggunakan kamera fisheye untuk pandangan sekeliling agak kurang dikaji. Disebabkan herotan jejari yang besar, perwakilan kotak sempadan standard sukar dilaksanakan dalam kamera fisheye. Untuk mengurangkan perihalan di atas, kami meneroka kotak sempadan lanjutan, elips dan reka bentuk poligon am ke dalam perwakilan kutub/sudut dan mentakrifkan metrik mIOU pembahagian contoh untuk menganalisis perwakilan ini. Model fisheyeDetNet yang dicadangkan dengan bentuk poligon mengatasi model lain dan pada masa yang sama mencapai 49.5% mAP pada set data kamera fisheye Valeo untuk pemanduan autonomi

Video terbaru robot Tesla Optimus dikeluarkan, dan ia sudah boleh berfungsi di kilang. Pada kelajuan biasa, ia mengisih bateri (bateri 4680 Tesla) seperti ini: Pegawai itu juga mengeluarkan rupanya pada kelajuan 20x - pada "stesen kerja" kecil, memilih dan memilih dan memilih: Kali ini ia dikeluarkan Salah satu sorotan video itu ialah Optimus menyelesaikan kerja ini di kilang, sepenuhnya secara autonomi, tanpa campur tangan manusia sepanjang proses. Dan dari perspektif Optimus, ia juga boleh mengambil dan meletakkan bateri yang bengkok, memfokuskan pada pembetulan ralat automatik: Berkenaan tangan Optimus, saintis NVIDIA Jim Fan memberikan penilaian yang tinggi: Tangan Optimus adalah robot lima jari di dunia paling cerdik. Tangannya bukan sahaja boleh disentuh

Pautan projek ditulis di hadapan: https://nianticlabs.github.io/mickey/ Memandangkan dua gambar, pose kamera di antara mereka boleh dianggarkan dengan mewujudkan kesesuaian antara gambar. Biasanya, surat-menyurat ini adalah 2D hingga 2D, dan anggaran pose kami adalah skala-tak tentu. Sesetengah aplikasi, seperti realiti tambahan segera pada bila-bila masa, di mana-mana sahaja, memerlukan anggaran pose metrik skala, jadi mereka bergantung pada penganggar kedalaman luaran untuk memulihkan skala. Makalah ini mencadangkan MicKey, proses pemadanan titik utama yang mampu meramalkan korespondensi metrik dalam ruang kamera 3D. Dengan mempelajari padanan koordinat 3D merentas imej, kami dapat membuat kesimpulan relatif metrik
