Skip to main content

Intern Semester 1: AI Engineer di GDP Labs

Intern atau magang, suatu kegiatan untuk merasakan suasana kantor. Daripada tidur-tiduran ngewibu gajelas selama sebulan, lebih baik ngoding 8 jam sehari di kantor kan?

Pertama tahu GDP Labs dari lomba BNPCHS 2017. Waktu penutupan, Pak On Lee, CEO GDP Labs, bawa seminar. Terus kan di akhir acara aku kenalan dan dikasih kartu nama :D

Aku awalnya berminat mau magang semester 2, namun temenku Rania semester 0 udah magang di GDP Labs. Aku jadinya daftar magang winter sebagai AI Engineer dan keterima :) Aku ditaro di bagian GLAIR (GDP Labs Artificial Intelligence Research).

Bagian-bagian dari blog ini:
- Tentang GDP Labs
- Kosa Kata Machine Learning
- Onboarding (19 Desember 2018)
- Minggu Pertama (26 - 28 Desember 2018)
- Minggu Kedua (2 - 4 Januari 2018)
- Minggu Ketiga (7 - 11 Januari 2018)
- Minggu Keempat (14 - 18 Januari 2018)
- Minggu Kelima (21 - 25 Januari 2018)
- Minggu Keenam (28 - 31 Januari 2018)
- Penutup

Iklan Sejenak
Tentang GDP Labs

GDP Labs itu bagian dari GDP Venture. GDP sendiri kepanjangan dari Global Digital Prima. GDP Labs itu tujuannya sebagai programmernya GDP Venture.

Ada 3 tujuan dari GDP Labs:
- Incubation: Saat ini GDP Labs menginkubasi 2 startup, GLAIR dan Catapa. Nanti kalau sudah sudah bisa berdiri sendiri bakal dilepas. Dulu katanya Blibli di inkubasi GDP Labs .-.
- Helping Sister Company: GDP punya beberapa sister company (list), kalau misal ada yang butuh bantuan, GDP Labs siap mengirim programmernya.
- Always Learning: Ada beberapa buku bacaan di kantornya, seperti "Clean Code" dan "Inspired". Katanya kita bisa menggunakan jam kerja untuk membaca buku-buku ini. GDP juga sering ngirim orang ikut conferensi teknologi di luar negeri. Setiap selasa juga rutin diadakan meeting :v

Aku pas mau daftar magang kesusahan menemukan produk-produknya GDP Labs. Kan pas interview bisa ditanyain :'v. Taunya memang produk-produknya rahasia karena dibuatnya untuk company lain, bukan ke konsumen.

Yah sekain perkenalannya, Selamat menikmati.

Kosa-kata Machine Learning:

ML = Machine Learning
ANN = Artificial Neural Networks. Salah satu algoritma ML.
Alin = Aljabar Linier. Seperti Matriks, dkk.
NLP = Natural Language Processing. Cabang ML yang berurusan dengan teks.
CP = Competitive Programming.

Onboarding (19/12)

UAS di fasilkom selesai tanggal 21. Aku ingin mulai magang secepat mungkin, jadi aku mulai tanggal 26. Liburanku 4 hari doang :v.

Sebelum mulai magang aku diundang onboarding dulu. Semacam "orientasi" untuk mulai magang. Onboarding itu dikenalin tentang GDP labs secara lengkap, dapat tur kantor, dan dapat kartu akses gedung. Selain itu juga MAC addressku didaftarin wifi kantor agar bisa dipakai. Wifinya cepet pol :).

GDP kantornya di Menara Citicon. Kira-kira 35 km dari tempatku. Metode transportnya pilihanku? aku naik motor PP Depok-Citicon :) Pertimbangannya adalah kalau aku naik kereta bakal "pepes" dan boros (6k PP kereta, + ~20K gojek perhari). Kalah sama motor yang cuma perlu 15k bensin tiap 2 hari. Pertimbangan utamanya tetep pepesnya sih. Rawan copet >:(.

Perjalanan naik motor kira-kira 90 menit berangkat, 1 jam pulang.  Sangat dipengaruhi dengan macet :/. Pulang onboarding hidungku sakit karena polusinya. Jadi seterusnya aku pakai masker.

Minggu Pertama: Amazing Neural Networks

Ketika pertama kali baca paper ANN

Minggu pertama kerjaanku mempelajari ulang cara kerja Artificial Neural Networks (ANN). Sebelum magang ini aku cuma tahu high-levelnya saja jadi diminta untuk coba implement ANN sendiri. Pertama kali liat rumus-rumus ANN, aku ngerasa Mual. Rumusnya penuh kalkulus dan matriks. Apalagi deadline task ini minggu ini :"(.

Aku putuskan untuk belajar kalkulus dan aljabar linier dulu. Targetku jumat baru sentuh rumus ANNnya. Alin aku cuma butuh setengah hari untuk ngerti karena udah dapat saat pelatnas. Kalau kalkulus aku butuh effort ekstra, apalagi ANN pakai multivariabel kalkulus. 2 hariku habis untuk binge-watching khan academy tentang materi itu.

Hari jumat, paper ANNnya udah jadi bahasa manusia! Setelah ngerti, aku coba turunin ulang semua rumusnya dari awal. Setelah snack sore, aku udah bisa jelasin mathnya ke mentorku.

rekreasi orat-oretku
skill matdis++, skill alin++
Ternyata setelah aku turunin sendiri, matematikanya sangat indah :"). Jadi kagum deh dengan orang yang nemuin ANN. Aku rekomendasikan untuk mempelajari dulu kalkulus dan Alin bagi yang ingin belajar ML. Nanti akan kagum betapa indah matematikanya. Untung aku pernah ikut Pelatnas jadi bisa ngertiin prerequisites ini dengan relatif cepat :).

Pencapaian minggu 1: Mungkin udah siap kuliah Alin dan Matdas?

Minggu Kedua: Siklus ctrl+enter Tidur



Minggu ini Squad Intern nambah. Temenku dari UI, Kezia dan Ariell mulai magang. Walau beda kerjaannya (AI Engineer vs Software Development Engineer), kami bertiga diposisikan di GLAIR. Cuma workstationnya mereka terpisah jauh dari aku.

Proyekku awalnya tentang NLP, tentang word representations. Setelah aku pelajari ini apa, aku jadi inget kejadian saat OSN 2017. Saat itu kontingen Bali sedang memperdebatkan asal kata micin dan aku menemukan web yang "menjelaskan" arti kata micin menggunakan pytagoras. Kutipan dari blog lamaku:

"ada penjelasan mengenai metode pytagoras. aku harus bacain keras-keras. aku pun menantang diri sendiri untuk gak ngakak saat bacanya tapi mustahil."


Tak terduga setahun kemudian aku bakal megang proyek yang harus implementasi itu! Memang dunia ini bekerja dengan sangat aneh. Aku rasa ini bakal jadi proyek yang sangat keren.

Eh, proyekku diganti :"(. Mentorku ngerasa hal yang aku pelajari masih terlalu baru dan engineers masih belum yakin ini bekerja atau tidak. Proyekku diganti jadi ML explanability dengan menggunakan LIME.

Minggu ini difokuskan untuk tuning model-model yang baik. Dikasih dataset dan aku melatih Random Forest (RF) dan ANN. Aku ngemath RF untuk cari splitnya, dan nentuin lapisan-lapisan ANN pakai observasi. ANN membutuhkan tenaga, baik diriku maupun laptopku.

thinkpad jadi serasa ROG, harus selalu dicolok :(
Pencapaian Minggu ini: Udah punya model dengan akurasi yang cukup baik :v

Minggu Ketiga: Udara Segar!

Ah! daritadi ngomongin kerjaan mulu. Pada bagian ini mari kita pergi dari kerjaan sejenak! Sebelumnya aku perkenalkan dulu AI Intern yang lain.

AI Intern 2019
Steven dan Otto sudah mulai magang sebelum aku. Minggu ini adalah minggu terakhir mereka magang. Satu divisi dengan mastah-mastah sangat meningkatkan motivasiku. Biasanya kalau lagi jenuh aku bakal ngunjungin mejanya Steven. Setelah ngobrol-ngobrol dan ngeliat kodingannya, aku langsung semangat lagi.

Kalau Otto orangnya asik dan supportif :v. Mejaku posisinya strategis, pasti dilewatin orang-orang yang mau ke divisi AI. Biasanya Otto nanya-nanyain gimana progress proyekku. Kadang dia juga cerita tentang olimpiade math, dunia baru!

Hari selasa adalah hari yang subur.

Jam 11 siang,  semua TOKI & TOMI yang sedang kerja di GDP Labs diundang untuk makan bareng CEOnya, Pak On Lee. Undangannya termasuk intern juga :D. Kami makan di lantai 6 gedung sama. Ternyata ada restoran steak enak. Aku dan Kezia paling telat datang, dan aku dapat "kursi panas" tepat disamping Pak On ._.

Banyak yang diobrolin dengan Pak On, seperti hobi intern dan tentang GDP Labs. Kami maba minta maaf apabila coding test taun depan lebih sulit karena Pak On penasaran banyak maba yang bisa lolos tahun ini :".


Selesai makan steaknya, aku "cuci mulut" dengan makan spageti+karaage yang disediakan kantor untuk makan siang. Tak sampai disana, hari ini Pak On ulang tahun! sebagai perayaan ada Carls Junior, sushi, dan roti korea. Oh tentunya aku sikat!

(Tray sushi baru banget dibuka)
Pak On: (menghampiri kumpulan intern) "Ayo ambil!"
Pak On: (liat aku pegang beberapa sushi) "Cepet juga you!"

Total aku makan 5x deh hari itu dan semuanya aliran beda. Ada steak, burger, sushi, spageti, dan roti korea :v. Perut anak kos mah udah gamungkin mual karena campuran gini :P. Anyway, Selamat ulang tahun Pak On!!!

Hari Rabu, aku pikir sudah kembali normal. Siangnya aku denger desah-desuh kakak-kakaknya debat mau sushitei atau tempat lain. Itu obrolan yang gak jarang sih, kadang kakak-kakaknya selesai kerja makan bareng. Ternyata saat mau makan siang, aku diajakkin ikut ke GI, makan enak bulanan GLAIR!

Seluruh tim GLAIR berangkat ke GI. Makannya di manhattan fish market, tempat baru buatku. Budget makannya 120k per-orang, kirain banyak, ternyata menunya mahal :"v, aku pilih menu "dori chiki bang-bang" yang intinya dori + ayam digabung. Steven dan Otto juga milih itu, tapi mereka mesen yang dibakar! curang aku gatau >:(.

tampak sederhana, tapi rasanya seger dan gurih

Budget kami sepertinya gacukup untuk beli minum :v, untungnya ada free refill. Jadi kami intern AI hanya pesen 1 minum, namun 3 sedotan xD.

Full Squad GLAIR di GI

Sesampainya di citicon, makanan kantor sudah di beres-beresin, padahal pingin makan lagi :(. Ini hari terakhir Otto magang, dia presentasi tentang proyeknya di ruang akuarium. Ruang akuarium itu nama sebuah ruangan meeting disini. Namanya demikian mungkin karena temboknya biru? presentasinya ke seluruh tim GLAIR, termasuk yang di cabang lain (Jogja, Surabaya, dkk) lewat video.

Hari Jumat, giliran Stevenlah yang presentasi. Kalau Steven topiknya math banget, walaupun ditanyain terus sama kakak-kakaknya, dia bisa jawab m(_ _)m. pptnya dia ada animasi keren juga, visualisasi Kmeans gitu. Memang dari pelatnas Steven terkenal buat ppt yang niat.

Yah, minggu ini aku berpisah dengan Steven dan Otto :"(

Obrolan makan siang kami biasa lama banget sampai gasadar sudah saatnya kerja. "Istirahat itu sampai pingin kerja lagi" katanya :). Mulai minggu depan, Intern AI hanya aku seorang. Aku sangat senang dan bangga pernah 1 divisi dengan master IOI dan IMO 2018.

Pencapaian Minggu ini: Ekspansi kapasitas perut.

Minggu Keempat: Sepi :(


Minggu lalu terlalu asik ngomongin refreshingnya, sampe lupa ngomongin kerjaan xD. Yowes dibahas sekaligus, kebetulan juga kerjaanku minggu ini dan minggu lalu berkaitan. Tugasku 2 minggu ini adalah mempelajari cara kerja LIME.

Minggu lalu aku full membaca paper LIME. Kemajuan mengerti perlahan melambat saat matematikanya muncul. LASSO, Ridge, Kernel, kulahap pelan-pelan. Keren banget algonya gila! Jumat aku dengan bangga bisa jelasin algonya ke mentorku. Ini paper pertama di bidang yang aku ga kuasai :D. Sebelumnya aku sering baca paper CP, biasanya sehari doang udah ngerti :"v.

Kalau minggu ini aku inspect kodingan LIME di githubnya. Ngeliat codebasenya, aku dah takut duluan. Pikiranku: "Kodingan tim ICPCku yang cuma 100 baris ga ngerti, apalagi ini yang modulenya banyak dan 500+ baris?"

Ternyata setelah aku baca, beneran ga ngerti xD


Inilah akibat terlalu menghayati ajaran pelatnas, "Koding semuanya sendiri!". Apalagi, nama variabelnya panjang dan hampir tak ada komen.  Hari senin usai, aku nyerah baca kodingannya.

...maap bukan anime plot twist, ini serius xD...

Tapi, aku tidak menyerah ngertiin kodenya. Jadi reponya aku clone, modif lokal, tahu high-level fungsi tiap segmen kode, lacak variabelnya, akhirnya tahu deh kodingannya ngapain :v.

Loh? bener kan. Aku nyerah ngertiin dengan cara membaca. Caraku untuk ngertiin adalah dengan trial and error. Aku juga nemu bug di programnya dan submit pull request :O

ada plottwist padahal dah bilang gaada plottwist

Yah, kira-kira hari rabu aku sudah paham kodingan LIME inside-out. Selanjutnya? aku buat LIME versi sendiri! Tujuannya agar saat presentasi bisa aku tunjukkan sebagai bukti pengertianku. Tentunya aku buat versi sederhana, hanya 1 module.

Ini semua pas memakan seminggu. Akhir minggu aku juga sempet implement LIME di dataset pertama yang dikasih (classification).

Ini minggu pertama Steven & Otto gaada. Gaada intern AI lagi :(. Kadang aku main-main ke tempat Kezia & Ariell, walau biasanya cuma nyapa doang.

Pencapaian Minggu ini: Skill dan niat baca kodingan orang ningkat pesat.

Minggu Kelima: L1 L2 R1 R2

"Arawareyo! Ensemble Model!"

Waktuku di GDP Labs ini tinggal seminggu lagi. Tugasku minggu ini adalah implementasi masalah regresi pakai LIME. Kalau diibaratkan game, tugasku minggu lalu itu level 1, tugasku minggu ini mungkin boss battlenya. Fitur datanya banyak coy, 60+!

Aku menikmati ngolah data ini! datanya yang besar membuat semua hal harus di koding (say no to hardcode!). Kilas balik kodingku, aku sangat bangga :".


Sebuah perbedaan

Kalau modellingnya, bisa ditebak sendiri dari memenya, aku pakai ensemble elastic net dan Gboost. Kenapa? karena mager koding ANN analisisku bilang itu paling bagus. Hasilnya cukup memuaskan!

Implementasi LIME juga cukup mudah, tambahin analisis-analisisnya juga. Hmm! task ini tidak seseram yang kubayangkan! analisis data mau besar mau kecil, asal ga di hardcode, sama aja :P.

Sebenernya aku kodingnya ga selesai minggu ini. Jumat kodinganku masih ada bug-bug ngeselin. Aku yakin minggu depan bakal selesai sih.

Pencapaian minggu ini: Bisa melakukan analisis dan transformasi tanpa hardcode di python.

Minggu Keenam: "Why should i trust you?"
(LIME reference)

Minggu terakhir magang! Tiap intern ada final presentation yang membawakan apa yang telah dipelajari selama magang. Semua intern UI, Aku, Ate, Kezia, Ariell, presentasi di hari yang sama, kamis.

Kodingan regressionku minggu lalu aku bisa kelarin hari senin. Modelnya rada menjijikkan, but it works! Kalau LIME ini, semakin black box modelnya, semakin keren penjelasannya. Bugnya siang dah fix, jadi selesai makan aku mulai bikin slides.

Aku pake google slides karena data-data dan environmentku di ubuntu semua. Pertama kali buat presentasi gapake power point. Ternyata google slides powerfull juga kalau engga ada animasinya.

Ekspektasi: Selasa dah selesai slidenya, selasarabu tinggal latihan.
Realita: Selasa baru jadi 10 slide.

8 jam kerja cuma jadi 10 slide? masa iya? iya.

Slideku minim teks. Pake aturan "maksimum 15 kata per slide". Aku berencana banyakkin ilustrasi terus nanti dijelasin. Jadi yang lama itu mikirnya sih xD.

Hari rabunya aku full buat slide. Sempet ngintip slide Kezia Ariell yang bagus formatnya, meanwhile slideku putih :". Seneng banget slideku kelar beberapa menit sebelum waktunya pulang :v. Aku kasi ringkasan sedikit ke mentorku. dibilang OK.

kegiatan sepulang kantor hari rabu

Kamis aku presentasi. Ujung-ujungnya aku latihan presentasi juga. Di kantor banyak "ruang serbaguna" jadi aku pakai 1 untuk latian sendiri. Time limitku sejam, dan aku latiannya lumayan ngepas. Mantap. Dah siap presentasi deh :v.

Ate presentasi pertama, sedangkan aku nomor undi 2. Saat aku presentasi untung penonton masih segar :v. Aku maunya pake gaya presentasi biasaku, jalan-jalan. Tapi karena presentasinya di broadcast live ke semua cabang kantor, aku duduk manis :/. Presentasinya seru sekaligus menegangkan, karena kadang ditanyain Engineernya disana.

Selesai presentasi, udahan deh. Aku packing-packing, dikasih kenang-kenangan, dan internku selesai.

yak, kenangan terakhir di GDP.
Ada penampakan @Rania

Penutup

Dulunya aku kira magang itu seru. Ekspektasiku benar, tapi melelahkan juga xD. Apalagi aku naik pp motor ke kantor dari Depok. Hitung aja, 1 perjalanan 1.5 jam (best case!), ngantor 9 jam, pulang 1.5 jam, tidur 8 jam. Berarti, waktu kosongku perhari maksimal 4 jam! Itupun saat malem dimana aku sudah tepar maka yang biasa terjadi adalah makan+mandi 1 jam, tidur 11 jam wkwkwk. Berikutnya, aku bakal ngekos deket tempat magang aja :(

Terimakasih GDP Labs sudah menerima aku sebagai intern. Aku dapat banyak pengalaman dari magang disini.  Terimakasih kepada kakak-kakak GDP yang baik-baik dan temen-temenku yang mau intern bareng :)

TOKI'18 di GDP Labs

Terakhir, terimakasih spesial kepada prasmanan makan siang kantor yang bervariasi, tanpa micin, dan enak-enak. Unlimited iga, teriyaki, katsu, soto, carbonara, karaage, sampai ayam bakar pernah ada disini.

ayam rempah, karaage, udang telor asin, iga bakar.
beberapa makanan terenak dari prasmanan.

Kalau kata Quanta (Fasilkom angkatan 2018): "Perutku kenyang, duitku masih aman!"

Comments

Popular posts from this blog

Pembahasan OSN 2016 Day 1 + Day 2

OSN tinggal lagi sebulan. Aku sadar bahwa ada pembahasan resmi OSN 2015 dan 2017, tapi gaada yang 2016 :(. Terutama ada soal super asik "wisata palembang" yang dimana orang yang AC setelah dua tahun ini baru dua orang (sekarang 3, karena ada aku :v). Jadi aku buat pembahasan OSN 2016. Mungkin soalnya udah basi(:v) tapi mudah-mudahan masih dapat dijadikan pembelajaran.

Catatan:
Aku engga ngeshare source codeku, karena implementasi itu bagian serunya. Tapi bakal ada beberapa pseudocode, aku tulis menggunakan bahasa pseudopascal :v.

Day 1

Pasar 16 Ilir

Subtask 1-6,8  (67 poin)

Perhatikan bahwa N*M paling banyak 20, cukup kecil jadi kita bisa buat semua kemungkinan jalannya. Kita asumsikan kasus terburuk, yaitu N*M=20. ini akan maksimum ketika R=4 dan C=5 (atau sebaliknya). Jadi banyaknya kemungkinan jalan cukup sedikit. Kita bisa simpan semua kemungkinan jawabannya dalam array, dan apabila ditanya harga antar P dan Q tinggal iterasi saja isi arraynya.

Nah, sekarang tinggal gimana …

Jurnal Pelatnas 2 TOKI 2018, Minggu 3: Gochisōsama (+MIT Application)

Catatan: dikarenakan betapa gregetnya minggu terakhir ini, aku sama sekali gak sempet nulis harian seperti pada jurnal-jurnal sebelumnya. Berdasarkan nilai kuis minggu ini dan nilai-nilaiku minggu lalu, performaku divonis menurun oleh Pak Rully. Maka, minggu terakhir ini aku memutuskan untuk fokus total pada pelatnas dan ga ngeblog harian seperti biasanya. Aku baru bisa mulai menulis sepulangnya aku dari pelatnas 2. Jadi gaya penulisan pada tulisan ini bakal sedikit berbeda. Artinya gaada ROTD :(

Pelatnas 2 sudah memasuki minggu terakhir, dan seperti yang ditulis pada catatan diatas, minggu ini bisa jadi merupakan minggu yang paling menantang dalam karir komputerku.

Rabu, 7 Maret 2018

Ah, hari rabu, hari maut…

Seperti yang sudah diketahui, Setiap hari Rabu bakal diadakan kuis, semacam tes penilaian yang bobotnya sangat besar dalam menentukan siapakah yang bakal lolos ke pelatnas 3 nantinya. Setiap pagi selalu diawali dengan hal yang sama yakni dibangunin Kak Dimas (Sepertinya bebera…