- Awalnya sama sekali tidak berniat bekerja di bidang AI/ML
- Hanya karena menggunakan alat yang dibutuhkan untuk pekerjaan, saya secara alami mulai memakai AI atau ML, dan akhirnya terjun ke bidang ini (profesor madya CMU)
- Menyambut tahun baru, ia menengok kembali ke tahun 2000 dan merefleksikan proyek-proyek AI/ML utama yang pernah diikutinya
Pernyataan if dan angka acak: pengalaman pemrograman awal
- Dimulai dari video game:
- Terinspirasi oleh Tamagotchi, mencoba mengembangkan game hewan peliharaan virtual dengan VB6.
- Menerapkan logika sederhana dengan timer dan pernyataan kondisi:
- Nilai kelaparan meningkat setiap 10 detik.
- Jika kelaparan melewati tingkat tertentu, kesehatan berkurang setiap 3 detik.
- Jika kesehatan menjadi 0, peliharaan pingsan.
- Hasil: game yang monoton dan tidak menyenangkan.
- Pengembangan game saat SMA:
- Mengembangkan game tembak-menembak luar angkasa 2D:
- Pemain bertahan dari gelombang musuh sambil mengumpulkan power-up.
- Pola kemunculan musuh dibuat dengan pernyataan
if yang panjang, memanfaatkan angka acak dan statistik permainan (waktu bermain, jumlah tembakan, HP, dan sebagainya).
- Hasil:
- Game terasa agak dinamis dan tidak mudah ditebak.
- Namun pemain cepat berhenti karena ketertarikannya tidak bertahan lama.
- Menjelajahi konsep AI:
- Pada pertengahan 2000-an, membeli buku Programming Game AI by Example untuk mempelajari cara menerapkan AI ke dalam game.
- Awalnya belum bisa dimanfaatkan, tetapi kemudian sangat membantu dalam proyek-proyek berikutnya.
- Pengalaman pada masa ini menjadi landasan untuk bereksperimen dengan mekanisme game yang lebih kompleks dan menarik
State machine dan higher-order function: pengembangan game saat kuliah
- Evolusi game:
- Saat kuliah, tingkat pengembangan game naik satu level dan berhasil membuat game yang dimainkan jutaan orang.
- Beberapa game bahkan berhasil menghasilkan pendapatan.
- Seiring kemampuan pemrograman yang makin matang, isi buku yang dipelajari bisa diterapkan dalam praktik.
- Penerapan teknologi:
- Finite State Machine:
- Digunakan untuk menerapkan pola perilaku musuh.
- Factory pattern:
- Untuk pembuatan dan pengelolaan objek.
- Higher-order Functions:
- Dirancang agar perilaku musuh dan senjata dapat dikombinasikan.
- Contoh:
- Senjata berayun dengan amplitudo 25 derajat ke kiri dan kanan sambil menembakkan peluru dalam bentuk kerucut sempit.
- Peluru sedikit mengarah ke target terdekat, dengan kemungkinan 1% memantul.
- Game menjadi lebih hidup:
- Secara bertahap menambahkan unsur dinamis berdasarkan status game dan input pemain.
- Menambah variasi lewat keacakan dan kombinasi.
- Pendekatan ini diterapkan secara berlapis ke seluruh game, bukan hanya perilaku musuh tetapi juga sprite, particle effect, efek suara, peluru, animasi, dan lain-lain.
- Hasil:
- Game menjadi lebih hidup dan lebih menyenangkan.
- Namun tersadar bahwa ini bukan AI, melainkan hanya kombinasi pernyataan
if dan pemanggilan fungsi yang dirancang dengan baik.
- Meski game bisa memberi kesan seolah-olah "hidup", pada tahap ini ia menyadari bahwa semuanya masih berupa logika dan fungsi yang dirancang secara manual.
Logika orde pertama, representasi pengetahuan, support vector machine, neural network: pengalaman awal di pascasarjana
- Memulai program master:
- Setelah lulus, mendaftar program master tepat menjelang tenggat.
- Pilihan mata kuliah terbatas, sehingga mengambil kuliah AI dan neural network.
- Merasa kecewa dengan mata kuliah yang dipilih sebagai pengganti kuliah compiler yang sebenarnya diinginkan:
- Berfokus pada teori tingkat tinggi tanpa praktik atau implementasi.
- Banyak diskusi berputar pada definisi.
- Kuliah AI:
- Menggunakan buku Artificial Intelligence: A Modern Approach (Third Edition).
- Mempelajari konsep seperti planning, agent, logika orde pertama, dan representasi pengetahuan.
- Mendapat kosakata baru untuk memikirkan masalah, tetapi sulit menerapkannya secara nyata.
- Kuliah neural network:
- Mempelajari teori perceptron, support vector machine (SVM), feedforward network, model Hopfield, backpropagation, dan lain-lain.
- Kurangnya panduan jelas untuk praktik:
- Merasa frustrasi ketika dosen hanya menjawab, "coba cari paket MATLAB."
- Mengembangkan program video chat bandwidth rendah:
- Dengan OpenCV melakukan deteksi wajah dan ekstraksi area:
- Mengklasifikasikan kondisi sudut mulut, posisi alis kiri, apakah mata kanan terbuka, dan sebagainya.
- Mengumpulkan ratusan gambar wajah berlabel dari database.
- Mengirim status biner hasil klasifikasi lewat socket, lalu merender avatar dengan OpenGL.
- Hasil:
- Sangat sensitif terhadap perubahan pencahayaan, sulit menyesuaikan parameter, dan membutuhkan waktu lama untuk pelatihan.
- OpenCV sulit digunakan dan programnya merepotkan untuk dimodifikasi.
- Pencapaian:
- Belajar banyak melalui berbagai trial and error.
- Pada Januari 2013, mengunggah dan membagikan video demo awal:
- Video demo meskipun amatir, tetap mencatat lebih dari 1.000 penayangan.
- Masa ini merupakan proses pertumbuhan penting untuk belajar bagaimana menerapkan teori secara nyata dan memecahkan masalah
Decision tree, clustering, algoritme rekomendasi: pengalaman selama doktoral
- Tujuan riset:
- Mencoba memecahkan masalah berikut dengan menganalisis data log editor kode:
- Mengidentifikasi apakah programmer sedang buntu atau kehilangan arah di dalam kode.
- Memprediksi file berikutnya yang akan dijelajahi programmer.
- Merekomendasikan kode yang relevan dengan tepat.
- Metode statistik yang digunakan:
- Algoritme C4.5: membuat decision tree.
- K-means dan DBSCAN: clustering event.
- Apriori dan collaborative filtering: mencari keterkaitan antar-event.
- Hasil:
- Metodenya sederhana, tetapi menunjukkan performa yang sangat kuat.
- Dalam banyak kasus, metode ini cukup efektif dibanding neural network yang lebih kompleks.
- Pencapaian:
- Menerbitkan paper, menjalani beberapa internship, dan membuat developer tool.
- Berhasil lulus program doktoral.
- Materi terkait:
- Paper: analisis data tentang cara developer mencari informasi
Foraging and Navigations, Fundamentally: Developers Predictions of Value and Cost (PDF))
- Laporan internship Microsoft: pengalaman membuat bot code review
When users never use the features they asked for
- Selama doktoral, ia mencapai hasil yang bermakna baik di akademia maupun praktik dengan memakai teknik statistik untuk menyelesaikan masalah nyata
Antarmuka pengguna cerdas: awal riset sebagai profesor
- Menetapkan arah riset baru:
- Pada 2018, sebagai profesor tenure-track, memilih Intelligent Developer Tools sebagai topik riset.
- Awalnya konsepnya masih samar, tetapi dimulai dari proyek yang menggunakan model prediktif untuk mengidentifikasi dan memperbaiki kesalahpahaman programmer terlebih dahulu.
- Proposal riset pertama:
- Tujuan proyek:
- Menggunakan teknik analisis program dan model prediktif untuk mengidentifikasi kesalahpahaman pemrogram pemula terhadap perilaku program.
- Memperbaiki kesalahpahaman dan menjelaskan logika tanpa mengganggu programmer.
- Menghasilkan kode pengujian yang menangkap perubahan perilaku program yang tidak disengaja agar kesalahpahaman serupa dapat dicegah di masa depan.
- Ringkasan:
- Proyek kedua:
- Riset untuk memprediksi kebutuhan informasi programmer dan menghasilkan antarmuka pengguna secara real-time.
- Contoh:
- Saat programmer menelusuri riwayat Git, sistem memvisualisasikan dan menyajikan kumpulan commit yang direkomendasikan.
- Integrasi riset:
- Mengusulkan visi besar berjudul "Inquisitive Programming Environments as Learning Environments for Novices and Experts".
- Materi terkait:
- Hasil dan keterbatasan:
- Proyek ini berhasil dimulai dengan dukungan hibah, tetapi ia mengundurkan diri dari jabatan profesor sebelum riset berjalan penuh.
- Masa ini menjadi titik balik penting untuk mengonkretkan riset tentang antarmuka pengguna cerdas dan merancang visi yang lebih besar
Program synthesis dan large language model (LLM): pengalaman di Microsoft
- Bergabung dengan Microsoft:
- Pada Januari 2022, bergabung dengan tim program synthesis di Microsoft.
- Pada tahun yang sama ChatGPT diluncurkan dan teknologi AI mulai diterapkan ke semua bidang, sehingga ini menjadi waktu yang tepat untuk mendalami pekerjaan AI.
- Pendekatan hati-hati terhadap penerapan AI:
- Meski berada di tim AI, ia tetap menentang penggunaan AI jika tidak ada alasan yang kuat:
- Apakah ada tujuan yang jelas untuk menyelesaikan masalah pengguna?
- Apakah ini bisa digantikan oleh pernyataan
if yang sederhana?
- Apakah antarmuka bahasa alami benar-benar pilihan yang tepat?
- Pendapat terkait:
- Proyek-proyek utama
-
- Riset yang memanfaatkan bobot attention pada LLM:
-
- Tutor AI untuk data science:
- Peningkatan pengalaman pengguna IntelliCode:
- Alat berbasis LLM untuk data scientist:
- Postingan blog motivasi:
- Alat utama:
- Alat berbasis LLM untuk mahasiswa:
- Postingan blog motivasi:
- Alat utama:
- Riset membangun Copilot untuk perusahaan:
- Aktivitas saat ini dan mendatang
- Mengembangkan alat AI secara independen:
- Setelah keluar dari Microsoft, fokus pada proyek AI pribadi.
- Alat utama:
- Melalui beragam proyek berbasis AI dan LLM, ia mengembangkan solusi inovatif dan hingga kini terus meneliti serta membangun alat AI
Penutup
- Ini adalah 25 tahun yang menyenangkan
- Rencana berikutnya? Tetap mengajar, belajar, dan terus membuat sesuatu
1 komentar
Opini Hacker News
ifsaja sudah cukup. Perlu yakin juga apakah bahasa alami merupakan antarmuka yang tepat