6 bahasa pemrograman terbaik untuk pengembangan AI

AI (kecerdasan buatan) membuka banyak kemungkinan bagi pengembang aplikasi. Dengan memanfaatkan pembelajaran mesin atau pembelajaran mendalam, Anda dapat menghasilkan profil pengguna, personalisasi, dan rekomendasi yang jauh lebih baik, atau menggabungkan penelusuran yang lebih cerdas, antarmuka suara, atau bantuan cerdas, atau meningkatkan aplikasi Anda dengan berbagai cara lain. Anda bahkan dapat membangun aplikasi yang melihat, mendengar, dan bereaksi terhadap situasi yang tidak pernah Anda antisipasi.

Bahasa pemrograman apa yang harus Anda pelajari untuk menyelami kedalaman AI? Anda pasti menginginkan bahasa dengan banyak pustaka pembelajaran mesin dan pembelajaran mendalam yang bagus, tentunya. Itu juga harus menampilkan kinerja runtime yang baik, dukungan alat yang baik, komunitas programmer yang besar, dan ekosistem paket pendukung yang sehat. Itu adalah daftar persyaratan yang panjang, tetapi masih banyak pilihan yang bagus. 

Berikut adalah pilihan saya untuk enam bahasa pemrograman terbaik untuk pengembangan AI, bersama dengan dua sebutan terhormat. Beberapa dari bahasa ini sedang naik daun, sementara yang lain tergelincir. Yang lain lagi yang hanya perlu Anda ketahui jika Anda tertarik dengan arsitektur dan aplikasi pembelajaran mendalam sejarah. Mari kita lihat bagaimana mereka semua bertumpuk. 

Python

Di nomor satu, masih Python. Bagaimana bisa jadi yang lain, sungguh? Meskipun ada hal-hal yang menjengkelkan tentang Python, jika Anda melakukan pekerjaan AI, Anda hampir pasti akan menggunakan Python di beberapa titik. Dan beberapa titik kasar telah sedikit dihaluskan.

Saat kita memasuki tahun 2020, masalah Python 2.x versus Python 3.x menjadi diperdebatkan karena hampir setiap pustaka utama mendukung Python 3.x dan menghentikan dukungan Python 2.x secepat mungkin. Dengan kata lain, Anda akhirnya dapat memanfaatkan semua fitur bahasa baru dengan sungguh-sungguh.

Dan sementara mimpi buruk pengemasan Python — di mana setiap solusi berbeda dipecah dengan cara yang sedikit berbeda — masih ada, Anda dapat menggunakan Anaconda sekitar 95% dari waktu dan tidak terlalu khawatir tentang banyak hal. Namun, alangkah baiknya jika dunia Python akan memperbaiki masalah yang sudah berlangsung lama ini untuk selamanya.

Meskipun demikian, pustaka matematika dan statistik yang tersedia dengan Python tidak tertandingi dalam bahasa lain. NumPy telah ada di mana-mana sehingga hampir menjadi API standar untuk operasi tensor, dan Pandas menghadirkan kerangka data R yang kuat dan fleksibel ke Python. Untuk pemrosesan bahasa alami (NLP), Anda memiliki NLTK yang terhormat dan SpaCy yang sangat cepat. Untuk pembelajaran mesin, ada Scikit-learn yang teruji pertempuran. Dan dalam hal pembelajaran mendalam, semua pustaka saat ini (TensorFlow, PyTorch, Chainer, Apache MXNet, Theano, dll.) Secara efektif adalah proyek yang mengutamakan Python.

Jika Anda membaca penelitian pembelajaran mendalam mutakhir tentang arXiv, Anda akan menemukan sebagian besar studi yang menawarkan kode sumber melakukannya dengan Python. Lalu ada bagian lain dari ekosistem Python. Meskipun IPython telah menjadi Notebook Jupyter, dan tidak lagi berpusat pada Python, Anda masih akan menemukan bahwa sebagian besar pengguna Notebook Jupyter, dan sebagian besar notebook yang dibagikan secara online, menggunakan Python. Sedangkan untuk menerapkan model, munculnya arsitektur dan teknologi layanan mikro seperti Seldon Core berarti sangat mudah untuk menerapkan model Python dalam produksi saat ini.

Tidak ada jalan keluarnya. Python adalah bahasa di garis depan penelitian AI, yang akan Anda temukan paling banyak kerangka kerja pembelajaran mesin dan pembelajaran mendalam, dan yang hampir semua orang di dunia AI berbicara. Untuk alasan ini, Python adalah yang pertama di antara bahasa pemrograman AI, terlepas dari kenyataan bahwa penulis Anda mengutuk masalah spasi setidaknya sekali sehari.

Video terkait: Pembelajaran mesin dan AI diuraikan

Menerobos hype seputar pembelajaran mesin dan kecerdasan buatan, panel kami membahas definisi dan implikasi teknologi.

C ++

C ++ tidak mungkin menjadi pilihan pertama Anda saat mengembangkan aplikasi AI, tetapi saat Anda perlu memeras setiap bit kinerja terakhir dari sistem — skenario yang menjadi lebih umum saat pembelajaran mendalam muncul dan Anda perlu menjalankan model Anda sistem terbatas sumber daya — saatnya untuk kembali ke dunia petunjuk yang menakutkan sekali lagi.

Untungnya, C ++ modern bisa menyenangkan untuk ditulis (jujur!). Anda punya pilihan pendekatan. Anda dapat menyelami bagian bawah tumpukan, menggunakan pustaka seperti CUDA Nvidia untuk menulis kode Anda sendiri yang dijalankan langsung di GPU, atau Anda dapat menggunakan TensorFlow atau PyTorch untuk mendapatkan akses ke API tingkat tinggi yang fleksibel. Baik PyTorch dan TensorFlow memungkinkan Anda memuat model yang dibuat dengan Python (atau subset Python TorchScript PyTorch) dan menjalankannya langsung dalam runtime C ++, membuat Anda lebih dekat dengan bare metal untuk produksi sambil menjaga fleksibilitas dalam pengembangan.

Singkatnya, C ++ menjadi bagian penting dari toolkit karena aplikasi AI berkembang biak di semua perangkat dari sistem tersemat terkecil hingga cluster besar. AI di ujung berarti tidak hanya cukup untuk menjadi akurat lagi; kamu harus baik dan cepat.

Java dan bahasa JVM lainnya

Keluarga bahasa JVM (Java, Scala, Kotlin, Clojure, dll.) Terus menjadi pilihan tepat untuk pengembangan aplikasi AI. Anda memiliki banyak pustaka yang tersedia untuk semua bagian pipeline, baik itu pemrosesan bahasa alami (CoreNLP), operasi tensor (ND4J), atau tumpukan pembelajaran mendalam yang dipercepat GPU (DL4J) penuh. Selain itu, Anda mendapatkan akses mudah ke platform data besar seperti Apache Spark dan Apache Hadoop.

Java adalah lingua franca kebanyakan perusahaan, dan dengan konstruksi bahasa baru yang tersedia di Java 8 dan versi yang lebih baru, menulis kode Java bukanlah pengalaman yang penuh kebencian yang banyak dari kita ingat. Menulis aplikasi AI di Java mungkin terasa membosankan, tetapi dapat menyelesaikan pekerjaan — dan Anda dapat menggunakan semua infrastruktur Java yang ada untuk pengembangan, penerapan, dan pemantauan.

JavaScript

Anda tidak mungkin mempelajari JavaScript hanya untuk menulis aplikasi AI, tetapi TensorFlow.js Google terus meningkatkan dan menawarkan cara yang menarik untuk menerapkan model Keras dan TensorFlow ke browser Anda atau melalui Node.js menggunakan WebGL untuk penghitungan yang dipercepat GPU.

Namun, satu hal yang belum benar-benar kami lihat sejak peluncuran TensorFlow.js adalah banyaknya pengembang JavaScript yang membanjiri ruang AI. Saya pikir itu mungkin karena ekosistem JavaScript di sekitarnya tidak memiliki kedalaman perpustakaan yang tersedia dibandingkan dengan bahasa seperti Python.

Lebih lanjut, di sisi server, tidak ada banyak keuntungan untuk menerapkan model dengan Node.js dibandingkan dengan salah satu opsi Python, jadi kita mungkin melihat aplikasi AI berbasis JavaScript tetap berbasis browser dalam waktu dekat. Tapi itu masih menciptakan banyak peluang menarik untuk bersenang-senang seperti Perburuan Emoji Scavenger.

Cepat

Dalam versi tahun lalu artikel ini, saya menyebutkan bahwa Swift adalah bahasa yang harus diperhatikan. Tahun ini, itu masuk ke enam besar saya. Apa yang terjadi? Swift Untuk TensorFlow. Pengikatan yang sepenuhnya diketik dan bebas cruft dari fitur TensorFlow terbaru dan terhebat, dan sihir gelap yang memungkinkan Anda mengimpor pustaka Python seolah-olah Anda menggunakan Python sejak awal.

Tim Fastai sedang mengerjakan versi Swift dari pustaka populer mereka, dan kami menjanjikan banyak pengoptimalan lebih lanjut dalam menghasilkan dan menjalankan model dengan memindahkan banyak kecerdasan tensor ke dalam compiler LLVM. Apakah produksi sudah siap sekarang? Tidak juga, tetapi ini mungkin menunjukkan jalan ke generasi pengembangan pembelajaran mendalam berikutnya, jadi Anda harus menyelidiki apa yang terjadi dengan Swift.

Bahasa R.

R masuk di bagian bawah daftar kami, dan trennya menurun. R adalah bahasa yang disukai data scientist. Namun, pemrogram lain sering menemukan R sedikit membingungkan, karena pendekatannya yang berpusat pada kerangka data. Jika Anda memiliki grup pengembang R yang berdedikasi, maka masuk akal untuk menggunakan integrasi dengan TensorFlow, Keras, atau H2O untuk penelitian, pembuatan prototipe, dan eksperimen, tetapi saya ragu untuk merekomendasikan R untuk penggunaan produksi atau untuk pengembangan greenfield, karena kinerja dan masalah operasional. Meskipun Anda dapat menulis kode R berperforma yang dapat digunakan di server produksi, hampir pasti akan lebih mudah untuk mengambil prototipe R itu dan mengodekannya kembali di Java atau Python.

Opsi pemrograman AI lainnya

Tentu saja, Python, C ++, Java, JavaScript, Swift, dan R bukan satu-satunya bahasa yang tersedia untuk pemrograman AI. Berikut adalah dua bahasa pemrograman lagi yang mungkin menarik atau berguna bagi Anda, meskipun saya tidak akan menganggapnya sebagai prioritas utama untuk dipelajari.

Lua

Beberapa tahun yang lalu, Lua sedang naik daun di dunia kecerdasan buatan karena kerangka kerja Torch, salah satu perpustakaan pembelajaran mesin paling populer untuk kebutuhan penelitian dan produksi. Jika Anda mendalami sejarah model pembelajaran mendalam, Anda akan sering menemukan referensi yang berlebihan ke Torch dan banyak kode sumber Lua di repositori GitHub lama.

Untuk itu, mungkin berguna untuk memiliki pengetahuan yang berfungsi tentang Torch API, yang tidak terlalu jauh dari API dasar PyTorch. Namun, jika, seperti kebanyakan dari kita, Anda benar-benar tidak perlu melakukan banyak penelitian historis untuk aplikasi Anda, Anda mungkin bisa bertahan tanpa harus membungkus kepala kita dengan sedikit keanehan Lua.

Julia

Julia adalah bahasa pemrograman berperforma tinggi yang berfokus pada komputasi numerik, sehingga cocok untuk dunia AI yang sarat matematika. Meskipun saat ini tidak begitu populer sebagai pilihan bahasa, wrapper seperti TensorFlow.jl dan Mocha (sangat dipengaruhi oleh Caffe) memberikan dukungan deep learning yang baik. Jika Anda tidak keberatan dengan ekosistem yang relatif kecil, dan ingin memanfaatkan fokus Julia dalam membuat penghitungan kinerja tinggi dengan mudah dan cepat, Julia mungkin layak untuk dilihat.