Bagaimana tidak bergabung dengan jajaran spesialis yang bercita-cita tinggi jika Anda seorang Data Scientist


Komunitas Habra melakukan wawancara lain dalam proyek pendidikan kami: siaran langsung dengan orang-orang dari IT yang menjawab pertanyaan Anda dalam format komunikasi langsung.

Proyek kami adalah upaya untuk membuat seperangkat panduan dan rekomendasi lengkap untuk kehidupan pengembang yang sukses: bagaimana membangun karier, mendapatkan tawaran impian, menarik investasi dalam startup, tidak keluar pada proyek membosankan, tumbuh dalam bisnis Anda dan membeli rumah di tepi laut dalam perjalanan Anda.

Di awal minggu, Boris Yangel, insinyur Yandex ML yang berpartisipasi dalam penciptaan otak Alice dan sekarang membuat kendaraan tak berawak, menjawab pertanyaan kami. 

Borya berbicara tentang bagaimana menjadi Data-Scientist yang keren, bagaimana terjun payung membantunya dalam pekerjaannya, mengapa konferensi ML tidak berguna, dan menjawab posting baru-baru ini . Ayah yang marah tentang bagaimana Alice merekomendasikan video cerita pembunuhan kepada seorang anak.



Nama saya Boris Yangel, saya bekerja di Yandex. Saya seorang insinyur ML berdasarkan profesi, dan baru-baru ini saya mengelola proyek-proyek ML. Saat ini saya sedang mengerjakan proyek kendaraan tak berawak Yandex, mengembangkan bagian dari tumpukan ML. Sebelumnya, ia terlibat dalam Alice, bertanggung jawab untuk pengembangan modul, yang secara kondisional dapat disebut "otak" - modul ini, setelah pidato dikenali, menentukan apa yang ingin dikatakan oleh pengguna dan memutuskan jawabannya. Sebelum itu, saya bekerja di kelompok teknologi jaringan saraf Yandex, dan sebelum itu, di Microsoft Research, di kelompok Chris Bishop, di proyek Infer.net, ini adalah perpustakaan keluaran Bayesian. Bahkan sebelumnya, saya di Yandex bertanggung jawab atas peringkat pencarian dalam gambar.

, ? , machine learning ?


Pertanyaannya agak aneh. Saya ulangi: keterampilan teknis minimum apa yang diperlukan (tergantung pada apa yang ingin Anda lakukan), dapatkah seseorang dengan pendidikan liberal menerimanya?

Jika "masuk" adalah, katakanlah, latih jaringan saraf tidak hanya untuk membedakan anjing dari kucing, tetapi untuk melakukan apa yang Anda butuhkan secara pribadi, maka ada cara yang dapat diakses oleh banyak orang. Ada banyak kode di Internet untuk menyelesaikan masalah umum, dan sekarang Anda dapat dengan mudah dan cepat mengambil kode seperti itu, memasukkan data Anda ke dalamnya dan mendapatkan hasilnya. Ini adalah hal paling sederhana yang dapat dilakukan, keterampilan untuk ini memerlukan minimal, termasuk pemrograman.

Anda hanya perlu kemampuan untuk memahami kode yang sudah jadi dan mengeditnya. Jika kode terstruktur dengan baik, mudah.

Jika Anda "masuk" - artinya membuat jaringan saraf sendiri untuk menyelesaikan tugas yang tidak terlalu sepele, tugas menjadi lebih rumit, lebih banyak keterampilan yang dibutuhkan.

Untuk mengumpulkan jaringan saraf sendiri, Anda harus setidaknya memiliki sedikit pemahaman tentang matematika, mengetahui dasar-dasar aljabar linier, memahami apa matriks, vektor, tensor, apa yang dapat Anda lakukan dengan mereka, apa itu turunan dan gradien keturunan. Saya tidak bisa mengatakan bahwa hanya seorang ahli yang akan mengetahuinya, tetapi Anda perlu memiliki pengetahuan, termasuk bagian apa dari jaringan saraf dan bagaimana biasanya untuk merapat mereka untuk mendapatkan hasilnya.

Sekarang ada kerangka kerja yang cukup mudah digunakan untuk menghubungkan elemen jaringan saraf - misalnya, TensorFlow dengan add-in Keras (sangat sederhana, Anda membutuhkan pengetahuan Python minimal). Tapi Keras mungkin tidak cukup untuk operasi non-sepele, dan kemudian Anda harus bekerja dengan TensorFlow "telanjang" - ini membutuhkan lebih banyak keterampilan, terutama untuk membuat operasi Anda sendiri di dalam TensorFlow. Semakin jauh Anda ingin pergi, semakin banyak keterampilan yang Anda butuhkan. Selain itu, masalahnya dimulai tepat ketika ada kesalahan: untuk mengetahui mengapa sistem tidak bekerja seperti yang Anda butuhkan, Anda memerlukan tingkat keterampilan yang relatif lebih tinggi - Anda harus sepenuhnya menyadari apa yang terjadi “di bawah tudung. "

Apa jenis buku tentang sains data dan pembelajaran mesin di Python yang dibutuhkan pemula? Bagaimana cara mempraktikkan pengetahuan ini?


Saya tidak yakin dapat menjawab pertanyaan ini dengan benar. Ketika saya masih pemula, ada jauh lebih sedikit buku bagus dari sekarang, dan menemukan informasi yang tepat dalam bentuk yang nyaman lebih sulit.

Sekarang ada banyak buku tentang pembelajaran dalam, misalnya, buku Goodfellow - ada sebagian besar dasar yang perlu Anda ketahui di jaringan saraf, dan matematika yang diperlukan. Ada buku-buku dengan pendekatan praktis - mereka tidak hanya memberikan keakraban dengan metode matematika, tetapi juga segera memberi tahu Anda bagaimana melakukan sesuatu yang spesifik dengan Python.

Ada buku karya Keras penulis, Francois Scholl, tentang pembelajaran mendalam dengan Keras. Ada banyak buku, meskipun saya tidak bisa mengatakan mana yang lebih baik. Sepertinya saya bahwa Anda dapat dengan aman mengambil buku tentang penulis terkenal.

Jika tugasnya adalah membentuk tulang punggung pengetahuan, maka buku-buku yang lebih mendasar akan dibutuhkan, misalnya, Pengenalan Pola dan Pembelajaran Mesin Chris Bishop , saya sarankan untuk membacanya dan melakukan latihan darinya. Tidak perlu membaca secara penuh, tetapi bab-bab utama - misalnya, pada teori probabilitas - akan membantu membangun pemahaman tentang bagaimana keseluruhan pembelajaran mesin membentuk suatu kerangka kerja tunggal.

Selain itu, penting untuk mempelajari cara berpikir dalam model . Kami tidak hanya menggunakan metode tertentu untuk mendapatkan hasilnya, tetapi kami memodelkan datanya. Kita perlu mengadopsi cara berpikir ini - misalnya, buku online Model-Based Machine Learning Chris Bishop akan membantu dalam hal ini .sebagian gratis. Setiap bab dari buku ini adalah contoh dari tugas yang Anda butuhkan untuk membangun model, dan dalam bab ini, Anda secara konsisten mencoba melakukan ini, secara bertahap menyulitkan model, hingga Anda mendapatkan hasilnya. Ini membantu untuk mengadopsi cara berpikir yang diperlukan untuk ilmu data.

Mengenai latihan - saya sudah bicara tentang betapa pentingnya untuk mengetahui apa yang terjadi "di bawah tenda". Untuk melakukan ini, yang terbaik adalah mencoba mengumpulkan sesuatu sendiri. Tulis gradient descent sendiri daripada menggunakan framework yang sudah jadi, atau tulis layer dan tambahkan ke framework. Cobalah untuk membuat tugas yang relatif tidak sepele dengan struktur yang menarik; selesaikanlah saat menentukan pengetahuan dan informasi apa yang kurang. Secara terus-menerus menyulitkan solusi untuk meningkatkan kualitas. Biarkan itu menjadi tugas seperti itu, hasil dari solusi yang akan menarik bagi Anda secara pribadi.

Sekarang ada perkembangan pesat TensorFlow JS. Saya belajar mesin pembelajaran dan ingin menggunakan perpustakaan ini. Apa prospek untuk frontend?


TensorFlow JS di frontend dapat digunakan sebagai titik masuk ke pembelajaran mesin, meskipun saya tidak mengerti mengapa. Jika ini karena Anda hanya tahu JavaScript, ini adalah motivasi yang salah; Python sangat mudah dipelajari.

TensorFlow JS memiliki bidang aplikasinya sendiri: ini adalah pembelajaran mesin, di mana inferensi bekerja langsung di browser, yang memungkinkan Anda untuk membuat alat pembelajaran mendalam yang interaktif. Ini memungkinkan Anda untuk memberi seseorang alat interaktif di mana Anda dapat bekerja dengan algoritma dan model, membuat visualisasi dan dengan demikian meningkatkan pemahaman Anda tentang subjek. Mungkin ada area menjanjikan lain dari pembelajaran mendalam di mana Anda perlu interaktif - misalnya, alat untuk kreativitas, di mana Anda dapat bekerja dengan gambar secara real time atau mensintesis musik.

Bagaimana menjadi spesialis keren di bidang kecerdasan buatan (misalnya, NLP), secepat mungkin?


Sedangkan untuk bagian kedua, kecepatan selalu tergantung pada basis pengetahuan yang ada.

Adapun bagian pertama - menurut saya pertanyaan itu diajukan secara tidak benar di sini. NLP dulu memiliki banyak teknik yang berbeda, Anda perlu tahu banyak untuk menyelesaikan masalah, tetapi kemudian spesialis pembelajaran yang mendalam datang ke sana. Mereka datang dengan BERT dengan peningkatan bertahap, dan sekarang untuk menyelesaikan tugas-tugas NLP Anda tidak perlu tahu apa pun kecuali BERT. Pada saat yang sama, untuk memahami BERT, Anda tidak perlu memahami NLP - Anda perlu tahu bagaimana model diterapkan pada token simbol. Anda perlu menjadi spesialis dalam pembelajaran mesin, dan kemudian Anda akan tersedia - dengan sedikit usaha - berbagai bidang aplikasi.

Bagaimana menjadi spesialis pembelajaran mesin keren?


Pertama-tama, Anda perlu membangun di dalam kepala Anda kerangka kerja konseptual yang baik tentang apa yang terjadi dalam pembelajaran mesin. Selama Anda melihatnya sebagai serangkaian fakta, algoritma, dan heuristik yang berbeda, Anda tidak akan melangkah jauh.

Secara kasar, kita harus memahami yang berikut: yang kita lakukan hanyalah mencari fungsi dari beberapa set yang terbaik. Anda perlu memahami apa arti fungsi tersebut yang terbaik, di antara set mana Anda dapat mencari fungsi mana, mengapa kami lebih suka satu atau set lainnya, mengapa lebih efektif untuk mencari di beberapa daripada yang lain, trik apa yang ada untuk mencari di set yang berbeda. Anda perlu memahami bahwa fungsi-fungsi ini adalah model data (setidaknya yang menarik bagi kami).

Model data dibangun menggunakan teknik standar dari satu set kecil, yang kira-kira sama untuk pembelajaran mendalam dan pemrograman probabilistik; Anda perlu memahami bagaimana teknik-teknik ini digabungkan, dan dalam kasus apa. Maka Anda akan menemukan bahwa Anda memahami bagaimana tugas diselesaikan di berbagai bidang subjek.

Misalkan ada filter Kalman - memodelkan dinamika sistem dalam waktu, dan ada buku tentang mereka yang dapat dibaca. Jika filter Kalman tidak sesuai dengan Anda, Anda tidak akan dapat melakukan modifikasi untuk itu untuk melakukan sesuatu yang serupa untuk tugas Anda, tetapi "tidak cukup filter Kalman."

Tetapi jika Anda memahami bahwa ini hanyalah model probabilistik yang dibangun di atas prinsip-prinsip tertentu yang cukup sederhana (di mana ada sesuatu yang tidak diketahui, tambahkan distribusi normal, dan semua yang dimodelkan secara langsung adalah dinamika linear), maka Anda dapat membangun sesuatu apa yang Anda butuhkan tanpa tahu tentang filter Kalman.

Jika Anda mencapai cara berpikir ini, Anda akan menemukan bahwa sebagian besar artikel - bahkan dari konferensi puncak - tidak menarik. Biasanya, peningkatan bertahap dijelaskan di sana menggunakan teknik standar yang dapat Anda terapkan sendiri - dan ini akan jelas bagi Anda - dan tanpa kemungkinan penskalaan di luar batas dataset yang digunakan. Bagaimanapun, Anda tidak akan ketinggalan artikel bagus di mana teknik yang benar-benar baru disajikan - semua orang akan membicarakannya, dan Anda akan segera mempelajarinya. Ternyata ada beberapa artikel yang sangat dibutuhkan.

Beri tahu kami tentang tumpukan yang Anda kerjakan. Perpustakaan dan kerangka kerja apa yang harus dipelajari oleh spesialis pembelajaran mesin pemula?


Saya bekerja terutama dengan TensorFlow dan Keras. PyTorch masih mendapatkan popularitas - rekan kerja memuji dia.

Ketika Keras muncul - yaitu, abstraksi tingkat tinggi yang ada di dalamnya dapat digunakan, dan tidak perlu masuk lebih dalam - lebih baik menggunakan Keras, itu menghemat waktu. Tentu saja, Anda perlu memahami cara kerja Keras dan bagaimana melampaui jika perlu.

Jika ada sesuatu yang hilang di Keras itu sendiri, Anda selalu dapat menambahkan bagian ke TensorFlow - arsitektur memungkinkan ini.

Bagaimana Yandex autopilot dibuat secara bertahap? Spesialis macam apa yang dipekerjakan untuk ini, bagaimana alur kerja sains data / pembelajaran mesin dibangun?


Pertama, saya akan menjelaskan secara singkat cara kerja tumpukan "tak berawak" - untuk detail lebih lanjut, lihat laporan video Anton Slesarev, mudah ditemukan. Tumpukan memiliki banyak komponen. Persepsi adalah visi tentang apa yang terjadi di sekitar mesin saat ini. 

Pelokalan adalah pemahaman tentang di mana mobil berada, menggunakan informasi dari sensor dan peta yang dibuat sebelumnya.

Prediksi adalah prediksi tentang apa yang akan terjadi di detik-detik berikutnya (yaitu, bagaimana peserta lain dalam gerakan akan berperilaku) dengan bantuan pengetahuan tentang bagaimana dunia dibangun sekarang dan bagaimana ia dibangun di masa lalu; Saya hanya bekerja di bagian ini.

Perencanaan- apa yang muncul setelah persepsi dan prediksi: Anda perlu memilih urutan tindakan yang aman yang akan mengarah pada solusi masalah. 

Kontrol - mengubah urutan ini menjadi instruksi untuk mobil (setir, rem gas).

Dalam banyak elemen tumpukan ini ML sekarang dibutuhkan, atau tidak digunakan dalam solusi canggih. Ada banyak pekerjaan teknik-ML - perlu untuk membuat pekerjaan ini, dan bekerja dengan cepat, karena latensi dalam sistem seperti itu sangat penting. Kita perlu mempelajari cara melatih model, untuk memahami metrik mana yang memungkinkan kita memahami apa yang menjadi lebih baik, mana yang tidak memungkinkan kita, untuk memahami cara mengumpulkan data secara lebih efisien. Selain itu, ada komponen besar pekerjaan infrastruktur, sering dianggap remeh. Infrastruktur yang sangat kuat diperlukan untuk mengembangkan semua komponen ini bersama-sama.

UAV mengumpulkan sejumlah besar data tentang segala sesuatu yang terjadi pada mereka - Anda harus dapat dengan cepat bekerja dengan data ini, menjawab pertanyaan seperti "apa yang akan terjadi dalam situasi X jika ada perubahan Y dalam kode". Ini membutuhkan solusi teknik non-sepele dan insinyur yang baik.

Alur kerja sains data / pembelajaran mesin, seperti di tempat lain, dalam pandangan saya. Setiap tim harus memiliki metrik yang perlu dioptimalkan saat ini.

Bagi kebanyakan orang, hari biasa berlalu untuk mencari apa yang harus dilakukan untuk meningkatkan metrik ini. Dan metrik ini harus selaras dengan tujuan Anda - tentu saja, sulit untuk memunculkannya segera, metrik tersebut akan berevolusi secara bertahap.

Katakanlah Anda membuat pengklasifikasi pejalan kaki. Menemukan pejalan kaki di sekitarnya, menggunakan presisi rata-rata, katakanlah. Anda mengoptimalkan metrik dan menemukan bahwa itu tampaknya tumbuh dari perubahan Anda, tetapi pada kenyataannya itu semakin buruk. Anda mengerti bahwa metriknya buruk. Sampai pada kesimpulan bahwa tidak perlu mencari semua pejalan kaki - mereka yang jauh di depan, atau di belakang 50 meter di belakang, tidak mempengaruhi kita dengan cara apa pun. Kita perlu memperjelas metriknya. Anda hanya pergi ke pejalan kaki yang ada di dekatnya. Maka Anda mengerti bahwa ini juga buruk: Anda hanya tertarik pada mereka yang berada di depan.

Beginilah evolusi metrik berlangsung. Pada setiap saat, metrik tertentu diperbaiki, dan Anda memperbaikinya. Ini membebaskan Anda dari beban kognitif: Anda hanya berpikir tentang cara meningkatkan satu angka - dan bagian dari tim secara konstan bekerja pada pilihan nomor yang optimal yang perlu ditingkatkan.

Saya terbenam dalam tema "AI kuat". Saya punya dua pertanyaan: mengapa kita tidak bisa mempelajari AI dengan cara kita mengajar anak-anak kita, dan bidang penggunaan apa yang pertama kali akan menciptakan AI yang kuat, jika sama sekali?


Saya memahami pertanyaan pertama sebagai berikut: seolah-olah anak-anak diajarkan dari yang sederhana ke yang kompleks. Awalnya, mereka hidup dalam model dunia yang disederhanakan, tempat Santa Claus berada, tetapi lambat laun dunia mereka menjadi lebih rumit, dan anak-anak belajar untuk memecahkan masalah yang lebih kompleks. Tampaknya logis bahwa AI harus diajarkan sesuai dengan prinsip yang sama - bahkan ada proposal seperti dari Thomas Miklov (dia sekarang di Facebook AI Research) untuk membangun skema pelatihan untuk AI yang kuat.

Selain itu, dalam pembelajaran mesin, ada bidang pembelajaran kurikulum - yaitu, pelatihan model tentang prinsip “dari sederhana ke rumit”. Masalahnya adalah bahwa sekarang semuanya berfungsi dalam tugas yang sama. Tugas yang sama untuk menemukan anjing - pada awalnya jaringan diajarkan untuk membedakan anjing dari kucing dalam gambar di mana mereka tidak terlihat sama sekali, dan kemudian mereka mengambil yang lebih banyak dan lebih mirip. Ini adalah metode iteratif-translasional: diasumsikan bahwa jaringan akan membangun konsep-konsep sederhana, dan kemudian, atas dasar mereka, yang lebih kompleks. Itu tidak bekerja ketika datang ke konsep yang berbeda.

Jika Anda mulai mengajarkan sistem sesuatu, setelah sebelumnya mengajarkannya kepada yang lain, ia melupakan konsep-konsep yang sebelumnya diingat. Ini adalah masalah lupa bencana, belum ada yang menyelesaikannya. Keturunan gradien mengubah semua bobot sekaligus, dan ini menghancurkan konsep lama. Kita perlu mencari cara bagaimana membangun konsep baru tanpa menghancurkan yang lama.

Bidang penelitian pembelajaran satu-shot dan pembelajaran-beberapa-shot dikaitkan dengan ini: konsep pembelajaran untuk satu tugas dan menggunakannya untuk memecahkan masalah lain dengan sejumlah kecil contoh. Tidak ada terobosan mendasar di bidang ini, tetapi perlu dibuat untuk memiliki beberapa gagasan tentang AI yang kuat.

Saya tidak melihat alasan mengapa AI yang kuat tidak muncul di masa depan. Dalam pandangan modern kita, otak manusia adalah mesin yang melakukan perhitungan, meskipun sesuai dengan prinsip-prinsip lain.

Tidak ada kendala mendasar untuk menciptakan AI yang kuat, tetapi saya tidak bisa memberikan perkiraan berapa banyak waktu yang tersisa sampai saat ini - tidak diketahui langkah apa yang akan diperlukan untuk ini. Jika Anda memperkirakan, menggunakan kecepatan kemajuan dalam mengatasi "bintik putih" di masa lalu, maka Anda dapat memanggil sosok seperti "dari 10 hingga 50 tahun" - tetapi itu masih merupakan "jari ke langit." Anda dapat mengajukan banding ke hukum Moore dan menghitung kapan prosesor akan memiliki kepadatan transistor yang cukup untuk mencapai kemampuan komputasi otak - juga beberapa dekade, dan ini juga akan menjadi "jari ke langit".

Saya tidak berpikir bahwa AI yang kuat - jika ditemukan - akan berasal dari bisnis. Sebaliknya, itu akan dibuat oleh seseorang yang, dengan sumber daya yang signifikan, terlibat dalam penelitian dasar dalam pembelajaran penguatan: dari semua bidang pembelajaran mesin, ini adalah yang paling dekat dengan apa yang kita inginkan dari AI yang kuat. Jika DeepMind atau OpenAI akan ada selama beberapa dekade lagi - mungkin mereka akan melakukannya. Atau seseorang yang akan datang menggantikan mereka.

Arsitektur apa yang paling baik digunakan untuk mengklasifikasikan (tidak memprediksi, tetapi mengklasifikasikan) deret waktu? LSTM atau yang lain?


Dalam beberapa tahun terakhir, tren ini telah diamati: hampir di mana-mana LSTM bermanfaat, perhatian bekerja lebih baik. Revolusi NLP baru saja terjadi: kami mengganti jaringan berulang dengan perhatian, dan itu menjadi lebih baik. Untuk deret waktu, saya akan menyarankan Anda mencoba perhatian juga. Itu semua tergantung pada tugas, tetapi, secara umum, ini adalah cara paling efektif untuk menganalisis urutan dan agregat data pada mereka.

Terlibat dalam pembelajaran mesin, tidak hanya untuk pekerjaan, tetapi juga sebagai hobi yang mahal. Saya sedang membangun jaringan, kartu itu menjadi 3 GB, sedikit lebih rumit - itu hilang. Apakah ada alternatif selain CPU?


Kurangnya dana untuk besi, di mana Anda dapat menunjukkan hasil dalam penelitian pembelajaran mendalam modern, adalah masalah bagi para penggemar, dan bahkan untuk universitas.

Google memiliki inisiatif Google Collab: ini adalah IPython di fasilitas Google, di mana Anda bisa mendapatkan kekuatan kartu video top-end selama 12 atau 24 jam, dan juga menjalankan sesuatu di TPU mereka. Kartu video tidak digunakan oleh konsumen, mereka memiliki lebih banyak memori - ada 130 GB, menurut saya. Tangan itu melepaskan. Namun, secara umum, hal-hal berskala besar yang benar-benar tidak dapat dilakukan oleh pengguna individu.

Beberapa perusahaan mencoba membuat chip yang disesuaikan secara khusus untuk pembelajaran mendalam, yang akan membuat perhitungan untuk jaringan saraf jauh lebih cepat dan lebih murah daripada GPU - mungkin solusi konsumen dengan chip tersebut akan muncul di tahun-tahun mendatang.

Mengapa Anda memprediksi perilaku peserta lain dalam gerakan saat mengembangkan drone?


Di jalan itu perlu. Ketika membuat keputusan, perlu untuk mempertimbangkan, antara lain, inersia mobil: tidak mungkin untuk mengubah arah secara instan (bahkan jika mungkin, penumpang akan mengalami waktu yang buruk). Kita perlu merencanakan tindakan sehingga di tempat di mana kita ingin berada dalam beberapa detik, tidak ada orang lain - untuk ini kita perlu memprediksi posisi dan niat peserta lain. Lintasan mesin harus berjalan sejauh mungkin dari peserta lain - ini diperlukan untuk perjalanan yang aman.

Bagaimana setir drone berputar?


Saya tidak bisa mengendalikan diri. Saya dapat mengatakan bahwa ada mobil yang berbeda - beberapa hanya dapat memberikan perintah untuk memutar setir. Menurut saya, Prius bisa.

Apa yang Anda gunakan - Scrum, Kanban, kekacauan?


Mayhem terorganisir.

Saya tidak melihat perlunya menyusun alur kerja secara kaku, terutama alur penelitian: sulit untuk mengatakan berapa lama tugas tertentu akan berlangsung. Kami memiliki terlalu banyak ketidakpastian, dan tidak jelas bagi saya mengapa harus memperkenalkan struktur tambahan.

Kami mencoba banyak berkomunikasi, kami mencoba mencatat semua hasil percobaan; kami memiliki sistem khusus yang menyimpan data eksperimen terlepas dari skalanya - jenis kode apa yang digunakan, dari cabang mana ia dirakit, dengan data apa yang diluncurkan - dengan tujuan reproduktifitas penuh. Kami mencatat semua kesimpulan dan mendiskusikannya di antara kami sendiri, berbagi informasi, mencoba membuat semuanya seterbuka dan setransparan mungkin.

Apakah ada pengalaman dalam menggunakan ML dalam industri - metalurgi, pertambangan, pengayaan?


Saya tahu bahwa di area ini ML digunakan secara aktif, tetapi tidak ada pengalaman pribadi.

Baru-baru ini sebuah artikel yang memilukan tentang Alice merekomendasikan video tentang kisah pembunuhan kepada seorang anak. Mengapa ini terjadi, apakah sulit untuk menyaring konten?


Tugas penyaringan konten pada prinsipnya dapat dipecahkan, dan dengan akurasi tinggi. Apa yang sebenarnya terjadi dalam situasi itu, saya tidak tahu pasti, tetapi saya bisa bercermin.

Misalkan sistem memiliki konten afiliasi, dan ada API di mana mitra harus menandai konten ini dengan tag atau dengan cara lain. Sistem awalnya bekerja berdasarkan kepercayaan pada mitra - mungkin hanya dari waktu ke waktu akan ada pemeriksaan konten. Seiring waktu, ini tidak akan cukup, Anda akan menggantung sistem konten sederhana dengan mencari kata-kata berhenti di pos dan tag, melihat setidaknya sebagian konten oleh moderator.

Dalam setiap sistem pasti akan ada titik kegagalan: kadang-kadang orang membuat kesalahan, kadang-kadang pasangan tidak memenuhi kewajiban mereka. Semua yang bisa dilakukan adalah melakukan iterasi lebih lanjut dan meningkatkan sistem, dan perbaikan biasanya reaktif: jika sesuatu bekerja dengan cukup baik, biasanya tidak akan ada perbaikan sampai mereka menjadi diperlukan.

Mungkin ketika AI yang kuat muncul, Anda dapat memintanya untuk memfilter semua konten dengan akurasi 100%.

Apakah Anda menghadiri konferensi internasional tentang sistem pemrosesan informasi saraf dan pembelajaran mesin? Apa kesan Anda tentang konferensi Rusia di bidang ini?


Saya tidak bisa mengatakan tentang Rusia. Terkadang saya pergi ke internasional, tetapi saya kurang mengerti mengapa.

“Wisata ilmiah” tentu saja penting dan menarik, tetapi konferensi itu sendiri, menurut saya, telah berhenti memenuhi fungsinya. Sejumlah besar artikel diterima pada mereka, tetapi karena ini, tidak mungkin untuk mengatur presentasi normal untuk setiap penulis. Misalnya, di ICML hanya kertas terbaik yang memiliki laporan panjang, dan sisanya memiliki laporan lampu sorot, kurang dari lima menit.

Selain itu, sejumlah besar karya - inkremental, dengan reproduksibilitas yang meragukan, manfaatnya bagi pendengar - tidak. Jika konferensi memiliki pekerjaan yang benar-benar keren, Anda sudah terbiasa dengannya, kemungkinan besar - pracetak diletakkan lebih awal.

Saya pikir format konferensi harus diciptakan kembali - atau setidaknya sangat meningkatkan apa yang harus diambil.

Apa motivasi Anda untuk kembali ke Rusia?


Saya meninggalkan Rusia karena menarik bagi saya untuk tinggal di tempat baru dan belajar dari orang baru. Tampak bagi saya bahwa untuk pengembangan pribadi Anda perlu sampai ke tempat orang tahu lebih banyak dari saya. Sebenarnya, inilah yang terjadi: di Microsoft Research, saya mengerti banyak tentang betapa metodisnya Anda, seberapa dalam dan baik Anda perlu memahami apa yang Anda lakukan, seberapa banyak Anda perlu menyadari apa yang sedang terjadi. Nah, pada titik tertentu saya menjadi bosan, meskipun ada tugas yang menarik.

Saya kemudian tinggal di Cambridge - ini adalah kota kecil di mana sedikit yang terjadi, lingkaran sosial di dalamnya tidak dapat dibandingkan dengan Moskow. Saya pikir: sekarang Anda bisa tinggal di Moskow, menerapkan pengetahuan yang diperoleh, lalu, mungkin, pergi ke tempat lain. Saya pergi bekerja di Yandex - sepertinya cukup bagus untuk menerapkan apa yang saya pelajari.

Sepertinya saya bahwa sekarang di DeepMind dan OpenAI mereka melakukan hal-hal menarik, saya bisa belajar banyak di sana.

Saya mendengar bahwa tim drone lebih suka menggunakan TensorFlow daripada PyTorch untuk melatih model inferensi. Apa alasannya?


Mungkin karena alasan historis. Saya tidak bisa mengatakan mengapa TensorFlow lebih baik atau lebih buruk daripada PyTorch.

Berapa ukuran seharusnya dataset? Apakah 50-60 ribu contoh pelatihan cukup, atau jutaan diperlukan?


Tergantung pada model yang digunakan dan tugas. Dataset harus sedemikian rupa untuk mengonfigurasi parameter model dan mencegah pelatihan ulang. Jika Anda memiliki model linier sepele, maka dataset bisa kecil. Jika ini adalah jaringan saraf yang kompleks, maka 60 ribu tidak cukup.

Mempelajari jaringan saraf kompleks dari hal-hal non-sepele dari awal hampir selalu membutuhkan puluhan atau ratusan juta. Prinsip "lebih banyak data - lebih banyak kualitas" belum hilang.

Ngomong-ngomong, tentang pertanyaan bagaimana menjadi ahli dalam NLP. Sekarang pembelajaran mendalam state-of-the-art selalu bekerja dengan data besar. Mereka perlu pra-diproses, kemudian - secara efektif dialirkan ke node komputasi yang menyediakan pelatihan.

Kita dapat mengatakan bahwa pembelajaran mendalam adalah pekerjaan kecil monyet: untuk berhasil, Anda harus mencoba banyak hal, tidak yakin dengan hasil bekerja dengan masing-masing.

Mungkin Anda dapat mengembangkan intuisi untuk opsi yang akan bekerja lebih mungkin, meskipun saya belum bertemu seseorang dengan intuisi yang akurat. Dalam kasus umum, tim yang paling sukses dari semua tim akan menjadi yang dapat melakukan percobaan paling banyak per unit waktu.

Sebagian besar pekerjaan saya adalah untuk menghilangkan "kemacetan" dalam proses pembelajaran dalam upaya untuk "membubarkan" ke kecepatan yang secara teoritis mungkin. Ini membutuhkan keterampilan teknik, kemampuan untuk memeras kinerja dari kode dan perangkat keras.

Yang membedakan seorang ahli dari seorang ilmuwan data biasa adalah bahwa para ahli biasanya juga seorang insinyur yang baik, mampu bekerja dengan cepat, menulis kode, menangani penyimpanan data terdistribusi dan sistem pemrosesan, dan memahami arsitektur komputer dan jaringan - untuk menghitung "lelucon". Sangat penting untuk mengembangkan keterampilan ini dalam diri Anda.

Dengan dominasi data besar, mereka yang tahu cara mendapatkan pelatihan untuk bekerja dengan cepat pada volume data ini adalah yang paling sukses di industri ini. Jika pembelajaran mendalam bekerja pada volume kecil, saya akan mengatakan bahwa hanya pengetahuan yang dibutuhkan, tetapi sekarang tidak.

Belajarlah memprogram dengan baik, pelajari algoritma ilmu komputer standar, tingkatkan wawasan Anda. Omong-omong, kriptografi bermanfaat.

Apakah Anda menggunakan analog AutoML untuk menyetel arsitektur dan parameter, atau lebih banyak eksperimen dan intuisi manual?


Sekarang - lebih dari yang kedua. Penalaan otomatis ada pada tingkat sapuan dengan optimasi grid atau Bayesian, sesuatu yang lebih rumit dalam AutoML belum dilakukan. Ini membutuhkan banyak sumber daya komputasi - jika terbatas, lebih baik mengandalkan intuisi. Tetapi, jika Anda mengerti bahwa Anda telah datang ke beberapa ramalan, lebih baik untuk mempercayakannya pada proses.

Apa yang dilakukan Alice, apa yang tidak dilakukan Asisten Google? Berapa ukuran tim dalam arah ini untuk Google dan Yandex?


Saya tidak bisa bicara tentang Yandex. Google tampaknya memiliki ratusan atau seribu orang. Adapun keuntungan Alice, saya tidak yakin saya tidak mengikuti pengembangan produk Alice atau fitur Asisten baru-baru ini.

Pertanyaan tentang kualitas salah, menurut saya. Bahkan jika Alice lebih buruk, apakah itu berarti dia tidak punya hak untuk hidup? Produk diciptakan dan bersaing satu sama lain, karena ini mereka semua menang, berevolusi, meregang.

Saya tidak mengerti mentalitas "produk baru sama dengan Google." Dalam bisnis, produk diciptakan dengan cara ini: Anda mengambil ide orang lain sebagai dasar, menerapkannya - kadang-kadang sebagaimana adanya pada umumnya - tetapi ini bukan titik akhir dari jalan, tetapi awal. Kemudian Anda secara progresif mengubah ide sehingga menjadi lebih baik daripada pesaing. Ini adalah keseluruhan kisah kemajuan!

Bagaimana olahraga membantu mencapai lebih banyak di bidang lain?


Dalam olahraga, terutama kompetitif, saya suka ambiguitas. Jika Anda kalah, Anda kalah. Anda tidak dapat menyalahkan ini pada keadaan: Anda tidak cukup baik, Anda melakukan sesuatu yang salah.

Dalam olahraga kompetitif, keterusterangan, ketulusan, dan kemampuan untuk mengakui kesalahan seseorang berkembang. Ini membantu di area lain - selalu lebih baik untuk mengakui bahwa Anda harus menjadi lebih baik di X, Y dan Z daripada mencari alasan. Selain manfaat kesehatan tentunya.

Bagaimana terjun payung membantu Anda keluar dari zona nyaman Anda?


Bayangkan Anda ingin melompat keluar dari pesawat oleh sekelompok orang dan mengumpulkan sesuatu. Pesawat memasuki pesawat tempur, pintu terbuka, Anda semua berbaris di dalam dan menunggu sinyal untuk melompat bersama.

Pada saat ini, tidak boleh ada keraguan apa yang terjadi. Penundaan bahkan sepersekian detik menunda semua orang. Anda harus membawa diri Anda ke dalam kondisi di mana Anda melompat tanpa ragu-ragu. Dunia menghilang, hanya lompatan yang tersisa. Jika sesuatu terjadi dengan parasut, Anda akan memiliki sedikit waktu untuk mengambil tindakan - maka seharusnya tidak ada keraguan dan ketakutan, Anda perlu melakukan persis apa yang diajarkan kepada Anda, secepat mungkin.

Terjun payung memelihara kemampuan seseorang untuk membuat keputusan untuk melakukan sesuatu - dan tidak perlu diragukan lagi. Paralel dapat ditarik antara ini dan proyek-proyek kompleks. Terkadang tidak jelas apa yang harus dilakukan dalam proyek; ketika Anda memulai tugas, Anda tidak tahu persis apa yang harus dilakukan, bagaimana melakukannya, apakah itu bisa dilakukan sama sekali. Pada saat ini, mudah untuk mulai ragu dan berpikir, "bagaimana jika saya tidak bisa?" - Baik waktu dan upaya mental dihabiskan untuk ini. Jika Anda diminta untuk memecahkan masalah, maka mereka percaya pada Anda. Anda harus melakukan segala upaya untuk masalah ini. Anda perlu membawa diri Anda ke kondisi mental yang sama seperti melompat, untuk menjatuhkan semua yang tidak perlu dan berkonsentrasi. Menjadi lebih mudah bagi saya untuk mencapai ini setelah saya mulai terlibat dalam terjun payung.

Berapa banyak yang Anda habiskan untuk terjun payung?


Banyak. Ini adalah artikel penting dalam anggaran saya. Saya menganggap ini sebagai insentif untuk pertumbuhan karir lebih lanjut.

Anda berada di klub apa?


Terutama di Pushchino, disiplin ilmu tertentu dikembangkan dengan baik di sana - misalnya, capung.

Ke mana harus belajar sebagai insinyur ML?


Data saya sudah usang, saya belajar untuk waktu yang lama - di Universitas Negeri Moskow, di VMK. Saya tidak bisa mengatakan bahwa itu adalah pendidikan super-ML, tetapi para guru mengajar kami dengan baik dan memperkenalkan kami ke dunia ML. Saya pikir banyak orang tahu Dmitry Petrovich Vetrov - Saya berutang banyak padanya, jika bukan karena kuliahnya dan kursus khusus yang membawa saya ke, saya mungkin tidak akan belajar ML. Saya tidak tahu di mana dia mengajar sekarang, tetapi pasti ada baiknya pergi ke sana. Selain itu, apa pun fakultas tempat Anda kuliah, saya sarankan untuk pergi ke SHAD jika memungkinkan. Bukan karena itu Yandex, tetapi karena itu adalah tempat yang sangat keren - di sana mereka akan memberikan semua pengetahuan yang diperlukan untuk kerja praktek yang baik di industri, yang mungkin tidak di universitas. Dari ShAD, banyak orang terlatih dan berbakat datang kepada kami yang tahu apa yang harus dilakukan.

Sekali lagi tentang pertanyaan apakah mungkin untuk masuk ke ML "bukan teknisi". Keterampilan teknis diperlukan, tetapi mata pelajaran seni liberal bukan pemblokir. Untuk memahami dasar-dasar pemrograman dan matematika, Anda hanya perlu kepala di atas bahu Anda dan kemampuan untuk berpikir logis dan struktural. Ada banyak orang yang, meskipun mereka telah memilih untuk alasan tertentu spesialisasi kemanusiaan, memiliki keterampilan seperti itu. Tidak ada yang mustahil, yang utama adalah mencoba. Penting untuk tidak memikirkan topik "bisakah saya", tetapi untuk mulai melakukannya? Ini sangat meningkatkan peluang keberhasilan.

Apakah mungkin untuk belajar di sekolah pembelajaran pada saat yang sama dengan universitas?


Saya melakukannya, walaupun itu cukup sulit. Ada beban besar di ShAD. Anda dapat menggabungkan SHAD dengan program terbaru universitas, di mana bebannya relatif kecil - itu akan menjadi kerja keras, tetapi itu akan membuahkan hasil.

Pengalaman balap motor dengan drone?


Kami memiliki olahragawan motor yang aktif dalam staf, karena kami perlu melatih pengemudi dan teknisi QA yang langsung berada di dalam mobil. Mereka harus dapat mengenali situasi darurat selama tes dan merespons, mereka semua menjalani pelatihan kontra-darurat dari olahragawan motor. Jika kita berbicara tentang apakah kita menggunakan semacam model fisika ban yang digunakan atlet profesional dalam simulasi motorsport untuk mengembangkan taktik - menurut saya, tidak, kita belum akan memotong seperseratus detik pada lingkaran. Telemetri, berguna untuk atlet, berbeda dari yang kita butuhkan, dan kita memiliki lebih banyak data yang diukur.

Apa berikutnya?


Siaran langsung berikutnya akan berlangsung Senin depan.
Anda dapat mengajukan pertanyaan kepada Natalya Teplukhina - anggota tim inti Vue.js, GoogleDevExpret, dan Senior Frontend Engineer di GitLab.

Anda dapat mengajukan pertanyaan kepadanya dalam komentar di pos ini .

Penafsiran wawancara dengan Ilona, ​​Insinyur Perangkat Lunak Senior di Facebook, dapat dibaca di sini. Insidering dari seorang karyawan Facebook: cara mendapatkan magang, mendapatkan tawaran, dan segala sesuatu tentang bekerja di perusahaan


All Articles