Googleをこれほど巨大にした友情

同じコンピューターで一緒にプログラミングすることで、ジェフディーンとサンジェイジェマバットは会社の方針を変え、インターネット全体を変えました。 例として、最高のGoogleプログラマーは、同じ脳の2つの半球のように見えることがあります。 デヴィッド・プランケルトによる描画



2000年3月のある日、最高のGoogleエンジニア6人が即席の会議室に集まりました。 緊急事態が発生しました:1999年10月以降、クローラーは停止しました。 ユーザーにはまだ検索結果が表示されますが、5か月間は古くなっています。 エンジニアが予想していた以上のことがかかっていました。 現時点では、ラリーペイジとセルゲイブリンは、最大のインターネットポータルであるYahooへのGoogle検索の配信について交渉しており、検索インデックスを10倍に増やして、昨年に比べて倍増したWorld Wide Webに追いつくと約束しました。 クローラーが修復されないと、google.comは過去に行き詰まり、Yahooとの取引が失敗する可能性があり、会社は投資を燃やして忘却に陥るリスクを抱えています。



階段のそばの会議室では、エンジニアがガントリーにドアを置き、即席のテーブルを構築し、コンピューターを設置しました。 遠くの壁には悲しい27歳のthinせた若者の薄いクレイグ・シルバースタインが座っていた。 CraigはGoogleの最初の従業員でした。本社がブリンのリビングルームにあるときに会社に入社し、創業者のコードの大部分を個人的に書き直しました。 4日間と4日間の仕事の後、彼らはボグダンココセルというルーマニアのシステムエンジニアには何も達成しませんでした。 「何も機能せず、その理由はわかりませんでした。」



シルバースタインは、近くのサンジェイ・ジェマバット、MITの卒業生である彼の寺院の太い眉毛と白髪の控えめな33歳のブルネットにほとんど気づきませんでした。 Sanjayaは、数か月前の12月に採用されました。 彼は同僚であるDigital Equipment Corporationの細身でエネルギッシュな30歳のJeff Deanの後を追いました。 ジェフはサンジェイの10か月前にDECを去りました。 彼らは非常にフレンドリーで、一緒にコードを書くことを好みました。 「戦争の部屋」で、ジェフは椅子をサンジェイのテーブルに引っ張り、空っぽのままにしました。 サンジェイはキーボードを叩き、ジェフはニュースアナウンサーのヘッドフォンのプロデューサーのように、彼のそばに座って修正と口述を行いました。



ジェフとサンジェイは、失速したインデックスの研究を始めました。 一部の単語が欠落していることがわかりました。クエリ[メールボックス]を入力し、結果を受信しませんでしたが、他の単語は順不同でリストされました。 数日間、エラーを検索し、コードのロジックに突入しました。 セクションごとに、すべてをチェックしました。 バグはありません。



プログラマーは、ユーザーインターフェイスからより基本的なレイヤーに至るレイヤー構造としてプログラムを提示することがあります。 この構造の一番下で、ソフトウェアは鉄と出会う。プラトニックなコードの抽象化から、電気とシリコンの物理学への下降。 仕事の5日目に、JeffとSanjayは、問題がコードのロジックにあるのではなく、物理的な原因があると疑い始めました。 彼らはインデックスファイルをバイナリに変換しました。 彼らは車を見たものを見たかった。



Sanjayのモニターには0と1の太い列が表示され、各行はインデックス付きの単語を表します。 Sanjayは次のように述べています。0は1の代わりです。JeffとSanjayは、歪んだ単語をすべて収集すると、パターンを発見しました。すべての単語で同じ不具合です。 サーバー上のメモリチップの損傷。



サンジェイはジェフを見ました。 数か月間、Googleはより多くのハードウェア障害を経験しました。 問題は、Googleが成長するにつれて、コンピューティングインフラストラクチャも拡大することでした。 多くのコンピューターがない限り、コンピューター機器がクラッシュすることはめったにありません。 ワイヤが摩耗し、ハードドライブが壊れ、マザーボードが過熱します。 多くの車はすぐに故障します。 他の人はよりゆっくりと働き始めます。 奇妙な自然の要因が作用します。 宇宙での超新星爆発では、爆発波があらゆる方向に散乱する高エネルギー粒子を生成します。科学者は、宇宙放射線の粒子の1つが地球上のコンピューターチップに入り、0から1に変わる可能性があると考えています。 、NASAの金融会社などでは、1ビットの「フリップ」から保護する特別な機器を使用しています。 しかし、Googleはまだスタートアップとして働いており、そのような保護のない安価なコンピューターを購入しました。 会社は変曲点に達しました。 コンピューティングクラスターは、ハードウェア障害が避けられないほどのサイズにまで成長しました。



ジェフとサンジェイは一緒に、損傷したシステムの誤動作を補うためのコードを書きました。 すぐに新しいインデックスが作成され、緊急事態は正常に解決されました。 シルバースタインは混乱していた。 彼はコードを真にデバッグしましたが、ここで答えはハードウェアレベルに隠れていました。 ジェフとサンジェイはさらに深くなりました。



3月の大失敗の前に、Googleシステムは創業者がスタンフォード大学の大学院で書いたコードに取り組んでいました。 PageとBrinはプロのプログラマーではありませんでした。 彼らは検索技術の実験を行っている科学者でした。 クローラーが倒れたとき、「Whoa、horse!」というフレーズを除いて、有益な診断メッセージを表示しませんでした。



PageとBrinによって書かれたBigFilesシステム。会社の最初の従業員は冗談でBugFilesと呼ばれていました。 非常に重要なインデックス作成手順には数日かかり、問題が発生した場合は、最初から開始しました。 それは完全にスケーラブルでないシステムでした。



「インターネットで検索している」と言いますが、実際はそうではありません。検索会社のサーバーで検索インデックスを操作します。 1996年にGoogleがまだBackRubと呼ばれていたとき、インデックス全体がPageの寮の部屋に設置されたコンピューターに置かれました。 2000年3月には、1台のスーパーコンピューターで処理できませんでした。 Googleにとって唯一の方法は、普通のコンピューターを購入して巨大なクラスターに追加することでした。 従来のコンピューターのコストの半分は、Googleが「ゴミ」とみなすもの(ディスクドライブ、金属ケース)であるため、同社はベアマザーボードとハードドライブのみを注文し、それらを接続しました。 そのときまでに、Googleはすでにカリフォルニア州サンタクララの建物にある2メートルのラックに1,500台のそのような自家製サーバーを接続していました。 ハードウェア障害により、常に1,200のみが機能していましたが、予期せぬ障害が発生し、システムを混乱させ続けました。 Googleが生き残るためには、コンピューターを単一の実行可能な障害耐性有機体に統合する必要がありました。



ジェフとサンジェイのカップルがこの仕事を引き継ぎました。 AppleでMacintoshの前身を設計したWayne Rosingは、2000年11月にGoogleに入社し、100人のエンジニアのチームを集めました。 1週間に90時間働いて、1つのHDD障害がシステムを混乱させないようにコードを書きました。 Webトラバーサルプロセスにブレークポイントを追加して、クロールが最初からではなく障害点から再開されるようにしました。 新しいコーディングおよび圧縮スキームを開発することにより、システムの機能を実際に2倍にしました。 それらは容赦ないオプティマイザーでした。 たとえば、Googleは最も頻繁に使用されるデータをHDDプレートの外側に移動しました。HDDプレートでは、ディスクの回転速度が速く、したがって情報の読み取りおよび書き込み速度が速く、プレートの内部領域は空のままです。 JeffとSanjayは、このスペースを使用して、一般的な検索クエリの前処理済みデータを保存しました。 2001年の4日間、彼らはGoogleインデックスを低速のHDDではなく高速のRAMに保存できることを証明しました。 この発見は会社の経済を完全に変えました。 ページとブリンは、群衆が即座に応答するサービスに群がることを知っていました。 問題は、速度に計算能力が必要であり、計算能力にお金がかかることでした。 ジェフとサンジェイは、ソフトウェアの最適化を使用して、なんとか針の穴に押し込めました。



アランユースタスは、2005年にロージングが去った後、エンジニアリングチームを率いました。 「逆説的に、大規模なタスクを解決するには、最小の詳細を知る必要があります」とEustace氏は述べています。 ジェフとサンジェイは、システムをビットレベルで理解していました。 ジェフが「すべてのプログラマーが知っておくべき遅延率」のリストを配布したら。 実際、これはプログラマーがほとんど考えていない数字のリストですが、これらの数字は文字通りJeffとSanjayの頭脳に組み込まれています:たとえば、L1キャッシュからの呼び出しには0.5 nsが必要であるか、メモリからの1メガバイトの連続読み取りには250μsがかかります 一連の主要なソフトウェア最適化の後、Googleシステムのパワーは桁違いに拡大しました。 一方、技術者は、ハードドライブ、電源、およびメモリモジュールを交換するためのソフトウェア生成の指示に従って、広範なデータセンターで曲がりくねったルートを取り始めました。 部品が磨耗して故障した場合でも、システムは繁栄しました。



現在、Googleのエンジニアは、レベル1から始まる統合された分類システムを使用しています。これは技術サポートです。 レベル2-大学卒業。 レベル3の従業員はしばしば修士号を取得しています。 レベル4を取得するには数年かかるか、博士号が必要です。 ほとんどの従業員のキャリアはレベル5で止まります。第6レベルのエンジニアはスタッフの最高10%であり、プロジェクトの成功は彼らにかかっているほど優秀です。 レベル7は、長い実績を持つレベル6の従業員に与えられます。 Tier 8のチーフエンジニアは、特定の製品またはインフラストラクチャの一部を担当します。 優れた第9レベルのエンジニアが尊敬されています。 Google Fellow(レベル10)の肩書きは、その分野の通常世界をリードする世界の専門家に生涯割り当てられています。 ジェフとサンジェイは、レベル11の最初で唯一の従業員であるシニアGoogleフェローです。



Googleキャンパスは、マウンテンビューの中心部からわずか数分の高速道路の外れに位置し、色とりどりの窓のある不気味で魅力のない建物です。 2017年夏のある月曜日の朝、ペアリングを終えたジェフとサンジェイは、2005年に開発を支援したシステムにちなんで名付けられたBig Tableと呼ばれるキャンパスカフェテリアで昼食を取りました。 古くてブルゴーニュのヘンリーシャツを着た背の高い細いサンジェイ、グレーのズボン、小さなワイヤーで縁取られた眼鏡は、テラスでテーブルを探してすぐにそれを占有し、傘を開けて日陰でしゃがみました。 太陽の下で、彼はジェフのために別の椅子を置きました。ジェフは1分後に到着し、半袖のシャツとスタイリッシュなスニーカーを着た肩幅の広い運動選手です。



恋人のように、ジェフとサンジェイは一緒にストーリーを語り、全体像の一部を補完します。 彼らは最初のプロジェクトを思い出し始めました。



「すべてを手書きで書きました」とサンジェイは言います。 彼の眼鏡は太陽の下で暗くなった。 「コードを書き直す必要があり、それから突然:「ああ、先月書いたように見えます。」



「または、インデックス作成データのわずかに異なる箇所」とジェフは付け加えました。



「または少し違う」とサンジェイは言います。 「それでわかった...」



「それがポイントです」とジェフは言いました。



「...一般的なパターンがある」とサンジェイは彼の考えを結論付ける。



ジェフはピザを一口食べました。 彼は船乗りの指を持っています。 サンジェイは彼に比べて非常に優しいようです。 彼はペアプログラミングの練習を始めたのかと疑問に思います。「どうすればそれがより良いと判断したかさえわかりません。」



「Googleの前にそれをやった」とジェフは言った。



「しかし、2台ではなく1台のコンピューターを使用する方が良いと判断した理由はわかりません」とサンジェイは言います。



「私のDECは彼の研究室から2ブロック離れていました」とジェフは言います。 -そして、その間にアイスクリームショップがあります。



-だから、これはアイスクリームショップです! -サンジェイは喜んでいます。



独身のサンジェイは、ジェフ、彼の2人の娘、そして彼の妻、ハイジと休暇中です。 ジェフの娘は彼をサンジェイおじさんと呼び、5人は金曜日に夕食をとることがよくあります。 ジェフの長女であるサンジェイとビクトリアは、パン作りに取りかかりました。 「彼らが成長するのを見ました」とサンジェイは誇らしげに言います。 2004年のGoogle IPOの後、6キロメートル離れた新しい家に引っ越しました。 サンジェイはオールドマウンテンビューのささやかな3ベッドルームの家に住んでいますが、ジェフ自身はパロアルトの中心近くに彼の家を設計し、地下にトランポリンを設置しました。 家での作業中、彼は空間を設計するのが好きであることがわかりましたが、彼は建築の「サンジェイ指向の側面」と呼ばれる詳細に忍耐を欠いていました:梁の詳細、備品、負荷分散、優れた設計の崩壊を防ぎます。



「他の人がそのように動作しない理由はわかりません」とサンジェイはペアプログラミングについて語ります。



「お互いを補完するという考え方で、あなたと互換性のあるパートナーを見つける必要があります」とジェフは言いました。



彼らはテーブルから立ち上がって、ソフトクリームを探しに行き、走り回っているグーグルの間でビッグテーブルを散歩しました。 彼らが歩いている間、ジェフは彼のソフトクリーム戦略を概説しました。 このアプローチは安定性を高めると思います」と彼は言いました。 満足し、意図的に、サンジェイはチョコレートとバニラの混合物をグラスにねじ込みました。



2001年の本「協力の輪:友情と創造性のダイナミクス」で 、社会学者のマイケル・P・ファレルは、フランスの印象派、ジグムント・フロイトと彼の同時代人などの密接な創造的グループを調査しました。 「新しいビジョンの基礎を築いた脆弱なアイデアのほとんどは、グループ全体が一緒になったときではなく、誰もが単独で働いているときではなく、ペアで協力してやり取りするときに生じます」と彼は書いた。 モネとルノワールは1869年の夏に並んで働いた。 彼らは印象派になるスタイルを作成しました。 6年間のコラボレーションによりキュービズムが生まれ、パブロ・ピカソとジョルジュ・ブラックはしばしばキャンバスの裏側だけに署名して、作品が完成したという事実を互いに隠しました(「作品は私たち2人がそれを感じたまで完成しません」ピカソは後に思い出しました) 「二重の力:創造的なカップルの革新の本質を探る」という本の中で作家のジョシュア・ウルフ・シェンクは、ジョン・レノンが彼またはポール・マッカートニーが「今日のニュースを読んだ」そのようなこと。 「私たちの一人は、もう一人が来るまで行き詰まりました」とレノンは言いました。「私は半分を歌います。彼は別のパートを書くように促されました。逆もまた同様です。」 誰でも創造的な行き詰まりに陥ることはできますが、同時に2人はほとんど参加できません。



新しい科学や芸術の「理論的構築」の段階では、行き詰まりに陥ることなく視野を広げることが重要です。 ジャック・モノドと共に遺伝子の調節機能の研究にブレークスルーをもたらしたフランソワ・ジェイコブは、20世紀半ばまでに、分子生物学の分野でのほとんどの研究はペアで行われたと述べました:「一緒に理論を発明し、モデルを構築することは簡単です」 -2人のマインドが問題に取り組むと、アイデアがより頻繁に、より速く現れます。 彼らはパートナーからパートナーへと跳ね返ります。 彼らは木の上の枝のように一緒にねじれます。 そして、偽の幻想が芽に挟まれています。」 過去35年間で、生理学と医学のノーベル賞の約半分が科学者のペアに授与されました。



長年一緒に働いた後、パートナーは双子のように自分の言語を開発することがあります。 彼らは習慣や衣服でお互いを模倣し、ユーモアの常識を持っています。 コラボレーションでそれぞれの特定の貢献度を評価することは不可能になります。 しかし、そのような緊密なパートナーシップは、ソフトウェア開発ではめったに見られません。 開発者は「ペアプログラミング」について話すこともありますが、2人のプログラマーが1台のコンピューターを「ホイールの後ろ」と「ナビゲーター」と共有する場合、通常は飛行機のパイロットのような作業上の関係のみを表します。 対照的に、JeffとSanjayは、同じ脳の2つの半球のように見える場合があります。 最も有名な科学論文には、最大12人の共同研究者がリストされています。 しかし、マネージャーの1人であるビル・コクランは、「彼らは非常に多作で非常に効果的であったため、私たちはしばしば彼らの周りにチームを作りました」と回想します。



1966年、System Development Corporationの研究者は、最高のプログラマーが最悪のプログラマーよりも10倍以上効率的であることを発見しました。 それ以来、いわゆる「10倍プログラマー」の存在をめぐる論争。 このアイデアは個性を強調し、大規模なソフトウェアプロジェクトはチームによって作成されます。 プログラミングでは、単独ではほとんど何も達成されません。 皮肉なことに、多くのプログラマーは、JeffとSanjayのコラボレーションの結果を、10倍のプログラマーが存在する証拠として見ています。



ジェフは1968年7月にハワイで生まれました。 彼の父アンディは熱帯病の探検家でした。 バージニアリーの母親は、6か国語を話す医療人類学者です。 楽しみのために、父と息子はIMSAI 8080キットからコンピューターを組み立て、部品をはんだ付けして各部品を調べました。



ジェフと彼の両親はしばしば引っ越しました。 13歳のとき、彼は8年生の最後の3か月を逃して、ソマリア西部の難民キャンプで助けました。 高校で、彼は疫学者のためのEpi Infoと呼ばれるデータ収集プログラムを書き始めました。研究者向けの標準ツールになり、数十の言語に翻訳され、数十万部のコピーを販売しました(疾病管理予防センターのウェブサイトで、ジェフの卒業式の写真を公開しました)。ジェフがミネソタ大学で会ったハイジは、わずか数年後にこのプログラムの重要性について学びました。 「彼はそのようなことを自慢しませんでした」と彼女は言います。 「すべてを彼から引き抜かなければなりませんでした。」最初のデートは女性のバスケットボールの試合で、ジェフはゴーファーのコスチュームで観客を楽しませました。



ジェフの博士論文はコンパイラに焦点を当てています。 「コンパイラ自体はかなり退屈です」とAlan Eustaceは言いますが、一方で、「ハードウェアに近い、非常に低いレベルです。」ジェフを説明して、サンジェイは寺院で指を回します。「コードを書くとき、特定のモデルが彼の頭に形成されます。このコードのパフォーマンスはどうなりますか?彼はほとんどすべての国境の状況を自動的に計算します。」



Sanjayは、17歳のときにコーネル大学に入学したとき、最初にコンピューターに座りました。彼は1966年にインディアナ州ウェストラファイエットで生まれましたが、北インドの工業都市コタで育ちました。彼の父であるMahipalは植物学の教授であり、Shantの母はSanjayと彼の2人の兄と妹の世話をしました。家族は本を愛していました。彼の叔父のアショク・メタは子供のために「ジャッカル・デイ」を購入した方法を覚えています破れた結合を持つフレデリック・フォーサイス、そして子供たちはボロボロの本を一緒に読んで、終わったらお互いにページを渡し合った。サンジェイの兄弟であるパンカイは、ハーバードビジネススクールで就職した史上最年少の教師になりました(現在はニューヨーク大学の教授です)。 PankajはSanjayと同じ学校で学び、ルネサンスの男として知られていました。「私は弟の影に住んでいました」とSanjayは言います。大人として、彼はこの謙虚さを保持しました。 2016年に彼がアメリカ芸術科学アカデミーに紹介されたとき、彼は両親にさえ告げませんでした。彼らは隣人からニュースを学びました。



SanjayはMIT大学院で友達になりました。それにもかかわらず、彼はそこで女の子に会ったことはなく、今では「とても、めったに」それをしません。彼は家族を始めることを拒否しなかったと言います、それはちょうどそのように起こりました。彼の親友はこれについて彼を邪魔しないことを学び、彼の両親は彼の息子が独身のままであることに長い間気付いていました。おそらくそれがあまりにも閉鎖的であるために、サンジェイを中心にグーグルを取り巻く秘密のハローが発達しています。彼は静かでありながら堅実なエンジニアであると考えられています。テーブルには、ほぼ20年間、きちんとしたリストと図で満たされたMeadノートブックのきちんとしたスタックがあります。彼はまだ手でメモを取る:彼はそれが考えるのに役立つと言う。 MITでは、彼の監督者は影響力のあるコンピューター科学者であるBarbara Liskovでした。複雑なコードベースの管理を含めて研究しました。彼女の意見では、最高のコードは良い文学のようなものです。慎重に考え抜かれた構造を持つ必要があり、すべての単語が機能する必要があります。このようなプログラミングには、読者への共感が必要です。また、このコードは、目的を達成するための手段としてだけでなく、それ自体が価値のあるアーティファクトと見なされます。 「彼はシステムを最適に設計していると思う」とクレイグ・シルバースタインは言う。 「コードを見てください。芸術作品のように、完璧なプロポーションの彫刻のように美しいです。」「彼はシステムを最適に設計していると思う」とクレイグ・シルバースタインは言う。 「コードを見てください。芸術作品のように、完璧なプロポーションの彫刻のように美しいです。」「彼はシステムを最適に設計していると思う」とクレイグ・シルバースタインは言う。 「コードを見てください。芸術作品のように、完璧なプロポーションの彫刻のように美しいです。」



Googleでは、ジェフはもっと有名です。彼らはチャック・ノリスのような彼についてのミームを作成します。(「チャック・ノリスは広告を無限に数えた... 2回」;「ジェフ・ディーンの履歴書は、彼がしなかったことを要約している:とても短い」)



「ジェフディーンはプログラムを開発するとき、最初にバイナリを作成し、次にソースコードをドキュメントとして記述します。」



「ジェフディーンは、203番目のフィボナッチ数を1秒未満で正しく設定したため、チューリングテストに一度失敗しました。」



「2002年に検索バックエンドが切断されると、ジェフディーンはユーザーの質問に2時間手動で回答しました。この期間中に、検索結果の品質は、」..大幅に増加している




記事から私たちの時間のチャック・ノリス『 -ジェフ・ディーン会社Googleからの』 -コメント。あたり


しかし、両方を知っている人にとって、サンジェイは才能において彼と同等です。 「ジェフは、斬新なアイデアやプロトタイプを考案するのが得意です」と、長年の同僚であるウィルソン・シーは言いました。 「サンジェイは良心で物事を築いています。」 人生では、ジェフはより社交的で、サンジェイはより控えめです。 コードは逆です。 ジェフのプログラミングは目を見張るものがあります。彼は驚くべきアイデアを迅速に提供できますが、インスピレーションを得て、そうすることで読者を置き去りにすることができます。 Sanjayaコードの方がわかりやすいです。



「一部の人々はコードをあまりにもまばらに書く」とシルバースタインは説明する。 1つの画面にはほとんど情報がありません。 前後にスクロールして理解する必要があります。」 他の人は、あまりにも密なコードを書いています:「あなたはそれを見て、考えます:」 私はこれを理解したくありません。」 サンジェイはどういうわけかバランスを見つけることができます。 そのコードを見て、「わかりました。理解できます」と思っても、まだ1ページに多くの情報が残っています。」 Silversteinは続けます。「Sanjayのコードに新しい機能を追加したいときはいつでも、彼はそれを予見しているように見えました。 私はサリエリのように感じます。 偉大さはわかりますが、これがどのように可能かはわかりません。」



ジェフとサンジェイは、この春の月曜日の朝に、GoogleのAI部門のほとんどを収容しているビル40の簡易キッチンにいました。 それらの背後には、行列代数式で満たされた黒板があります;テーブルには、教師なしの競争ネットワークに関する記事があります。 色あせたTシャツとジーンズを着たジェフは、修正の道をたどったビーチの尻のように見えます。 セーターとグレーのズボンのサンジェイ。 明るい窓の後ろには背の高い松の木があり、その後ろには畑があります。 ジェフがGoogleで働いているすべての場所で、彼らはいつもエスプレッソマシンを置いています。 ラマルゾッコメーター幅のキッチンテーブルが鳴ります。 「私たちは遅れています」とサンジェイはコーヒーグラインダーを観察します。 午前8時32分



カプチーノの後、彼らはコンピューターに行きます。 ジェフは、汚れたテーブルからサンジェイのきれいなテーブルに椅子を転がします。 彼女はサンジェイがスクリーンを研究している間、後ろに寄りかかってナイトスタンドに足を置きます。 4つのウィンドウが開いています:左側-ブラウザーと分析ツールを起動するためのターミナル。 右側にはEmacsテキストエディターの2つのドキュメントがあります。1つはメモ帳にTo Doリストがあり、もう1つはカラフルなコードで埋められています。 Sanjayのノートブックの1つはコンピューターの横にあります。



-さて、私たちは何をしましたか? -サンジェイに尋ねる。



「TensorFlow Liteコードのサイズを分析したと思います」とジェフは言います。



これは、主要な新しい機械学習プロジェクトです。JeffとSanjayは、肥大化したコードベースを心配しています。 文学編集者のように、彼らはボリュームを減らす方法を探しています。 これを行うために、彼らはそれ自体で最適化する必要がある新しいツールを作成しました。



「私はそれがどれほど遅いかを理解しようとしました」とサンジェイは言いました。



「かなり遅い」ジェフは前に傾いて、まだリラックスしていました。



「これは120キロバイトでした」とSanjay氏は言います。「約8秒かかります。」



「キロバイトではなく、12万回のスタック呼び出し。」



「まあ、キロバイトのテキスト、まあ...それについて」



-ああ、ごめんなさい。



「ユニットサイズにどのしきい値を選択すればよいかわかりません」とSanjayは尋ねます。 -半メガ?



「それは普通のようです」とジェフは同意します。 Sanjayはキーボードをノックし始め、Jeffは画面にしがみつきます。 「だから、もしそれが指定されたものよりも大きければ、私たちはただ選択するだけだと書いて...」彼は一時停止した。 Sanjayはコードで質問に答えました。



Sanjayが車を運転するとき、彼は10と2に手を置き、慎重に楽しみにします。 キーボードの背後にある同じ規律。 足を肩幅に広げ、背中をまっすぐにし、あたかも姿勢に取り組んでいるかのように。 細い指がキーを優しく回ります。 最初のプログラマーがオフィスに到着し始めました。



すぐに彼らはマイルストーンに達し、サンジェイはテストを実行するチームを募集しました。 彼は疲れ果てているように見え、メールをチェックしました。 テストが完了しました。 彼は気づかなかった。



-おい! -ジェフは指を鳴らして画面を指さしました。 会話ではジョークやしゃれを与えられますが、Sanjayとのコンピューターでは、自信を持ち、失礼で不承認になる可能性があります。 サンジェイは当たり前だと思っています。 ジェフがあまりにも速く動いているように見えると、ジェフはキーボードから手を上げ、指を広げて、「やめなさい」と言います。 これは紛争に最も近いものです。20年間、彼らはいつ声を上げたのか思い出せません。



Sanjayはページをスクロールし、コードの新しいセクションが画面に表示されました。



「これでルーチンを作れますよね?」 ジェフに尋ねた。



-うーん...



ジェフは指の関節を割った。



-それは可能のようです。 しますか?



サンジェイはフェンスで囲まれた:



-いいえ、私は...



-では、問題を無視しますか? -ジェフはinします。



「いいえ、私たちは何が起こっているのかを把握しようとしているだけです。」 これについてメモを取りますか?



「良い。」ジェフは明らかに気分が良かった。 彼らは一緒にメモを口述した。



昼食が近づいていた。 彼らは10分間の休憩を1回しながら2時間働き、ほとんどの時間を話しました(彼らを見て後輩は、彼らが止まらず、立ち往生していないという事実に最も感銘を受けるでしょう)。 標準的なエンジニアリング手法はレビュー用のコードを提供することですが、JeffとSanjayはlgtmをマークすることでこのステップをスキップします(私には良さそうです)。 ある意味では、彼らはささいなことで忙しいです。 ただし、そのコードはGoogle規模で実行されます。 彼らが気にしているキロバイトとマイクロ秒は、世界中のデータセンターで数十億倍になります。無限のサーバーラックが水タンクで冷却される巨大で騒がしいデータセンターです。 そのような日、ご存知のようにジェフは帰宅して娘たちに「今日、サンジェイと私はグーグル検索を10パーセント加速させました」と話します。



2003年に4か月で、ジェフとサンジェイはおそらくGoogleの歴史の中で最大の更新を行いました。 MapReduceソフトウェアを使用してこれを行いました。 このアイデアは、クローラーとインデクサーのGoogleを3回書き換えたときに生まれました。 彼らは、重要な問題を解決するたびに、地理的に分散した膨大な数の信頼性の低いコンピューターの作業を個別に調整することに気付きました。 ソリューションを一般化すると、問題は永遠に解決されます。 これにより、Googleのすべてのプログラマがデータセンターのマシンを制御するために使用できるツールが表示されます。まるで惑星サイズの1台のコンピュータであるかのようです。



ジェフとサンジェイは、アヒルの池を見下ろすコーナーオフィスでMapReduceを描きました。 このツールは、息をのむほど複雑なプロセスを永遠に合理化しました。 以前は、各プログラマは、データを共有および配布し、作業を割り当て、ハードウェア障害を考慮する方法を独自に把握する必要がありました。 MapReduceは、これらの問題を解決するための構造化された方法を提供します。 シェフが料理を始める前に材料を準備するので、MapReduceはタスクを2つの段階に分けます。 まず、プログラマーは各マシンにタスクの「マップ」を渡します(たとえば、ページ上の単語への参照の数をカウントします)。 その後、彼はすべてのマシンからの結果を「減らす」ための指示を書きます(たとえば、合計することによって)。 MapReduceは配布の詳細を処理するため、それらを非表示にします。



翌年、JeffとSanjayはMapReduceタスクの観点からGoogleのクロールとインデックス作成システムを書き直しました。 すぐに、他のエンジニアはこのシステムがどれほど強力かを認識し、MapReduceを使用してビデオを処理し、Googleマップでタイルをレンダリングし始めました。 MapReduceは非常に単純だったため、新しいタスクが自力で登場しました。 Googleには毎日の負荷サイクルがあります。日中は夜間よりもトラフィックが多く、MapReduceタスクはアイドル容量を吸収し始めました。 夢の中で、人間の脳は日々の経験を処理します。 現在、Googleは夜間にデータの処理を開始しました。



Googleは実際には検索エンジンになりすましているAI企業であるという証拠が長い間浮上してきました。 2001年、ジェフとサンジェイとオフィスを共有したノームシャジルは、Googleが別の会社からライセンスを供与したスペルチェックシステムを作り直すことにしました。 このシステムは厄介な間違いを犯し続けました。 たとえば、彼女は、TurboTaxという言葉をturboのt(北大西洋で見つかったヒラメ)に置き換えることを提案しました。



スペルチェッカーの品質は辞書に依存します。 Shazirは、インターネット上で、Googleが人類の歴史に存在する史上最大の辞書にアクセスできることを認識しました。 彼は、インターネット上のテキストの統計的特性を使用して、どの単語が誤って入力されたのかを判断するプログラムを作成しました。 プログラムは、「プリタニースピアーズ」と「ブリンズリースピアーズ」が「ブリトニースピアーズ」を意味することを理解しました。 Shazirが毎週の会議でプログラムを示したとき、多くの従業員が何度もそれをだまそうとしましたが、ほとんど失敗しました。 Shazirは、Jeff DeanおよびGeorges Harikというエンジニアと共同で、Webページのコンテンツの広告をターゲットとする同様のシステムを開発しました。 この標的化は、同社がコンピューティングインフラストラクチャに送った雪崩をもたらしました。 これにより、フィードバックループが始まりました。インフラストラクチャの拡大により、Googleのコンピューティング機能とインテリジェンスが向上します。 コンピューティングスキルは利益の源となり、利益によりインフラストラクチャを構築できます。 このフィードバックループは、会社に並外れた前例のない市場優位性をもたらしました。



優秀なプログラマーはMapReduceを使用して、Googleデータからさまざまな洞察を得ました。これにより、ユーザーの音声メッセージの書き起こし、質問への回答、クエリの自動完了、100以上の言語へのテキストの翻訳が可能になりました。 これらのシステムは、比較的単純な機械学習アルゴリズムを使用して開発されました。 しかし、「大量のデータがある場合、非常に単純な方法は非常にうまく機能します」とジェフは言いました。 「データ、データ、データ」-BigTable、MapReduce、およびそれらの後継を使用して保存および処理される-会社の主要な資産であるため、Googleのグローバルインフラストラクチャはより柔軟でスケーラブルになりました。 分散コンピューティングのアイデアは、かなり前に生まれました。 「クラウドコンピューティング」と「ビッグデータ」の概念は、Googleが登場する前から存在していました。 しかし、JeffとSanjayは、インフラストラクチャを通常のプログラマーが分散プログラムに対してインテリジェントに管理できるようにすることで、Googleを次のレベルに引き上げます。 ユーザーは何かが変わったと感じました-Googleクラウドはよりスマートになりつつあります。



2004年、ジェフとサンジェイは、このシステムが、天文学者、遺伝学者、および処理するデータが多い他の科学者に役立つと考えました。 その後、彼らは記事「MapReduce:Simplified Data Processing in Large Clusters」を公​​開しました。 文書は車から神として現れました。 安価な機器、Webサービスおよび接続されたデバイスの成長がデータの流れをもたらしましたが、そのようなデータ配列を処理するソフトウェアを持っている企業はわずかでした。 Nutchと呼ばれる小さな検索エンジンの拡張に苦労していた2人のエンジニア、Mike CafarellaとDoug Cuttingは、MapReduceの重要性を非常に確信していたため、このシステムの無料クローンをゼロから作成することにしました。 最後に、カッティングの息子が愛したおもちゃの象の名前にちなんで、彼らはプロジェクトをHadoopと名付けました。



徐々に、フォーチュン50社の半数がHadoopを買収し、これがビッグデータの代名詞になりました。 FacebookはHadoop MapReduceを使用して、ユーザーメタデータ(クリック、いいね!、広告ビューに関する情報)を保存および処理しました。 ある時点で、Facebookには世界最大のHadoopクラスターがありました。 Hadoop MapReduceは、LinkedInとNetflixの成功に貢献しています。



元NSAテクノロジーディレクターのランディギャレットは、NSAディレクターのキースアレクサンダーにテクノロジーを見せたことを覚えています。 Hadoopは、以前のシステムよりも18,000倍速く分析タスクを完了しました。 これは、一部のオブザーバーが「すべてのトータルコレクション」と呼ぶインテリジェンス収集への新しいアプローチの基礎となりました。



ジェフには落ち着きのない性格があります。彼にとって、解決策を見つけたとき、問題は興味を失います。 2011年、クラウドテクノロジーが世界を席巻し、ジェフディーンは、Googleのニューラルネットワーク研究の秘密プロジェクトを率いたスタンフォードのコンピューターサイエンス教授であるAndrew Eunとのコラボレーションを開始しました。 ジェフは学生時代にニューラルネットワークに出会いましたが、実際の問題を解決できませんでした。 ウンはジェフに状況が変わったと言った。 スタンフォード大学では、ニューラルネットワークが大量のデータにアクセスできるようにすることで、研究者がいくつかの印象的な結果を達成しました。 Eunは、大規模に、ニューラルネットワークが有用になるだけでなく強力になることを示唆しました。



ニューラルネットワークは、従来のコンピュータープログラムとは大きく異なります。 それらの動作は通常のコマンドによって決定されるのではなく、ネットワークは入力とフィードバックを使用して「トレーニング」されます。 ニューラルネットワークに関するジェフの知識は学生時代から進歩しなかったため、ハイジはトイレで教科書がいっぱいになるのを見ました。 ジェフは週に1日、Google Brainというプロジェクトに専念し始めました。 Googleの多くはこの技術を疑っていました。 「才能の無駄」ジェフの当時のマネージャー、アラン・ユースタスは彼の考えを回想します。 サンジェイも友人の決定を理解できませんでした:「あなたはインフラストラクチャに取り組んでいます、あなたはそこで何を忘れましたか?」



次の7年間で、Google Brainチームは、機械翻訳、音声、画像認識において世界で最高の結果を示したニューラルネットワークを開発しました。 最終的に、これらのニューラルネットワークは、検索結果のランク付けと広告ターゲティングのためのGoogleの最も重要なアルゴリズムに取って代わり、Google Brainは社内で最も急成長しているチームの1つになりました。 2001年以来、GoogleのエンジニアであるClaire Tsuiは、Jeffの決定がGoogleでのAI開発のターニングポイントだったと述べています。「一部の人は信じていましたが、他の人は信じていませんでした。 ジェフはそれが機能することを証明しました。」



AIがスケールを非常に必要としており、システムエンジニアのジェフディーンがそれを提供したことが判明しました。 このプロジェクトの一環として、彼はTensorFlowと呼ばれるプログラムの開発を指揮しました。これは、AI専用のMapReduceのようなものを作成する試みでした。 TensorFlowは、コンピューターのクラスター内のニューラルネットワークの分布を単純化し、それらを1つの大きな脳に変えます。 2015年にTensorFlowが一般公開されたとき、AIを操作するための事実上の標準になりました。 CEOのSundar Pichaiは最近、Googleのコアビジネスが人工知能であることを発表し、すべてのAIイニシアチブを率いるためにJeffを任命しました。



現在、ジェフはGoogle Brainの管理に週4日を費やしています。 彼は3,000人の仕事を率いています。 彼は交渉に行き、毎週会議を開いて新しいコンピューターチップ(ニューラルネットワーク専用に設計されたテンソルプロセッサ)で作業し、ニューラルネットワークを使用して他のニューラルネットワークを設計するシステムであるAutoMLの開発を支援しています。 彼は週に一度、サンジェイとプログラムする時間しかありません。



歴史はエンジニアリングの偉業を消去します。 18世紀の偉大な探検家-ジョージバンクーバー、ジェームズクック-を覚えていますが、数十年の仕事の後に、時計を海の経度を測定するのに十分に信頼できるようにしたヨークシャー出身の大工ジョンハリソンは覚えていません。



ジェフとサンジェイは最近、お気に入りのメキシコ料理店のパロアルトソルでマルガリータとエンチラーダを楽しみました。 ジェフは携帯電話を取り出して、「Gmailはいつ出てきましたか?」と尋ねました。 電話は答えました:「2004年4月1日。」 テーブルのエチケットであるサンジェイは、友人の衝動に感謝するようには見えませんでしたが、ジェフは喜んでいました。 Googleは現在、電話から世界中のデータセンターに至るまで、簡単に統合でき、ほとんど目に見えないプログラムのスタックを使用して、質問をしたり、聞いたり、答えたりすることができます。



今日、彼らの役割は分かれています。 GoogleのSanjayは、「個人参加者」として知られています。これは、単独で動作し、誰も制御しないエンコーダです。 彼はそのことに感謝しています。 「ジェフのように働きたくない」と彼は認める。 彼は現在、ユーザーがGoogle検索フィールドに入力するとすぐに機能を開始する多数のプログラム(ニュース、写真、価格)をエンジニアが簡単に統合および管理できるソフトウェアを作成しています。 週に一度、彼は「テクノロジーリーダー」(Area Tech Leads)のグループ(Googleのエンジニアリング「Jedi Council」)と会って、会社全体に影響を与える技術的な決定を下します。 Googleが自宅にいた場合、ジェフはエクステンションを構築し、サンジェイは基礎を強化し、梁を強化し、ボルトを締めます。



一方、月曜日のペアプログラミングセッション中に、彼らは何か新しいことを始めました。 これはAIプロジェクトです。ジェフが言うように、「巨大な」MLモデルをトレーニングして、数千または数百万のさまざまなタスクを実行しようとします。 ジェフはこのアイデアについて長年考えてきました。 彼は最近、これが可能であると決めました。 彼とサンジェイは、チームが成長できるプロトタイプを構築することを計画しています。 ソフトウェアの世界では、チームを管理する最良の方法はプログラムコードに基づいています。



「お互いが恋しいと思う」とジェフの妻ハイジは言う。 金曜日の家族の夕食は、彼らのコラボレーションが遅くなったときに現れました。



3月の日曜日に、ジェフとサンジェイは田舎旅行に会いました。 天気は晴れですが、太陽の下では暑いです。 ジェフは青いテスラロードスターのハイキングトレイルにバーニー2016バンパーステッカーを付けて到着し、サンジェイはすぐに赤いモデルSを追いました。サンジェイは午前中に本を読んで、ジェフはサッカーをしましたそのインデックスを修正した後、ジェフは引退した日焼けした丈夫なアスリートに似ており、サンジェイはまったく老いていなかったようです。



パスは、密林を通る10キロメートルのループです。 ジェフが最初に行きました。 森の中で、彼らはグーグルがどれほど速く成長したかを思い出した。Sanjayは、会社の最初の拡張の後、配管工が男性用部屋の同じバスルームに2つのトイレを設置した方法を思い出しました。 「ジェフのコメントを覚えています」と彼は言いました。 「2つのヘッドが1つよりも優れています!」彼は笑った。



彼らは森から乾燥したオープンエリアに降りました。ハゲワシが空を飛んだ。



「山は思ったより涼しい」とジェフは認めた。



-そして、誰かがこれはフラットなキャンペーンだと言いました。



「だからこそ、自転車道はありません。」



彼らは森に戻って登りました。上り坂に登ると、ジェフは木々の間のギャップを見ました:「いつかは良い眺めがあるでしょう」と彼は言いました。



トレイルは森のない丘の頂上へと広がり、パノラマの景色を眺めることができました。地平線のhは、南のサンタクルス山脈と東のミッションピークをカバーしませんでした。「サンジェイ、ここがあなたのオフィスです!」ジェフは言った。彼らは一緒に立って、谷を見渡した。










All Articles