La amistad que hizo a Google tan grande

Programando juntos en la misma computadora, Jeff Dean y Sanjay Gemavat cambiaron el rumbo de la empresa, y todo el Internet. En la ilustración: los mejores programadores de Google a veces parecen ser dos hemisferios del mismo cerebro. Dibujo de David Plankert

Un día de marzo de 2000, seis de los mejores ingenieros de Google se reunieron en una sala de conferencias improvisada. Se produjo una emergencia: desde octubre de 1999, los rastreadores se detuvieron. Aunque los usuarios aún reciben resultados de búsqueda, no están actualizados durante cinco meses. Había más en juego de lo que los ingenieros esperaban. Por el momento, Larry Page y Sergey Brin estaban negociando la entrega de la búsqueda de Google al mayor portal de Internet Yahoo y prometieron aumentar el índice de búsqueda en diez veces para mantenerse al día con la World Wide Web, que se duplicó en tamaño durante el año anterior. Si no se reparan los rastreadores, google.com se quedará estancado en el pasado, el acuerdo con Yahoo puede fallar y la compañía corre el riesgo de quemar su inversión y caer en el olvido.

En la sala de conferencias junto a las escaleras, los ingenieros colocaron puertas en el pórtico, construyeron mesas improvisadas e instalaron computadoras. En la pared del fondo estaba sentado un triste Craig Silverstein: un joven delgado de 27 años con una voz delgada. Craig fue el primer empleado en Google: se unió a la compañía cuando su oficina principal se encontraba en la sala de estar de Brin, y reescribió personalmente la mayor parte del código de los fundadores. Después de cuatro días y noches de trabajo, no lograron nada con un ingeniero de sistemas rumano llamado Bogdan Kokosel: "Ninguna de las pruebas realizadas tenía sentido", recordó Silverstein. "Nada funcionó, y no sabíamos por qué".

Silverstein apenas notó a Sanjay Gemavat, una modesta morena de 33 años con cejas gruesas y cabello gris en las sienes, un graduado de MIT. Sanjaya fue contratada hace solo unos meses, en diciembre. Vino tras su colega, el delgado y enérgico Jeff Dean de treinta años de Digital Equipment Corporation. Jeff dejó DEC diez meses antes que Sanjay. Eran inusualmente amigables y preferían escribir código juntos. En la "sala de guerra", Jeff acercó una silla a la mesa de Sanjay, dejándola vacía. Sanjay golpeó el teclado y Jeff se sentó a su lado, corrigiendo y dictando, como un productor en un auricular para un locutor.

Jeff y Sanjay comenzaron a estudiar el índice estancado. Descubrieron que faltaban algunas palabras: ingresaron una consulta [buzón] y no recibieron resultados, mientras que otras se enumeraron fuera de servicio. Durante varios días buscaron un error, sumergiéndose en la lógica del código. Sección por sección, verificamos todo. No hay bichos.

Los programadores a veces presentan su programa como una estructura de capas que baja de la interfaz de usuario a capas más fundamentales. En la parte inferior de esta estructura, el software se encuentra con el hierro: un descenso de las abstracciones del código platónico a la física de la electricidad y el silicio. En el quinto día de trabajo, Jeff y Sanjay comenzaron a sospechar que el problema no estaba en la lógica del código, sino que tenía una causa física. Convirtieron el archivo de índice a binario. Querían ver lo que veían los autos.

Una columna gruesa con ceros y unos apareció en el monitor de Sanjay, cada fila representando una palabra indexada. Sanjay comentó: 0 está en lugar de 1. Cuando Jeff y Sanjay recogieron todas las palabras distorsionadas, vieron un patrón: la misma falla en cada palabra. Daño a los chips de memoria en los servidores.

Sanjay miró a Jeff. Durante varios meses, Google experimentó cada vez más fallas de hardware. El problema era que a medida que Google crecía, la infraestructura informática también se expandía. El equipo informático rara vez se bloquea, a menos que tenga muchas computadoras, entonces se descomponen constantemente. Los cables se desgastan, los discos duros se desmoronan, las placas base se sobrecalientan. Muchos automóviles fallan de inmediato; otros comienzan a trabajar más despacio. Extraños factores naturales entran en juego. En una explosión de supernova en el espacio, una onda expansiva crea partículas de alta energía que se dispersan en todas las direcciones: los científicos creen que existe una probabilidad distinta de cero de que una de las partículas de radiación cósmica pueda ingresar a un chip de computadora en la Tierra y cambiar de 0 a 1. Los sistemas informáticos más confiables del mundo , en la NASA, las empresas financieras y similares, utilizan equipos especiales que protegen contra "volteretas" de un bit. Pero Google todavía trabajó como startup y compró computadoras baratas que no tenían esa protección. La compañía ha alcanzado un punto de inflexión. El clúster informático ha crecido a tal tamaño que incluso las fallas de hardware poco probables se vuelven inevitables.

Juntos, Jeff y Sanjay escribieron un código para compensar el mal funcionamiento de los sistemas dañados. Pronto se creó un nuevo índice, y la emergencia se resolvió con éxito. Silverstein estaba confundido. Realmente depuró el código, pero aquí la respuesta se escondía a nivel de hardware. Jeff y Sanjay fueron más profundos.

Antes del fiasco de marzo, los sistemas de Google trabajaban en el código que los fundadores de la compañía escribieron en la escuela de posgrado de Stanford. Page y Brin no eran programadores profesionales. Eran científicos que realizaban un experimento en tecnología de búsqueda. Cuando cayó el rastreador, no mostró ningún mensaje de diagnóstico informativo, excepto la frase "¡Guau, caballo!"

El sistema BigFiles, escrito por Page y Brin, primero fue llamado en broma BugFiles por los primeros empleados de la compañía. El procedimiento de indexación extremadamente importante tomó varios días, y si encontré un problema, comenzó desde el principio. Era un sistema completamente no escalable.

Decimos que estamos buscando en Internet, pero en realidad no es así: trabajamos con el índice de búsqueda en los servidores de la empresa de búsqueda. Cuando Google todavía se llamaba BackRub en 1996, todo el índice se colocaba en computadoras instaladas en el dormitorio de Page. En marzo de 2000, ni una sola supercomputadora podía manejarlo. La única salida para Google era comprar computadoras comunes y agregarlas a un grupo gigante. Como la mitad del costo de las computadoras convencionales es lo que Google considera “basura” (unidades de disco, cajas de metal), la compañía ordenó solo placas base y discos duros, y las conectó. En ese momento, Google ya había conectado 1.500 de estos servidores caseros a racks de dos metros en un edificio en Santa Clara, California. Debido a fallas de hardware, solo 1,200 funcionaron en un momento dado. Las fallas ocurrieron de manera impredecible y continuaron interrumpiendo el sistema. Para sobrevivir, Google necesitaba integrar las computadoras en un solo organismo viable y tolerante a fallas.

Para un par de Jeff y Sanjay se hizo cargo de este trabajo. Wayne Rosing, quien diseñó el predecesor Macintosh en Apple, se unió a Google en noviembre de 2000, reuniendo un equipo de cien ingenieros. Trabajando noventa horas a la semana, escribieron un código para que ni una sola falla del HDD interrumpiera el sistema. Agregaron puntos de interrupción al proceso de recorrido web para que el rastreo se reinicie desde el punto de falla y no desde el principio. Al desarrollar nuevos esquemas de codificación y compresión, en realidad duplicaron las capacidades del sistema. Eran optimizadores implacables. Por ejemplo, Google movió los datos utilizados con mayor frecuencia al exterior de las placas HDD, donde hay una mayor velocidad de rotación del disco y, por lo tanto, una mayor velocidad de lectura y escritura de información, y las áreas internas de las placas se dejan vacías. Jeff y Sanjay utilizaron este espacio para almacenar datos preprocesados ​​para consultas de búsqueda general. Durante cuatro días en 2001, demostraron que el índice de Google se puede almacenar en RAM rápida en lugar de discos duros lentos. El descubrimiento cambió por completo la economía de la empresa. Page y Brin sabían que la multitud acudiría a un servicio que respondía instantáneamente. El problema era que la velocidad requería poder de procesamiento, y el poder de procesamiento cuesta dinero. Jeff y Sanjay lograron apretar el ojo de la aguja utilizando optimizaciones de software.

Alan Eustace dirigió el equipo de ingeniería después de que Rosing se fue en 2005. "Paradójicamente, para resolver tareas a gran escala, necesita conocer los detalles más pequeños", dijo Eustace. Jeff y Sanjay entendieron el sistema al nivel de bits. Una vez que Jeff distribuyó una lista de "Tasas de retraso que todo programador debería saber" . De hecho, esta es una lista de números en la que casi ningún programador piensa, pero estos números están literalmente integrados en el cerebro de Jeff y Sanjay: por ejemplo, que llamar desde el caché L1 toma 0.5 ns o que la lectura secuencial de un megabyte de la memoria toma 250 μs. Después de una serie de optimizaciones de software clave, el poder de los sistemas de Google aumentó en órdenes de magnitud. Mientras tanto, los técnicos comenzaron a tomar rutas sinuosas en grandes centros de datos, siguiendo instrucciones generadas por software para reemplazar discos duros, fuentes de alimentación y módulos de memoria. Incluso cuando las partes se desgastaron y fallaron, el sistema floreció.

Hoy, los ingenieros de Google tienen un sistema de clasificación unificado que comienza en el nivel 1, es el soporte técnico. Nivel 2 - graduados universitarios. Los empleados de nivel 3 a menudo tienen una maestría. Obtener el nivel 4 lleva varios años o requiere un doctorado. La carrera de la mayoría de los empleados se detiene en el nivel 5. Los ingenieros del sexto nivel son el mejor 10% del personal, tienen tanto talento que el éxito de los proyectos depende de ellos. El nivel 7 se otorga a los empleados de nivel 6 con una larga trayectoria. Los ingenieros principales del Nivel 8 son responsables de productos específicos o partes de la infraestructura. Sobresalientes ingenieros de nivel 9 son respetados. El título de Google Fellow (nivel 10) se asigna de por vida a los expertos mundiales generalmente líderes en sus campos. Jeff y Sanjay son Senior Fellows de Google, los primeros y únicos empleados de nivel 11.

El campus de Google, ubicado cerca de la autopista a pocos minutos del centro de Mountain View, es una serie de edificios rechonchos y poco atractivos con ventanas tintadas. Un lunes por la mañana en el verano de 2017, después de una sesión de emparejamiento matutino, Jeff y Sanjay fueron a almorzar a la cafetería del campus llamada Big Table, llamada así por el sistema que ayudaron a desarrollar en 2005 para combinar innumerables computadoras en un dispositivo prácticamente único. Sanjay, alto y delgado, con una camisa Henley burdeos antigua, pantalones grises y pequeñas gafas con montura de alambre, buscó una mesa en la terraza y la ocupó rápidamente, abriendo un paraguas y agachándose a la sombra. Cerca del sol, puso otra silla para Jeff, que llegó un minuto después, un hombre atlético de hombros anchos con una camisa de manga corta y zapatillas de deporte elegantes.

Al igual que los amantes, Jeff y Sanjay cuentan historias juntos, complementando piezas del panorama general. Comenzaron a recordar sus primeros proyectos.

"Escribimos todo a mano", dice Sanjay. Sus gafas se oscurecieron al sol. "Era necesario reescribir el código, y de repente:" Oh, parece lo que escribimos el mes pasado ".

"O un pasaje ligeramente diferente en nuestros datos de indexación", agregó Jeff.

"O un poco diferente", dice Sanjay. "Y así nos enteramos ..."

"Ese es el punto", dijo Jeff.

"... que hay un patrón general", Sanjay concluye su pensamiento.

Jeff tomó un bocado de pizza. Tiene dedos marineros, nudosos y rígidos. Sanjay se ve muy tierno en comparación con él. Se pregunta cómo comenzaron a practicar la programación de pares: "Ni siquiera sé cómo decidimos que sería mejor".

"Hicimos eso antes de Google", dijo Jeff.

"Pero no sé por qué decidimos que era mejor tener una computadora, no dos", dice Sanjay.

"Mi DEC estaba a dos cuadras de su laboratorio", dice Jeff. - Y entre ellos hay una heladería.

- ¡Entonces esta es una heladería! - Sanjay está encantado.

Single Sanjay está de vacaciones con Jeff, sus dos hijas y su esposa Heidi. Las hijas de Jeff lo llaman tío Sanjay, y las cinco cenan los viernes. Sanjay y Victoria, la hija mayor de Jeff, comenzaron a hornear. "Los vi crecer", dice con orgullo Sanjay. Después de la salida a bolsa de Google en 2004, se mudaron a nuevas casas, que están a seis kilómetros de distancia. Sanjay vive en una modesta casa de tres dormitorios en Old Mountain View, y el propio Jeff diseñó su casa cerca del centro de Palo Alto, instalando un trampolín en el sótano. Mientras trabajaba en la casa, descubrió que le gusta diseñar el espacio, pero que no tiene paciencia con los detalles que llama los "aspectos orientados a Sanjay" de la arquitectura: detalles de vigas, accesorios, equilibrio de carga, que evitan que un excelente diseño se desmorone.

"No sé por qué los demás no funcionan de esa manera", dice Sanjay sobre la programación de pares.

"Necesitamos encontrar un socio que sea compatible con usted en una forma de pensar que se complementan entre sí", dijo Jeff.

Se levantaron de la mesa y fueron a buscar un helado suave, caminando por la Gran Mesa entre los escurridizos googlers. Mientras caminaban, Jeff describió su estrategia de helado suave: “Lo estoy haciendo girar. Creo que este enfoque agrega estabilidad ”, dijo. Satisfecho y decidido, Sanjay hizo rodar la mezcla de chocolate y vainilla en su vaso.

En el libro de 2001 "Círculos de cooperación: la dinámica de la amistad y la creatividad" , el sociólogo Michael P. Farrell estudió grupos creativos cercanos: los impresionistas franceses, Sigmund Freud y sus contemporáneos. "La mayoría de las ideas frágiles que sentaron las bases para una nueva visión no surgen cuando todo el grupo está unido, y no cuando todos trabajan solos, sino cuando colaboran e interactúan en parejas", escribió. Monet y Renoir trabajaron codo con codo en el verano de 1869. Crearon un estilo que se convirtió en impresionismo; seis años de colaboración dieron origen al cubismo, Pablo Picasso y Georges Braque a menudo firmaban solo la parte posterior de los lienzos para ocultar el hecho de que el trabajo se había completado ("El trabajo no está terminado hasta que ambos sentimos que sí", recordó Picasso más tarde). En el libro "Doble poder: buscando la esencia de la innovación en parejas creativas", el escritor Joshua Wolf Schenck cita una entrevista en 1971 en la que John Lennon dijo que él o Paul McCartney "escribieron un par de notas ligeras, como" Leí las noticias hoy "o cosas así "Uno de nosotros estaba atrapado hasta que llegó el otro", dijo Lennon, "cantaré a medias, y se inspiró para escribir otra parte, y viceversa". Cualquiera puede entrar en un punto muerto creativo, pero apenas dos personas al mismo tiempo.

En la etapa de "construcción teórica" ​​de una nueva ciencia o arte, es importante expandir los horizontes sin quedar atrapado en un callejón sin salida. Francois Jacob, quien, junto con Jacques Monod, hizo un gran avance en el estudio de la función reguladora de los genes, señaló que a mediados del siglo XX, la mayoría de las investigaciones en el campo de la biología molecular se llevaron a cabo en pares: "Juntos, es más fácil que uno inventar teorías y construir modelos", escribió Jacob. - Cuando dos mentes trabajan en un problema, las ideas aparecen con mayor frecuencia y más rápido. Saltan de pareja en pareja. Se retuercen como ramas en un árbol. Y las falsas ilusiones se cortan de raíz. En los últimos 35 años, aproximadamente la mitad de los Premios Nobel en el campo de la fisiología y la medicina han sido otorgados a pares de científicos.

Después de muchos años de trabajar juntos, los socios a veces desarrollan su propio idioma, como lo hacen los gemelos. Se imitan entre sí en hábitos y ropa, tienen un sentido del humor común. Se hace imposible evaluar la contribución específica de cada uno en colaboración. Pero tales asociaciones cercanas rara vez se encuentran en el desarrollo de software. Aunque los desarrolladores a veces hablan de "programación de pares", cuando dos programadores comparten una computadora, uno "detrás del volante" y el otro "navegador", generalmente solo representan una relación de trabajo, como los pilotos en un avión. Jeff y Sanjay, en contraste, a veces parecen ser dos hemisferios del mismo cerebro. En sus trabajos científicos más famosos, se enumeran hasta una docena de colaboradores. Sin embargo, Bill Cochran, uno de sus gerentes, recuerda: "Fueron tan prolíficos y tan efectivos en pareja que a menudo solo creamos equipos a su alrededor".

En 1966, los investigadores de System Development Corporation descubrieron que los mejores programadores son más de diez veces más eficientes que los peores. Desde entonces, disputas sobre la existencia del llamado "programador 10 veces".Esta idea enfatiza la individualidad, mientras que el equipo crea grandes proyectos de software. En programación, poco se logra de forma aislada. Irónicamente, muchos programadores ven los resultados de la colaboración de Jeff y Sanjay como prueba de que existe un programador 10x.

Jeff nació en Hawai en julio de 1968. Su padre Andy era un explorador de enfermedades tropicales; La madre de Virginia Lee es una antropóloga médica con media docena de idiomas. En aras de la diversión, padre e hijo ensamblaron una computadora del kit IMSAI 8080. Soldaron partes y estudiaron cada parte.

Jeff y sus padres a menudo se mudaban. A los trece años, se perdió los últimos tres meses del octavo grado para ayudarlos en un campo de refugiados en el oeste de Somalia. En la escuela secundaria, comenzó a escribir un programa de recolección de datos para epidemiólogos llamado Epi Info; se ha convertido en una herramienta estándar para los investigadores, traducida a docenas de idiomas y vendió cientos de miles de copias (en el sitio web del Centro para el Control y la Prevención de Enfermedades publicó una fotografía de Jeff de su graduación). Heidi, a quien Jeff conoció en la Universidad de Minnesota College, se enteró de la importancia de este programa solo años después. "No se jactaba de nada de eso", dice ella. "Todo tuvo que ser sacado de él". Su primera cita fue en un partido de baloncesto femenino, donde Jeff entretuvo a la audiencia con un disfraz de Gopher.

La tesis doctoral de Jeff se centra en los compiladores. "Los compiladores en sí mismos son bastante aburridos", dice Alan Eustace, pero por otro lado, "es un nivel muy bajo, cercano al hardware". Al describir a Jeff, Sanjay gira un dedo hacia su sien: “Al escribir código, se forma un cierto modelo en su cabeza. ¿Cuál será el rendimiento de este código? Calcula casi automáticamente todas las situaciones fronterizas ".

Sanjay se sentó primero en una computadora a la edad de diecisiete años cuando fue a la Universidad de Cornell. Nació en West Lafayette, Indiana, en 1966, pero creció en Kota, una ciudad industrial en el norte de India. Su padre, Mahipal, era profesor de botánica; la madre de Shant se hizo cargo de Sanjay y sus dos hermanos y hermanas mayores. A la familia le encantaban los libros: su tío Ashok Meta recuerda cómo compró "Jackal Day" para niños .Frederick Forsyth con la encuadernación desgarrada, y todos los niños leyeron juntos un libro andrajoso, pasándose páginas cuando terminaron. El hermano de Sanjay, Pankaj, se convirtió en el maestro más joven en recibir un puesto en la Harvard Business School (ahora es profesor en la Universidad de Nueva York). Pankaj estudió en la misma escuela que Sanjay, y era conocido como un hombre del Renacimiento: "Viví a la sombra de mi hermano", dice Sanjay. Como adulto, retuvo esta modestia. En 2016, cuando fue presentado a la Academia Estadounidense de Artes y Ciencias, ni siquiera se lo contó a sus padres; aprendieron las noticias de un vecino.

En la Escuela de Graduados del MIT, Sanjay hizo amigos. Sin embargo, nunca conoció a chicas allí, y ahora lo hace "muy, muy raramente". Él dice que no se negó a formar una familia, simplemente sucedió de esa manera. Sus amigos cercanos aprendieron a no molestarlo por esto, y sus padres se habían dado cuenta de que su hijo seguiría soltero. Quizás porque está tan cerrado, se ha desarrollado un halo de secretismo alrededor de Google alrededor de Sanjay. Se le considera un ingeniero tranquilo pero sólido, uno que piensa profundamente y con extraordinaria claridad. Sobre la mesa tiene una pila ordenada de cuadernos Mead durante casi veinte años, llenos de listas ordenadas y diagramas. Todavía toma notas a mano: dice que ayuda pensar. En el MIT, su supervisora ​​fue Barbara Liskov, una influyente científica de computación,que estudió, incluida la gestión de bases de código complejas. En su opinión, el mejor código es como una buena literatura. Debe tener una estructura cuidadosamente pensada, y cada palabra debe funcionar. Tal programación requiere empatía con los lectores. Y el código se considera no solo como un medio para un fin, sino también como un artefacto valioso en sí mismo. "Creo que diseña los sistemas mejor", dice Craig Silverstein. "Solo mira su código: es hermoso, como una obra de arte, como una escultura con proporciones perfectas"."Creo que diseña los sistemas mejor", dice Craig Silverstein. "Solo mira su código: es hermoso, como una obra de arte, como una escultura con proporciones perfectas"."Creo que diseña los sistemas mejor", dice Craig Silverstein. "Solo mira su código: es hermoso, como una obra de arte, como una escultura con proporciones perfectas".

En Google, Jeff es mucho más famoso. Crean memes sobre él como sobre Chuck Norris. ("Chuck Norris contó hasta el infinito ... dos veces"; "El currículum de Jeff Dean resume las cosas que no hizo: tan cortas").

"Cuando Jeff Dean desarrolla un programa, primero crea un binario y luego escribe el código fuente como documentación".

"Jeff Dean falló una vez la prueba de Turing porque estableció correctamente el número 203 de Fibonacci en menos de un segundo".

“Una vez en 2002, cuando se desconectó el backend de búsqueda, Jeff Dean respondió manualmente las preguntas de los usuarios durante dos horas. Durante este período, la calidad de los resultados de búsqueda ha aumentado significativamente ...


Del artículo "Jeff Dean de Google - este es Chuck Norris de nuestro tiempo" - aprox. trans.

Pero para aquellos que los conocen a ambos, Sanjay tiene el mismo talento que él. "Jeff es genial para proponer nuevas ideas y prototipos", dijo Wilson Sie, su colega de toda la vida. "Sanjay está construyendo cosas en su conciencia". En la vida, Jeff es más sociable, Sanjay más reservado. El código es lo contrario. La programación de Jeff es deslumbrante: puede ofrecer rápidamente ideas sorprendentes, pero al hacerlo rápidamente, con inspiración, puede dejar atrás a los lectores. El código Sanjaya es más comprensible.

"Algunas personas escriben código demasiado escaso", explica Silverstein. Hay muy poca información en una pantalla. Tengo que desplazarlo de un lado a otro para comprenderlo. Otros escriben código demasiado denso: "Lo miras y piensas:" Wow. No quiero entender esto ". Sanjay de alguna manera logra encontrar un equilibrio. Miras su código y piensas: "Está bien, puedo entenderlo", y aún hay mucha información en una página ". Silverstein continúa: “Cada vez que quiero agregar una nueva funcionalidad al código de Sanjay, parecía preverlo. Me siento como Salieri. Veo grandeza, pero no entiendo cómo esto es posible ".

El lunes por la mañana de esta primavera, Jeff y Sanjay se pararon en la cocina del Edificio 40, que alberga la mayor parte de la división de inteligencia artificial de Google. Detrás de ellos hay una pizarra llena de fórmulas de álgebra matricial; en la mesa hay un artículo sobre redes competitivas sin un maestro. Jeff con una remera desteñida y jeans parece un vagabundo de playa que ha tomado el camino de la corrección. Sanjay con un suéter y pantalones grises. Detrás de las ventanas brillantes hay altos pinos, detrás de ellos hay un campo. En todas partes donde Jeff trabaja para Google, siempre ponen máquinas de café espresso. El metro de La Marzocco zumba en la mesa de la cocina. "Estamos llegando tarde", observa Sanjay sobre el molinillo de café. A las 8:32 a.m.

Después del capuchino, van a las computadoras. Jeff hace rodar una silla de su mesa sucia a la mesa impecablemente limpia de Sanjay. Pone su pie sobre la mesita de noche, recostándose mientras Sanjay estudia la pantalla. Hay cuatro ventanas abiertas: a la izquierda: un navegador y un terminal para iniciar herramientas de análisis; a la derecha hay dos documentos en el editor de texto de Emacs: uno tiene una lista de tareas en el bloc de notas, el otro está lleno de código colorido. Uno de los cuadernos de Sanjay yace junto a una computadora.

- Bien, ¿qué estábamos haciendo? - pregunta Sanjay.

"Creo que analizamos el tamaño del código TensorFlow Lite", dice Jeff.

Este es un nuevo proyecto importante de aprendizaje automático: Jeff y Sanjay están preocupados por una base de código hinchada. Al igual que los editores literarios, buscan formas de reducir el volumen. Para hacer esto, crearon una nueva herramienta, que en sí misma necesita ser optimizada.

"Traté de averiguar qué tan lento es", dijo Sanjay.

"Bastante lento", Jeff se inclinó hacia delante, aún relajado.

"Este tenía ciento veinte kilobytes", dice Sanjay, "y se tarda unos ocho segundos".

"Ciento veinte mil llamadas de pila, no kilobytes".

"Bueno, kilobytes de texto, bueno ... sobre eso".

- Oh si, lo siento.

"No sé qué umbral elegir para el tamaño de la unidad", pregunta Sanjay. - medio mega?

"Parece estar bien", Jeff está de acuerdo. Sanjay comienza a tocar el teclado y Jeff se aferra a la pantalla. "Entonces, escribes que si es más que lo especificado, simplemente elegimos ..." hizo una pausa; Sanjay respondió la pregunta con un código.

Cuando Sanjay conduce un automóvil, pone las manos sobre las diez y dos y mira con cuidado hacia adelante. La misma disciplina detrás del teclado. Ancho de hombros de las piernas, hacia atrás, como si estuviera trabajando en una postura. Dedos finos corren suavemente alrededor de las teclas. Los primeros programadores comenzaron a llegar a la oficina.

Pronto alcanzaron un pequeño hito, y Sanjay reclutó un equipo para ejecutar la prueba. Parecía exhausto y revisó el correo. La prueba se ha completado. No se dio cuenta.

- Hola! - Jeff chasqueó los dedos y señaló la pantalla. Aunque en la conversación le hacen bromas y juegos de palabras, en la computadora con Sanjay puede volverse confiado, grosero y desaprobador. Sanjay lo da por sentado. Cuando le parece que Jeff se está moviendo demasiado rápido, levanta las manos del teclado y extiende los dedos, como para decir: "Detente". Esta es la apariencia más cercana de una disputa: durante veinte años no pueden recordar cuándo alzaron la voz.

Sanjay recorrió la página, apareció una nueva sección de código en la pantalla.

"Puedes hacer una rutina de esto, ¿verdad?" Preguntó Jeff.

- Mmm ...

Jeff se partió los nudillos.

- Parece posible. Va a hacer?

Sanjay cercado:

- No, yo ...

"Entonces, ¿ignorar el problema?" - Jeff pregunta indignado.

"No, quiero decir, solo estamos tratando de descubrir qué está pasando". Tomar notas sobre esto, ¿verdad?

"Bien". Jeff estaba claramente de buen humor. Dictaron una nota juntos.

El almuerzo se acercaba. Trabajaron durante dos horas con un descanso de diez minutos, hablando la mayor parte del tiempo (el joven que los mira estaría más impresionado por el hecho de que nunca se detuvieron y no se quedaron atrapados). La práctica de ingeniería estándar es enviar el código para la revisión, pero Jeff y Sanjay omiten este paso marcando lgtm (me parece bien). En cierto sentido, están ocupados con pequeñas cosas. Sin embargo, su código se ejecuta en una escala de Google. Los kilobytes y microsegundos que les preocupan se multiplican miles de millones de veces en los centros de datos de todo el mundo: enormes y ruidosos centros de datos donde los tanques de agua enfrían los interminables racks de servidores. En esos días, Jeff, como saben, llega a casa y le dice a sus hijas: "Hoy, Sanjay y yo hemos acelerado la búsqueda de Google en un diez por ciento".

En 2003, en cuatro meses, Jeff y Sanjay hicieron quizás la actualización más grande en la historia de Google. Lo hicieron usando el software MapReduce. La idea surgió cuando reescribieron el rastreador e indexador Google por tercera vez. Se dieron cuenta de que cada vez que resuelven un problema importante: la coordinación del trabajo en una gran cantidad de computadoras poco confiables y distribuidas geográficamente por separado. Si generalizar la solución, el problema se resolverá para siempre. Esto abrirá una herramienta que cualquier programador en Google puede usar para controlar máquinas en centros de datos, como si todas fueran una computadora del tamaño de un planeta.

Jeff y Sanjay pintaron MapReduce en una oficina de la esquina con vista a un estanque de patos. Esta herramienta simplificó para siempre un proceso impresionantemente complejo. Anteriormente, cada programador tenía que descubrir independientemente cómo compartir y distribuir datos, asignar trabajo y tener en cuenta las fallas de hardware. MapReduce proporciona una forma estructurada de resolver estos problemas. A medida que el chef prepara los ingredientes antes de comenzar el trabajo culinario, MapReduce divide las tareas en dos etapas. Primero, el programador le da a cada máquina un "mapa" de la tarea (por ejemplo, contando el número de referencias a una palabra en una página); luego escribe instrucciones para "reducir" los resultados de todas las máquinas (por ejemplo, sumando). MapReduce maneja los detalles de distribución y, por lo tanto, los oculta.

Al año siguiente, Jeff y Sanjay reescribieron el sistema de rastreo e indexación de Google en términos de tareas de MapReduce. Pronto, otros ingenieros se dieron cuenta de lo poderoso que era este sistema y comenzaron a usar MapReduce para procesar videos y renderizar mosaicos en Google Maps. MapReduce era tan simple que aparecían nuevas tareas por sí mismas. Google tiene un ciclo de carga diario: durante el día, más tráfico que por la noche, y las tareas de MapReduce comenzaron a absorber la capacidad inactiva. En un sueño, el cerebro humano procesa la experiencia diaria. Ahora Google comenzó a procesar sus datos por la noche.

Hace tiempo que ha surgido evidencia de que Google es en realidad una compañía de inteligencia artificial que solo pretende ser un motor de búsqueda. En 2001, Noam Shazir, quien compartió la oficina con Jeff y Sanjay, decidió rehacer el sistema de corrección ortográfica que Google otorgó a otra compañía. Este sistema continuó cometiendo errores incómodos. Por ejemplo, propuso reemplazar la palabra TurboTax con hacha de rodaballo (platija encontrada en el Atlántico Norte).

La calidad del corrector ortográfico depende del diccionario. Shazir se dio cuenta de que en Internet, Google tiene acceso al diccionario más grande que haya existido en la historia de la humanidad. Escribió un programa que utilizaba las propiedades estadísticas del texto en Internet para determinar qué palabras probablemente se escribieron por error. El programa entendió que "lanzas pritany" y "lanzas brinsley" significaban "Britney Spears". Cuando Shazir mostró el programa en la reunión semanal, muchos empleados trataron de engañarlo repetidamente, pero la mayoría fracasaron. Shazir, en colaboración con Jeff Dean y un ingeniero llamado Georges Harik, ha desarrollado un sistema similar de orientación de anuncios en el contenido de las páginas web. Este objetivo trajo una avalancha de dinero que la compañía envió a su infraestructura informática. Esto marcó el comienzo de un ciclo de retroalimentación: la creciente infraestructura mejora las capacidades informáticas y la inteligencia de Google; Las habilidades informáticas se convierten en una fuente de ganancias, y las ganancias le permiten construir infraestructura. Este ciclo de retroalimentación ha traído a la compañía un dominio de mercado extraordinario y sin precedentes.

Los programadores ingeniosos utilizaron MapReduce para obtener diversos conocimientos de los datos de Google: se hizo posible transcribir mensajes de voz de los usuarios, responder a sus preguntas, completar automáticamente consultas y traducir textos a más de cien idiomas. Estos sistemas se desarrollaron utilizando algoritmos de aprendizaje automático relativamente simples. Sin embargo, "cuando tienes muchos datos, los métodos muy simples funcionan increíblemente bien", dijo Jeff. Dado que "datos, datos, datos", almacenados y procesados ​​con BigTable, MapReduce y sus sucesores, el principal activo de la compañía, la infraestructura global de Google se ha vuelto más flexible y escalable. La idea de la computación distribuida surgió hace mucho tiempo. Los conceptos de "computación en la nube" y "big data" existían antes del advenimiento de Google. Pero al hacer que la infraestructura sea manejable de manera inteligente para programas distribuidos por programadores comunes, Jeff y Sanjay llevan a Google al siguiente nivel. Los usuarios sintieron: algo ha cambiado: la nube de Google se está volviendo más inteligente.

En 2004, Jeff y Sanjay pensaron que el sistema sería útil para los astrónomos, genetistas y otros científicos con muchos datos para procesar. Luego publicaron el artículo "MapReduce: procesamiento de datos simplificado en grandes grupos" . El documento apareció como Dios desde el auto. Los equipos baratos, el crecimiento de los servicios web y los dispositivos conectados condujeron al flujo de datos, pero solo unas pocas empresas tenían software para procesar tales conjuntos de información. Dos ingenieros que luchaban por escalar un pequeño motor de búsqueda llamado Nutch, Mike Cafarella y Doug Cutting, estaban tan convencidos de la importancia de MapReduce que decidieron crear un clon gratuito de este sistema desde cero. Al final, llamaron a su proyecto Hadoop, por el nombre del elefante de juguete, a quien amaba el hijo de Cutting.

Poco a poco, la mitad de las compañías Fortune 50 se hizo cargo de Hadoop, lo que se ha convertido en sinónimo de Big Data. Facebook usó Hadoop MapReduce para almacenar y procesar metadatos de usuarios: información sobre clics, me gusta y vistas de anuncios. En un momento, Facebook tenía el clúster de Hadoop más grande del mundo. Hadoop MapReduce ha contribuido al éxito de LinkedIn y Netflix.

El ex director de tecnología de la NSA, Randy Garrett, recuerda haber mostrado la tecnología al director general de la NSA, Keith Alexander. Hadoop completó la tarea de análisis 18,000 veces más rápido que el sistema anterior. Esto se convirtió en la base de un nuevo enfoque para la recopilación de inteligencia, que algunos observadores llaman "colección total de todo".

Jeff tiene un carácter inquieto: para él, el problema pierde interés cuando ve una solución. En 2011, la tecnología de nube barrió el mundo, y Jeff Dean comenzó a trabajar con Andrew Eun, un profesor de ciencias de la computación en Stanford que dirigió un proyecto secreto sobre investigación de redes neuronales en Google. Jeff encontró redes neuronales en sus años de estudiante, pero luego no pudieron resolver problemas reales. Eun le dijo a Jeff que la situación había cambiado. En Stanford, los investigadores lograron algunos resultados impresionantes al dar acceso a redes neuronales a grandes cantidades de datos. Eun sugirió que, a gran escala, las redes neuronales pueden volverse no solo útiles, sino también poderosas.

Las redes neuronales son muy diferentes de los programas informáticos tradicionales. Su comportamiento no está determinado por comandos ordinarios, en cambio, la red está "entrenada" utilizando entradas y comentarios. El conocimiento de Jeff de las redes neuronales no avanzó desde sus años de estudiante, y Heidi observó cómo su baño se llenaba de libros de texto. Jeff comenzó a dedicar aproximadamente un día a la semana a un proyecto llamado Google Brain. Muchos en Google dudaron de esta tecnología. "Una pérdida de talento", recuerda Alan Eustace, el gerente de Jeff en ese momento. Sanjay tampoco pudo entender la decisión del amigo: "Estás trabajando en infraestructura, ¿qué has olvidado allí?"

Durante los siguientes siete años, el equipo de Google Brain desarrolló redes neuronales que mostraron los mejores resultados del mundo en traducción automática, reconocimiento de voz e imagen. Al final, estas redes neuronales reemplazaron los algoritmos más importantes de Google para clasificar los resultados de búsqueda y la orientación de anuncios, y Google Brain se convirtió en uno de los equipos de más rápido crecimiento en la empresa. Claire Tsui, ingeniera de Google desde 2001, dice que la decisión de Jeff fue un punto de inflexión para el desarrollo de la inteligencia artificial en Google: "Algunos lo creyeron, otros no. Jeff ha demostrado que puede funcionar ".

Resultó que la IA necesitaba una escala crítica, y el ingeniero de sistemas Jeff Dean la proporcionó. Como parte de este proyecto, lideró el desarrollo de un programa llamado TensorFlow: fue un intento de crear algo como MapReduce, solo para IA. TensorFlow simplifica la distribución de redes neuronales en un grupo de computadoras, convirtiéndolas en un gran cerebro. En 2015, cuando TensorFlow se lanzó al público, se convirtió en el estándar de facto para trabajar con IA. El CEO Sundar Pichai anunció recientemente que el negocio principal de Google es la Inteligencia Artificial y nombró a Jeff para dirigir todas las iniciativas de IA.

Ahora, Jeff dedica cuatro días a la semana a administrar Google Brain. Lidera el trabajo de 3.000 personas. Viaja a negociaciones, celebra reuniones semanales para trabajar en un nuevo chip de computadora (un procesador tensor diseñado específicamente para redes neuronales) y ayuda a desarrollar AutoML, un sistema que utiliza redes neuronales para diseñar otras redes neuronales. Solo tiene tiempo para programar con Sanjay una vez por semana.

La historia borra las hazañas de ingeniería. Recordamos a los grandes exploradores del siglo XVIII, James Cook, George Vancouver, pero no a John Harrison, un carpintero de Yorkshire que, después de décadas de trabajo, hizo que el reloj fuera lo suficientemente confiable como para medir la longitud en el mar.

Jeff y Sanjay recientemente disfrutaron de margaritas y enchiladas en Palo Alto Sol, su restaurante mexicano favorito. Jeff sacó su teléfono y preguntó: "¿Cuándo salió Gmail?" El teléfono respondió: "1 de abril de 2004". Sanjay, con etiqueta en la mesa, no parecía apreciar el impulso del amigo, pero Jeff estaba encantado. Ahora Google puede hablar, escuchar y responder preguntas utilizando una pila de programas que se integran fácilmente y son en gran medida invisibles, desde su teléfono hasta los centros de datos de todo el mundo.

Hoy sus roles han divergido. Sanjay en Google es conocido como un "participante individual", un codificador que funciona solo y no controla a nadie. Él está agradecido por eso. "No me gustaría trabajar como Jeff", admite. Actualmente está creando un software que facilitará a los ingenieros integrar y administrar docenas de programas (noticias, fotos, precios) que comienzan a funcionar tan pronto como el usuario escribe en el campo de búsqueda de Google. Una vez a la semana, se reúne con un grupo de líderes tecnológicos, el Consejo de Ingeniería Jedi de Google, para tomar decisiones técnicas que afectan a toda la empresa. Si Google estuviera en casa, Jeff construiría una extensión y Sanjay fortalecería los cimientos, reforzaría las vigas y apretaría los tornillos.

Mientras tanto, durante sus sesiones de programación de pares de los lunes, comenzaron algo nuevo. Este es un proyecto de IA: como dice Jeff, un intento de entrenar un modelo ML "gigante" para realizar miles o millones de tareas diferentes. Jeff ha estado pensando en esta idea durante muchos años; Recientemente decidió que esto es posible. Él y Sanjay planean construir un prototipo alrededor del cual el equipo pueda crecer. En el mundo del software, la mejor manera de administrar su equipo se basa en el código del programa.

"Creo que se extrañan", dice Heidi, la esposa de Jeff. Los viernes cenas familiares aparecieron cuando su colaboración se ralentizó.

El domingo de marzo, Jeff y Sanjay se reunieron para un viaje al campo. El clima es claro, aunque hace calor bajo el sol. Jeff llegó a la ruta de senderismo en el Tesla Roadster azul con una pegatina para el parachoques Bernie 2016. Sanjay pronto lo siguió en el modelo rojo S. Sanjay leyó el libro por la mañana, Jeff jugaba al fútbol (el dispositivo en su muñeca mostraba que había corrido 11 kilómetros. Dos décadas después después de reparar ese índice, Jeff se parece a un atleta robusto y bronceado retirado, y Sanjay no parece haber envejecido en absoluto.

El camino es un circuito de 10 kilómetros a través de densos bosques. Jeff fue primero. En el bosque, recordaron lo rápido que creció Google.Sanjay recordó cómo, después de la primera ampliación de la compañía, el plomero instaló dos baños en el mismo baño en el baño de hombres. "Recuerdo el comentario de Jeff", dijo. "¡Dos cabezas son mejores que una!" El rio.

Descendieron del bosque a un área seca y abierta. Un buitre voló en el cielo.

"Las montañas son más frías de lo que pensaba", admitió Jeff.

- Y alguien dijo que esta es una campaña plana.

"Creo que es por eso que no hay ciclovías".

Volvieron a subir al bosque. Al subir cuesta arriba, Jeff vio una brecha entre los árboles: "En algún momento habrá una buena vista", dijo.

El sendero fue a la cima de la colina, alto y ancho, sin bosque, con vistas panorámicas. La neblina en el horizonte no cubría las montañas de Santa Cruz en el sur y Mission Peak en el este. "¡Sanjay, aquí está tu oficina!" - dijo Jeff Se pararon juntos y miraron al otro lado del valle.

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


All Articles