¿Sueñan los asistentes de voz con la electropoética? Entrevista a Tatiana Lando: lingüista analista de Google



El 24 de agosto hablamos en vivo con Tatiana Lando, analista lingüística de Google. Tatiana está trabajando en el Asistente de Google y está involucrada en proyectos entre producción y desarrollo. Ella explora cómo las personas se comunican entre sí y qué estrategias utilizan para enseñarle al asistente un comportamiento más humano. Llegó a Google para trabajar en un asistente para el mercado ruso y el idioma ruso. Antes de eso, trabajó en Yandex durante 8 años. Se dedicó a las tecnologías lingüísticas, la extracción de datos de texto no estructurado. Tatiana es una de las fundadoras de AINL: Conferencia de Inteligencia Artificial y Lenguaje Natural.



Compartimos contigo la transcripción de la transmisión.









Cuando digo que soy lingüista, en el mejor de los casos me preguntan si he leído las Strugatskys, donde se trataba de “lingüistas estructurales”. En el peor de los casos, me preguntan cuántos idiomas sé. Los lingüistas no son personas que conozcan muchos idiomas. Las personas con cualquier especialidad pueden conocer muchos idiomas, no está conectado. Un lingüista es una persona que comprende cómo funciona el lenguaje, cómo funciona la comunicación entre personas. Esta es una gran disciplina científica, tiene muchos aspectos además de lo que hago. Hay un análisis de textos para establecer la autoría, hay lingüística en la ciencia forense, cuando los lingüistas determinan si hay extremismo en un texto, por ejemplo. Esto es un ejemplo.



La lingüística computacional, que hago, está principalmente dirigida a desarrollar interfaces de habla entre tecnología, computadoras y humanos, por un lado, así como a introducir métodos numéricos en el procesamiento del lenguaje. Existe toda un área de la lingüística de corpus: cuando tratamos de procesar automáticamente textos en grandes cantidades para sacar conclusiones sobre cómo funciona el idioma en función de los datos obtenidos. Estoy trabajando en un Asistente de Google: es una interfaz de voz entre un teléfono o computadora y una persona.



Antes de mudarme a Londres y empezar a trabajar en Google, trabajé en Yandex durante 7,5 años, donde también estudié lingüística computacional. Las tareas en las que participé en Yandex cubrieron una gama bastante amplia de tareas en lingüística computacional. Estudiamos morfología, sintaxis: cómo cambian las palabras, cómo se combinan las palabras; En este sentido, el idioma ruso es más complicado que el inglés, ya que no hay casos en inglés, solo hay dos formas de sustantivos, todo es relativamente simple (en ruso - 6-9 casos, una formación plural extraña - bueno, todos los hablantes nativos conocen estas características). Por eso, cuando me cambié a Google, me contrataron como especialista en idioma ruso, aunque ahora ya estoy haciendo otra cosa.



¿Hay vacantes relacionadas con el desarrollo de la versión rusa del Asistente de Google? ¿Cómo consigues un trabajo de Asistente de Google?



No hay vacantes especiales asociadas con la versión rusa del Asistente de Google. Google intenta desarrollar metodologías orientadas al máximo número de idiomas a la vez, y la especificidad de los lenguajes debe resolverse utilizando datos y no metodologías específicas. Es decir, los algoritmos para ruso, inglés, alemán, chino: todos los idiomas admitidos son iguales, aunque con algunos matices. Hay muchas partes comunes y las personas que se ocupan de un idioma en particular monitorean principalmente la calidad de los datos y agregan módulos especiales para idiomas individuales. Por ejemplo, para el ruso y otros idiomas eslavos, se necesita morfología (esto es de lo que acabo de hablar: casos, formación plural, verbos complejos). Y en el idioma turco hay una morfología aún más compleja: si solo hay 12 formas de sustantivo en ruso,luego en turco es mucho más. Por lo tanto, necesitamos algún tipo de módulos especiales que manejen partes dependientes del lenguaje. Pero esto se hace con la ayuda de lingüistas que conocen su lengua materna e ingenieros de lenguaje general que escriben algoritmos utilizando datos; trabajamos juntos para mejorar la calidad de estos algoritmos y datos. En consecuencia, no tenemos vacantes especiales para el idioma ruso, pero hay vacantes en el desarrollo de Google Assistant, principalmente en Zurich, California, Nueva York, bastante - Londres.No tenemos vacantes especiales para el idioma ruso, pero hay vacantes en el desarrollo del Asistente de Google, principalmente en Zurich, California, Nueva York, bastante - Londres.No tenemos vacantes especiales para el idioma ruso, pero hay vacantes en el desarrollo del Asistente de Google, principalmente en Zurich, California, Nueva York, bastante - Londres.



, ?



Hace 4 años, cuando me mudé a Londres, todavía era Europa. En realidad, ahora es Europa, aunque no la UE. Me gusta mucho Londres, todo el mundo habla inglés, no es necesario aprender otro idioma. No es que no quisiera aprender otro idioma, pero la entrada a la mudanza fue mínima. Aquí también hay excelentes teatros, me encanta ir al teatro. Por supuesto, ahora todas las ventajas de Londres con la cultura y el entretenimiento están algo niveladas, pero esperemos lo mejor. Además, es mucho más fácil con un visado aquí que en Zúrich; en Suiza, por alguna razón, la legislación sobre visados ​​cambia con regularidad. Resultó mucho más fácil ponerme a mí y a algunos otros chicos en Londres, y nos instalamos aquí. Me gusta estar aquí, no quiero mudarme a ningún lado. Los viajes de negocios a California me llevan a la melancolía: allí tienes que tomar un automóvil, distancias enormes. Aunque hay más oportunidades profesionales allí.



?



Es más difícil que el inglés. De hecho, casi todos los idiomas son más complicados que el inglés. Hay dos lados diferentes de esta complejidad. Primero, la morfología muy compleja. Además, el idioma ruso tiene un orden de palabras libre, lo que complica el trabajo a la hora de construir un algoritmo. Si es fijo, entonces para el condicional "marco de jabón de mamá" se necesita una oración para enseñar al sistema a entender "sujeto-predicado-objeto". Pero si estas palabras pueden estar en cualquier orden, se necesitan más datos. Al mismo tiempo, hay muchos recursos preparados para el idioma inglés; todo el mundo científico se dedica al idioma inglés, todas las corporaciones se dedican al idioma inglés porque compiten en el mercado estadounidense. Y mucho menos se involucra en otros idiomas, hay menos financiación, menos empresas. Si todavía hay fragmentos o datos preparados para alemán o francés,que se puede reutilizar, entonces el idioma ruso es peor. Hay estuches confeccionados, pero son pequeños y no son adecuados para todo. Es decir, se requieren muchos más datos para el idioma ruso que para el inglés, pero hay menos datos disponibles. Más capas gramaticales adicionales; Puede intentar comprender la misma morfología por separado, luego puede reducir la cantidad de datos que se necesitan para un trabajo de alta calidad del analizador sintáctico en ruso (en comparación con el inglés).que son necesarios para un trabajo de alta calidad del analizador en ruso (en comparación con el inglés).que son necesarios para un trabajo de alta calidad del analizador en ruso (en comparación con el inglés).



Por lo tanto, resulta que el idioma ruso es bastante difícil, como otros idiomas eslavos. Las lenguas turcas son aún más difíciles; Los idiomas orientales tienen otros problemas: por ejemplo, el chino no tiene espacios entre palabras, es necesario comprender cómo dividir una serie de texto en pedazos para determinar lo que dice cada pieza. En general, cada idioma tiene sus propios chistes, pero básicamente todo se puede resolver debido a la gran cantidad de datos lingüísticos sobre los que se resuelven las tareas. Todo se basa en el hecho de que no hay muchos para el idioma ruso y, por lo tanto, es difícil trabajar con él, y para el inglés, todo lo contrario.



¿Puede la lingüística computacional reconstruir lugares incomprensibles, por ejemplo, en las negociaciones de los pilotos con tierra?



Oh, por supuesto. Básicamente, el algoritmo que haría esto sería similar a las sugerencias de búsqueda. Cuando ingresa una consulta en una búsqueda (para cualquier idioma), el sistema le ofrece las consultas más populares, con algunos filtros. El algoritmo, por supuesto, es algo más complicado, pero lo olvidaremos por claridad. El sistema sugiere las combinaciones de palabras más frecuentes en la consulta, comenzando por las que ya ha introducido. Se puede utilizar una técnica similar para restaurar lugares oscuros. Hay muchas negociaciones, este es un corpus enorme de textos, y puedes analizarlos y ver qué partes son las más comunes. Yo mismo nunca he abordado el tema de las negociaciones entre pilotos y tierra, pero sospecho que debería haber muchas propuestas similares, la estructura de la información está bastante codificada, la forma de comunicación es estándar, tales cosas son bastante fáciles de predecir, por lo que se pueden restaurar fácilmente.



Cuéntanos sobre la limpieza de la señal acústica y sonora en los asistentes de voz



De esto no sé casi nada, solo me ocupo de texto escrito. La fonética, la acústica no son mis áreas. Pero estoy seguro de que existen métodos de audio que ayudan a borrar la señal, y en la intersección entre las señales de audio y el motor predictivo, puede filtrar hipótesis y restaurar texto.



¿Cuál es el idioma más difícil de procesar y comprender?



Todos son complejos. No existe tal cosa que ninguno de ellos sea más complicado o más simple en sí mismo; hay muchos datos para el inglés, por lo que es más fácil trabajar con ellos y todos lo están haciendo.



Resulta un círculo vicioso: cuando las personas en las conferencias quieren probar un nuevo algoritmo, toman corporaciones conocidas y observan cómo crecen los números en las métricas. Para medir su algoritmo, necesita un buen corpus; hay muchos buenos corpus en inglés, por lo que ejecutan algoritmos en inglés en ellos, obtienen un aumento y, por lo tanto, estimulan a otros investigadores a hacer aún más corpus para encontrar agujeros en los algoritmos. Esta es una tarea para la que es fácil obtener una subvención. Por ejemplo, hay 10 algoritmos para responder preguntas automáticamente; en el corpus existente, estos algoritmos son más o menos similares, y los investigadores deciden crear un nuevo corpus para ver la diferencia entre ellos. Esta es una buena tarea, permite un mejor ajuste de los algoritmos. Lo hacen, y hay más corporaciones para el inglés, y cuantas más corporaciones, más algoritmos aparecen.Si nos fijamos en el trabajo en el campo de la PNL durante los últimos años, las conferencias no miden ni siquiera porcentajes, sino fracciones de aumento porcentual en la calidad.



En general, esto no es muy útil en problemas prácticos y no es realmente lingüística computacional. Así es como los ingenieros tratan el lenguaje si no trabajan con lingüistas (es decir, mediocres o muy teóricos).



¿Por qué no hay suficientes datos para el idioma ruso?



Esta pregunta me atormenta todos los años de estudiar la lengua rusa, desde la universidad donde estudié lingüística aplicada.



No lo sé. Tal vez simplemente no hay suficiente dinero en la ciencia rusa y, por lo tanto, se están haciendo pocos datos para el idioma ruso. Las conferencias en Rusia generalmente están un poco desactualizadas; hay conferencias sobre lingüística aplicada, sobre el procesamiento automático del lenguaje natural, pero hay muy pocos equipos grandes que se dedican a esto. Los científicos van a las grandes empresas: Yandex, ABBYY, ahora MTS también contrata lingüistas; la profesión se ha vuelto más demandada con la llegada de los asistentes de voz. También van al extranjero; Hay muchos lingüistas en empresas emergentes, Amazon y Google.

El único gran corpus es el Corpus Nacional de la Lengua Rusa. También hay un corpus hecho por mis amigos: el Open Corpus de la lengua rusa; pero, en general, es muy difícil conseguir financiación para ello y pocas personas están interesadas en ello.



Hubo concursos de algoritmos para los cuales se crearon pequeños corpus para tareas específicas, por ejemplo, comparar cómo un sistema responde preguntas en ruso o entiende comandos en ruso, pero estos datos no son suficientes para entrenar sistemas grandes. También resulta ser un círculo vicioso en la otra dirección: no hay nada que entrenar, entonces no hay nada que entrenar, entonces no hay nada que medir, entonces no hay datos. Además, se necesitan más datos que en inglés. Después de recibir mi diploma, fui casi de inmediato a Yandex, por lo que es difícil para mí decir por qué no funciona aquí.



¿Qué enfoque del procesamiento del lenguaje utiliza más Google? ¿Redes neuronales o algoritmos?



Las redes neuronales también son algoritmos. No entiendo un poco la dicotomía, pero intentaré contarte qué enfoques (y en general) tenemos en el procesamiento analítico del lenguaje en la lingüística computacional.



Los enfoques históricos más antiguos son enfoques basados ​​en reglas. Los lingüistas escriben reglas a mano, casi como un lenguaje de programación. Supongamos, en el texto percibido, primero está el sujeto, luego el verbo, luego el predicado; si el predicado está en un caso, entonces - una conclusión, y así sucesivamente. Por ejemplo, para los casos en los que el usuario dice algo como "Ok Google, configure la alarma a las 7 am", puede establecer la siguiente regla: poner - cualquier palabra - despertador - en - número - por la mañana. Esta es una plantilla que se puede describir y enseñar al sistema: si usa una plantilla de este tipo y funciona, entonces necesita configurar la alarma a la hora indicada en forma de número. Por supuesto, este es un patrón muy primitivo, puedes hacerlo mucho más complicado. Se pueden combinar: por ejemplo, una plantilla extrae la fecha y la hora, luego se escribe una plantilla para configurar una alarma.



Este es un enfoque muy antiguo, ya tiene 70 años; así es como Eliza, el primer chatbot que finge ser un psicoanalista, fue escrito en 1966. Entonces la gente se sorprendió mucho. Hubo historias de que los creadores de este chatbot se lo mostraron a sus colegas y los echaron de la habitación para hablar con un psicoanalista "real". Y este bot fue escrito solo sobre las reglas, entonces fue un enfoque innovador. Ahora, por supuesto, no queremos hacer esto, porque se necesitan muchas reglas; imagina cuántas frases diferentes puedes usar solo para configurar una alarma, si usas reglas puras, tendrías que describir cada una de ellas manualmente. Cambiamos a sistemas híbridos hace mucho tiempo: pueden percibir patrones, pero en general estamos tratando de usar redes neuronales para el aprendizaje automático y aplicar enfoques supervisados ​​al aprendizaje supervisado. Es decir,marcamos los datos y decimos: ok, en este arreglo de lo que el usuario puede decir, esta parte es tiempo, y se normaliza así; esta parte es el dispositivo en el que el usuario desea configurar la alarma y esta parte es, por ejemplo, el nombre de la alarma. Para que puedas configurar un despertador en tu iPhone a las 7 am con el nombre "Escuela". A continuación, configuramos un corpus grande, entrenamos el analizador en él, luego el analizador se aplica a las solicitudes de los usuarios y, por lo tanto, las reconocemos. Así es como funciona Google Assistant ahora, y este es el enfoque que estamos usando ahora.A continuación, configuramos un corpus grande, entrenamos el analizador en él, luego el analizador se aplica a las solicitudes del usuario y, por lo tanto, las reconocemos. Así es como funciona Google Assistant ahora, y este es el enfoque que estamos usando ahora.A continuación, configuramos un corpus grande, entrenamos el analizador en él, luego el analizador se aplica a las solicitudes del usuario y, por lo tanto, las reconocemos. Así es como funciona Google Assistant ahora, y este es el enfoque que estamos usando ahora.



Suena primitivo, ahora en la literatura y en las noticias a menudo se filtra información sobre cómo las redes neuronales aprenden por sí mismas en grandes corporaciones, responden todo y apoyan las conversaciones. Esto, por supuesto, es cierto, y es genial, pero tales enfoques son inútiles en los casos en los que necesita que el sistema no solo responda, sino que también cambie su estado, al menos con la configuración de un despertador. De todos modos, se requiere una representación interna, a la que es necesario llevar de alguna manera lo dicho por el usuario. Incluso si tenemos una gran variedad de textos en los que el usuario solicita configurar una alarma, y ​​no se marcará, entonces no podremos entrenar al analizador para que cambie el sistema. Podremos entrenarlo para que diga "Sí, estoy poniendo la alarma" y no hizo nada. Pero para entrenar el sistema para que cambie su estado, utilizando datos sin etiquetar,todavía no es posible. Entonces, lo que recientemente lanzaron OpenAI y DeepMind, parte de Alphabet, la empresa matriz de Google, es genial, son buenas técnicas de chatbot que responden a los humanos, pero no hay técnicas que excluyan el trabajo manual para cambiar el estado del sistema. Por lo tanto, desafortunadamente, la industria ahora tiene estándares bastante bajos en este sentido, no solo para el Asistente de Google; todos los asistentes trabajan aproximadamente en el mismo enfoque con mucho trabajo manual, ya sea procesando datos para analizadores o escribiendo reglas (lo cual no queremos hacer). Intentamos realizar trabajos manuales con la ayuda de empresas colaboradoras.excluyendo el trabajo manual para cambiar el estado del sistema, no. Por lo tanto, desafortunadamente, la industria ahora tiene estándares bastante bajos en este sentido, no solo para el Asistente de Google; todos los asistentes trabajan aproximadamente con el mismo enfoque con mucho trabajo manual, ya sea procesando datos para analizadores o escribiendo reglas (lo cual no queremos hacer). Intentamos realizar trabajos manuales con la ayuda de empresas colaboradoras.excluyendo el trabajo manual para cambiar el estado del sistema, no. Por lo tanto, desafortunadamente, la industria ahora tiene estándares bastante bajos en este sentido, no solo para el Asistente de Google; todos los asistentes trabajan aproximadamente con el mismo enfoque con mucho trabajo manual, ya sea procesando datos para analizadores o escribiendo reglas (lo cual no queremos hacer). Intentamos realizar trabajos manuales con la ayuda de empresas colaboradoras.Intentamos realizar trabajos manuales con la ayuda de empresas colaboradoras.Intentamos realizar trabajos manuales con la ayuda de empresas colaboradoras.



Cuéntenos sobre las direcciones prometedoras en el desarrollo del Asistente de Google.



De hecho, lo que acabamos de discutir. La dirección es idear un nuevo sistema de entrenamiento que podría cambiar el estado del sistema de datos sin requerir procesamiento manual de datos. Eso sería genial. Pero hasta ahora, aunque ya tengo mucha experiencia trabajando con asistentes, me resulta difícil siquiera imaginar cómo funcionaría un sistema así en principio. Entiendo cómo las redes neuronales, los métodos de enseñanza, los enfoques híbridos se vuelven más complicados, cómo la preparación de datos para el entrenamiento se vuelve más complicada, pero no entiendo cómo hacer una conexión directa entre los datos sin un maestro y cambiando el sistema. Debe haber algún tipo de representación interna que permita hacer esto. Si alguien puede revolucionar y reimaginar esta parte, sería genial.



Además, ahora se invierte mucho en la generación de esta representación interna, es decir, si no podemos pasar directamente de los datos sin marcado a cambiar el estado del sistema, necesitamos crear un algoritmo que ayude a hacer algo intermedio. Digamos que genera una vista del sistema a partir de texto y luego la gente lo limpia, en lugar de construirlo desde cero. Esta es una dirección muy prometedora y, aunque hay pocos avances en ella, los investigadores están mirando exactamente allí.



Además, nuevas señales para respuestas y para la cordura conversacional de los asistentes. Y métodos de evaluación. Ahora nosotros (es decir, en la industria en general) no tenemos un único método adecuado para evaluar la calidad de los sistemas de diálogo, ni una sola métrica con la que se pueda comparar al Asistente, Alice, Alex, Siri, etc. Puede sondear a los usuarios, intentar resolver escenarios similares con diferentes asistentes y sacar conclusiones de esto, pero no existe una métrica cuantitativa adecuada. Para la traducción automática, hay una métrica, y más o menos normal, pero para esto, nada; este es uno de los problemas que ahora se discuten en la industria en conferencias. Por fin han comenzado los corpus de conversación en inglés; también hay muy pocos de ellos. No hay nada para contar las métricas, no hay nadie y no está claro cómo. Si alguien tiene una buena idea,entonces esta persona recogerá todos los laureles en las conferencias, hará una startup y la venderá en cualquier lugar. Arrancaría con mis manos cualquier proyecto que ayudara cuantitativamente, en números, a medir la diferencia entre asistentes.



Por separado, hay un estudio híbrido, que es el que más estoy haciendo ahora: en el último año cambié del ruso a este tema. Estoy haciendo proyectos sobre cómo hacer que el Asistente sea más conversacional, más natural. Vemos a la gente hablar entre ellos. No se trata solo de las palabras que se utilizan aquí ("configurar / configurar la alarma"); de hecho, esta parte es primitiva y ya está resuelta, aunque queda mucha rutina por completar. Las tareas no resueltas son, por ejemplo, cuando el usuario dice en varias formas: "Ponme una alarma", "¿Puedes poner una alarma?", "¿Podrías poner una alarma?" Aproximadamente lo mismo, pero en un caso se usa el comando, en otros, preguntas. Estamos ante este nivel de la lingüística, la pragmática, es decir, lo que va por encima del significado, la semántica. Para quienes hayan estudiado lingüística o lengua,el marcado semántico en el texto no es un término nuevo, pero la pragmática le agrega contexto adicional; es decir, no sólo "lo que dicen", sino también "cómo dicen", "por qué dicen". En términos generales, si el usuario le dice al asistente “¿eres estúpido?”, No quiere una respuesta de “sí / no”; esta es otra señal y tienes que preguntar qué estaba mal en el comportamiento del sistema antes; esto no debe clasificarse como una pregunta, sino como una queja.



Mi grupo, ahora me quedan tres lingüistas después de mudarme a otro departamento, ahora está tratando de comprender cómo las personas interactúan entre sí, cómo las personas interactúan con los asistentes y cómo convertir esto en señales para el aprendizaje automático y realmente capacitar al sistema para comprender mejor las cosas. transmitido de forma no verbal e indirecta.



¿Qué hay del número de reintentos y resguardos en relación con la pregunta del enunciado del problema?



Esta es una buena métrica, pero, lamentablemente, solo tiene en cuenta la cantidad de frases que el asistente no ha entendido el usuario. No nos dice qué tan difíciles fueron esas frases, qué tan agradable fue la experiencia del usuario. Escríbeme más tarde después de la transmisión, todos los que tengan ideas para comparar asistentes, pueden hablar sobre esto por separado, pero se requiere algo muy complicado allí. Por secciones separadas, ya hemos aprendido a comprender algo, por ejemplo, qué porcentaje de las solicitudes del usuario no comprende, o comprende desde la enésima vez, y dónde hubo errores, en la traducción del habla en texto, en el texto mismo, en algún lugar más al cambiar sistemas. Pero evaluar cuán adecuadamente respondió el sistema ya es más difícil: de hecho, ¿qué es una “respuesta adecuada”? También hay todo tipo de "cerezas en el pastel", como casos en los que un usuario se dirige al sistema como "usted".y ella responde "tú" - ¿es bueno o malo? Parece estar mal, el asistente es una figura subordinada.



En general, hay muchos chips pequeños que son difíciles de tener en cuenta en las mediciones cuantitativas.



¿Existe un lenguaje común intermedio para el procesamiento simplificado y luego cambiar al idioma deseado?



Esta es una gran pregunta, pero no yo, sino los representantes de ABBYY que han estado tratando de hacer precisamente eso durante muchos años. Es decir, en lingüística existe la idea de que todos los idiomas se construyen de manera similar, y se puede crear una gramática universal, un diccionario y todo lo demás para obtener un vínculo intermedio entre todos los idiomas. Entonces se podría traducir de un idioma a un metalenguaje y luego a cualquier otro idioma. Se dedicaron muchos años-hombre a esta tarea, pero resultó, a pesar de la belleza de la idea, que los idiomas siguen siendo bastante diferentes y es casi imposible llevar a cabo un mapeo de este tipo. Y no está claro cómo hacerlo automáticamente, no a mano. Como resultado, el tema se extinguió.



Resultó que si vierte una gran cantidad de datos y ejecuta una red neuronal, la traducción automática resulta ser de suficiente calidad y sin un metalenguaje. Las redes neuronales son buenas para calcular patrones, incluidos los gramaticales, por lo tanto, si la cantidad de datos es suficiente, entonces ellas mismas se las arreglan sin las indicaciones de un enlace intermedio. En la traducción automática, todo funciona bien cuando hay buenos textos paralelos. Por ejemplo, hay muchos textos paralelos entre ruso e inglés, pero no hay ninguno entre el ruso y algún idioma indio americano, pero hay muchos textos paralelos entre este y el inglés, es decir, el inglés puede desempeñar el papel de un idioma intermedio. A menudo, la traducción del ruso se realiza primero al inglés y luego a un tercer idioma; esta técnica es bastante comúnde modo que el inglés en la práctica reemplaza el mismo metalenguaje; después de todo, la mayoría de los datos traducidos son hacia y desde el inglés. La calidad sufre, por supuesto, pero es mejor que nada. Si no hay nada que enseñar al sistema, entonces es mejor enseñar en una traducción paso a paso que no hacer nada.

En general, desde un punto de vista teórico, la idea es hermosa, pero en la práctica se usa el inglés.



¿Puede dar ejemplos de problemas en los que está trabajando en Google? ¿Cuál es el porcentaje de tareas interesantes y rutinarias?



Cuando lancé Russian Assistant, había muchas tareas de rutina, simplemente porque los algoritmos son universales y la mayor parte del trabajo se redujo a corregir errores manualmente y preparar datos en ruso. Comprobamos la calidad, a veces escribimos los datos a mano; suena muy triste, pero no pudimos usar los datos del usuario, y tuvimos que sacarlos de alguna parte. Para tomar datos, también puede escribir una regla y generar datos; o datos abiertos. Curiosamente, fue posible tratar la morfología, ver que la generación y comprensión del texto eran más inteligentes y no era necesario escribir todas las formas de la palabra "despertador" en una columna. Desafortunadamente, hubo muchos ciclos de "ejecutar-ver-calidad-corregir-nuevamente-ejecutar-corregir datos-y así sucesivamente"; Al principio fue divertido, pero rápidamente se convirtió en rutina. Ahora,como me dedico más a la investigación, creamos nuestra propia agenda, en cierto sentido. Solo estoy creando nuevos datos que pueden ser útiles en el futuro para las métricas e investigando cómo las personas se comunican entre sí y con los asistentes para comprender qué señales se pueden usar para entrenar modelos. Analizamos la calidad. Parte del trabajo que estoy haciendo actualmente es producto, estamos tratando de crear una hoja de ruta de problemas en las interacciones de diálogo entre una persona y un asistente, para entender cómo clasificarlo, para entender qué podemos resolver ahora, qué después. Es decir, ahora casi no me quedan tareas de rutina y estoy satisfecho con mi configuración.lo que podría ser útil en el futuro para las métricas y para investigar cómo las personas se comunican entre sí y con los asistentes para comprender qué señales se pueden usar para entrenar modelos. Analizamos la calidad. Parte del trabajo que estoy haciendo actualmente es producto, estamos tratando de crear una hoja de ruta de problemas en las interacciones de diálogo entre una persona y un asistente, para entender cómo clasificarlo, para entender qué podemos resolver ahora, qué después. Es decir, ahora casi no me quedan tareas de rutina y estoy satisfecho con mi configuración.lo que podría ser útil en el futuro para las métricas y para investigar cómo las personas se comunican entre sí y con los asistentes para comprender qué señales se pueden usar para entrenar modelos. Analizamos la calidad. Parte del trabajo que estoy haciendo actualmente es producto, estamos tratando de crear una hoja de ruta de problemas en las interacciones de diálogo entre una persona y un asistente, para entender cómo clasificarlo, para entender qué podemos resolver ahora, qué después. Es decir, ahora casi no me quedan tareas de rutina y estoy satisfecho con mi configuración.estamos tratando de crear una hoja de ruta de problemas en las interacciones de diálogo entre una persona y un asistente, para comprender cómo clasificarlo, para comprender qué podemos resolver ahora, qué, entonces. Es decir, ahora casi no me quedan tareas de rutina y estoy satisfecho con mi configuración.estamos tratando de crear una hoja de ruta de problemas en las interacciones de diálogo entre una persona y un asistente, para entender cómo clasificarlo, para entender qué podemos resolver ahora, qué después. Es decir, ahora casi no me quedan tareas de rutina y estoy satisfecho con mi configuración.

Este equilibrio se ve diferente para diferentes lingüistas. Recientemente celebramos un aniversario: 100 lingüistas en la empresa, ahora hay un poco más. Es genial, porque cuando me uní a la empresa hace 4 años, éramos 30. Nuestra demanda definitivamente está creciendo.



¿Utiliza la definición de contexto para analizar textos?



No sé si el autor de la pregunta todavía está buscando, reformule, por favor, no entendí.

Estamos usando el contexto, por supuesto; sin él no hay interacción de diálogo. Por supuesto, estamos tratando de resolver problemas para que el usuario, por ejemplo, no diga "despertador" cada vez, pero pueda usar pronombres naturales ("poner la alarma a 7, no, cambiarla a 8"). Esto ya funciona bien para el inglés; No recuerdo si ya se lanzó para ruso.



¿Por qué no se ha lanzado la columna en ruso?



Por lo que puedo decir, Google tiene muchos idiomas diferentes. Las prioridades deben organizarse de acuerdo con el volumen y el valor de los mercados, y el mercado ruso no es el más interesante. Es un poco estimulante que haya Yandex en Rusia y puedas competir con él, pero desde un punto de vista práctico, nadie quiere hacerlo. Además, Google ha cerrado oficinas de desarrollo en Rusia después de la adopción de la ley sobre datos personales.



¿Existen bibliotecas abiertas para el reconocimiento y la generación de voz, matrices de datos para entrenar redes neuronales? ¿Qué tan abierta es esta tecnología?



Sí, lleno de algoritmos de código abierto. Google lanzó recientemente Bert, una biblioteca súper nueva; ahora las conferencias están llenas de actualizaciones, que se llaman varias palabras divertidas, dentro de las cuales hay "Bert" (Albert). Todo es de código abierto, creado por nuestros excelentes científicos en Berlín. Puedes entrenar cualquier cosa; las comunidades científicas tienen datos para entrenar redes neuronales y ver qué sucede. Como dije, estos datos no son suficientes para el ruso, más para el inglés, así que todos se divierten con él.



Es decir, ¿no tiene textos de registro de usuario?



No podemos leer los registros de los usuarios. Las únicas excepciones son aquellos casos en los que los usuarios se quejan y se les pide específicamente permiso para compartir las últimas declaraciones. Pero incluso en tales casos, solo vemos un recuento del problema a partir de apoyos especialmente capacitados y estadísticas agregadas de la forma "el asistente respondió que no comprende tal o cual porcentaje de veces". Google toma los datos del usuario con mucho cuidado. Parte de lo que está haciendo mi equipo es pensar en cómo generar datos realistas o recopilarlos de personas especialmente pagadas. Esta es una dirección importante para todos los equipos industriales porque nunca se debe violar la privacidad. Tenemos que buscar nuevos métodos de recopilación de datos, escribir nuevas herramientas;He estado haciendo esto bastante de cerca durante los últimos seis meses. Desafortunadamente, los detalles aún no se han publicado. Queríamos escribir un artículo para la conferencia, pero la epidemia se interpuso. Cuando trabajas en una empresa, en principio, necesitas un artículo solo para ir a una conferencia a expensas de la empresa y pasar el rato. Y ahora todas las conferencias se han publicado en línea y no podrá pasar el rato; la motivación para escribir un artículo realmente se ha ido. Ahora la epidemia terminará y lo haremos de todos modos.Ahora la epidemia terminará y lo haremos.Ahora la epidemia terminará y lo haremos de todos modos.



, , ?



No les mostraré ningún elemento de prueba, pero puedo contarles sobre la entrevista. Como dije, ahora tenemos 100 lingüistas, y las entrevistas ahora tienen lugar en el formato conocido por los ingenieros: una entrevista en grupo. Entrevistamos a los lingüistas en una fila, y cuando hay un buen lingüista, buscamos dónde hay una vacante y los asignamos a equipos. Contamos con lingüistas de diversos perfiles; alguien programa, alguien prácticamente no programa. Soy de la segunda categoría: estoy más en la parte de investigación, no entreno modelos yo mismo, hay muchachos en el equipo que hacen esto. Ahora tenemos 8 equipos de lingüistas de diferentes tamaños, y también tenemos un equipo de internalización, en el que yo era un especialista en el idioma ruso: son personas que monitorean la calidad del asistente (ahora soy solo un lingüista-investigador y hago tareas no relacionadas con un idioma específico) ...Dependiendo de su perfil, los lingüistas pertenecen a uno de estos equipos.



Cuando las tareas son para un idioma específico, se necesitan hablantes de idiomas específicos; reciben asignaciones especiales en este idioma; estamos tratando de averiguar si la persona comprende bien las funciones. Por ejemplo, si estuviéramos contratando para un puesto con el idioma ruso (ahora no existe, sin embargo), nos preguntaríamos por qué el ruso es más complicado que el inglés, qué métodos existen para superar estas dificultades, cómo funciona la morfología rusa, qué se necesita para que una computadora entienda esto, cómo afecta por la cantidad de datos. Si el rol es general, preguntaremos qué tan bien una persona comprende las realidades actuales de la lingüística, cuánto puede pensar en algoritmos. Aunque casi nunca me programo, entiendo bien cómo funciona el Machine Learning, qué se necesita para entrenar el sistema, sobre las señales, el aprendizaje supervisado / no supervisado, etc. En realidad, esto es lo queque suelo preguntar en las entrevistas. El ejemplo más común: “¿Cómo corregirías los errores tipográficos? Hay una cantidad infinita de dinero y desarrolladores, pero todavía no hay un producto: cómo construirlo desde un punto de vista lingüístico, ¿cuáles son los pasos? " En general, puede preguntar sobre cualquier componente que incluya lenguaje natural. ¿Cómo se construye, según el entrevistado? ¿Cómo va a construir una persona uno similar, qué problemas ve? ¿Cómo transferir la experiencia del inglés al chino, del chino al ruso, del ruso al hindi? ¿Cómo organizará su trabajo con un idioma que no conoce? Hay muchas opciones.¿Cuáles son los pasos? " En general, se puede preguntar sobre cualquier componente que incluya el lenguaje natural. ¿Cómo se construye, según el entrevistado? ¿Cómo va a construir una persona uno similar, qué problemas ve? ¿Cómo transferir la experiencia del inglés al chino, del chino al ruso, del ruso al hindi? ¿Cómo organizará su trabajo con un idioma que no conoce? Hay muchas opciones.¿Cuáles son los pasos? " En general, se puede preguntar sobre cualquier componente que incluya el lenguaje natural. ¿Cómo se construye, según el entrevistado? ¿Cómo va a construir una persona uno similar, qué problemas ve? ¿Cómo transferir la experiencia del inglés al chino, del chino al ruso, del ruso al hindi? ¿Cómo organizará su trabajo con un idioma que no conoce? Hay muchas opciones.



¿Está monitoreando el comportamiento del usuario: qué comando dio el usuario, qué acción tomó el dispositivo?



No podemos monitorear el comportamiento del usuario. Solo podemos idear métodos para simularlo y probar cómo responde el sistema. Esto es lo que estamos haciendo en realidad: intentar averiguar cómo medirlo y tratar de recopilar datos para entrenar los algoritmos.



¿Cómo se rastrea el contexto de la conversación? ¿Cuánta memoria se usa para esto? ¿Hay persistencia entre sesiones?



¿Se usa mucho la memoria? No conozco los detalles, ni siquiera es para el departamento en el que trabajo. Nuestro departamento está más preocupado por la calidad, pero hay departamentos que miran para ver si hay suficiente memoria, si hay fugas, si el asistente estúpido durante 10 minutos para poner la alarma.



Realizamos un seguimiento del contexto. Hasta ahora, lamentablemente, solo en una sesión. Esta es una de las tareas que nuestro departamento, mi equipo, los equipos de ingeniería vecinos, estará resolviendo durante el próximo año. Una tarea muy guay e interesante: cuánto tiempo mantener el contexto, en qué momento considerar que la conversación ha terminado, si mantener el contexto del usuario siempre, qué información sobre el usuario almacenará el sistema en sí mismo. En términos relativos, si un usuario dice "Odio la pizza", probablemente sea bueno mantener este contexto para siempre y preguntar una vez al año si la situación ha cambiado. Y, si el usuario responde que no ha cambiado, no ofrezcas pizza a domicilio. Si bien los asistentes no saben cómo hacer esto, desafortunadamente, todavía están muy lejos de ser perfectos, necesitarían muchos más contextos diferentes.



Ahora podemos entender los pronombres en una sola sesión (“poner la alarma, ponerla a las 8 am”). Estamos trabajando para ampliar este contexto y realizar una investigación por separado para comprender qué contexto es útil, cuánto se necesita, dónde y cuánto almacenarlo. Por supuesto, Google tiene muchos servidores, por lo que no necesitamos ahorrar dinero, pero queremos que el asistente no procese cada solicitud durante 3 horas. Ahora es bastante rápido, pero no perfecto; y si lo hacemos perfecto, nos gustaría que siguiera funcionando rápidamente.



¿Tienes competencia entre equipos?



Si y no. Por supuesto, según cómo esté organizado el trabajo dentro de Google, puede realizar una transmisión por separado. Tenemos mucha iniciativa local; la gente puede intentar hacer prototipos de cualquier cosa, sugerirlo a los jefes; los jefes son siempre muy abiertos y propondrán matrimonio a los jefes superiores. Muchos proyectos surgen del hecho de que alguien intentó hacer algo, tuvo éxito y se decidió hacerlo en una calidad adecuada para su lanzamiento. Por supuesto, hay situaciones en las que en 5 lugares al mismo tiempo la gente llega a la misma idea y se obtienen 10 prototipos. En ese momento, a veces tienes que elegir uno de los prototipos, pero por lo general intentan unir a las personas en un equipo para que puedan desarrollar una nueva función juntos, lanzarla a producción y todos estaban felices.



Entonces, hay competencia, pero tratamos de mantener la competencia sana, para que no haya demasiada política. En general, el ambiente es genial. Ahora estamos sentados entre la investigación y la producción, aportando ideas, estamos en el epicentro con los gerentes de producto y con los proyectos y con todos, todos están coordinados y cooperados. Caos, pero todo es espiritual.



¿Qué sucederá más rápido? ¿Harán un asistente de voz inteligente que no entenderá peor que una persona, o Elon Musk inventará una interfaz neuronal?



No sé nada sobre la etapa en la que se encuentra la interfaz neuronal. Pero un asistente de voz inteligente que entienda tan bien como una persona todavía está muy lejos. Hasta ahora, nadie sabe cómo hacer que el asistente entienda. Todos los usuarios de chat en poderosas redes neuronales son imitaciones. Vi una pregunta sobre la prueba de Turing; esta también es una prueba de imitación, de qué tan bien el sistema pretende ser humano y pretende que entiende, pero después de todo, ningún sistema entiende nada. Estaba el chatbot Eugene Goostman, que ganó una de las pruebas, pasó un cierto porcentaje de los jueces que necesitaban ser engañados. Fingió ser un chico de 15 años de Odessa con su padre, un ginecólogo y un conejillo de indias (no es una broma, estaba hablando de sí mismo). El bot mantuvo un poco el contexto y preguntó: "¿De dónde eres?" - y recordó la ciudad por la respuesta,y luego usó el memorizado después de un tiempo, causando un efecto sorpresa. Aunque ahora no es demasiado difícil crear un efecto wah con asistentes de voz; no son perfectos. Además, dado que la competencia fue en inglés, las irregularidades en el discurso del bot se atribuyeron al hecho de que era "de Odessa", creían en un niño extranjero.



La pregunta es qué llamar "comprensión", qué es "comprender tan bien como un ser humano" y qué queremos básicamente de los bots de chat. Nadie sabe tampoco la respuesta a esta pregunta. ¿Queremos que hable con nosotros como un mejor amigo, o que controle constantemente la casa inteligente y el automóvil y configure los despertadores? ¿Qué puede hacer él? ¿Puede insultarnos y burlarse de nosotros? No es que todos nuestros mejores amigos lo insulten y se burlen, pero hay formas especiales de comunicarse con sus seres queridos. ¿Quizás no quisiéramos que el sistema nos hablara amablemente y nos persiga anécdotas?






Que paso antes



  1. Ilona Papava, ingeniera de software sénior en Facebook: cómo obtener una pasantía, obtener una oferta y todo sobre trabajar en una empresa
  2. Boris Yangel, ingeniero de ML de Yandex: cómo no unirse a las filas de especialistas tontos si es un científico de datos
  3. , EO LastBackend — , 15 .
  4. , Vue.js core team member, GoogleDevExpret — GitLab, Vue Staff-engineer.
  5. , DeviceLock — .
  6. , RUVDS — . 1. 2.
  7. , - . — .
  8. , Senior Digital Analyst McKinsey Digital Labs — Google, .
  9. «» , Duke Nukem 3D, SiN, Blood — , .
  10. , - 12- — ,
  11. , GameAcademy — .
  12. , PHP- Badoo — Highload PHP Badoo.
  13. , CTO Delivery Club — 50 43 ,
  14. , Doom, Quake Wolfenstein 3D — , DOOM
  15. , Flipper Zero —









All Articles