Persahabatan yang membuat Google begitu besar

Pemrograman bersama di komputer yang sama, Jeff Dean dan Sanjay Gemavat mengubah arah perusahaan - dan seluruh Internet. Dalam ilustrasi: pemrogram Google terbaik terkadang tampak seperti dua belahan otak yang sama. Menggambar oleh David Plankert

Suatu hari di bulan Maret 2000, enam insinyur Google terbaik berkumpul di ruang konferensi dadakan. Terjadi keadaan darurat: sejak Oktober 1999, perayap berhenti. Meskipun pengguna masih diberi hasil pencarian, tetapi mereka ketinggalan zaman selama lima bulan. Lebih banyak yang dipertaruhkan daripada yang diperkirakan para insinyur. Saat ini, Larry Page dan Sergey Brin sedang merundingkan pengiriman pencarian Google ke portal Internet terbesar Yahoo dan berjanji untuk meningkatkan indeks pencarian sepuluh kali lipat untuk mengimbangi World Wide Web, yang dua kali lipat ukurannya dari tahun sebelumnya. Jika crawler tidak diperbaiki, google.com akan macet di masa lalu, kesepakatan dengan Yahoo mungkin gagal, dan perusahaan berisiko membakar investasinya dan jatuh terlupakan.

Di ruang konferensi dekat tangga, para insinyur meletakkan pintu di atas gantry, membangun meja dadakan, dan memasang komputer. Di dinding jauh duduk seorang Craig Silverstein yang sedih: seorang pemuda kurus berusia 27 tahun dengan suara tipis. Craig adalah karyawan pertama di Google: ia bergabung dengan perusahaan ketika kantor utamanya berlokasi di ruang keluarga Brin, dan ia secara pribadi menulis ulang sebagian besar kode pendiri. Setelah empat hari dan malam kerja, mereka tidak mencapai apa-apa dengan seorang insinyur sistem Rumania bernama Bogdan Kokosel: "Tidak satu pun dari tes yang dilakukan masuk akal," kenang Silverstein. "Tidak ada yang berhasil, dan kami tidak tahu mengapa."

Silverstein nyaris tidak memperhatikan Sanjay Gemavat, seorang berambut cokelat berusia 33 tahun sederhana dengan alis tebal dan rambut beruban di pelipisnya, seorang lulusan MIT. Sanjaya dipekerjakan hanya beberapa bulan yang lalu, pada bulan Desember. Dia datang setelah rekannya, Jeff Dean dari Digital Equipment Corporation yang ramping dan enerjik berusia tiga puluh tahun. Jeff meninggalkan DEC sepuluh bulan sebelum Sanjay. Mereka sangat ramah dan lebih suka menulis kode bersama. Di "ruang perang," Jeff menarik kursi ke meja Sanjay, meninggalkan yang kosong. Sanjay menggedor keyboard, dan Jeff duduk di sampingnya, mengoreksi dan mendikte, seperti produser di headphone untuk penyiar berita.

Jeff dan Sanjay mulai mempelajari indeks yang macet. Mereka menemukan bahwa beberapa kata hilang di dalamnya: mereka memasukkan kueri [kotak surat] dan tidak menerima hasil, sementara yang lain tidak terdaftar. Selama beberapa hari mereka mencari kesalahan, menceburkan diri ke dalam logika kode. Bagian demi bagian, kami memeriksa semuanya. Tidak ada bug.

Pemrogram terkadang menyajikan program mereka sebagai struktur lapisan yang turun dari antarmuka pengguna ke lapisan yang lebih mendasar. Di bagian bawah struktur ini, perangkat lunak bertemu dengan zat besi: seperti penurunan dari abstraksi kode platonik ke fisika listrik dan silikon. Pada hari kerja kelima, Jeff dan Sanjay mulai curiga bahwa masalahnya bukan dalam logika kode, tetapi memiliki penyebab fisik. Mereka mengkonversi file indeks ke biner. Mereka ingin melihat apa yang mereka lihat mobil.

Kolom tebal dengan angka nol dan satu muncul di monitor Sanjay, setiap baris mewakili kata yang diindeks. Sanjay berkomentar: 0 ada di tempat 1. Ketika Jeff dan Sanjay mengumpulkan semua kata-kata yang menyimpang, mereka melihat sebuah pola: kesalahan yang sama dalam setiap kata. Kerusakan chip memori pada server.

Sanjay memandang Jeff. Selama beberapa bulan, Google mengalami lebih banyak kegagalan perangkat keras. Masalahnya adalah ketika Google tumbuh, infrastruktur komputasi juga meluas. Peralatan komputer jarang macet, kecuali jika Anda memiliki banyak komputer - maka mereka rusak terus-menerus. Kabel aus, hard drive berantakan, motherboard terlalu panas. Banyak mobil segera gagal; yang lain mulai bekerja lebih lambat. Faktor-faktor alami yang aneh ikut berperan. Dalam ledakan supernova di luar angkasa, gelombang ledakan menciptakan partikel berenergi tinggi yang menyebar ke segala arah: para ilmuwan percaya bahwa ada kemungkinan bukan nol bahwa salah satu partikel radiasi kosmik dapat masuk ke chip komputer di Bumi dan mengubah 0 menjadi 1. Sistem komputer paling andal di dunia , di NASA, perusahaan keuangan dan sejenisnya, menggunakan peralatan khusus yang melindungi dari "kesalahan" satu bit. Namun Google masih bekerja sebagai startup dan membeli komputer murah yang tidak memiliki perlindungan seperti itu. Perusahaan telah mencapai titik belok. Cluster komputasi telah berkembang sedemikian rupa sehingga bahkan kegagalan perangkat keras yang tidak mungkin menjadi tak terhindarkan.

Bersama-sama, Jeff dan Sanjay menulis kode untuk mengkompensasi kerusakan pada sistem yang rusak. Indeks baru segera dibangun - dan keadaan darurat berhasil diselesaikan. Silverstein bingung. Dia benar-benar men-debug kode, tetapi di sini jawabannya bersembunyi di tingkat perangkat keras. Jeff dan Sanjay masuk lebih dalam.

Sebelum kegagalan Maret, sistem Google mengerjakan kode yang ditulis oleh para pendiri perusahaan di sekolah pascasarjana Stanford. Page dan Brin bukan programmer profesional. Mereka adalah ilmuwan yang melakukan percobaan dalam teknologi pencarian. Ketika perayap jatuh, ia tidak menampilkan pesan diagnostik informatif apa pun, kecuali untuk frasa "Whoa, horse!"

Sistem BigFiles, ditulis oleh Page dan Brin, pertama kali secara bercanda disebut BugFiles oleh karyawan pertama perusahaan. Prosedur pengindeksan yang sangat penting memakan waktu beberapa hari, dan jika saya menemui masalah, maka itu dimulai dari awal. Itu adalah sistem yang sepenuhnya tidak dapat diskalakan.

Kami mengatakan bahwa kami mencari di Internet, tetapi kenyataannya tidak demikian: kami bekerja dengan indeks pencarian di server perusahaan pencarian. Ketika Google masih dipanggil BackRub pada tahun 1996, seluruh indeks ditempatkan pada komputer yang dipasang di kamar asrama Page. Pada bulan Maret 2000, tidak ada komputer super yang bisa menanganinya. Satu-satunya jalan keluar bagi Google adalah membeli komputer biasa dan menambahkannya ke cluster raksasa. Karena setengah dari biaya komputer konvensional adalah apa yang Google anggap sebagai "sampah" - disk drive, casing logam - perusahaan hanya memesan motherboard dan hard drive kosong - dan menghubungkannya. Pada saat itu, Google telah menghubungkan 1.500 server buatan ke rak dua meter di sebuah gedung di Santa Clara, California. Karena kegagalan perangkat keras, hanya 1.200 yang bekerja pada waktu tertentu. Kegagalan terjadi tak terduga dan terus mengganggu sistem. Untuk bertahan hidup, Google perlu mengintegrasikan komputer ke dalam satu organisme yang toleran terhadap kegagalan.

Selama beberapa Jeff dan Sanjay mengambil alih pekerjaan ini. Wayne Rosing, yang merancang pendahulunya Macintosh di Apple, bergabung dengan Google pada November 2000, mengumpulkan tim yang terdiri dari seratus insinyur. Bekerja sembilan puluh jam seminggu, mereka menulis kode sehingga tidak satu pun kegagalan HDD akan mengganggu sistem. Mereka menambahkan breakpoints ke proses traversal Web sehingga perayapan restart dari titik kegagalan, dan bukan dari awal. Dengan mengembangkan skema pengkodean dan kompresi baru, mereka sebenarnya menggandakan kemampuan sistem. Mereka adalah pengoptimal yang keras kepala. Sebagai contoh, Google memindahkan data yang paling sering digunakan ke luar pelat HDD, di mana ada kecepatan rotasi disk yang lebih tinggi dan, oleh karena itu, kecepatan membaca dan menulis informasi yang lebih tinggi, dan area internal pelat dibiarkan kosong. Jeff dan Sanjay menggunakan ruang ini untuk menyimpan data yang sudah diproses untuk permintaan pencarian umum. Selama empat hari pada tahun 2001, mereka membuktikan bahwa indeks Google dapat disimpan dalam RAM yang cepat dan bukan HDD yang lambat. Penemuan ini benar-benar mengubah ekonomi perusahaan. Page dan Brin tahu bahwa kerumunan akan berduyun-duyun ke layanan yang langsung merespons. Masalahnya adalah bahwa kecepatan membutuhkan daya pemrosesan, dan biaya pemrosesan daya. Jeff dan Sanjay berhasil menekan jarum menggunakan optimasi perangkat lunak.

Alan Eustace memimpin tim teknik setelah Rosing pergi pada 2005. "Secara paradoks, untuk menyelesaikan tugas berskala besar, Anda perlu mengetahui detail terkecil," kata Eustace. Jeff dan Sanjay memahami sistem ke tingkat bit. Suatu kali Jeff membagikan daftar "Tingkat keterlambatan yang harus diketahui oleh setiap programmer . " Sebenarnya, ini adalah daftar angka yang hampir tidak dipikirkan oleh programmer, tetapi angka-angka ini secara harfiah dibangun ke dalam otak Jeff dan Sanjay: misalnya, bahwa panggilan dari cache L1 membutuhkan 0,5 ns atau pembacaan berurutan satu megabyte dari memori membutuhkan 250 μs. Setelah serangkaian optimasi perangkat lunak utama, kekuatan sistem Google diskalakan oleh urutan besarnya. Sementara itu, teknisi mulai mengambil rute berliku di pusat data yang luas, mengikuti instruksi yang dihasilkan perangkat lunak untuk mengganti hard drive, catu daya, dan modul memori. Bahkan ketika bagian-bagian habis dan gagal, sistem berkembang.

Saat ini, para insinyur Google memiliki sistem klasifikasi terpadu yang dimulai pada level 1, itu adalah dukungan teknis. Level 2 - lulusan perguruan tinggi. Karyawan Level 3 sering memiliki gelar master. Mendapatkan level 4 membutuhkan beberapa tahun atau membutuhkan gelar Ph.D. Karir sebagian besar karyawan berhenti di level 5. Insinyur dari level 6 adalah yang terbaik 10% dari staf, mereka sangat berbakat sehingga keberhasilan proyek tergantung pada mereka. Level 7 diberikan kepada karyawan level 6 dengan rekam jejak yang panjang. Insinyur kepala Tier 8 bertanggung jawab atas produk tertentu atau bagian dari infrastruktur. Insinyur level 9 yang luar biasa dihormati. Judul Google Fellow (level 10) diberikan seumur hidup kepada para pakar dunia yang biasanya terkemuka di bidangnya. Jeff dan Sanjay adalah Senior Google Fellows, karyawan level 11 pertama dan satu-satunya.

Kampus Google, yang terletak di tepi jalan raya hanya beberapa menit dari pusat Mountain View, adalah serangkaian bangunan pendek yang tidak menarik dengan jendela berwarna. Suatu Senin pagi di musim panas 2017, setelah sesi pasangan pagi, Jeff dan Sanjay pergi makan siang di kafetaria kampus yang disebut Big Table, dinamai berdasarkan sistem yang mereka bantu kembangkan pada 2005 untuk mengintegrasikan komputer yang tak terhitung jumlahnya ke dalam perangkat yang nyaris tunggal. Sanjay yang tinggi dan kurus dengan kemeja Henley merah anggur kuno, celana panjang abu-abu dan kacamata kecil berbingkai kawat mencari meja di teras dan cepat-cepat menempatinya, membuka payung dan berjongkok di tempat teduh. Di dekatnya, di bawah sinar matahari ia mengatur kursi lain untuk Jeff, yang tiba satu menit kemudian, seorang lelaki atletik berbahu lebar dengan kemeja lengan pendek dan sepatu kets bergaya.

Seperti sepasang kekasih, Jeff dan Sanjay menceritakan kisah bersama, melengkapi potongan-potongan gambar besar. Mereka mulai mengingat proyek pertama mereka.

"Kami menulis semuanya dengan tangan," kata Sanjay. Kacamatanya gelap di bawah sinar matahari. "Itu perlu untuk menulis ulang kode, dan kemudian tiba-tiba:" Oh, sepertinya apa yang kita tulis bulan lalu. "

"Atau bagian yang sedikit berbeda dalam data pengindeksan kami," tambah Jeff.

"Atau sedikit berbeda," kata Sanjay. "Jadi kami tahu ..."

"Itulah intinya," kata Jeff.

"... bahwa ada pola umum," Sanjay menyimpulkan pemikirannya.

Jeff menggigit pizza. Dia memiliki jari-jari pelaut, rumit dan kaku. Sanjay terlihat sangat lembut dibandingkan dia. Dia bertanya-tanya bagaimana mereka mulai berlatih pemrograman berpasangan: "Aku bahkan tidak tahu bagaimana kami memutuskan itu akan lebih baik."

"Kami melakukannya sebelum Google," kata Jeff.

"Tapi saya tidak tahu mengapa kami memutuskan lebih baik memiliki satu komputer, bukan dua," kata Sanjay.

"DEC saya berjarak dua blok dari laboratoriumnya," kata Jeff. - Dan di antara mereka ada toko es krim.

- Jadi ini adalah toko es krim! - Sanjay senang.

Lajang Sanjay sedang berlibur dengan Jeff, dua putrinya dan istrinya Heidi. Anak perempuan Jeff memanggilnya Paman Sanjay, dan mereka berlima sering makan malam pada hari Jumat. Sanjay dan Victoria, putri sulung Jeff, mulai membuat kue. "Aku melihat mereka tumbuh," kata Sanjay dengan bangga. Setelah Google IPO pada 2004, mereka pindah ke rumah baru, yang berjarak enam kilometer. Sanjay tinggal di rumah sederhana dengan tiga kamar tidur di Old Mountain View, dan Jeff sendiri merancang rumahnya di dekat pusat Palo Alto, menyiapkan trampolin di ruang bawah tanah. Saat bekerja di rumah, ia menemukan bahwa ia suka mendesain ruang, tetapi tidak memiliki kesabaran untuk detail yang ia sebut "aspek berorientasi Sanjay" arsitektur: detail balok, perlengkapan, penyeimbangan beban, yang mencegah desain yang sangat baik dari keruntuhan.

"Saya tidak tahu mengapa orang lain tidak bekerja seperti itu," kata Sanjay tentang pemrograman pasangan.

"Kami perlu menemukan pasangan yang kompatibel dengan Anda dengan cara berpikir bahwa Anda saling melengkapi," kata Jeff.

Mereka bangkit dari meja dan pergi mencari es krim lembut, berjalan di sepanjang Big Table di antara para googler yang bergegas. Saat mereka berjalan, Jeff menguraikan strategi es krimnya yang lembut: “Aku memutarnya. Saya pikir pendekatan ini menambah stabilitas, ”katanya. Puas dan memiliki tujuan, Sanjay menggulung campuran vanilla cokelat ke gelasnya.

Dalam buku "Lingkaran Kerjasama: Dinamika Persahabatan dan Kreativitas" pada tahun 2001, sosiolog Michael P. Farrell menjelajahi kelompok-kelompok kreatif yang dekat: Impresionis Prancis, Sigmund Freud dan orang-orang sezamannya. “Sebagian besar ide rapuh yang meletakkan dasar untuk visi baru tidak muncul ketika seluruh kelompok bekerja bersama, dan bukan ketika semua orang bekerja sendiri, tetapi ketika mereka berkolaborasi dan berinteraksi berpasangan,” tulisnya. Monet dan Renoir bekerja berdampingan pada musim panas 1869. Mereka menciptakan gaya yang menjadi impresionisme; enam tahun kolaborasi melahirkan Kubisme, Pablo Picasso dan Georges Braque sering menandatangani hanya bagian belakang kanvas untuk bersembunyi satu sama lain fakta bahwa pekerjaan itu selesai ("Pekerjaan itu belum selesai sampai kami berdua merasa itu," Picasso kemudian mengenang). Dalam buku "Kekuatan Ganda: Mencari Esensi Inovasi pada Pasangan Kreatif," penulis Joshua Wolf Schenck mengutip sebuah wawancara pada tahun 1971 di mana John Lennon mengatakan bahwa ia atau Paul McCartney "menulis beberapa catatan ringan, seperti" Saya membaca berita hari ini "atau hal-hal seperti itu. "Salah satu dari kami terjebak sampai yang lain datang," kata Lennon, "Aku akan bernyanyi setengah, dan dia terinspirasi untuk menulis bagian lain, dan sebaliknya." Siapa pun dapat mengalami kebuntuan kreatif, tetapi hampir tidak ada dua orang sekaligus.

Pada tahap "konstruksi teoretis" dari sains atau seni baru, penting untuk memperluas cakrawala tanpa terjebak di jalan buntu. Francois Jacob, yang, bersama dengan Jacques Monod, membuat terobosan dalam studi fungsi pengaturan gen, mencatat bahwa pada pertengahan abad ke-20, sebagian besar penelitian di bidang biologi molekuler dilakukan berpasangan: "Bersama-sama, lebih mudah daripada orang untuk menciptakan teori dan membangun model," tulis Jacob. - Ketika dua pikiran mengatasi masalah, ide muncul lebih sering dan lebih cepat. Mereka bangkit dari pasangan ke pasangan. Mereka berputar bersama seperti ranting-ranting pada pohon. Dan ilusi palsu digigit sejak awal. " Selama 35 tahun terakhir, sekitar setengah dari Hadiah Nobel di bidang fisiologi dan kedokteran telah diberikan kepada pasangan ilmuwan.

Setelah bertahun-tahun bekerja bersama, mitra terkadang mengembangkan bahasa mereka sendiri, seperti yang dilakukan si kembar. Mereka saling meniru dalam kebiasaan dan pakaian, mereka memiliki selera humor yang sama. Menjadi tidak mungkin untuk mengevaluasi kontribusi spesifik masing-masing dalam kolaborasi. Tetapi kemitraan dekat seperti itu jarang ditemukan dalam pengembangan perangkat lunak. Meskipun pengembang kadang-kadang berbicara tentang "pemrograman berpasangan," ketika dua pemrogram berbagi satu komputer, satu "di belakang kemudi" dan yang lain "navigator," mereka biasanya hanya mewakili hubungan kerja, seperti pilot di pesawat terbang. Jeff dan Sanjay, sebaliknya, terkadang tampak seperti dua belahan otak yang sama. Dalam makalah ilmiah paling terkenal mereka, hingga selusin kolaborator terdaftar. Namun, Bill Cochran, salah satu manajer mereka, mengenang: "Mereka sangat produktif dan sangat efektif berpasangan sehingga kami sering membuat tim di sekitar mereka."

Pada tahun 1966, para peneliti dari System Development Corporation menemukan bahwa programmer terbaik lebih dari sepuluh kali lebih efisien daripada yang terburuk. Sejak itu, perselisihan tentang keberadaan apa yang disebut "programmer 10 kali lipat." Gagasan ini menekankan individualitas, sementara proyek perangkat lunak besar dibuat oleh tim. Dalam pemrograman, sedikit yang dicapai secara terpisah. Ironisnya, banyak programmer melihat hasil kolaborasi Jeff dan Sanjay sebagai bukti bahwa ada 10x programmer.

Jeff lahir di Hawaii pada Juli 1968. Ayahnya Andy adalah seorang penjelajah penyakit tropis; Ibu Virginia Lee adalah seorang antropolog medis dengan setengah lusin bahasa. Demi bersenang-senang, ayah dan anak merakit komputer dari perangkat IMSAI 8080. Mereka menyolder komponen, mempelajari setiap bagian.

Jeff dan orang tuanya sering pindah. Pada usia tiga belas, ia melewatkan tiga bulan terakhir di kelas delapan untuk membantu mereka di sebuah kamp pengungsi di Somalia barat. Di sekolah menengah, ia mulai menulis program pengumpulan data untuk ahli epidemiologi yang disebut Epi Info;itu telah menjadi alat standar bagi para peneliti, diterjemahkan ke dalam puluhan bahasa dan menjual ratusan ribu salinan (di situs web Pusat Pengendalian dan Pencegahan Penyakit menerbitkan foto Jeff dari kelulusannya). Heidi, yang ditemui Jeff di University of Minnesota College, belajar tentang pentingnya program ini hanya beberapa tahun kemudian. "Dia tidak membual tentang hal seperti itu," katanya. "Segala sesuatu harus ditarik darinya." Kencan pertama mereka adalah di pertandingan basket wanita, di mana Jeff menghibur penonton dengan kostum gopher.

Disertasi doktoral Jeff berfokus pada penyusun. "Kompilernya sendiri sangat membosankan," kata Alan Eustace, tetapi di sisi lain, "ini adalah level yang sangat rendah, dekat dengan perangkat keras." Menjelaskan Jeff, Sanjay memutar jari di pelipisnya: “Saat menulis kode, model tertentu terbentuk di kepalanya. Apa yang akan menjadi kinerja kode ini? Dia hampir secara otomatis menghitung semua situasi perbatasan. "

Sanjay pertama kali duduk di depan komputer pada usia tujuh belas tahun ketika ia pergi ke Universitas Cornell. Ia dilahirkan di West Lafayette, Indiana, pada tahun 1966, tetapi tumbuh di Kota, sebuah kota industri di India Utara. Ayahnya, Mahipal, adalah seorang profesor botani, ibu Shant merawat Sanjay dan dua kakak laki-laki dan perempuannya. Keluarga itu menyukai buku: pamannya Ashok Meta ingat bagaimana ia membeli "Hari Jackal" untuk anak - anak .Frederick Forsyth dengan ikatan yang sobek, dan anak-anak semua membaca buku yang compang-camping, saling membagikan halaman ketika sudah selesai. Kakak Sanjay, Pankaj, menjadi guru termuda yang pernah menerima posisi di Harvard Business School (dia sekarang menjadi profesor di Universitas New York). Pankaj belajar di sekolah yang sama dengan Sanjay, dan dikenal sebagai seorang lelaki zaman Renaisans: "Aku agak hidup dalam bayang-bayang saudara lelakiku," kata Sanjay. Sebagai orang dewasa, ia mempertahankan kesopanan ini. Pada 2016, ketika dia diperkenalkan ke Akademi Seni dan Sains Amerika, dia bahkan tidak memberi tahu orang tuanya; mereka mempelajari berita itu dari tetangga.

Di Sekolah Pascasarjana MIT, Sanjay berteman. Meskipun demikian, dia tidak pernah bertemu gadis-gadis di sana, dan sekarang dia melakukannya "sangat, sangat jarang." Dia mengatakan bahwa dia tidak menolak untuk memulai sebuah keluarga, itu terjadi begitu saja. Teman-teman dekatnya belajar untuk tidak mengganggunya tentang hal ini, dan orang tuanya telah lama menyadari bahwa putranya akan tetap bujangan. Mungkin karena sangat tertutup, lingkaran rahasia telah dikembangkan di sekitar Google di sekitar Sanjay. Ia dianggap sebagai insinyur yang pendiam namun solid - seorang yang berpikir mendalam dan dengan kejelasan luar biasa. Di atas meja ia memiliki setumpuk buku catatan Mead yang rapi selama hampir dua puluh tahun, diisi dengan daftar dan diagram yang rapi. Dia masih membuat catatan dengan tangan: dia mengatakan itu membantu untuk berpikir. Di MIT, atasannya adalah Barbara Liskov, seorang ilmuwan komputer yang berpengaruh,yang dipelajari termasuk pengelolaan basis kode yang kompleks. Menurutnya, kode terbaik adalah seperti literatur yang baik. Itu harus memiliki struktur dipikirkan dengan hati-hati, dan setiap kata harus bekerja. Pemrograman semacam itu membutuhkan empati dengan pembaca. Dan kode ini dianggap tidak hanya sebagai alat untuk mencapai tujuan, tetapi juga sebagai artefak yang berharga dalam dirinya sendiri. “Saya pikir dia merancang sistem terbaik,” kata Craig Silverstein. "Lihat saja kodenya: itu indah, seperti karya seni, seperti patung dengan proporsi yang sempurna."“Saya pikir dia merancang sistem terbaik,” kata Craig Silverstein. "Lihat saja kodenya: itu indah, seperti karya seni, seperti patung dengan proporsi yang sempurna."“Saya pikir dia merancang sistem terbaik,” kata Craig Silverstein. "Lihat saja kodenya: itu indah, seperti karya seni, seperti patung dengan proporsi yang sempurna."

Di Google, Jeff jauh lebih terkenal. Mereka menciptakan meme tentangnya seperti tentang Chuck Norris. ("Chuck Norris menghitung iklan tanpa batas ... dua kali"; "resume Jeff Dean merangkum hal-hal yang tidak dilakukannya: begitu singkat").

"Ketika Jeff Dean mengembangkan sebuah program, dia pertama kali membuat biner dan kemudian menulis kode sumber sebagai dokumentasi."

"Jeff Dean pernah gagal dalam tes Turing karena dia dengan benar menetapkan angka Fibonacci ke-203 dalam waktu kurang dari satu detik."

“Suatu kali di tahun 2002, ketika pencarian backend terputus, Jeff Dean secara manual menjawab pertanyaan pengguna selama dua jam. Selama periode ini, kualitas hasil pencarian telah meningkat secara signifikan ...


Dari artikel "Jeff Dean dari Google - ini adalah Chuck Norris dari zaman kita" - kira-kira. trans.

Tetapi bagi mereka yang mengenal keduanya, Sanjay memiliki bakat yang sama baginya. "Jeff hebat dalam menghasilkan ide-ide dan prototipe baru yang liar," kata Wilson Sie, kolega lama mereka. "Sanjay membangun sesuatu berdasarkan hati nuraninya." Dalam hidup, Jeff lebih ramah, Sanjay lebih pendiam. Kode yang sebaliknya. Pemrograman Jeff sangat memukau: ia dapat dengan cepat memberikan ide-ide yang mengejutkan, tetapi karena ia melakukannya dengan cepat, dengan inspirasi, ia dapat meninggalkan pembaca. Kode Sanjaya lebih mudah dimengerti.

"Beberapa orang menulis kode terlalu jarang," jelas Silverstein. Ada sangat sedikit informasi di satu layar. Saya harus menggulirnya bolak-balik untuk mengerti. " Yang lain menulis kode terlalu padat: "Anda melihatnya dan berpikir:" Wow. Saya tidak ingin mengerti ini. " Sanjay entah bagaimana berhasil menemukan keseimbangan. Anda melihat kodenya dan berpikir: "Oke, saya bisa memahaminya", dan masih ada banyak informasi di satu halaman. " Silverstein melanjutkan: “Setiap kali saya ingin menambahkan fungsionalitas baru ke kode Sanjay, dia sepertinya meramalkannya. Saya merasa seperti Salieri. Saya melihat kebesaran, tetapi saya tidak mengerti bagaimana ini mungkin terjadi. "

Pada Senin pagi musim semi ini, Jeff dan Sanjay berdiri di dapur kecil Gedung 40, yang menampung sebagian besar divisi AI Google. Di belakang mereka adalah papan tulis yang diisi dengan formula aljabar matriks, di atas meja adalah artikel tentang jaringan kompetitif tanpa guru. Jeff mengenakan T-shirt dan celana jins yang terlihat seperti gelandangan pantai yang telah mengambil jalan koreksi. Sanjay memakai sweter dan celana panjang abu-abu. Di balik jendela yang terang ada pohon-pohon pinus yang tinggi, di belakangnya ada sebuah ladang. Di mana saja Jeff bekerja untuk Google, mereka selalu meletakkan mesin espresso. La Marzocco selebar satu meter berdengung di atas meja dapur. "Kami terlambat," Sanjay mengamati penggiling kopi. Pukul 8:32 pagi

Setelah cappuccino, mereka pergi ke komputer. Jeff menggulung kursi dari mejanya yang kotor ke meja Sanjay yang sangat bersih. Dia meletakkan kakinya di meja samping tempat tidur, bersandar ke belakang sementara Sanjay mempelajari layar. Empat jendela terbuka: di sebelah kiri - browser dan terminal untuk meluncurkan alat analisis; di sebelah kanan adalah dua dokumen di editor teks Emacs: yang satu memiliki daftar tugas di notepad, yang lain diisi dengan kode warna-warni. Salah satu buku catatan Sanjay terletak di sebelah komputer.

- Oke, apa yang kita lakukan? - tanya Sanjay.

"Saya pikir kami menganalisis ukuran kode TensorFlow Lite," kata Jeff.

Ini adalah proyek pembelajaran mesin baru yang utama: Jeff dan Sanjay khawatir tentang basis kode yang membengkak. Seperti editor sastra, mereka mencari cara untuk mengurangi volume. Untuk melakukan ini, mereka menciptakan alat baru, yang dengan sendirinya perlu dioptimalkan.

"Saya mencoba mencari tahu seberapa lambat itu," kata Sanjay.

"Sangat lambat," Jeff mencondongkan tubuh ke depan, masih santai.

"Yang ini seratus dua puluh kilobyte," kata Sanjay, "dan butuh sekitar delapan detik."

"Seratus dua puluh ribu panggilan stack, bukan kilobyte."

"Yah, kilobyte teks, ya ... tentang itu."

- Oh ya, saya minta maaf.

"Saya tidak tahu ambang apa yang harus dipilih untuk ukuran unit," Sanjay bertanya. - setengah mega?

"Sepertinya baik-baik saja," Jeff setuju. Sanjay mulai mengetuk keyboard, dan Jeff menempel pada layar. "Jadi, Anda menulis bahwa jika lebih dari yang ditentukan, kami hanya memilih ..." dia berhenti; Sanjay menjawab pertanyaan dengan kode.

Ketika Sanjay mengendarai mobil, ia meletakkan tangannya di atas sepuluh dan dua dan dengan hati-hati melihat ke depan. Disiplin yang sama di balik keyboard. Kaki selebar bahu, lurus ke belakang, seolah sedang mengerjakan postur. Jari-jari tipis berjalan dengan lembut di sekitar tombol. Programer pertama mulai tiba di kantor.

Segera mereka mencapai tonggak kecil, dan Sanjay merekrut tim untuk menjalankan tes. Dia tampak kelelahan dan memeriksa surat itu. Tes telah selesai. Dia tidak memperhatikan.

- Hei! - Jeff menjentikkan jarinya dan menunjuk ke layar. Meskipun dalam percakapan dia diberi lelucon dan permainan kata-kata, di depan komputer dengan Sanjay dia bisa menjadi percaya diri, kasar dan tidak setuju. Sanjay menerima begitu saja. Ketika tampaknya baginya bahwa Jeff bergerak terlalu cepat, dia mengangkat tangannya dari keyboard dan merentangkan jari-jarinya, seolah berkata: "Berhenti." Ini adalah kemiripan terdekat dari perselisihan: selama dua puluh tahun mereka tidak dapat mengingat ketika mereka mengangkat suara mereka.

Sanjay menggulir halaman, bagian kode baru muncul di layar.

"Kamu bisa melakukan rutinitas ini, kan?" Tanya Jeff.

- Mmm ...

Jeff memecahkan buku-buku jarinya.

- Sepertinya mungkin. Akan lakukan?

Sanjay berpagar:

- Tidak, saya ...

"Jadi, abaikan masalahnya?" - Jeff bertanya dengan marah.

"Tidak, maksudku, kita hanya mencoba mencari tahu apa yang terjadi." Untuk mencatat ini, bukan?

"Bagus." Jeff jelas dalam suasana hati yang baik. Mereka mendikte not bersama.

Makan siang sudah dekat. Mereka bekerja selama dua jam dengan istirahat sepuluh menit, berbicara sebagian besar waktu (junior menonton mereka akan sangat terkesan oleh kenyataan bahwa mereka tidak pernah berhenti dan tidak macet). Praktik rekayasa standar adalah menyerahkan kode untuk peninjauan, tetapi Jeff dan Sanjay melewatkan langkah ini dengan menandai lgtm (terlihat bagus untuk saya). Dalam arti tertentu, mereka sibuk dengan hal-hal kecil. Namun, kode mereka berjalan pada skala Google. Kilobyte dan mikrodetik yang mereka khawatirkan akan berlipat-lipat miliar kali di pusat data di seluruh dunia - pusat data yang besar dan berisik tempat rak server yang tak berujung didinginkan oleh tangki air. Pada hari-hari seperti itu, Jeff, seperti yang Anda tahu, pulang dan memberi tahu putri-putrinya: "Hari ini, Sanjay dan saya telah mempercepat pencarian Google sebesar sepuluh persen."

Pada tahun 2003, dalam empat bulan, Jeff dan Sanjay mungkin membuat pembaruan terbesar dalam sejarah Google. Mereka melakukan ini menggunakan perangkat lunak MapReduce. Ide itu muncul ketika mereka menulis ulang crawler dan indexer Google untuk ketiga kalinya. Mereka menyadari bahwa setiap kali mereka memecahkan masalah penting: koordinasi pekerjaan di sejumlah besar komputer yang terdistribusi secara geografis dan tidak dapat diandalkan secara terpisah. Jika untuk menggeneralisasi solusi, maka masalahnya akan terpecahkan selamanya. Ini akan memunculkan alat yang dapat digunakan oleh setiap programmer di Google untuk mengendalikan mesin di pusat data, seolah-olah mereka semua adalah satu komputer seukuran planet.

Jeff dan Sanjay melukis MapReduce di kantor sudut yang menghadap kolam bebek. Alat ini selamanya merampingkan proses yang sangat rumit. Sebelumnya, masing-masing programmer harus mencari tahu bagaimana cara berbagi dan mendistribusikan data, menetapkan pekerjaan, dan memperhitungkan kegagalan perangkat keras. MapReduce menyediakan cara terstruktur untuk menyelesaikan masalah ini. Saat koki menyiapkan bahan sebelum memulai pekerjaan kuliner, maka MapReduce membagi tugas menjadi dua tahap. Pertama, programmer memberi masing-masing mesin "peta" tugas (misalnya, menghitung jumlah referensi untuk sebuah kata pada halaman); kemudian dia menulis instruksi untuk "mengurangi" hasil dari semua mesin (misalnya, dengan menjumlahkan). MapReduce menangani detail distribusi dan menyembunyikannya.

Tahun berikutnya, Jeff dan Sanjay menulis ulang sistem penjelajahan dan pengindeksan Google dalam hal tugas-tugas MapReduce. Segera, insinyur lain menyadari betapa kuatnya sistem ini - dan mulai menggunakan MapReduce untuk memproses video dan membuat ubin di Google Maps. MapReduce sangat sederhana sehingga tugas baru muncul sendiri. Google memiliki siklus pengambilan harian: pada siang hari lebih banyak lalu lintas daripada pada malam hari, dan tugas MapReduce mulai menyerap kapasitas siaga. Dalam mimpi, otak manusia memproses pengalaman sehari-hari. Sekarang Google mulai memproses datanya di malam hari.

Bukti telah lama muncul bahwa Google sebenarnya adalah perusahaan AI yang hanya berpura-pura menjadi mesin pencari. Pada tahun 2001, Noam Shazir, yang berbagi kantor dengan Jeff dan Sanjay, memutuskan untuk membuat kembali sistem pemeriksa ejaan yang dilisensikan Google dari perusahaan lain. Sistem ini terus melakukan kesalahan yang aneh. Misalnya, ia mengusulkan mengganti kata TurboTax dengan kapak turbot (flounder ditemukan di Atlantik Utara).

Kualitas pemeriksa ejaan tergantung pada kamus. Shazir menyadari bahwa di Internet, Google memiliki akses ke kamus terbesar yang pernah ada dalam sejarah umat manusia. Dia menulis sebuah program yang menggunakan properti statistik teks di Internet untuk menentukan kata-kata mana yang mungkin diketik salah. Program memahami bahwa "tombak pritany" dan "tombak brinsley" berarti "Britney Spears". Ketika Shazir menunjukkan program itu di pertemuan mingguan, banyak karyawan berulang kali mencoba menipu, tetapi kebanyakan tidak berhasil. Shazir, bekerja sama dengan Jeff Dean dan seorang insinyur bernama Georges Harik, telah mengembangkan sistem penargetan iklan yang serupa pada konten halaman web. Penargetan ini membawa longsoran uang yang dikirim perusahaan ke infrastruktur komputasi. Ini menandai awal dari loop umpan balik: infrastruktur yang berkembang meningkatkan kemampuan komputasi dan kecerdasan Google; Keterampilan komputasi menjadi sumber laba, dan laba memungkinkan Anda membangun infrastruktur. Umpan balik ini telah membawa dominasi pasar perusahaan yang luar biasa dan belum pernah terjadi sebelumnya.

Pemrogram yang piawai menggunakan MapReduce untuk mendapatkan berbagai wawasan dari data Google: menjadi mungkin untuk menyalin pesan suara pengguna, menjawab pertanyaan mereka, melengkapi permintaan secara otomatis dan menerjemahkan teks ke lebih dari seratus bahasa. Sistem ini dikembangkan dengan menggunakan algoritma pembelajaran mesin yang relatif sederhana. Namun, "ketika Anda memiliki banyak data, metode yang sangat sederhana bekerja sangat baik," kata Jeff. Karena "data, data, data" - disimpan dan diproses menggunakan BigTable, MapReduce dan penerusnya - aset utama perusahaan, infrastruktur global Google menjadi lebih fleksibel dan dapat diskalakan. Ide komputasi terdistribusi muncul sejak lama. Konsep "cloud computing" dan "big data" ada sebelum Google muncul. Tetapi dengan membuat infrastruktur dikelola secara cerdas untuk program terdistribusi oleh programmer biasa, Jeff dan Sanjay membawa Google ke tingkat berikutnya. Pengguna merasa: sesuatu telah berubah - Google cloud semakin pintar.

Pada 2004, Jeff dan Sanjay berpikir sistem itu akan berguna bagi para astronom, ahli genetika, dan ilmuwan lain dengan banyak data untuk diproses. Kemudian mereka menerbitkan artikel "MapReduce: Pemrosesan Data Sederhana dalam Cluster Besar" . Dokumen itu muncul sebagai Dewa dari mobil. Peralatan murah, pertumbuhan layanan web dan perangkat yang terhubung menyebabkan aliran data, tetapi hanya beberapa perusahaan yang memiliki perangkat lunak untuk memproses array informasi seperti itu. Dua insinyur yang berjuang untuk skala mesin pencari kecil yang disebut Nutch - Mike Cafarella dan Doug Cutting - sangat yakin akan pentingnya MapReduce sehingga mereka memutuskan untuk membuat klon gratis dari sistem ini dari awal. Pada akhirnya, mereka menamai proyek mereka Hadoop, sesuai dengan nama gajah mainan, yang dicintai putra Cutting.

Secara bertahap, setengah dari perusahaan Fortune 50 mengambil alih Hadoop. Ini telah menjadi identik dengan Big Data. Facebook menggunakan Hadoop MapReduce untuk menyimpan dan memproses metadata pengguna - informasi tentang klik, suka, dan tampilan iklan. Pada satu titik, Facebook memiliki cluster Hadoop terbesar di dunia. Hadoop MapReduce telah berkontribusi pada kesuksesan LinkedIn dan Netflix.

Mantan direktur teknologi NSA, Randy Garrett ingat menunjukkan teknologi itu kepada direktur Jenderal NSA, Keith Alexander. Hadoop menyelesaikan tugas analisis 18.000 kali lebih cepat dari sistem sebelumnya. Ini menjadi dasar bagi pendekatan baru untuk pengumpulan intelijen, yang oleh beberapa pengamat disebut "koleksi total segalanya."

Jeff memiliki karakter gelisah: baginya, masalah kehilangan minat ketika dia melihat solusi. Pada tahun 2011, teknologi cloud menyapu dunia, dan Jeff Dean mulai bekerja dengan Andrew Eun, seorang profesor ilmu komputer di Stanford yang memimpin proyek rahasia penelitian jaringan saraf di Google. Jeff menjumpai jaringan saraf pada tahun-tahun muridnya, tetapi kemudian mereka tidak dapat memecahkan masalah nyata. Eun memberi tahu Jeff bahwa situasinya telah berubah. Di Stanford, para peneliti mencapai beberapa hasil yang mengesankan dengan memberikan akses jaringan saraf ke sejumlah besar data. Eun menyarankan bahwa, dalam skala besar, jaringan saraf bisa menjadi tidak hanya berguna, tetapi juga kuat.

Jaringan saraf sangat berbeda dari program komputer tradisional. Perilaku mereka tidak ditentukan oleh perintah biasa, melainkan jaringan "dilatih" menggunakan input dan umpan balik. Pengetahuan Jeff tentang jaringan saraf tidak berkembang dari tahun-tahun muridnya, dan Heidi menyaksikan kamar mandi mereka penuh dengan buku pelajaran. Jeff mulai mencurahkan satu hari dalam seminggu untuk sebuah proyek yang disebut Google Brain. Banyak orang di Google meragukan teknologi ini. “Buang-buang bakat,” kenang Alan Eustace, manajer Jeff saat itu. Sanjay juga tidak dapat memahami keputusan teman itu: "Anda mengerjakan infrastruktur, apa yang sudah Anda lupakan di sana?"

Selama tujuh tahun ke depan, tim Google Brain mengembangkan jaringan saraf yang menunjukkan hasil terbaik di dunia dalam terjemahan mesin, ucapan, dan pengenalan gambar. Pada akhirnya, jaringan saraf ini menggantikan algoritma Google yang paling penting untuk menentukan peringkat hasil pencarian dan penargetan iklan, dan Google Brain menjadi salah satu tim dengan pertumbuhan tercepat di perusahaan. Claire Tsui, seorang insinyur Google sejak tahun 2001, mengatakan bahwa keputusan Jeff adalah titik balik untuk pengembangan AI di Google: “Beberapa percaya, sebagian lainnya tidak. Jeff telah membuktikan bahwa itu bisa berhasil. ”

Ternyata AI sangat membutuhkan skala, dan insinyur sistem Jeff Dean menyediakannya. Sebagai bagian dari proyek ini, ia memimpin pengembangan program yang disebut TensorFlow - itu adalah upaya untuk menciptakan sesuatu seperti MapReduce, hanya untuk AI. TensorFlow menyederhanakan distribusi jaringan saraf dalam sekelompok komputer, mengubahnya menjadi satu otak besar. Pada 2015, ketika TensorFlow dirilis ke publik, itu menjadi standar de facto untuk bekerja dengan AI. CEO Sundar Pichai baru-baru ini mengumumkan bahwa bisnis inti Google adalah Inteligensi Buatan dan telah menunjuk Jeff untuk memimpin semua inisiatif AI.

Sekarang, Jeff mencurahkan empat hari seminggu untuk mengelola Google Brain. Dia memimpin pekerjaan 3.000 orang. Dia bepergian ke negosiasi, mengadakan pertemuan mingguan untuk bekerja pada chip komputer baru (prosesor tensor yang dirancang khusus untuk jaringan saraf) dan membantu dalam mengembangkan AutoML, sistem yang menggunakan jaringan saraf untuk merancang jaringan saraf lain. Dia hanya punya waktu untuk program dengan Sanjay seminggu sekali.

Sejarah menghapus prestasi rekayasa. Kita ingat para penjelajah hebat abad kedelapan belas - James Cook, George Vancouver - tetapi bukan John Harrison, seorang tukang kayu dari Yorkshire yang, setelah berpuluh-puluh tahun bekerja, membuat arloji itu cukup andal untuk mengukur garis bujur di laut.

Jeff dan Sanjay baru-baru ini menikmati margarita dan enchilada di Palo Alto Sol, restoran Meksiko favorit mereka. Jeff mengeluarkan ponselnya dan bertanya, "Kapan Gmail keluar?" Telepon itu menjawab: "1 April 2004." Sanjay, etiket di meja, tampaknya tidak menghargai dorongan teman itu, tetapi Jeff senang. Sekarang Google dapat berbicara, mendengarkan dan menjawab pertanyaan menggunakan setumpuk program yang mudah diintegrasikan dan sebagian besar tidak terlihat, mulai dari teleponnya hingga pusat data di seluruh dunia.

Hari ini peran mereka berbeda. Sanjay di Google dikenal sebagai "peserta individu" - pembuat enkode yang bekerja sendiri dan tidak mengontrol siapa pun. Dia bersyukur untuk itu. "Aku tidak ingin bekerja seperti Jeff," akunya. Dia saat ini menciptakan perangkat lunak yang akan memudahkan para insinyur untuk mengintegrasikan dan mengelola lusinan program - berita, foto, harga - yang mulai berfungsi segera setelah pengguna mengetik di bidang pencarian Google. Sekali seminggu, ia bertemu dengan sekelompok Teknologi Leads, Dewan Teknik Jedi di Google, untuk membuat keputusan teknis yang mempengaruhi seluruh perusahaan. Jika Google ada di rumah, Jeff akan membangun ekstensi, dan Sanjay akan memperkuat fondasi, memperkuat balok, dan mengencangkan baut.

Sementara itu, selama sesi pemrograman pasangan Senin mereka, mereka memulai sesuatu yang baru. Ini adalah proyek AI: seperti yang dikatakan Jeff, upaya untuk melatih model ML "raksasa" untuk melakukan ribuan atau jutaan tugas berbeda. Jeff telah memikirkan gagasan ini selama bertahun-tahun; dia baru-baru ini memutuskan bahwa ini mungkin. Dia dan Sanjay berencana untuk membangun prototipe di mana tim dapat tumbuh. Di dunia perangkat lunak, cara terbaik untuk mengelola tim Anda didasarkan pada kode program.

“Saya pikir mereka saling merindukan,” kata Heidi, istri Jeff. Makan malam keluarga Jumat muncul ketika kolaborasi mereka melambat.

Pada hari Minggu Maret, Jeff dan Sanjay bertemu untuk perjalanan negara. Cuaca cerah, meskipun panas di bawah sinar matahari. Jeff tiba di jalur hiking di Tesla Roadster biru dengan stiker Bernie 2016. Sanjay segera mengikutinya dengan Model S. Sanjay yang merah membaca buku di pagi hari, Jeff bermain sepak bola (perangkat di pergelangan tangannya menunjukkan bahwa ia telah berlari 11 kilometer. Dua dekade kemudian setelah memperbaiki indeks itu, Jeff menyerupai seorang pensiunan atlet hardy kecokelatan, dan Sanjay tampaknya tidak menua sama sekali.

Jalur ini adalah 10 kilometer putaran melalui hutan lebat. Jeff pergi dulu. Di hutan, mereka mengingat betapa cepatnya Google tumbuh.Sanjay ingat bagaimana, setelah pembesaran pertama perusahaan, tukang ledeng memasang dua toilet di kamar mandi yang sama di toilet pria. "Aku ingat komentar Jeff," katanya. "Dua kepala lebih baik dari satu!" Dia tertawa.

Mereka turun dari hutan ke area terbuka yang kering. Burung hering terbang di langit.

"Gunung-gunung itu lebih dingin daripada yang kupikirkan," aku Jeff.

- Dan seseorang mengatakan bahwa ini adalah kampanye datar.

"Saya pikir itu sebabnya tidak ada jalur sepeda."

Mereka naik kembali ke hutan. Mendaki menanjak, Jeff melihat celah di antara pepohonan: "Di beberapa titik akan ada pemandangan yang bagus," katanya.

Jalan setapak menuju ke puncak bukit, tinggi dan lebar, tanpa hutan, dengan pemandangan yang indah. Kabut di cakrawala tidak menutupi Pegunungan Santa Cruz di selatan dan Puncak Misi di timur. "Sanjay, ini kantormu!" - kata Jeff. Mereka berdiri bersama dan memandang ke seberang lembah.

Source: https://habr.com/ru/post/id432324/


All Articles