Googleを巨大にした友情(6/9)

入門/解説

1.Googleを巨大にした友情(6/9)まとめ

・JeffとSanjayも朝型で9時前から働き始めている
・エスプレッソマシンからの朝の一杯のカプチーノは重要
・Sanjayが使っているエディタはEmacsで手書きのノートも愛用

2.JeffとSanjayの仕事の進め方

以下、www.newyorker.comより「The Friendship That Made Google Huge」の意訳です。元記事の投稿は2018年12月3日、James Somersさんによる投稿です。TensorFlow LiteがEmacsを用いて編集されているとか、レビューなしとか、色々と衝撃的なお話がぞくぞくと。

今春(2018年)の月曜日の朝、JeffとSanjayはGoogleの人工知能研究部門の大部分が存在するビル40の簡易キッチンにいました。その背後のホワイトボードは行列の演算がそこかしこに書かれており、教師なし敵対的生成ネットワークに関する論文がテーブルの上に散らかっています。

色あせたTシャツとジーンズを身に着けているJeffは、ビーチにいる遊び人になったように見えました。Sanjayはセーターとグレーのズボンを着ていました。明るい窓からは背の高い松の木が並び、その向こうには畑があるのが見えました。

JeffがGoogleで働いているところであればどこでも、エスプレッソマシンが設置されます。簡易キッチンのカウンターで、幅3フィートのLa Marzocco、人気の高いエスプレッソマシンがブルブルと震えていました。「今日はいつもより少し遅いです。」とSanjayはコーヒーグラインダーの上で言いました。 朝の8時32分でした。

カプチーノを飲んだ後、彼らは自分のコンピューターまで歩きました。Jeffは散らかっている自分の机の上から整理整頓されたSanjayの机に椅子を動かしました。Sanjayがスクリーンを調整している間、Jeffは後ろに椅子を傾けて、ファイリングキャビネットの上に足を載せました。

開いているウィンドウは4つありました。左側には、分析ツールを実行するためのWebブラウザとターミナルウインドウ。右側には、テキストエディタのEmacs内に2つの文書、1つはToDoリストとnotebookの組み合わせ、もう1つはカラフルなコードで埋められています。

Sanjayのコンポジットノートの1つがコンピュータの横に置かれていました。

「OK、私たちは何をしていたんだっけ?」Sanjayは尋ねました。

「TensorFlow Liteのコードサイズを調べていたのだと思う」とJeffは言いました。

それは機械学習に関連する主要な新しいソフトウェアプロジェクトでした。そしてJeffとSanjayはそれが肥大化したのではないかと心配していました。

本の編集者のように、彼らはカット出来る箇所を探していました。この作業のために、彼らはそれ自身も最適化される必要がある新しいツールを構築しました。

「それで、私はそれがどれくらい遅いかを理解しようとしていたんだ」と、Sanjayは言いました。

「それはかなり遅いよ」とJeffは言った。 彼は椅子を前に傾けましたが、まだリラックスしていました。

「1つは122キロバイト」とSanjayは言った。「そして、8秒かかっているね」

「2万回のスタック呼び出しだよ」とJeffは言いました、「キロバイトではないよ」

「ええと、テキストのサイズはキロバイト、そうだね。」とSanjayは言いました

「ああ、ごめん」ジェフは言いました。

「ユニットサイズに対してどのような閾値を選択すればよいのか、よくわからないな」とSanjayは言います。「メガの半分で設定してみる?」

「よさそうだね」とJeffは言いました。

Sanjayがタイプし始め、Jeffはスクリーンに引き込まれました。「その書き方だと、もしそれが大きければ、単にサンプリングするってだけに・・・」Jeffは全てを言いませんでしたが、Sanjayは彼にコードで答えました。

Sanjayが車を運転する時、彼は手をハンドルの10時方向と2時方向に相当する場所に置き、そして注意深く先を見ます。キーボード操作でも同じ事です。両足を肩幅に広げて、あたかも自分の姿勢改善に取り組んでいるように見えました。

彼の鋭い指はキーボードを横切って穏やかに動きました。何人かの若いプログラマーが少しずつ出社し始めました。

すぐに彼らは小さなマイルストーンに到達し、そしてSanjayは彼らの進歩をテストするためのコマンドを打ち込みました。

疲れているように見えましたが、彼はそれが走っている間に彼の電子メールをチェックしました。テストが終了しても、Sanjayは気付いていませんでした。

「ヘイ!」Jeffは言いました。彼は画面を指差しました。

通常の会話時にはJeffは親父ギャグやダジャレを言いますが、彼がSanjayと一緒にコンピュータに座っている時、彼は、遠慮なく、断固として独善的になります。そしてSanjayはこれに上手く対応する事ができます。

Jeffの思考があまりにも速く動いていると思うとき、彼はキーボードから手を離して、「ストップ!」と言っているかのごとく、指を広げます。(通常時は、Jeffがアクセル、Sanjayがブレーキです。)これが彼らの議論のやり方のようなものです。ほぼ二十年間一緒にいて、彼らは彼らの声を荒げた記憶がありません。

Sanjayはスクロールして、コードの新しいセクションを表示しました。 「関数にできる箇所は全て関数にすべきではないのかな?できなかったのかい?」Jeffは言いました。

「うーん」Sanjayは同意しました。

Jeffは指の関節をポキッと鳴らしました。「そうできるように見えるな。
僕らはそうすべきではないのかな?」

Sanjayは慎重でした。「いや、僕らはー」

「それなのに、僕たちは問題を無視するのかい?」とJeffは憤慨して言いました。

「いや、僕が言いたかったのは、僕らは現在、起きている問題の種類を理解しようとしているって事だよ。そして、僕らは問題についてメモを取る事が出来たよね?」

「OK」Jeffは喜んで言い、ムードが突然変わりました。 彼らは一緒にメモを書きました。

ランチタイムが近づいていました。彼らは2時間働き、10分間の休憩を1回取って、ほとんどの時間、会話をしていました。

彼らより劣るプログラマーがかれらの仕事ぶりを見たら、JeffとSanjayが決して立ち止まったり、立ち往生したりしないという事実に何より感銘を受けるでしょう。

標準的なプログラミングでは、自分が書いたコードを他のエンジニアにレビューして貰う事が必要になりますが、JeffとSanjayはこのステップを飛ばします。申し訳程度に、「lgtm」、looks good to me(私には良さそうに見える)とログに入力するだけです。

ある程度の規模までは、レビューをしない事は些細なことでしょう。しかし、彼らのコードはGoogleの規模で実行されるのです。

彼らが心配しているキロバイトとマイクロ秒は、世界中のデータセンタ、ー無数のプロセッサやストレージが配置された棚が無限のごとく続き大量の水で冷却されている、大きく、うるさく、熱せられた倉庫サイズの建物ーで実行される時には10億倍以上の規模になるのです。

このようなスタイルで仕事をしながら、Jeffは帰宅して彼の娘にこんな風に語り掛ける事で知られていました。「Sanjayと私は今日、Googleの検索スピードを10パーセント速くしたよ。」

 

3.Googleを巨大にした友情(6/9)関連リンク

1)www.newyorker.com
The Friendship That Made Google Huge

コメント

タイトルとURLをコピーしました