Apa itu PyTorch?
 
Temukan watsonx.ai
Grafik yang menggambarkan aliran data

PyTorch adalah kerangka kerja pembelajaran mendalam berbasis perangkat lunak sumber terbuka yang digunakan untuk membangun jaringan neural, menggabungkan pustaka machine learning back end Torch dengan API tingkat tinggi berbasis Python. Fleksibilitas dan kemudahan penggunaannya, di antara manfaat lainnya, telah menjadikannya sebagai kerangka kerja machine learning terdepan untuk komunitas akademik dan penelitian.

PyTorch mendukung berbagai macam arsitektur jaringan neural, mulai dari algoritme regresi linier sederhana hingga jaringan saraf konvolusional yang kompleks dan model transformator generatif yang digunakan untuk tugas-tugas seperti visi komputer dan pemrosesan bahasa alami (NLP). Dibangun di atas bahasa pemrograman Python yang dipahami secara luas dan menawarkan pustaka ekstensif model yang sudah dikonfigurasi sebelumnya (dan bahkan sudah dilatih), PyTorch memungkinkan ilmuwan data untuk membangun dan menjalankan jaringan pembelajaran mendalam yang canggih sambil meminimalkan waktu dan tenaga kerja yang dihabiskan untuk kode dan struktur matematika.

PyTorch juga memungkinkan ilmuwan data untuk menjalankan dan menguji sebagian kode secara real-time, daripada menunggu seluruh kode diimplementasikan, yang, untuk model pembelajaran mendalam yang besar, bisa memakan waktu sangat lama. Hal ini menjadikan PyTorch platform luar biasa untuk pembuatan prototipe cepat, dan juga sangat mempercepat proses debugging.

Awalnya dikembangkan oleh Facebook AI Research (sekarang Meta), Python dijadikan sumber terbuka pada tahun 2017 dan telah berada di bawah pengawasan PyTorch Foundation (yang merupakan bagian dari Linux Foundation yang lebih besar) sejak tahun 2022. Yayasan ini menyediakan ruang netral bagi komunitas pembelajaran mendalam untuk berkolaborasi dalam pengembangan lebih lanjut ekosistem PyTorch.

Pada tahun 2023, IBM menjadi anggota utama PyTorch Foundation, setelah berkolaborasi dalam dua proyek besar: memungkinkan pelatihan yang lebih efisien untuk model dasar AI yang fleksibel dengan miliaran parameter dan membuat pemeriksaan untuk pelatihan AI yang jauh lebih hemat biaya. Platform watsonx IBM menggunakan PyTorch untuk menyediakan tumpukan perangkat lunak tingkat perusahaan untuk model dasar kecerdasan buatan, mulai dari pelatihan menyeluruh hingga penyempurnaan model.

Sumber Terbuka @ IBM

Dari blockchain hingga kontainer hingga AI hingga sistem operasi, dan segala sesuatu di antaranya, para pengembang kami menciptakan proyek-proyek sumber terbuka yang baru muncul dan mengelilinginya dengan kode, dokumen, dan materi pendukung, sehingga Anda dapat bergabung dengan inovasi ini.

Konten terkait

Berlangganan buletin IBM

Bagaimana cara kerja PyTorch?

Struktur matematika dan pemrograman PyTorch menyederhanakan dan merampingkan alur kerja machine learning, tanpa membatasi kompleksitas atau kinerja jaringan neural mendalam.

Python

Python adalah bahasa pemrograman tingkat tinggi dengan tujuan umum yang banyak digunakan dalam ilmu data, menjadikannya pilihan intuitif bagi ilmuwan data yang memperluas pekerjaan mereka ke dalam pemodelan jaringan pembelajaran mendalam secara aktif. Sintaks Python yang sederhana mudah dibaca, hanya membutuhkan sedikit waktu untuk mempelajarinya, dan dapat berjalan di sistem operasi apa pun, termasuk Windows, macOS, Linux, atau Unix. Python telah menjadi bahasa pemrograman kedua yang paling banyak digunakan di GitHub selama lebih dari tiga tahun, setelah mengambil alih Java pada tahun 2019. Popularitasnya terus meningkat, dengan peningkatan 22,5 persen pada tahun 20221.

 Fleksibilitas dan kesederhanaan ini telah membantu menumbuhkan komunitas online yang kuat dari para pengembang Python, yang berkolaborasi dalam beragam pustaka Python dan API seperti Numerical Python (NumPy) untuk operasi matematis, Panda untuk manipulasi data, atau matplotlib untuk visualisasi data, serta sumber daya pendidikan. Komunitas ini juga telah menghasilkan sejumlah besar pustaka Pytorch yang mengurangi kebosanan dan tebakan dalam pengkodean untuk machine learning, sehingga membebaskan para pengembang dan ilmuwan data untuk fokus pada inovasi daripada menulis tugas menghafal.

Tensor

Dalam algoritma machine learning apa pun, bahkan yang diterapkan pada informasi yang seolah-olah non-numerik seperti suara atau gambar, data harus direpresentasikan secara numerik. Di PyTorch, ini dicapai melalui tensor, yang berfungsi sebagai unit dasar data yang digunakan untuk komputasi pada platform.

Dalam konteks machine learning, tensor adalah susunan angka multidimensi yang berfungsi seperti perangkat pembukuan matematika. Secara linguistik, "tensor" berfungsi sebagai istilah umum yang mencakup beberapa entitas matematika yang lebih umum:

  • Skalar adalah tensor berdimensi nol, yang berisi satu angka.
  • Vektor adalah tensor satu dimensi, berisi beberapa skalar dari jenis yang sama. Tuple adalah tensor satu dimensi yang berisi tipe data yang berbeda.
  • Matriks adalah tensor dua dimensi, yang berisi beberapa vektor dengan tipe yang sama.
  • Tensor dengan tiga dimensi atau lebih, seperti tensor tiga dimensi yang digunakan untuk merepresentasikan gambar RGB dalam algoritme visi komputer, secara kolektif disebut sebagai tensor N-dimensi.

Tensor PyTorch berfungsi mirip dengan ndarrays yang digunakan di NumPy, tetapi tidak seperti ndarrays, yang hanya bisa berjalan di central processing unit (CPU), tensor juga bisa berjalan di graphics processing unit (GPU). GPU memungkinkan komputasi yang jauh lebih cepat daripada CPU, yang merupakan keuntungan besar mengingat volume data yang sangat besar dan pemrosesan paralel yang khas untuk pembelajaran mendalam.

Selain mengkodekan input dan output model, tensor PyTorch juga mengkodekan parameter model: bobot, bias, dan gradien yang "dipelajari" dalam machine learning. Properti tensor ini memungkinkan diferensiasi otomatis, yang merupakan salah satu fitur terpenting PyTorch.

Modul

PyTorch menggunakan modul sebagai blok bangunan model pembelajaran mendalam, yang memungkinkan konstruksi jaringan neural yang cepat dan mudah tanpa pekerjaan yang membosankan untuk pengkodean setiap algoritme secara manual.

 Modul dapat dan sering kali mengandung modul bersarang lainnya. Selain memungkinkan pembuatan jaringan neural multilapisan yang lebih rumit, hal ini juga memungkinkan model pembelajaran mendalam yang kompleks ini dapat dengan mudah disimpan sebagai satu modul bernama dan ditransfer di antara mesin, CPU, atau GPU yang berbeda. Model PyTorch bahkan dapat dijalankan di lingkungan non-Python, seperti C++, menggunakan Torchscript (tautan berada di luar ibm.com), membantu menjembatani kesenjangan antara prototipe penelitian dan penerapan produksi.

 Secara garis besar, ada tiga kelas modul utama yang digunakan untuk membangun dan mengoptimalkan model pembelajaran mendalam di PyTorch:

  • Modul nn digunakan sebagai lapisan jaringan neural. Paket torch.nn berisi pustaka besar modul yang melakukan operasi umum seperti konvolusi, penggabungan, dan regresi. Sebagai contoh, torch.nn.Linear(n,m) memanggil algoritma regresi linier dengan n input dan m output (yang input dan parameter awalnya kemudian ditetapkan dalam baris kode berikutnya).

  • Modul autograd menyediakan cara sederhana untuk menghitung gradien secara otomatis, yang digunakan untuk mengoptimalkan parameter model melalui penurunan gradien, untuk fungsi apa pun yang dioperasikan dalam jaringan neural. Menambahkan tensor apa pun dengan sinyal requires_grad=True ke autograd bahwa setiap operasi pada tensor tersebut harus dilacak, yang memungkinkan diferensiasi otomatis.

  • Modul Optim menerapkan algoritme pengoptimalan pada gradien tersebut. Torch.optim menyediakan modul untuk berbagai metode pengoptimalan, seperti stochastic gradient descent (SGD) atau root mean square propagation (RMSprop), yang sesuai dengan kebutuhan pengoptimalan tertentu.

Grafik komputasi dinamis

Grafik komputasi dinamis (DCG) adalah bagaimana model pembelajaran mendalam direpresentasikan dalam PyTorch. Secara abstrak, grafik komputasi memetakan aliran data antara berbagai operasi dalam sistem matematika: dalam konteks pembelajaran mendalam, grafik ini pada dasarnya menerjemahkan kode jaringan neural ke dalam diagram alir yang mengindikasikan operasi yang dilakukan di setiap node dan ketergantungan antara berbagai lapisan di dalam jaringan, susunan langkah dan urutan yang mengubah data input menjadi data output.

Yang membedakan grafik komputasi dinamis (seperti yang digunakan di PyTorch) dengan grafik komputasi statis (seperti yang digunakan di TensorFlow) adalah bahwa DCG menunda spesifikasi komputasi dan hubungan yang tepat di antara keduanya hingga waktu berjalan. Dengan kata lain, sedangkan grafik komputasi statis membutuhkan arsitektur seluruh jaringan neural yang sepenuhnya ditentukan dan disusun agar dapat berjalan, DCG dapat diulang dan dimodifikasi dengan cepat.

Hal ini membuat DCG sangat berguna untuk debugging dan prototyping, karena bagian tertentu dari kode model dapat diubah atau dijalankan secara terpisah tanpa harus mengatur ulang seluruh model. Karena untuk model pembelajaran mendalam yang sangat besar yang digunakan untuk visi komputer canggih dan tugas NLP, dapat membuang-buang waktu dan sumber daya komputasi. Manfaat dari fleksibilitas ini meluas ke pelatihan model, karena grafik komputasi dinamis mudah dihasilkan secara terbalik selama propagasi balik.

Meskipun strukturnya yang tetap dapat memberdayakan efisiensi komputasi yang lebih besar, grafik komputasi statis memiliki fleksibilitas yang terbatas: misalnya, membangun model yang menggunakan jumlah lapisan yang bervariasi tergantung pada data input, seperti convolutional neural network (CNN) yang dapat memproses gambar dengan ukuran berbeda-beda, sangat sulit dilakukan dengan grafik statis.

Diferensiasi otomatis

Salah satu metode yang banyak digunakan untuk melatih jaringan neural, terutama dalam pembelajaran terawasi, adalah propagasi balik. Pertama, dalam forward pass, sebuah model diberikan beberapa input (x) dan memprediksi beberapa output (y); bekerja mundur dari output tersebut, sebuah fungsi kerugian digunakan untuk mengukur kesalahan prediksi model pada nilai x yang berbeda. Dengan mendiferensiasikan fungsi kerugian tersebut untuk menemukan turunannya, penurunan gradien dapat digunakan untuk menyesuaikan bobot dalam jaringan neural, satu lapisan pada satu waktu.

Modul autograd PyTorch mendukung teknik diferensiasi otomatisnya dengan menggunakan rumus kalkulus yang disebut aturan rantai, menghitung turunan kompleks dengan membaginya menjadi turunan yang lebih sederhana dan menggabungkannya nanti. Autograd secara otomatis menghitung dan mencatat gradien untuk semua operasi yang dijalankan dalam grafik komputasi, sehingga sangat mengurangi kerja keras propagasi balik. 

Ketika menjalankan model yang telah dilatih, autograd menjadi penggunaan sumber daya komputasi yang tidak perlu. Menambahkan operasi tensor apapun dengan requires_grad=False akan memberi sinyal pada PyTorch untuk berhenti melacak gradien.

Kumpulan data dan pemuat data

Bekerja dengan kumpulan data besar yang diperlukan untuk melatih model pembelajaran mendalam bisa jadi sangat kompleks dan menuntut komputasi. PyTorch menyediakan dua primitif data, kumpulan data dan pemuat data, untuk memfasilitasi pemuatan data dan membuat kode lebih mudah dibaca.

  • torch.utils.data.Dataset menyimpan sampel data dan label yang sesuai
  • torch.utils.data.Dataloader membungkus sebuah pengulangan (objek yang dapat dioperasikan) di sekitar kumpulan data untuk memudahkan akses ke sampel

 

Ekosistem PyTorch

Fitur inti PyTorch dilengkapi dengan ekosistem alat, perpustakaan, dan ekstensi yang kuat (tautan berada di luar ibm.com) yang dikembangkan oleh anggota komunitas PyTorch. Banyak perpustakaan sumber terbuka tambahan, yang berisi modul khusus tujuan, jaringan neural yang dikonfigurasi sebelumnya, dan bahkan model yang sudah dilatih sebelumnya, tersedia untuk melengkapi perpustakaan torch yang sudah diinstal sebelumnya.

Torchvision

Torchvision adalah sebuah toolkit yang berisi modul, arsitektur jaringan, dan kumpulan data untuk berbagai tugas klasifikasi gambar, deteksi objek, dan segmentasi gambar.

Jelajahi Torchvision
TorchText

TorchText menyediakan sumber daya seperti kumpulan data, transformasi pemrosesan teks dasar dan model yang telah dilatih untuk digunakan dalam NLP.

Jelajahi TorchText
Pertukaran Jaringan Neural Terbuka

Open Neural Network Exchange (ONNX) memastikan interoperabilitas antara kerangka kerja AI, memungkinkan pengguna untuk dengan mudah mengalihkan model PyTorch mereka ke platform lain.

Jelajahi ONNX
Tutorial

Banyak tutorial bermanfaat tersedia di PyTorch.org. Sebagai contoh, tutorial tingkat menengah (tautan berada di luar ibm.com) ini mengajarkan dasar-dasar pembelajaran penguatan mendalam dengan melatih AI untuk bermain video game.

Jelajahi tutorial PyTorch
Menginstal dan menjalankan PyTorch

PyTorch dapat diinstal dan dijalankan dalam berbagai konfigurasi pada sistem lokal dan platform cloud.

Menjalankan PyTorch secara lokal membutuhkan instalasi Python, baik menggunakan manajer paket Anaconda, Homebrew (tautan berada di luar ibm.com) atau situs web Python (tautan berada di luar ibm.com).

PyTorch dapat diinstal secara lokal melalui Anaconda (tautan berada di luar ibm.com)  dengan menggunakan perintah conda install pytorch torchvision -c pytorch, atau melalui pip (tautan berada di luar ibm.com) dengan menggunakan perintah pip3 install torch torchvision. Anaconda direkomendasikan, karena menyediakan semua dependensi PyTorch (termasuk Python) dalam satu instalasi sandbox2.

PyTorch juga dapat dijalankan pada platform cloud, termasuk Amazon Web Services, Google Cloud dan Microsoft Azure.

Disarankan (tetapi tidak diwajibkan) untuk bekerja dengan GPU NVIDIA agar dapat memanfaatkan dukungan PyTorch untuk CUDA (Compute Unified Device Architecture), yang menawarkan pelatihan dan kinerja yang jauh lebih cepat daripada yang dapat diberikan oleh CPU. 

Solusi terkait
watsonx.ai

Anda dapat melatih, memvalidasi, menyetel, dan menerapkan AI generatif, model dasar, dan kemampuan machine learning dengan mudah serta membangun aplikasi AI dalam waktu yang singkat dengan data yang sedikit.

Jelajahi watsonx.ai

Layanan konsultasi AI

Menata ulang cara Anda bekerja dengan AI: tim global kami yang beragam dan terdiri dari lebih dari 20.000 pakar AI dapat membantu Anda dengan cepat dan percaya diri dalam merancang dan menskalakan AI serta otomatisasi di seluruh bisnis Anda, bekerja di seluruh teknologi IBM watsonx kami sendiri dan ekosistem mitra yang terbuka untuk menghadirkan model AI apa pun, di cloud mana pun, yang dipandu oleh etika dan kepercayaan.

Jelajahi layanan konsultasi AI IBM kami

watsonx.data

Tingkatkan beban kerja analitik dan AI untuk semua data Anda, di mana saja dengan watsonx.data, satu-satunya penyimpanan data di industri ini yang terbuka, hybrid, dan diatur.

Jelajahi watsonx.data
Sumber daya PyTorch Memulai dengan machine learning

Jalur pembelajaran ini dirancang bagi siapa saja yang tertarik untuk cepat menguasai machine learning, menampilkan tutorial langkah demi langkah dengan demonstrasi langsung di mana Anda akan membangun model dan menggunakannya dalam aplikasi.

Panduan pemula untuk Python

Kami akan memperkenalkan konsep dasar yang perlu Anda ketahui untuk memulai dengan bahasa pemrograman langsung ini, dari menjalankan perhitungan aljabar hingga menghasilkan output grafis dari data Anda.

PyTorch: sumber daya dan alat

Jelajahi artikel, penelitian, postingan blog, tutorial, dan video untuk memperluas pengetahuan Anda tentang ekosistem PyTorch.

Ambil langkah selanjutnya

Melatih, memvalidasi, menyetel, dan menerapkan AI generatif, model dasar, dan kemampuan machine learning dengan mudah serta membangun aplikasi AI dalam waktu yang singkat dengan menggunakan sebagian kecil data dengan IBM watsonx.ai, studio perusahaan generasi berikutnya untuk pembangun AI.

Mulai uji coba gratis Anda Pesan demo langsung
Catatan kaki

1 Octoverse 2022: The top programming languages (tautan berada di luar ibm.com), Github, 17 November 2022
2 PyTorch: Get Started – Start Locally (tautan berada di luar ibm.com)