Le 24 août, nous nous sommes entretenus en direct avec Tatiana Lando, analyste linguiste chez Google. Tatiana travaille sur Google Assistant et est impliquée dans des projets entre la production et le développement. Elle explore la manière dont les gens se parlent et les stratégies qu'ils utilisent pour les utiliser pour enseigner à l'assistant un comportement plus humain. Je suis venu chez Google pour travailler sur un assistant pour le marché russe et la langue russe. Auparavant, elle a travaillé chez Yandex pendant 8 ans. Elle était engagée dans les technologies linguistiques, l'extraction de faits à partir de textes non structurés. Tatiana est l'une des fondatrices de l'AINL: Artificial Intelligence and Natural Language Conference.
Nous partageons avec vous la transcription de l'Ă©mission.
Quand je dis que je suis linguiste, au mieux on me demande si j'ai lu les Strugatsky, où il s'agissait de «linguistes structurels». Dans le pire des cas, on me demande combien de langues je connais. Les linguistes ne sont pas des gens qui connaissent de nombreuses langues. Les personnes de n'importe quelle spécialité peuvent connaître de nombreuses langues, ce n'est pas connecté. Un linguiste est une personne qui comprend comment fonctionne la langue, comment fonctionne la communication entre les gens. C'est une grande discipline scientifique, elle a beaucoup d'aspects en plus de ce que je fais. Il y a une analyse des textes pour établir la paternité, il y a de la linguistique dans la médecine légale - quand les linguistes déterminent s'il y a de l'extrémisme dans un texte, par exemple. Ceci est un exemple.
La linguistique computationnelle, ce que je fais, vise principalement à développer des interfaces vocales entre la technologie, les ordinateurs et les humains, d'une part, ainsi qu'à introduire des méthodes numériques dans le traitement du langage. Il existe tout un domaine de la linguistique de corpus - lorsque nous essayons de traiter automatiquement des textes en grande quantité afin de tirer des conclusions sur le fonctionnement de la langue à partir des données obtenues. Je travaille sur un assistant Google - c'est une interface vocale entre un téléphone ou un ordinateur et une personne.
Avant de déménager à Londres et de commencer à travailler chez Google, j'ai travaillé chez Yandex pendant 7,5 ans, où j'ai également étudié la linguistique computationnelle. Les tâches dans lesquelles j'étais engagé chez Yandex couvraient un assez large éventail de tâches en linguistique computationnelle. Nous étudiions la morphologie, la syntaxe - comment les mots changent, comment les mots sont combinés; À cet égard, la langue russe est plus compliquée que l'anglais, car il n'y a pas de cas en anglais, il n'y a que deux formes de noms, tout est relativement simple (en russe - 6-9 cas, une formation plurielle étrange - eh bien, tous les locuteurs natifs connaissent ces caractéristiques). Par conséquent, lorsque je suis passé à Google, j'ai été embauché comme spécialiste de la langue russe, même si maintenant je fais déjà autre chose.
Y a-t-il des postes vacants liés au développement de la version russe de l'Assistant Google? Comment obtenir un emploi d'assistant Google?
Il n'y a pas de poste vacant associé à la version russe de l'Assistant Google. Google essaie de développer des méthodologies visant le nombre maximum de langues à la fois, et la spécificité des langues doit être résolue en utilisant des données, et non en utilisant des méthodologies spécifiques. Autrement dit, les algorithmes pour le russe, l'anglais, l'allemand, le chinois - toutes les langues prises en charge sont identiques, mais avec quelques nuances. Il y a beaucoup de parties communes, et les personnes qui travaillent avec une langue particulière surveillent principalement la qualité des données et ajoutent des modules spéciaux pour des langues individuelles. Par exemple, pour le russe et d'autres langues slaves, la morphologie est nécessaire (c'est ce dont je viens de parler - cas, formation du pluriel, verbes complexes). Et dans la langue turque, il existe une morphologie encore plus complexe - s'il n'y a que 12 formes nominales en russe,puis en turc c'est bien plus. Par conséquent, nous avons besoin d'une sorte de modules spéciaux qui gèrent les parties dépendant de la langue. Mais cela se fait avec l'aide de linguistes qui connaissent leur langue maternelle et d'ingénieurs en langage général qui écrivent des algorithmes en utilisant des données; nous travaillons ensemble pour améliorer la qualité de ces algorithmes et données. En conséquence, nous n'avons pas de postes vacants spéciaux pour la langue russe, mais il y a des postes vacants dans le développement de Google Assistant, principalement à Zurich, Californie, New York, un peu - Londres.Nous n'avons pas de postes vacants pour la langue russe, mais il y a des postes vacants dans le développement de Google Assistant, principalement à Zurich, Californie, New York, un peu - Londres.Nous n'avons pas de postes vacants pour la langue russe, mais il y a des postes vacants dans le développement de Google Assistant, principalement à Zurich, Californie, New York, un peu - Londres.
, ?
Il y a 4 ans, quand j'ai déménagé, Londres était encore l'Europe. En fait, il est maintenant l'Europe, mais pas l'UE. J'aime beaucoup Londres, tout le monde parle anglais, pas besoin d'apprendre une autre langue. Non pas que je ne voulais pas apprendre une autre langue, mais l'entrée au déménagement était minime. Il y a aussi d'excellents théâtres ici, j'aime vraiment aller au théâtre. Bien sûr, maintenant tous les avantages de Londres avec la culture et le divertissement sont quelque peu nivelés, mais espérons le meilleur. De plus, c'est beaucoup plus facile avec un visa ici qu'à Zurich - pour une raison quelconque, la législation sur les visas en Suisse change régulièrement. Cela s'est avéré beaucoup plus facile de me mettre avec quelques autres gars à Londres, et nous nous sommes installés ici. J'aime ça ici, je ne veux déménager nulle part. Les voyages d'affaires en Californie me plongent dans la mélancolie - là , il faut prendre une voiture, des distances énormes. Bien qu'il y ait plus d'opportunités de carrière là -bas.
?
C'est plus difficile que l'anglais. En fait, presque toutes les langues sont plus compliquées que l'anglais. Il y a deux aspects différents à cette complexité. Tout d'abord, la morphologie très complexe. De plus, la langue russe a un ordre des mots libre, ce qui complique le travail lors de la construction d'un algorithme. Si elle est fixe, alors pour le "cadre de savon de maman" conditionnel, une phrase est nécessaire pour apprendre au système à comprendre "sujet-prédicat-objet". Mais si ces mots peuvent être dans n'importe quel ordre, plus de données sont nécessaires. En même temps, il existe de nombreuses ressources prêtes à l'emploi pour la langue anglaise; le monde scientifique tout entier est engagé dans la langue anglaise, toutes les entreprises sont engagées dans la langue anglaise parce qu'elles sont en concurrence sur le marché américain. Et beaucoup moins est impliqué dans d'autres langues, il y a moins de financement, moins d'entreprises. S'il reste des blocs ou des données prêts pour l'allemand ou le français,qui peut être réutilisé, alors la langue russe est pire. Il existe des étuis prêts à l'emploi, mais ils sont petits et ne conviennent pas à tout. Autrement dit, il faut beaucoup plus de données pour la langue russe que pour l'anglais, mais il y a moins de données disponibles. Plus des couches grammaticales supplémentaires; Vous pouvez essayer de comprendre la même morphologie séparément, puis vous pouvez réduire la quantité de données nécessaire pour un travail de haute qualité de l'analyseur en russe (par rapport à l'anglais).qui sont nécessaires pour un travail de haute qualité de l'analyseur en russe (par rapport à l'anglais).qui sont nécessaires pour un travail de haute qualité de l'analyseur en russe (par rapport à l'anglais).
Par conséquent, il s'avère que la langue russe est assez difficile, comme les autres langues slaves. Les langues turques sont encore plus difficiles; Les langues orientales ont d'autres problèmes: par exemple, le chinois n'a pas d'espaces entre les mots, vous devez comprendre comment diviser un tableau de texte en morceaux afin de déterminer ce que chaque morceau dit. En général, chaque langue a ses propres blagues, mais fondamentalement, tout peut être résolu en raison des grandes quantités de données linguistiques sur lesquelles les tâches sont résolues. Tout repose sur le fait qu'il n'y en a pas beaucoup pour la langue russe, et il est donc difficile de travailler avec elle, et pour l'anglais - au contraire.
La linguistique computationnelle peut-elle reconstruire des lieux incompréhensibles, par exemple, dans les négociations des pilotes avec le sol?
Oh, bien sûr. Fondamentalement, l'algorithme qui ferait cela serait similaire aux suggestions de recherche. Lorsque vous entrez une requête dans une recherche (pour n'importe quelle langue), le système vous propose les requêtes les plus populaires, avec un certain filtrage. L'algorithme, bien sûr, est un peu plus compliqué, mais nous l'oublierons pour plus de clarté. Le système propose les combinaisons de mots les plus fréquentes dans la requête, en commençant par celles que vous avez déjà saisies. Une technique similaire peut être utilisée pour restaurer des endroits obscurs. Il y a beaucoup de négociations, c'est un énorme corpus de textes, et vous pouvez les analyser et voir quelles parties sont les plus courantes. Je n'ai moi-même jamais traité du sujet des négociations entre les pilotes et le terrain, mais je soupçonne qu'il devrait y avoir beaucoup de propositions similaires, la structure de l'information est assez codifiée, le mode de communication est standard - de telles choses sont assez faciles à prévoir, de sorte qu'elles peuvent être facilement restaurées.
Parlez-nous de l'acoustique et du nettoyage du signal sonore dans les assistants vocaux
À ce sujet, je ne sais presque rien, je ne traite que du texte écrit. La phonétique, l'acoustique ne sont pas mes domaines. Mais je suis sûr qu'il existe des méthodes audio qui aident à effacer le signal, et à l'intersection entre les signaux audio et le moteur prédictif, vous pouvez filtrer les hypothèses et restaurer le texte.
Quelle est la langue la plus difficile Ă traiter et Ă comprendre?
Ils sont tous complexes. Ce n’est pas qu’aucune d’entre elles ne soit plus compliquée ou plus simple en soi; il y a beaucoup de données pour l'anglais, il est donc plus facile de travailler avec, et tout le monde le fait.
Il en résulte un cercle vicieux: lorsque les participants aux conférences veulent essayer un nouvel algorithme, ils prennent des corpus bien connus et observent l'évolution des chiffres sur les métriques. Pour mesurer votre algorithme, vous avez besoin d'un bon corpus; il y a beaucoup de bons corpus en anglais, donc ils exécutent des algorithmes en anglais dessus, obtiennent une augmentation, et ainsi stimulent d'autres chercheurs à faire encore plus de corpus afin de trouver des trous dans les algorithmes. C'est une tâche pour laquelle il est facile d'obtenir une subvention. Par exemple, il existe 10 algorithmes pour répondre automatiquement aux questions; sur le corpus existant, ces algorithmes sont plus ou moins similaires, et les chercheurs décident de créer un nouveau corpus pour voir la différence entre eux. C'est une bonne tâche, cela permet un meilleur réglage des algorithmes. Ils le font, et il y a plus de corpus pour l'anglais - et plus il y a de corpus, plus il y a d'algorithmes.Si vous regardez le travail dans le domaine de la PNL au cours des dernières années, les conférences ne mesurent même pas des pourcentages, mais des fractions d'un pourcentage d'augmentation de la qualité.
En général, ce n'est pas très utile dans les problèmes pratiques, et ce n'est pas vraiment de la linguistique informatique. C'est ainsi que les ingénieurs traitent la langue s'ils ne travaillent pas avec des linguistes (c'est-à -dire médiocres ou très théoriques).
Pourquoi n'y a-t-il pas assez de données pour la langue russe?
Cette question me tourmente toutes les années d'étude de la langue russe, depuis l'université où j'ai étudié la linguistique appliquée.
Je ne sais pas. Peut-être qu'il n'y a tout simplement pas assez d'argent dans la science russe, et donc peu de données sont produites pour la langue russe. Les conférences en Russie sont généralement un peu dépassées; il y a des conférences sur la linguistique appliquée, sur le traitement automatique du langage naturel, mais il y a très peu de grandes équipes qui s'y engagent. Les scientifiques se tournent vers les grandes entreprises - Yandex, ABBYY, maintenant MTS embauche également des linguistes; la profession est devenue plus en demande avec l'avènement des assistants vocaux. Ils vont également à l'étranger; Il existe de nombreux linguistes dans les startups, Amazon et Google.
Le seul grand corpus est le Corpus national de la langue russe. Il existe également un corpus réalisé par mes amis - le Corpus ouvert de la langue russe; mais, en général, il est très difficile d'obtenir des financements pour cela, et peu de gens s'y intéressent.
Il y a eu des concours d'algorithmes pour lesquels de petits corpus ont été créés pour des tâches spécifiques - par exemple, comparer la façon dont un système répond aux questions en russe ou comprend les commandes en russe - mais ces données ne sont pas suffisantes pour entraîner de grands systèmes. Cela s'avère aussi être un cercle vicieux dans l'autre sens: il n'y a rien à former, donc il n'y a rien à former, donc il n'y a rien à mesurer, donc il n'y a pas de données. De plus, plus de données sont nécessaires que pour l'anglais. Après avoir reçu mon diplôme, je suis presque immédiatement allé à Yandex, il m'est donc difficile de dire pourquoi cela ne fonctionne pas ici.
Quelle approche Google adopte-t-il davantage en matière de traitement du langage? Réseaux de neurones ou algorithmes?
Les réseaux de neurones sont également des algorithmes. Je ne comprends pas un peu la dichotomie, mais je vais essayer de vous dire quelles approches (et en général) nous avons dans le traitement analytique du langage en linguistique computationnelle.
Les approches historiques les plus anciennes sont des approches fondées sur des règles. Les linguistes écrivent les règles à la main, presque comme un langage de programmation. Supposons que, dans le texte perçu, il y ait d'abord le sujet, puis le verbe, puis le prédicat; si le prédicat est dans un cas, alors - une conclusion, et ainsi de suite. Par exemple, pour les cas où l'utilisateur dit quelque chose comme "ok Google, règle l'alarme à 7 heures du matin", vous pouvez appliquer la règle suivante: mettre - n'importe quel mot - réveil - sur - numéro - le matin. Il s'agit d'un modèle qui peut être décrit et enseigné au système: si vous utilisez un tel modèle et que cela fonctionne, vous devez régler l'alarme à l'heure indiquée sous la forme d'un nombre. Bien sûr, c'est un modèle très primitif, vous pouvez le faire beaucoup plus compliqué. Ils peuvent être combinés: par exemple, un modèle extrait la date et l'heure, puis un modèle de réglage d'une alarme est écrit dessus.
C'est une approche très ancienne, elle a déjà 70 ans - c'est ainsi qu'Eliza, le premier chatbot se faisant passer pour un psychanalyste, a été écrite en 1966. Ensuite, les gens ont été très surpris. Il y a eu des histoires selon lesquelles les créateurs de ce chatbot l'ont montré à leurs collègues, et ils les ont expulsés de la pièce pour parler à un «vrai» psychanalyste. Et ce bot a été écrit uniquement sur les règles - alors c'était une approche révolutionnaire. Maintenant, bien sûr, nous ne voulons pas faire cela, car il y a beaucoup de règles nécessaires - imaginez combien de phrases différentes vous pouvez utiliser juste pour définir une alarme, si vous utilisez des règles pures, vous devrez décrire chacune d'elles manuellement. Nous sommes passés aux systèmes hybrides il y a longtemps: ils peuvent percevoir des modèles, mais en général, nous essayons d'utiliser les réseaux de neurones pour l'apprentissage automatique et d'appliquer des approches supervisées à l'apprentissage supervisé. C'est à dire,nous marquons les données et disons: ok, dans ce tableau de ce que l'utilisateur peut dire, cette partie est le temps, et cela se normalise comme ça; cette partie est l'appareil sur lequel l'utilisateur veut régler l'alarme, et cette partie est, par exemple, le nom de l'alarme. Pour que vous puissiez régler un réveil sur l'iPhone à 7 heures du matin avec le nom «École». Ensuite, nous définissons un grand corpus, entraînons l'analyseur sur celui-ci, puis l'analyseur est appliqué aux demandes des utilisateurs, et ainsi nous les reconnaissons. C'est ainsi que Google Assistant fonctionne maintenant, et c'est l'approche que nous utilisons actuellement.Ensuite, nous définissons un grand corpus, entraînons l'analyseur sur celui-ci, puis l'analyseur est appliqué aux demandes des utilisateurs, et ainsi nous les reconnaissons. C'est ainsi que Google Assistant fonctionne maintenant, et c'est l'approche que nous utilisons actuellement.Ensuite, nous définissons un grand corpus, entraînons l'analyseur sur celui-ci, puis l'analyseur est appliqué aux demandes des utilisateurs, et ainsi nous les reconnaissons. C'est ainsi que Google Assistant fonctionne maintenant, et c'est l'approche que nous utilisons actuellement.
Cela semble primitif, maintenant dans la littérature et les actualités, des informations divergent souvent sur la façon dont les réseaux de neurones apprennent par eux-mêmes sur d'énormes corpus, ils répondent à tout et soutiennent les conversations. Ceci, bien sûr, est vrai, et c'est cool, mais de telles approches sont inutiles dans les cas où vous avez besoin du système non seulement pour répondre, mais aussi pour changer son état - au moins avec le réglage d'un réveil. Tout de même, une représentation interne est nécessaire, à laquelle il est nécessaire d'apporter en quelque sorte ce que l'utilisateur a dit. Même si nous avons un grand nombre de textes dans lesquels l'utilisateur demande de définir une alarme, et qu'elle ne sera pas marquée, alors nous ne pourrons pas entraîner l'analyseur afin qu'il change le système. Nous pourrons le former pour qu’il dise «Oui, je mets l’alarme» sans rien faire. Mais pour entraîner le système afin qu'il change son état, en utilisant des données non balisées,pas encore possible. Donc, ce qui a récemment été publié par OpenAI et DeepMind - qui fait partie d'Alphabet, la société mère de Google - est cool, ce sont de bonnes techniques de chatbot qui répondent aux humains, mais il n'y a pas de techniques qui excluent le travail manuel pour changer l'état du système. Par conséquent, malheureusement, l'industrie a maintenant des normes plutôt basses dans ce sens - pas seulement pour l'Assistant Google; tous les assistants travaillent à peu près sur la même approche avec beaucoup de travail manuel - soit le traitement des données pour les analyseurs, soit l'écriture de règles (ce que nous ne voulons pas faire). Nous essayons de faire un travail manuel avec l'aide d'entreprises partenaires.à l'exclusion du travail manuel pour changer l'état du système, non. Par conséquent, malheureusement, l'industrie a maintenant des normes plutôt basses dans ce sens - pas seulement pour l'Assistant Google; tous les assistants travaillent à peu près sur la même approche avec beaucoup de travail manuel - soit le traitement des données pour les analyseurs, soit l'écriture de règles (ce que nous ne voulons pas faire). Nous essayons de faire du travail manuel avec l'aide d'entreprises partenaires.à l'exclusion du travail manuel pour changer l'état du système, non. Par conséquent, malheureusement, l'industrie a maintenant des normes plutôt basses dans ce sens - pas seulement pour l'Assistant Google; tous les assistants travaillent à peu près sur la même approche avec beaucoup de travail manuel - soit le traitement des données pour les analyseurs, soit l'écriture de règles (ce que nous ne voulons pas faire). Nous essayons de faire du travail manuel avec l'aide d'entreprises partenaires.Nous essayons de faire du travail manuel avec l'aide d'entreprises partenaires.Nous essayons de faire du travail manuel avec l'aide d'entreprises partenaires.
Parlez-nous des directions prometteuses dans le développement de l'Assistant Google.
En fait, ce dont nous venons de discuter. La direction est de proposer un nouveau système de formation qui pourrait changer l'état du système à partir des données sans nécessiter de traitement manuel des données. Ce serait cool. Mais jusqu'à présent, même si j'ai déjà beaucoup d'expérience de travail avec des assistants, il m'est difficile d'imaginer même comment un tel système fonctionnerait en principe. Je comprends comment les réseaux de neurones, les méthodes d'enseignement, les approches hybrides se compliquent maintenant, comment la préparation des données pour la formation se complique - mais je ne comprends pas comment établir une connexion directe entre les données sans enseignant et changer le système. Il doit y avoir une sorte de représentation interne qui permettrait de faire cela. Si quelqu'un pouvait révolutionner et réinventer cette partie, ce serait formidable.
De plus, maintenant beaucoup est investi dans la génération de cette représentation interne - c'est-à -dire que si nous ne pouvons pas passer directement des données sans balisage à la modification de l'état du système, nous devons créer un algorithme qui aidera à faire quelque chose entre les deux. Disons que générer une vue système à partir du texte, puis les gens la nettoieront - au lieu de la construire à partir de zéro. C'est une direction très prometteuse, et bien qu'il y ait peu de progrès, les chercheurs regardent exactement là .
De plus - de nouveaux signaux pour les réponses et pour la santé mentale des assistants. Et les méthodes d'évaluation. Maintenant, nous (c'est-à -dire dans l'industrie en général) n'avons pas une seule méthode adéquate pour évaluer la qualité des systèmes de dialogue, pas une seule métrique par laquelle on pourrait comparer l'Assistant, Alice, Alex, Siri, etc. Vous pouvez interroger les utilisateurs, essayer de résoudre des scénarios similaires avec différents assistants et en tirer des conclusions, mais aucune métrique quantitative appropriée n'existe. Pour la traduction automatique, il existe une métrique, et plus ou moins normale, mais pour cela - rien; c'est l'un des problèmes qui sont actuellement débattus dans l'industrie lors de conférences. Les corpus conversationnels pour l'anglais ont enfin commencé; il y en a également très peu. Il n'y a rien pour compter les métriques, il n'y a personne et on ne sait pas comment. Si quelqu'un a une bonne idée,alors cette personne ramassera tous les lauriers lors de conférences, créera une startup et la vendra n'importe où. J'aurais arraché tout projet qui aiderait quantitativement, en nombre, à mesurer la différence entre assistants.
Par ailleurs, il y a une étude hybride, que je fais surtout maintenant - l'année dernière, je suis passé du russe à ce sujet. Je réalise des projets sur la manière de rendre l'assistant plus conversationnel, plus naturel. Nous regardons les gens se parler. Ce ne sont pas seulement les mots utilisés ici ("régler / régler l'alarme"); en fait, cette partie est primitive et a déjà été résolue, bien qu'il reste encore beaucoup de routine à terminer. Les tâches non résolues sont, par exemple, lorsque l'utilisateur dit sous diverses formes: "Définissez-moi une alarme", "Pouvez-vous définir une alarme?", "Pouvez-vous définir une alarme?" À peu près la même chose, mais dans un cas, la commande est utilisée, dans d'autres - des questions. Nous regardons ce niveau de linguistique - la pragmatique, c'est-à -dire ce qui dépasse le sens - la sémantique. Pour ceux qui ont étudié la linguistique ou la langue,le balisage sémantique dans le texte n'est pas un nouveau terme, mais la pragmatique y ajoute un contexte supplémentaire; c'est-à -dire non seulement «ce qu'ils disent», mais aussi «comment ils disent», «pourquoi ils disent». En gros, si l'utilisateur dit à l'assistant «êtes-vous stupide?», Il ne veut pas de réponse «oui / non» - c'est un autre signal, et vous devez demander ce qui n'allait pas dans le comportement du système auparavant; cela ne doit pas être classé comme une question, mais comme une plainte.
Mon groupe - il me reste maintenant trois linguistes après avoir déménagé dans un autre département - essaie maintenant de comprendre comment les gens interagissent les uns avec les autres, comment les gens interagissent avec les assistants et comment transformer cela en signaux pour l'apprentissage automatique et vraiment former le système pour mieux comprendre les choses transmis de manière non verbale et indirecte.
Qu'en est-il du nombre de tentatives et de stubs par rapport à la question dans l'énoncé du problème?
C'est une bonne métrique, mais malheureusement, elle ne prend en compte que le nombre de phrases que l'utilisateur n'a pas comprises par l'assistant. Cela ne nous dit pas à quel point ces phrases étaient difficiles, à quel point l'expérience utilisateur était agréable. Écrivez-moi plus tard après la diffusion, tous ceux qui ont des idées pour comparer les assistants, vous pouvez en parler séparément - mais quelque chose de très compliqué est nécessaire. Par sections séparées, nous avons déjà appris à comprendre quelque chose - par exemple, quel pourcentage de demandes d'utilisateurs le système ne comprend pas ou ne comprend pas à partir de la Nième fois, et où il y avait des erreurs - dans la traduction de la parole en texte, sur le texte lui-même, quelque part plus loin lors du changement systèmes. Mais il est déjà plus difficile d'évaluer dans quelle mesure le système a répondu: en fait, qu'est-ce qu'une «réponse adéquate»? Il existe également toutes sortes de «cerises sur le gâteau», comme les cas où un utilisateur s'adresse au système en tant que «vous»et elle répond "vous" - est-ce bon ou mauvais? Cela semble être mauvais, l'assistant est un personnage subalterne.
En général, il y a beaucoup de petites puces qui sont difficiles à prendre en compte dans les mesures quantitatives.
Existe-t-il un langage intermédiaire commun pour un traitement simplifié puis le passage à la langue souhaitée?
C'est une excellente question, mais pas moi, mais les représentants d'ABBYY qui tentent de le faire depuis de nombreuses années. Autrement dit, en linguistique, il y a l'idée que toutes les langues sont construites de la même manière, et vous pouvez créer une grammaire universelle, un dictionnaire et tout le reste pour obtenir un lien intermédiaire entre toutes les langues. Ensuite, on pourrait traduire d'une langue vers une méta-langue, puis vers n'importe quelle autre langue. Beaucoup d'années-hommes ont été consacrées à cette tâche, mais il s'est avéré - malgré la beauté de l'idée - que les langues sont encore assez différentes et qu'il est presque impossible de réaliser une telle cartographie. Et il n'est pas clair comment faire cela automatiquement - pas à la main. En conséquence, le sujet s'est éteint.
Il s'est avéré que si vous versez beaucoup de données et exécutez un réseau neuronal, la traduction automatique s'avère être de qualité suffisante sans méta-langage. Les réseaux de neurones sont bons pour calculer des modèles, y compris des modèles grammaticaux, par conséquent, si la quantité de données est suffisante, ils se débrouillent eux-mêmes sans les invites d'un lien intermédiaire. En traduction automatique, tout fonctionne bien lorsqu'il y a de bons textes parallèles. Par exemple, il existe de nombreux textes parallèles entre le russe et l'anglais, mais il n'y en a pas du tout entre le russe et une langue amérindienne - mais il existe de nombreux textes parallèles entre celui-ci et l'anglais, c'est-à -dire que l'anglais peut jouer le rôle d'une langue intermédiaire. Souvent, une traduction du russe se fait d'abord en anglais, puis dans une troisième langue; cette technique est assez courantede sorte que l'anglais dans la pratique remplace la même méta-langue - après tout, les données les plus traduites sont vers et depuis l'anglais. La qualité en souffre, bien sûr, mais c'est mieux que rien. S'il n'y a rien sur lequel former le système, il est préférable de s'entraîner à une telle traduction étape par étape que de ne rien faire.
En général, d'un point de vue théorique, l'idée est belle, mais en pratique l'anglais est utilisé.
Pouvez-vous donner des exemples de problèmes sur lesquels vous travaillez chez Google? Quel est le pourcentage de tâches intéressantes et routinières?
Lorsque j'ai lancé l'assistant russe, il y avait beaucoup de tâches de routine - tout simplement parce que les algorithmes sont universels et que la plupart du travail s'est réduit à la correction manuelle des bogues et à la préparation des données en russe. Nous avons vérifié la qualité, parfois nous avons écrit les données à la main; cela semble très triste, mais nous n'avons pas pu utiliser les données des utilisateurs et nous avons dû les prendre quelque part. Afin de prendre des données, vous pouvez également écrire une règle et générer des données; ou ouvrir les données. Fait intéressant, il était possible de traiter la morphologie, de voir que la génération et la compréhension du texte étaient plus intelligentes et qu'il n'était pas nécessaire d'écrire toutes les formes du mot «réveil» dans une colonne. Malheureusement, il y avait beaucoup de cycles «exécuter-voir-qualité-réparer-à nouveau-exécuter-corriger les données-et ainsi de suite»; C'était amusant au début, mais c'est rapidement devenu une routine. Maintenant,puisque je suis plus dans la recherche, nous faisons notre propre agenda, dans un sens. Je crée simplement de nouvelles données qui peuvent être utiles à l'avenir pour les métriques, et je cherche comment les gens se parlent et aux assistants pour comprendre quels signaux peuvent être utilisés pour former des modèles. Nous analysons la qualité. Une partie du travail que je fais actuellement est le produit, nous essayons de créer une feuille de route des problèmes dans les interactions de dialogue entre une personne et un assistant, pour comprendre comment le classer, pour comprendre ce que nous pouvons résoudre maintenant, quoi plus tard. Autrement dit, maintenant je n'ai presque plus de tâches de routine et je suis satisfait de ma configuration.ce qui pourrait être utile à l'avenir pour les métriques, et pour rechercher comment les gens se parlent et avec les assistants pour comprendre quels signaux peuvent être utilisés pour former des modèles. Nous analysons la qualité. Une partie du travail que je fais actuellement est le produit, nous essayons de créer une feuille de route des problèmes dans les interactions de dialogue entre une personne et un assistant, pour comprendre comment le classer, pour comprendre ce que nous pouvons résoudre maintenant, quoi plus tard. Autrement dit, maintenant je n'ai presque plus de tâches de routine et je suis satisfait de ma configuration.ce qui pourrait être utile à l'avenir pour les métriques, et pour rechercher comment les gens se parlent et avec les assistants pour comprendre quels signaux peuvent être utilisés pour former des modèles. Nous analysons la qualité. Une partie du travail que je fais actuellement est le produit, nous essayons de créer une feuille de route des problèmes dans les interactions de dialogue entre une personne et un assistant, pour comprendre comment le classer, pour comprendre ce que nous pouvons résoudre maintenant, quoi plus tard. Autrement dit, maintenant je n'ai presque plus de tâches de routine et je suis satisfait de ma configuration.nous essayons de créer une feuille de route des problèmes dans les interactions de dialogue entre une personne et un assistant, pour comprendre comment le classer, pour comprendre ce que nous pouvons résoudre maintenant, et plus tard. Autrement dit, maintenant je n'ai presque plus de tâches de routine et je suis satisfait de ma configuration.nous essayons de créer une feuille de route des problèmes dans les interactions de dialogue entre une personne et un assistant, pour comprendre comment le classer, pour comprendre ce que nous pouvons résoudre maintenant, et plus tard. Autrement dit, maintenant je n'ai presque plus de tâches de routine et je suis satisfait de ma configuration.
Cet équilibre semble différent pour différents linguistes. Nous avons récemment fêté un anniversaire - 100 linguistes dans l'entreprise, il y en a maintenant un peu plus. C'est cool, car lorsque j'ai rejoint l'entreprise il y a 4 ans, nous étions 30. Notre demande est en pleine croissance.
Utilisez-vous la définition de contexte pour analyser des textes?
Je ne sais pas si l'auteur de la question est toujours à la recherche - reformulez, s'il vous plaît, je n'ai pas compris.
Nous utilisons le contexte, bien sûr; sans elle, il n'y a pas d'interaction de dialogue. Bien sûr, nous essayons de résoudre des problèmes pour que l'utilisateur, par exemple, ne dise pas «réveil» à chaque fois, mais puisse utiliser des pronoms naturels («régler l'alarme sur 7, non, le changer sur 8»). Cela fonctionne déjà bien pour l'anglais; Je ne me souviens pas s'il était déjà lancé pour le russe.
Pourquoi la colonne en russe n'a-t-elle pas été lancée?
D'après ce que je peux dire, Google a beaucoup de langues différentes. Les priorités doivent être organisées en fonction du volume et de la valeur des marchés, et le marché russe n'est pas le plus intéressant. C'est un peu stimulant qu'il y ait Yandex en Russie, et vous pouvez rivaliser avec lui, mais d'un point de vue pratique, personne ne le veut. De plus, Google a fermé des bureaux de développement en Russie après l'adoption de la loi sur les données personnelles.
Existe-t-il des bibliothèques ouvertes pour la reconnaissance et la génération de la parole, des tableaux de données pour la formation des réseaux de neurones? Dans quelle mesure cette technologie est-elle ouverte?
Oui, plein d'algorithmes open source. Google a récemment publié Bert, une super-nouvelle bibliothèque; maintenant, les conférences sont pleines de mises à jour, qui sont appelées divers mots amusants, à l'intérieur desquels se trouve "Bert" (Albert). Tout cela est open source, réalisé par nos excellents scientifiques à Berlin. Vous pouvez tout entraîner; les communautés scientifiques disposent de données sur lesquelles former les réseaux de neurones et voir ce qui se passe. Comme je l'ai dit, ces données ne suffisent pas pour le russe, plus pour l'anglais, donc tout le monde s'amuse avec lui.
Autrement dit, vous n'avez pas de texte de journal utilisateur?
Nous ne pouvons pas lire les journaux des utilisateurs. Les seules exceptions sont les cas où les utilisateurs se plaignent et on leur demande spécifiquement l'autorisation de partager les dernières déclarations. Mais même dans de tels cas, nous ne voyons qu'un récit du problème à partir de supports spécialement formés et de statistiques agrégées de la forme «l'assistant a répondu qu'il ne comprenait pas, tel ou tel pourcentage de fois». Google prend très soigneusement les données des utilisateurs. Une partie de ce que fait mon équipe consiste à réfléchir à la manière de générer des données réalistes ou de les collecter auprès de personnes spécialement rémunérées. C'est une direction importante pour toutes les équipes industrielles car la confidentialité ne doit jamais être violée. Nous devons chercher de nouvelles méthodes de collecte de données, écrire de nouveaux outils;Je fais ça de près depuis six mois. Malheureusement, les détails n'ont pas encore été publiés. Nous voulions écrire un article pour la conférence, mais l'épidémie a fait obstacle. Lorsque vous travaillez dans une entreprise, vous n'avez en principe besoin d'un article que pour vous rendre à une conférence aux frais de l'entreprise et passer du temps. Et maintenant, toutes les conférences sont en ligne, et vous ne pourrez plus sortir - la motivation pour écrire un article a vraiment disparu. Maintenant, l'épidémie prendra fin et nous le ferons de toute façon.Maintenant, l'épidémie prendra fin, et nous le ferons de toute façon.Maintenant, l'épidémie prendra fin, et nous le ferons de toute façon.
, , ?
Je ne vous montrerai aucun élément de test, mais je peux vous parler de l'entretien. Comme je l'ai dit, nous avons maintenant 100 linguistes, et les entretiens se déroulent désormais dans le format connu des ingénieurs - un entretien dans la piscine. Nous interviewons des linguistes d'affilée, et quand il y a un bon linguiste, nous regardons où il y a un poste vacant et les affectons à des équipes. Nous avons des linguistes de différents profils; quelqu'un programme, quelqu'un ne programme pratiquement pas. Je suis de la deuxième catégorie: je suis plus dans la partie recherche, je ne forme pas de mannequins moi-même - il y a des gars dans l'équipe qui sont engagés dans cela. Nous avons maintenant 8 équipes de linguistes de tailles différentes, et nous avons aussi une équipe d'internalisation, dans laquelle j'étais spécialiste de la langue russe: ce sont des personnes qui surveillent la qualité de l'assistant (maintenant je ne suis qu'un linguiste-chercheur et je fais des tâches non liées à une langue spécifique) ...Selon leur profil, les linguistes font partie de l'une de ces équipes.
Lorsque les tâches concernent une langue spécifique, des locuteurs de langues spécifiques sont nécessaires; ils reçoivent des missions spéciales dans cette langue - nous essayons de savoir si la personne comprend bien les caractéristiques. Par exemple, si nous recrutions pour un poste avec la langue russe (maintenant ce n'est pas là , cependant), nous nous demanderions pourquoi le russe est plus compliqué que l'anglais, quelles méthodes existent pour surmonter ces difficultés, comment fonctionne la morphologie russe, ce qui est nécessaire pour qu'un ordinateur comprenne cela, comment cela affecte par la quantité de données. Si le rôle est général, nous nous demanderons dans quelle mesure une personne comprend les réalités actuelles de la linguistique, dans quelle mesure elle peut penser aux algorithmes. Bien que je ne programme presque jamais moi-même, je comprends bien le fonctionnement du Machine Learning, ce qui est nécessaire pour entraîner le système, les signaux, l'apprentissage supervisé / non supervisé, etc. En fait, c'est ce quece que je demande habituellement dans les interviews. L'exemple le plus courant: «Comment corrigeriez-vous les fautes de frappe? Il y a une quantité infinie d'argent et de développeurs, mais il n'y a pas encore de produit - comment le construire d'un point de vue linguistique, quelles sont les étapes? " En général, vous pouvez poser des questions sur tout composant qui inclut le langage naturel. Comment est-il construit, selon le répondant? Comment une personne va-t-elle en construire une similaire, quels problèmes voit-elle? Comment transférer l'expérience de l'anglais vers le chinois, du chinois vers le russe, du russe vers l'hindi? Comment va-t-il organiser son travail avec une langue qu'il ne connaît pas? Il existe de nombreuses options.quelles sont les étapes? " En général, vous pouvez poser des questions sur tout composant qui inclut le langage naturel. Comment est-il construit, selon le répondant? Comment une personne va-t-elle en construire une similaire, quels problèmes voit-elle? Comment transférer l'expérience de l'anglais au chinois, du chinois au russe, du russe à l'hindi? Comment va-t-il organiser son travail avec une langue qu'il ne connaît pas? Il existe de nombreuses options.quelles sont les étapes? " En général, vous pouvez poser des questions sur tout composant qui inclut le langage naturel. Comment est-il construit, selon le répondant? Comment une personne va-t-elle en construire une similaire, quels problèmes voit-elle? Comment transférer l'expérience de l'anglais au chinois, du chinois au russe, du russe à l'hindi? Comment va-t-il organiser son travail avec une langue qu'il ne connaît pas? Il existe de nombreuses options.
Surveillez-vous le comportement de l'utilisateur: quelle commande l'utilisateur a-t-il donné, quelle action a été entreprise par l'appareil?
Nous ne pouvons pas surveiller le comportement des utilisateurs. Nous ne pouvons proposer que des méthodes pour le simuler et tester la réponse du système. C'est ce que nous faisons réellement: essayer de comprendre comment le mesurer et essayer de collecter des données pour entraîner les algorithmes.
Comment le contexte de la conversation est-il suivi? Combien de mémoire est utilisée pour cela? Y a-t-il une persistance entre les sessions?
Y a-t-il beaucoup d'utilisation de la mémoire - je ne connais pas les détails, ce n'est même pas pour le département où je travaille. Notre département est plus soucieux de la qualité, mais il y a des départements qui cherchent à voir s'il y a assez de mémoire, s'il y a des fuites, si l'assistant est stupide pendant 10 minutes pour régler l'alarme.
Nous suivons le contexte. Jusqu'à présent, malheureusement, en une seule session. C'est l'une des tâches que notre département - mon équipe, les équipes d'ingénierie voisines - résoudra au cours de la prochaine année. Une tâche très cool et intéressante: combien de temps conserver le contexte, à quel moment considérer que la conversation est terminée, s'il faut toujours garder le contexte de l'utilisateur, quelles informations sur l'utilisateur le système stockera en lui-même. Relativement parlant, si un utilisateur dit "Je déteste la pizza", il est probablement bon de garder ce contexte pour toujours et de demander une fois par an si la situation a changé. Et, si l'utilisateur répond qu'il n'a pas changé, n'offrez pas de livraison de pizza. Alors que les assistants ne savent pas comment faire cela - malheureusement, ils sont encore très loin d'être parfaits, ils auraient besoin de beaucoup plus de contextes différents.
Maintenant, nous pouvons comprendre les pronoms en une seule session («régler l'alarme, la régler à 8 heures»). Nous travaillons à élargir ce contexte et à mener séparément des recherches pour comprendre quel contexte est utile, combien il en faut, où et dans quelle quantité le stocker. Bien sûr, Google a de nombreux serveurs, nous n'avons donc pas besoin d'économiser de l'argent, mais nous voulons que l'assistant ne traite pas chaque demande pendant 3 heures. C'est assez rapide maintenant, mais pas parfait; et si nous le rendons parfait, nous aimerions qu'il continue à fonctionner rapidement.
Avez-vous une compétition entre équipes?
Oui et non. Bien sûr, en fonction de l'organisation du travail dans Google, vous pouvez effectuer une diffusion distincte. Nous avons beaucoup d'initiatives locales; les gens peuvent essayer de faire des prototypes de n'importe quoi, le suggérer aux patrons - les patrons sont toujours très ouverts, et ils proposeront aux patrons supérieurs. Beaucoup de projets découlent du fait que quelqu'un a essayé de faire quelque chose, il a réussi, et il a été décidé de le faire dans une qualité adaptée à la sortie. Bien sûr, il y a des situations où à 5 endroits en même temps des gens arrivent à la même idée, et 10 prototypes sont obtenus. À un tel moment, vous devez parfois choisir l'un des prototypes, mais généralement ils essaient d'unir les gens dans une équipe afin qu'ils puissent développer une nouvelle fonctionnalité ensemble, la mettre en production et tout le monde est heureux.
Donc, il y a de la concurrence, mais nous essayons de maintenir la concurrence saine, afin qu'il n'y ait pas trop de politique. Dans l'ensemble, l'ambiance est géniale. Nous sommes maintenant assis entre la recherche et la production, apportant des idées, nous sommes à l'épicentre avec les chefs de produit, et avec les projets, et avec tout le monde - tout le monde est coordonné et coopéré. Chaos, mais tout est spirituel.
Que se passera-t-il plus vite - feront-ils un assistant vocal intelligent qui ne comprendra rien de pire qu'une personne, ou Elon Musk inventera-t-il une interface neuronale?
Je ne sais rien du stade auquel se trouve l'interface neuronale. Mais un assistant vocal intelligent qui comprendra aussi bien qu'une personne est encore très loin. Jusqu'à présent, personne ne comprend comment faire comprendre à l'assistant. Tous les chatteurs sur de puissants réseaux de neurones sont des imitations. J'ai vu une question sur le test de Turing - c'est aussi un test d'imitation, pour savoir à quel point le système prétend être humain et prétend qu'il comprend, mais après tout, aucun système ne comprend rien. Il y avait le chatbot Eugene Goostman, qui a remporté l'un des tests - a réussi un certain pourcentage des juges qui ont dû être trompés. Il se faisait passer pour un garçon de 15 ans d'Odessa avec son père, un gynécologue et un cobaye (ce n'est pas une blague - il parlait de lui-même). Le bot a gardé un peu le contexte en demandant: "D'où venez-vous?" - et s'est souvenu de la ville de la réponse,puis utilisé le mémorisé après un certain temps, provoquant un effet wow. Bien que maintenant, il ne soit pas trop difficile de créer un effet wah avec des assistants vocaux; ils ne sont pas parfaits. De plus, comme le concours était en anglais, les irrégularités dans le discours du bot étaient attribuées au fait qu'il était "d'Odessa" - ils croyaient en un garçon étranger.
La question est de savoir comment appeler «comprendre», qu'est-ce que «comprendre aussi bien qu'un humain» et ce que nous attendons des robots de discussion. Personne ne connaît non plus la réponse à cette question. Voulons-nous qu'il discute avec nous comme un meilleur ami, ou qu'il contrôle en permanence la maison intelligente et la voiture et règle des réveils? Que peut-il faire? Peut-il nous appeler des noms et nous narguer? Ce n'est pas que nos meilleurs amis appellent tous des noms et se moquent, mais il existe des moyens spéciaux de communiquer avec leurs proches. Peut-être ne voudrions-nous pas que le système nous parle gentiment et raconte des anecdotes?
Qu'est-il arrivé avant
- Ilona Papava, ingénieur logiciel senior chez Facebook - comment obtenir un stage, obtenir une offre et tout sur le travail en entreprise
- Boris Yangel, ingénieur Yandex ML - Comment ne pas rejoindre les rangs des spécialistes stupides si vous êtes un Data Scientist
- , EO LastBackend — , 15 .
- , Vue.js core team member, GoogleDevExpret — GitLab, Vue Staff-engineer.
- , DeviceLock — .
- , RUVDS — . 1. 2.
- , - . — .
- , Senior Digital Analyst McKinsey Digital Labs — Google, .
- «» , Duke Nukem 3D, SiN, Blood — , .
- , - 12- — ,
- , GameAcademy — .
- , PHP- Badoo — Highload PHP Badoo.
- , CTO Delivery Club — 50 43 ,
- , Doom, Quake Wolfenstein 3D — , DOOM
- , Flipper Zero —