La semana pasada, en Google I/O, presentamos Smart Compose: una nueva función en Gmail que usa aprendizaje automático a fin de ofrecer, de forma interactiva, sugerencias para completar oraciones a medida que escribes, lo que te permite crear borradores de correos electrónicos rápidamente. Smart Compose, creado con tecnología desarrollada para Smart Reply, ofrece una nueva manera de ayudarte a redactar mensajes, ya sea para responder un correo electrónico entrante o escribir uno nuevo desde el principio.
Durante el desarrollo de Smart Compose, enfrentamos algunos desafíos claves:
  • Latencia: debido a que Smart Compose proporciona predicciones según la pulsación de teclas, lo ideal es que responda dentro de 100 ms para que el usuario no note demoras. Equilibrar la complejidad del modelo y la velocidad de interferencia fue un aspecto crucial.
  • Escalamiento: Gmail tiene más de 1400 millones de usuarios. A fin de poder proporcionar una función de compleción automática que resulte útil para todos los usuarios de Gmail, el modelo debe tener la capacidad de modelado suficiente para poder realizar sugerencias personalizadas en contextos ligeramente diferentes.
  • Equidad y privacidad: al desarrollar Smart Compose, debimos abordar las causas de posibles compensaciones en el proceso de preparación y cumplir con las mismas normas estrictas de privacidad del usuario de Smart Reply, para lo cual tuvimos que asegurarnos de que nuestros modelos nunca expusieran la información privada del usuario. Además, los investigadores no pudieron acceder a correos electrónicos, lo cual significó que debieron desarrollar y preparar un sistema de aprendizaje automático para trabajar en conjuntos de datos que ellos mismos no pueden leer.
Búsqueda del modelo correcto
Los modelos típicos de generación de lenguaje, como los de ngrambolsa de palabras neuronal (BoW) y lenguaje RNN (RNN-LM), aprenden a predecir la siguiente palabra según la secuencia de palabras que la anteceden. No obstante, en un correo electrónico las palabras que ya escribió el usuario en la sesión de redacción actual de este son solo una “señal” que un modelo puede usar para predecir la siguiente palabra. Para incorporar más contexto sobre lo que el usuario quiere decir, nuestro modelo también está condicionado por el asunto del correo electrónico y el cuerpo del correo electrónico anterior (si el usuario responde a un correo electrónico entrante).

Un enfoque para incluir ese contexto adicional consiste en detectar el problema como una tarea de traducción automática de un modelo secuencial (seq2seq), en la cual la secuencia de origen es la concatenación del asunto y el cuerpo del correo electrónico anterior (si hubiera uno), y la secuencia de destino es el correo electrónico actual que el usuario está redactando. Si bien este enfoque funcionó bien en términos de calidad de la predicción, no pudo satisfacer nuestras limitaciones estrictas de latencia en varios órdenes de magnitud.

Para mejorar esto, combinamos un modelo BoW con uno RNN-LM, que es más rápido que los modelos seq2seq, y se hizo un pequeño sacrificio en la calidad de predicción del modelo. En este enfoque híbrido, codificamos el asunto y el correo electrónico previo promediando la incorporación de palabras en cada campo. Luego unimos esas incorporaciones promediadas y las insertamos en el modelo secuencial de destino RNN-LM en cada paso de decodificación, como se muestra en el diagrama del modelo, a continuación.
Arquitectura del modelo RNN-ML de Smart Compose El asunto y el correo electrónico previo se codifican promediando la incorporación de palabras en cada campo. Luego, las incorporaciones promediadas se insertan en el modelo RNN-LM en cada paso de decodificación.
Aceleración de la preparación y del servicio del modelo
Por supuesto, una vez que decidimos seguir este enfoque de modelado, todavía debíamos ajustar varios hiperparámetros de modelos y preparar los modelos con miles de millones de ejemplos, lo que puede llevar mucho tiempo. Para acelerar el procedimiento, realizamos experimentos con un pod TPUv2. De este modo, podemos preparar un modelo por completo en menos de un día.

Incluso después de preparar nuestro modelo híbrido más rápido, la versión inicial de Smart Compose en una CPU estándar tuvo una latencia de servicio de cientos de milisegundos, lo que aún es inaceptable de cara a un futuro en el que se apunta a ahorrar tiempo para los usuarios. Por suerte, también se pueden usar TPU en el punto de interferencia para acelerar enormemente la experiencia del usuario. Al descargar la totalidad de los cómputos en TPU, mejoramos la latencia promedio a decenas de milisegundos y también aumentamos notablemente la cantidad de solicitudes que puede abordar una sola máquina.

Equidad y privacidad
La equidad en el aprendizaje automático es muy importante, ya que los modelos de comprensión de lenguaje pueden reflejar sesgos cognitivos humanos que generen asociaciones de palabras no deseadas y oraciones mal completadas. Como señalan Caliskan y otros en su ensayo reciente: “La semántica derivada automáticamente de cuerpos lingüísticos contiene sesgos similares a los humanas”; estas asociaciones están profundamente enredadas en datos del lenguaje natural, lo que representa un desafío importante para la compilación de cualquier modelo de lenguaje. Investigamos activamente formas de continuar reduciendo los posibles sesgos en nuestros procedimientos de preparación. Asimismo, debido a que Smart Compose se prepara con miles de millones de frases y oraciones, tal como lo hacen los modelos de aprendizaje automático de spam, hemos realizado muchas pruebas para asegurarnos de que nuestro modelo solo memorice las frases comunes que utilizan varios usuarios, para lo que nos basamos en los hallazgos de este documento.

Trabajo a futuro
Trabajamos constantemente con el objetivo de mejorar la calidad de sugerencia del modelo de generación de lenguaje, para lo cual aplicamos arquitecturas de última generación (como Transformer y RNMT+, entre otras) y experimentamos con las técnicas de preparación más recientes y avanzadas. Una vez que logremos atenernos a nuestras estrictas limitaciones de latencia, implementaremos esos modelos más avanzados para producción. También estamos trabajando para incorporar a nuestro sistema modelos de lenguaje personales, diseñados para emular con mayor precisión el estilo de escritura de una persona.

Agradecimientos
El modelo de generación de lenguaje Smart Compose fue desarrollado por Benjamin Lee, Mia Chen, Gagan Bansal, Justin Lu, Jackie Tsay, Kaushik Roy, Tobias Bosch, Yinan Wang, Matthew Dierker, Katherine Evans, Thomas Jablin, Dehao Chen, Vinu Rajashekhar, Akshay Agrawal, Yuan Cao, Shuyuan Zhang, Xiaobing Liu, Noam Shazeer, Andrew Dai, Zhifeng Chen, Rami Al-Rfou, DK Choe, Yunhsuan Sung, Brian Strope, Timothy Sohn, Yonghui Wu y muchos más.