Träumen Sprachassistenten von Elektropoetik? Interview mit Tatiana Lando: Google Analyst Linguist



Am 24. August sprachen wir live mit Tatiana Lando, einer Sprachanalytikerin bei Google. Tatiana arbeitet an Google Assistant und ist an Projekten zwischen Produktion und Entwicklung beteiligt. Sie untersucht, wie Menschen miteinander sprechen und welche Strategien sie anwenden, um dem Assistenten mehr menschliches Verhalten beizubringen. Kam zu Google, um an einem Assistenten für den russischen Markt und die russische Sprache zu arbeiten. Zuvor arbeitete sie 8 Jahre bei Yandex. Sie beschäftigte sich mit Sprachtechnologien und der Extraktion von Fakten aus unstrukturiertem Text. Tatiana ist eine der Gründerinnen der AINL: Artificial Intelligence and Natural Language Conference.



Wir teilen Ihnen das Protokoll der Sendung mit.









Wenn ich sage, dass ich ein Linguist bin, fragen sie mich bestenfalls, ob ich die Strugatskys gelesen habe, in denen es um die "strukturellen Linguisten" ging. Im schlimmsten Fall werde ich gefragt, wie viele Sprachen ich kenne. Linguisten sind keine Menschen, die viele Sprachen beherrschen. Menschen mit jeder Spezialität können viele Sprachen sprechen, es ist nicht verbunden. Ein Linguist ist eine Person, die versteht, wie Sprache funktioniert, wie Kommunikation zwischen Menschen funktioniert. Dies ist eine große wissenschaftliche Disziplin, die neben meiner Arbeit noch viele andere Aspekte hat. Es gibt eine Analyse von Texten, um die Urheberschaft festzustellen, es gibt Linguistik in der Forensik - wenn Linguisten beispielsweise feststellen, ob ein Text Extremismus enthält. Dies ist ein Beispiel.



Die Computerlinguistik, die ich mache, zielt hauptsächlich darauf ab, Sprachschnittstellen zwischen Technologie, Computern und Menschen zu entwickeln und numerische Methoden in die Sprachverarbeitung einzuführen. Es gibt einen ganzen Bereich der Korpuslinguistik - wenn wir versuchen, Texte in großen Mengen automatisch zu verarbeiten, um anhand der erhaltenen Daten Rückschlüsse auf die Funktionsweise der Sprache zu ziehen. Ich arbeite an einem Google-Assistenten - es ist eine Sprachschnittstelle zwischen einem Telefon oder Computer und einer Person.



Bevor ich nach London zog und bei Google anfing, arbeitete ich 7,5 Jahre bei Yandex, wo ich auch Computerlinguistik studierte. Die Aufgaben, mit denen ich bei Yandex beschäftigt war, umfassten ein ziemlich breites Spektrum von Aufgaben in der Computerlinguistik. Wir haben Morphologie und Syntax untersucht - wie sich Wörter ändern, wie Wörter kombiniert werden. In dieser Hinsicht ist die russische Sprache komplizierter als die englische, da es auf Englisch keine Fälle gibt, es gibt nur zwei Formen von Substantiven, alles ist relativ einfach (in Russisch - 6-9 Fälle, eine seltsame Pluralbildung - nun, alle Muttersprachler kennen diese Merkmale). Als ich zu Google wechselte, wurde ich als Spezialist für die russische Sprache eingestellt, obwohl ich jetzt schon etwas anderes mache.



Gibt es offene Stellen im Zusammenhang mit der Entwicklung der russischen Version des Google-Assistenten? Wie bekommst du einen Google Assistant-Job?



Mit der russischen Version des Google-Assistenten sind keine offenen Stellen verbunden. Google versucht, Methoden zu entwickeln, die auf die maximale Anzahl von Sprachen gleichzeitig abzielen. Die Spezifität von Sprachen sollte mithilfe von Daten und nicht mithilfe spezifischer Methoden gelöst werden. Das heißt, die Algorithmen für Russisch, Englisch, Deutsch, Chinesisch - alle unterstützten Sprachen sind gleich, wenn auch mit einigen Nuancen. Es gibt viele gemeinsame Teile, und Personen, die sich mit einer bestimmten Sprache befassen, überwachen hauptsächlich die Qualität der Daten und fügen spezielle Module für einzelne Sprachen hinzu. Zum Beispiel wird für Russisch und andere slawische Sprachen Morphologie benötigt (das ist es, worüber ich gerade gesprochen habe - Fälle, Pluralbildung, komplexe Verben). Und in der türkischen Sprache gibt es eine noch komplexere Morphologie - wenn es auf Russisch nur 12 Substantivformen gibt,dann ist es auf Türkisch viel mehr. Daher benötigen wir spezielle Module, die sprachabhängige Teile behandeln. Dies geschieht jedoch mithilfe von Linguisten, die ihre eigene Sprache kennen, und allgemeinen Sprachingenieuren, die Algorithmen unter Verwendung von Daten schreiben. Wir arbeiten zusammen, um die Qualität dieser Algorithmen und Daten zu verbessern. Dementsprechend haben wir keine speziellen Stellenangebote für die russische Sprache, aber es gibt offene Stellen in der Entwicklung von Google Assistant, hauptsächlich in Zürich, Kalifornien, New York, ziemlich viel - London.Wir haben keine offenen Stellen für die russische Sprache, aber es gibt offene Stellen in der Entwicklung von Google Assistant, hauptsächlich in Zürich, Kalifornien, New York, ziemlich viel - London.Wir haben keine offenen Stellen für die russische Sprache, aber es gibt offene Stellen in der Entwicklung von Google Assistant, hauptsächlich in Zürich, Kalifornien, New York, ziemlich viel - London.



, ?



Als ich vor 4 Jahren umzog, war London noch Europa. Eigentlich ist er jetzt Europa, aber nicht die EU. Ich mag London sehr, jeder spricht Englisch, keine Notwendigkeit, eine andere Sprache zu lernen. Nicht, dass ich keine andere Sprache lernen wollte, aber der Zugang zum Umzug war minimal. Es gibt hier auch ausgezeichnete Theater, ich gehe sehr gerne ins Theater. Natürlich sind jetzt alle Vorteile Londons in Bezug auf Kultur und Unterhaltung etwas ausgeglichen, aber hoffen wir auf das Beste. Außerdem ist es mit einem Visum hier viel einfacher als in Zürich - in der Schweiz ändert sich aus irgendeinem Grund die Visagesetzgebung regelmäßig. Es stellte sich heraus, dass es viel einfacher war, mich und ein paar andere Leute nach London zu bringen, und wir ließen uns hier nieder. Ich mag es hier, ich möchte mich nirgendwo bewegen. Geschäftsreisen nach Kalifornien bringen mich in Melancholie - dort muss man ein Auto nehmen, große Entfernungen. Obwohl es dort mehr Karrieremöglichkeiten gibt.



?



Es ist schwieriger als Englisch. Tatsächlich sind fast alle Sprachen komplizierter als Englisch. Diese Komplexität hat zwei verschiedene Seiten. Erstens die sehr komplexe Morphologie. Darüber hinaus verfügt die russische Sprache über eine freie Wortreihenfolge, was die Arbeit bei der Erstellung eines Algorithmus erschwert. Wenn es festgelegt ist, wird für den bedingten "Mama-Seifenrahmen" ein Satz benötigt, um dem System beizubringen, "Subjekt-Prädikat-Objekt" zu verstehen. Wenn diese Wörter jedoch in beliebiger Reihenfolge vorliegen können, werden mehr Daten benötigt. Gleichzeitig gibt es viele vorgefertigte Ressourcen für die englische Sprache; Die gesamte wissenschaftliche Welt beschäftigt sich mit Englisch, alle Unternehmen beschäftigen sich mit Englisch, weil sie auf dem amerikanischen Markt konkurrieren. Und viel weniger ist in anderen Sprachen involviert, es gibt weniger Mittel, weniger Unternehmen. Wenn es noch Chunks oder fertige Daten für Deutsch oder Französisch gibt,was wiederverwendet werden kann, dann ist die russische Sprache schlechter. Es gibt fertige Koffer, aber sie sind klein und nicht für alles geeignet. Das heißt, für die russische Sprache sind viel mehr Daten erforderlich als für die englische, es sind jedoch weniger Daten verfügbar. Plus zusätzliche grammatikalische Ebenen; Sie können versuchen, dieselbe Morphologie separat zu verstehen, und dann die Datenmenge reduzieren, die für eine qualitativ hochwertige Arbeit des Parsers auf Russisch (im Vergleich zu Englisch) erforderlich ist.die für eine qualitativ hochwertige Arbeit des Parsers auf Russisch (im Vergleich zu Englisch) benötigt werden.die für eine qualitativ hochwertige Arbeit des Parsers auf Russisch (im Vergleich zu Englisch) benötigt werden.



Daher stellt sich heraus, dass die russische Sprache wie andere slawische Sprachen ziemlich schwierig ist. Türkische Sprachen sind noch schwieriger; Orientalische Sprachen haben andere Probleme: Zum Beispiel hat Chinesisch keine Leerzeichen zwischen Wörtern. Sie müssen verstehen, wie man eine Reihe von Texten in Stücke zerlegt, um zu bestimmen, was jedes Stück sagt. Im Allgemeinen hat jede Sprache ihre eigenen Witze, aber im Grunde kann aufgrund der großen Menge an Sprachdaten, auf denen die Aufgaben gelöst werden, alles gelöst werden. Alles beruht auf der Tatsache, dass es nicht sehr viele davon für die russische Sprache gibt, und daher ist es schwierig, damit zu arbeiten, und für Englisch - im Gegenteil.



Kann die Computerlinguistik beispielsweise in den Verhandlungen der Piloten mit dem Boden unverständliche Stellen rekonstruieren?



Ja natürlich. Grundsätzlich ähnelt der Algorithmus, der dies tun würde, Suchvorschlägen. Wenn Sie einen Suchbegriff (für eine beliebige Sprache) eingeben, bietet Ihnen das System die beliebtesten Suchanfragen mit einigen Filtern. Der Algorithmus ist natürlich etwas komplizierter, aber wir werden ihn aus Gründen der Klarheit vergessen. Das System schlägt die häufigsten Wortkombinationen in der Abfrage vor, beginnend mit den bereits eingegebenen. Eine ähnliche Technik kann verwendet werden, um dunkle Stellen wiederherzustellen. Es gibt viele Verhandlungen, dies ist ein riesiges Korpus von Texten, und Sie können sie analysieren und sehen, welche Teile am häufigsten vorkommen. Ich selbst habe mich nie mit dem Thema Verhandlungen zwischen Piloten und dem Boden befasst, aber ich vermute, dass es viele ähnliche Vorschläge geben sollte, die Struktur der Informationen ziemlich kodifiziert ist, die Art der Kommunikation Standard ist - solche Dinge sind ziemlich leicht vorherzusagen, so dass sie leicht wiederhergestellt werden können.



Erzählen Sie uns von Akustik und Reinigung von Tonsignalen in Sprachassistenten



Darüber weiß ich fast nichts, ich beschäftige mich nur mit geschriebenem Text. Phonetik, Akustik sind nicht meine Bereiche. Ich bin mir jedoch sicher, dass es Audiomethoden gibt, mit denen das Signal gelöscht werden kann. An der Schnittstelle zwischen Audiosignalen und der Vorhersage-Engine können Sie Hypothesen herausfiltern und Text wiederherstellen.



Was ist die am schwierigsten zu verarbeitende und zu verstehende Sprache?



Sie sind alle komplex. Es ist nicht so, dass einer von ihnen an sich komplizierter oder einfacher ist; Es gibt viele Daten für Englisch, daher ist es einfacher, damit zu arbeiten, und jeder tut es.



Es stellt sich ein Teufelskreis heraus: Wenn Konferenzteilnehmer einen neuen Algorithmus ausprobieren möchten, nehmen sie bekannte Korpusse und beobachten, wie die Zahlen auf den Metriken wachsen. Um Ihren Algorithmus zu messen, benötigen Sie einen guten Korpus. Es gibt viele gute Korpusse auf Englisch, daher führen sie Algorithmen auf Englisch aus, erhalten eine Steigerung und regen dadurch andere Forscher an, noch mehr Korpusse zu erstellen, um Löcher in den Algorithmen zu finden. Dies ist eine Aufgabe, für die es einfach ist, ein Stipendium zu erhalten. Zum Beispiel gibt es 10 Algorithmen, um Fragen automatisch zu beantworten. Auf dem vorhandenen Korpus sind diese Algorithmen mehr oder weniger ähnlich, und die Forscher beschließen, einen neuen Korpus zu erstellen, um den Unterschied zwischen ihnen zu erkennen. Dies ist eine gute Aufgabe, die eine bessere Abstimmung der Algorithmen ermöglicht. Sie tun es und es gibt mehr Korpusse für Englisch - und je mehr Korpusse, desto mehr Algorithmen erscheinen.Wenn Sie sich die Arbeit im Bereich NLP in den letzten Jahren ansehen, messen Konferenzen nicht einmal Prozentsätze, sondern Bruchteile einer prozentualen Qualitätssteigerung.



Im Allgemeinen ist dies bei praktischen Problemen nicht sehr hilfreich, und es handelt sich nicht wirklich um Computerlinguistik. So gehen Ingenieure mit Sprache um, wenn sie nicht mit Linguisten zusammenarbeiten (dh entweder mittelmäßig oder sehr theoretisch).



Warum gibt es nicht genügend Daten für die russische Sprache?



Diese Frage quält mich all die Jahre des Studiums der russischen Sprache an der Universität, an der ich angewandte Linguistik studiert habe.



Ich weiß nicht. Vielleicht gibt es in der russischen Wissenschaft einfach nicht genug Geld, und daher werden nur wenige Daten für die russische Sprache erstellt. Konferenzen in Russland sind im Allgemeinen etwas veraltet; Es gibt Konferenzen zur angewandten Linguistik, zur automatischen Verarbeitung natürlicher Sprache, aber es gibt nur sehr wenige große Teams, die sich damit befassen. Wissenschaftler gehen zu großen Unternehmen - Yandex, ABBYY, jetzt stellt MTS auch Linguisten ein; Mit dem Aufkommen von Sprachassistenten ist der Beruf gefragter geworden. Sie gehen auch ins Ausland; Es gibt viele Linguisten in Startups, Amazon und Google.

Der einzige große Korpus ist der National Corpus der russischen Sprache. Es gibt auch einen Korpus meiner Freunde - den Offenen Korpus der russischen Sprache; Im Allgemeinen ist es jedoch sehr schwierig, eine Finanzierung dafür zu erhalten, und nur wenige Menschen interessieren sich dafür.



Es gab Wettbewerbe von Algorithmen, für die kleine Korpora für bestimmte Aufgaben erstellt wurden - zum Beispiel um zu vergleichen, wie ein System Fragen auf Russisch beantwortet oder Befehle auf Russisch versteht -, aber diese Daten reichen nicht aus, um große Systeme zu trainieren. Es stellt sich auch als Teufelskreis in die andere Richtung heraus: Es gibt nichts zu trainieren, also gibt es nichts zu trainieren, es gibt nichts zu messen, also gibt es keine Daten. Außerdem werden mehr Daten benötigt als für Englisch. Nachdem ich mein Diplom erhalten hatte, ging ich fast sofort zu Yandex, daher fällt es mir schwer zu sagen, warum es hier nicht funktioniert.



Welchen Ansatz verfolgt Google bei der Sprachverarbeitung? Neuronale Netze oder Algorithmen?



Neuronale Netze sind ebenfalls Algorithmen. Ich verstehe die Dichotomie nicht ein bisschen, aber ich werde versuchen, Ihnen zu sagen, welche (und allgemein) Ansätze wir bei der analytischen Verarbeitung von Sprache in der Computerlinguistik haben.



Die ältesten historischen Ansätze sind regelbasierte Ansätze. Linguisten schreiben Regeln von Hand, fast wie eine Programmiersprache. Angenommen, im wahrgenommenen Text gibt es zuerst das Subjekt, dann das Verb, dann das Prädikat; Wenn das Prädikat in einem Fall ist, dann - eine Schlussfolgerung und so weiter. In Fällen, in denen der Nutzer beispielsweise "OK Google, setzen Sie den Wecker auf 7 Uhr morgens" sagt, können Sie die folgende Regel festlegen: Setzen Sie - ein beliebiges Wort - Wecker - auf - Nummer - morgens. Dies ist eine Vorlage, die beschrieben und dem System beigebracht werden kann: Wenn Sie eine solche Vorlage verwenden und sie funktioniert, müssen Sie den Alarm zu dem in Form einer Zahl angegebenen Zeitpunkt einstellen. Natürlich ist dies ein sehr primitives Muster, man kann es viel komplizierter machen. Sie können kombiniert werden: Beispielsweise extrahiert eine Vorlage Datum und Uhrzeit, dann wird eine Vorlage zum Einstellen eines Alarms darüber geschrieben.



Dies ist ein sehr alter Ansatz, er ist bereits 70 Jahre alt - so wurde 1966 Eliza geschrieben, die erste Chatbotin, die sich als Psychoanalytikerin ausgibt. Dann waren die Leute sehr überrascht. Es gab Geschichten, die die Macher dieses Chatbots ihren Kollegen zeigten, und sie warfen sie aus dem Raum, um mit einem "echten" Psychoanalytiker zu sprechen. Und dieser Bot wurde nur nach den Regeln geschrieben - dann war es ein Durchbruch. Jetzt wollen wir das natürlich nicht, weil viele Regeln benötigt werden - stellen Sie sich vor, wie viele verschiedene Sätze Sie nur zum Einstellen eines Alarms verwenden können. Wenn Sie reine Regeln verwenden, müssten Sie jede manuell beschreiben. Wir haben vor langer Zeit auf Hybridsysteme umgestellt: Sie können Muster wahrnehmen, aber im Allgemeinen versuchen wir, neuronale Netze für maschinelles Lernen zu verwenden und überwachte Ansätze auf überwachtes Lernen anzuwenden. Also,Wir markieren die Daten und sagen: Ok, in diesem Array von dem, was der Benutzer sagen kann, ist dieser Teil Zeit und normalisiert sich so. Dieser Teil ist das Gerät, auf dem der Benutzer den Alarm einstellen möchte, und dieser Teil ist beispielsweise der Name des Alarms. Damit können Sie um 7 Uhr morgens einen Wecker auf Ihrem iPhone mit dem Namen "Schule" einstellen. Als nächstes setzen wir einen großen Korpus, trainieren den Parser darauf, dann wird der Parser auf Benutzeranforderungen angewendet und somit erkennen wir sie. So funktioniert Google Assistant jetzt und diesen Ansatz verwenden wir jetzt.Als nächstes setzen wir einen großen Korpus, trainieren den Parser darauf, dann wird der Parser auf Benutzeranforderungen angewendet und somit erkennen wir sie. So funktioniert Google Assistant jetzt und diesen Ansatz verwenden wir jetzt.Als nächstes setzen wir einen großen Korpus, trainieren den Parser darauf, dann wird der Parser auf Benutzeranforderungen angewendet und somit erkennen wir sie. So funktioniert Google Assistant jetzt und diesen Ansatz verwenden wir jetzt.



Es klingt primitiv, jetzt in der Literatur und in den Nachrichten werden oft Informationen darüber veröffentlicht, wie neuronale Netze auf riesigen Körpern selbstständig lernen, sie beantworten alles und unterstützen Gespräche. Dies ist natürlich wahr und cool, aber solche Ansätze sind nutzlos, wenn das System nicht nur antworten, sondern auch seinen Status ändern muss - zumindest mit der Einstellung eines Weckers. Trotzdem ist eine interne Darstellung erforderlich, zu der irgendwie das gebracht werden muss, was der Benutzer gesagt hat. Selbst wenn wir eine große Anzahl von Texten haben, in denen der Benutzer einen Alarm einstellen möchte und dieser nicht markiert wird, können wir den Parser nicht so trainieren, dass er das System ändert. Wir können ihn so trainieren, dass er "Ja, ich stelle den Alarm ein" sagt und nichts unternimmt. Aber um das System so zu trainieren, dass es seinen Status unter Verwendung unbeschrifteter Daten ändert,noch nicht möglich. Was kürzlich von OpenAI und DeepMind - einem Teil von Alphabet, der Muttergesellschaft von Google - veröffentlicht wurde, ist cool. Es handelt sich um gute Chatbot-Techniken, die auf Menschen reagieren, aber es gibt keine Techniken, die manuelle Arbeit ausschließen, um den Status des Systems zu ändern. Leider hat die Branche in diesem Sinne mittlerweile eher niedrige Standards - nicht nur für den Google-Assistenten; Alle Assistenten arbeiten mit viel manueller Arbeit ungefähr auf dem gleichen Ansatz - entweder indem sie Daten für Parser verarbeiten oder Regeln schreiben (was wir nicht wollen). Wir versuchen, mit Hilfe von Partnerunternehmen Handarbeit zu leisten.ohne Handarbeit zur Änderung des Systemzustands, Nr. Daher hat die Branche in diesem Sinne leider eher niedrige Standards - nicht nur für den Google-Assistenten. Alle Assistenten arbeiten mit viel manueller Arbeit ungefähr auf dem gleichen Ansatz - entweder indem sie Daten für Parser verarbeiten oder Regeln schreiben (was wir nicht wollen). Wir versuchen, mit Hilfe von Partnerunternehmen Handarbeit zu leisten.ohne Handarbeit zur Änderung des Systemzustands, Nr. Leider hat die Branche in diesem Sinne mittlerweile eher niedrige Standards - nicht nur für den Google-Assistenten; Alle Assistenten arbeiten mit viel manueller Arbeit ungefähr auf dem gleichen Ansatz - entweder indem sie Daten für Parser verarbeiten oder Regeln schreiben (was wir nicht wollen). Wir versuchen, mit Hilfe von Partnerunternehmen Handarbeit zu leisten.Wir versuchen, mit Hilfe von Partnerunternehmen Handarbeit zu leisten.Wir versuchen, mit Hilfe von Partnerunternehmen Handarbeit zu leisten.



Erzählen Sie uns von den vielversprechenden Richtungen bei der Entwicklung des Google-Assistenten.



Eigentlich, was wir gerade besprochen haben. Die Richtung besteht darin, ein neues Trainingssystem zu entwickeln, das den Status des Systems anhand von Daten ändern kann, ohne dass eine manuelle Datenverarbeitung erforderlich ist. Das wäre cool. Obwohl ich bereits viel Erfahrung mit Assistenten habe, kann ich mir bisher nur schwer vorstellen, wie ein solches System im Prinzip funktionieren würde. Ich verstehe, wie neuronale Netze, Lehrmethoden und hybride Ansätze jetzt komplizierter werden, wie die Vorbereitung von Daten für das Training immer komplizierter wird - aber ich verstehe nicht, wie man eine direkte Verbindung zwischen Daten ohne Lehrer herstellt und das System ändert. Es muss eine Art interne Repräsentation geben, die dies ermöglicht. Wenn jemand diesen Teil revolutionieren und neu interpretieren kann, wäre das großartig.



Außerdem wird jetzt viel in die Erstellung dieser internen Darstellung investiert. Wenn wir also nicht direkt von Daten ohne Markup zur Änderung des Systemzustands wechseln können, müssen wir einen Algorithmus erstellen, der dabei hilft, etwas dazwischen zu tun. Nehmen wir an, Sie generieren eine Darstellung des Systems aus Text, und dann bereinigen die Benutzer das System - anstatt es von Grund auf neu zu erstellen. Dies ist eine sehr vielversprechende Richtung, und obwohl es kaum Fortschritte gibt, suchen die Forscher genau dort.



Plus - neue Signale für Antworten und für die Konversation der Assistenten. Und Bewertungsmethoden. Jetzt haben wir (dh in der Branche im Allgemeinen) keine einzige adäquate Methode zur Bewertung der Qualität von Dialogsystemen, keine einzige Metrik, anhand derer man den Assistenten, Alice, Alex, Siri usw. vergleichen kann. Sie können Benutzer befragen, versuchen, ähnliche Szenarien mit verschiedenen Assistenten zu lösen und daraus Schlussfolgerungen zu ziehen, aber es gibt keine geeignete quantitative Metrik. Für die maschinelle Übersetzung gibt es eine Metrik, die mehr oder weniger normal ist, aber dafür - nichts; Dies ist eines der Probleme, die derzeit in der Branche auf Konferenzen diskutiert werden. Die Dialogkorpora für Englisch haben endlich begonnen; es gibt auch sehr wenige von ihnen. Es gibt nichts, um die Metriken zu zählen, es gibt niemanden und es ist nicht klar, wie. Wenn jemand eine gute Idee hat,dann wird diese Person alle Lorbeeren auf Konferenzen sammeln, ein Startup gründen und es überall verkaufen. Ich hätte jedes Projekt abgerissen, das dazu beitragen würde, den Unterschied zwischen Assistenten quantitativ in Zahlen zu messen.



Separat gibt es eine Hybridstudie, die ich jetzt am meisten mache - im letzten Jahr bin ich von Russisch zu diesem Thema gewechselt. Ich mache Projekte, um den Assistenten gesprächiger und natürlicher zu machen. Wir beobachten, wie Menschen miteinander reden. Hier werden nicht nur die Wörter verwendet („Alarm einstellen / einstellen“); Tatsächlich ist dieser Teil primitiv und wurde bereits gelöst, obwohl noch viel Routine zu erledigen ist. Ungelöste Aufgaben sind beispielsweise, wenn der Benutzer in verschiedenen Formen sagt: "Setzen Sie mir einen Alarm", "Können Sie einen Alarm einstellen?", "Könnten Sie einen Alarm einstellen?" Etwa das Gleiche, aber in einem Fall wird der Befehl verwendet, in anderen - Fragen. Wir betrachten diese Ebene der Linguistik - Pragmatik, das heißt, was über die Bedeutung hinausgeht - Semantik. Für diejenigen, die Linguistik oder Sprache studiert haben,Semantisches Markup im Text ist kein neuer Begriff, aber Pragmatik fügt ihm zusätzlichen Kontext hinzu. das heißt, nicht nur "was sie sagen", sondern auch "wie sie sagen", "warum sie sagen". Grob gesagt, wenn der Benutzer dem Assistenten sagt: "Bist du dumm?", Will er keine "Ja / Nein" -Antwort - dies ist ein weiteres Signal, und Sie müssen fragen, was im Verhalten des Systems vorher falsch war. Dies sollte nicht als Frage, sondern als Beschwerde eingestuft werden.



Meine Gruppe - ich habe jetzt drei Linguisten übrig, nachdem ich in eine andere Abteilung gewechselt bin - versucht nun zu verstehen, wie Menschen miteinander interagieren, wie Menschen mit Assistenten interagieren und wie dies in Signale für maschinelles Lernen umgewandelt und das System wirklich trainiert wird, um die Dinge besser zu verstehen nonverbal und indirekt übertragen.



Wie wäre es mit der Anzahl der Abfragen und Stubs in Bezug auf die Frage in der Problemstellung?



Dies ist eine gute Metrik, berücksichtigt jedoch leider nur die Anzahl der Sätze, die der Benutzer vom Assistenten nicht verstanden hat. Es sagt uns nicht, wie schwierig diese Sätze waren, wie angenehm die Benutzererfahrung war. Schreiben Sie mir später nach der Sendung, jeder, der Ideen zum Vergleichen von Assistenten hat, kann separat darüber sprechen - aber dort ist etwas sehr Kompliziertes erforderlich. In separaten Abschnitten haben wir bereits gelernt, etwas zu verstehen - zum Beispiel, wie viel Prozent der Benutzeranforderungen das System nicht versteht oder ab dem N-ten Mal versteht und wo es Fehler gab - bei der Übersetzung von Sprache in Text, auf dem Text selbst, irgendwo weiter, wenn Änderungen vorgenommen werden Systeme. Es ist jedoch bereits schwieriger zu beurteilen, wie angemessen das System reagiert hat: Was ist eigentlich eine „angemessene Antwort“? Es gibt auch alle Arten von "Kirschen auf dem Kuchen" wie Fälle, in denen ein Benutzer das System als "Sie" anspricht.und sie antwortet "du" - ist es gut oder schlecht? Es scheint schlecht zu sein, der Assistent ist eine untergeordnete Figur.



Im Allgemeinen gibt es viele kleine Chips, die bei quantitativen Messungen schwer zu berücksichtigen sind.



Gibt es eine gemeinsame Zwischensprache für die vereinfachte Verarbeitung und den anschließenden Wechsel zur gewünschten Sprache?



Dies ist eine großartige Frage, aber nicht ich, sondern ABBYY-Vertreter, die seit vielen Jahren genau das versuchen. Das heißt, in der Linguistik gibt es die Idee, dass alle Sprachen auf ähnliche Weise aufgebaut sind und Sie eine universelle Grammatik, ein Wörterbuch und alles andere erstellen können, um eine mittlere Verbindung zwischen allen Sprachen herzustellen. Dann könnte man von einer Sprache in eine Metasprache und dann in eine andere Sprache übersetzen. Viele Mannjahre wurden für diese Aufgabe aufgewendet, aber es stellte sich - trotz der Schönheit der Idee - heraus, dass die Sprachen immer noch sehr unterschiedlich sind und es fast unmöglich ist, eine solche Zuordnung durchzuführen. Und es ist nicht klar, wie das automatisch geht - nicht von Hand. Infolgedessen ist das Thema ausgestorben.



Es stellte sich heraus, dass maschinelle Übersetzung von ausreichender Qualität und ohne Metasprache ist, wenn Sie viele Daten eingeben und ein neuronales Netzwerk betreiben. Neuronale Netze können Muster gut berechnen, auch grammatikalische. Wenn also die Datenmenge ausreicht, können sie selbst ohne Aufforderung von einer Zwischenverbindung zurechtkommen. In der maschinellen Übersetzung funktioniert alles gut, wenn es gute parallele Texte gibt. Zum Beispiel gibt es viele parallele Texte zwischen Russisch und Englisch, aber es gibt überhaupt keine zwischen Russisch und einer indianischen Sprache - aber es gibt viele parallele Texte zwischen Russisch und Englisch, dh Englisch kann die Rolle einer Zwischensprache spielen. Oft wird eine Übersetzung aus dem Russischen zuerst ins Englische und dann in eine dritte Sprache vorgenommen. Diese Technik ist häufig genugDamit ersetzt Englisch in der Praxis dieselbe Metasprache - schließlich stammen die am meisten übersetzten Daten ins und vom Englischen. Qualität leidet natürlich, aber es ist besser als nichts. Wenn es nichts gibt, worüber das System unterrichtet werden kann, ist es besser, eine solche schrittweise Übersetzung zu unterrichten, als nichts zu tun.

Im Allgemeinen ist die Idee aus theoretischer Sicht schön, aber in der Praxis wird Englisch verwendet.



Können Sie Beispiele für Probleme nennen, an denen Sie bei Google arbeiten? Wie viel Prozent der interessanten und routinemäßigen Aufgaben?



Als ich den russischen Assistenten startete, gab es viele Routineaufgaben - einfach weil die Algorithmen universell sind und der größte Teil der Arbeit darauf beschränkt war, Fehler manuell zu beheben und Daten in russischer Sprache vorzubereiten. Wir haben die Qualität überprüft, manchmal haben wir die Daten von Hand geschrieben; es klingt sehr traurig, aber wir konnten keine Benutzerdaten verwenden und mussten sie von irgendwoher nehmen. Um Daten zu erfassen, können Sie auch eine Regel schreiben und Daten generieren. oder Daten öffnen. Interessanterweise war es möglich, sich mit Morphologie zu befassen, um zu sehen, dass die Erzeugung und das Verständnis des Textes klüger waren und es nicht notwendig war, alle Formen des Wortes "Wecker" in eine Spalte zu schreiben. Leider gab es viele "Run-See-Quality-Fix-Again-Run-Fix-Daten und so weiter" -Zyklen. Anfangs hat es Spaß gemacht, wurde aber schnell zur Routine. Jetzt,Da ich mehr in der Forschung bin, stellen wir gewissermaßen unsere eigene Agenda auf. Ich erstelle nur neue Daten, die in Zukunft für Metriken nützlich sein können, und untersuche, wie Menschen miteinander und mit Assistenten sprechen, um zu verstehen, welche Signale zum Trainieren von Modellen verwendet werden können. Wir analysieren Qualität. Ein Teil der Arbeit, die ich derzeit mache, ist das Produkt. Wir versuchen, eine Roadmap mit Problemen bei Dialoginteraktionen zwischen einer Person und einem Assistenten zu erstellen, um zu verstehen, wie man sie klassifiziert, um zu verstehen, was wir jetzt und später lösen können. Das heißt, jetzt habe ich fast keine Routineaufgaben mehr und bin mit meinem Setup zufrieden.Dies könnte in Zukunft für Metriken nützlich sein und untersuchen, wie Menschen miteinander und mit Assistenten sprechen, um zu verstehen, welche Signale zum Trainieren von Modellen verwendet werden können. Wir analysieren Qualität. Ein Teil der Arbeit, die ich derzeit mache, ist das Produkt. Wir versuchen, eine Roadmap mit Problemen bei Dialoginteraktionen zwischen einer Person und einem Assistenten zu erstellen, um zu verstehen, wie man sie klassifiziert, um zu verstehen, was wir jetzt und später lösen können. Das heißt, jetzt habe ich fast keine Routineaufgaben mehr und bin mit meinem Setup zufrieden.Dies könnte in Zukunft für Metriken nützlich sein und untersuchen, wie Menschen miteinander und mit Assistenten sprechen, um zu verstehen, welche Signale zum Trainieren von Modellen verwendet werden können. Wir analysieren Qualität. Ein Teil der Arbeit, die ich derzeit mache, ist das Produkt. Wir versuchen, eine Roadmap mit Problemen bei Dialoginteraktionen zwischen einer Person und einem Assistenten zu erstellen, um zu verstehen, wie man sie klassifiziert, um zu verstehen, was wir jetzt und später lösen können. Das heißt, jetzt habe ich fast keine Routineaufgaben mehr und bin mit meinem Setup zufrieden.Wir versuchen, eine Roadmap von Problemen bei Dialoginteraktionen zwischen einer Person und einem Assistenten zu erstellen, um zu verstehen, wie man sie klassifiziert, um zu verstehen, was wir jetzt und was dann lösen können. Das heißt, jetzt habe ich fast keine Routineaufgaben mehr und bin mit meinem Setup zufrieden.Wir versuchen, eine Roadmap von Problemen bei Dialoginteraktionen zwischen einer Person und einem Assistenten zu erstellen, um zu verstehen, wie man sie klassifiziert, um zu verstehen, was wir jetzt und was dann lösen können. Das heißt, jetzt habe ich fast keine Routineaufgaben mehr und bin mit meinem Setup zufrieden.

Dieses Gleichgewicht sieht für verschiedene Linguisten unterschiedlich aus. Wir hatten vor kurzem ein Jubiläum - 100 Linguisten im Unternehmen, jetzt gibt es ein bisschen mehr. Es ist cool, denn als ich vor 4 Jahren in das Unternehmen eintrat, waren es 30 von uns. Unsere Nachfrage wächst definitiv.



Verwenden Sie die Kontextdefinition, um Texte zu analysieren?



Ich weiß nicht, ob der Autor der Frage noch sucht - bitte neu formulieren, ich habe es nicht verstanden.

Wir verwenden natürlich den Kontext. Ohne sie gibt es keine Dialoginteraktion. Natürlich versuchen wir, Probleme so zu lösen, dass der Benutzer beispielsweise nicht jedes Mal „Wecker“ sagt, sondern natürliche Pronomen verwenden kann („Setzen Sie den Wecker auf 7, nein, ändern Sie ihn auf 8“). Dies funktioniert bereits gut für Englisch; Ich kann mich nicht erinnern, ob es bereits für Russisch gestartet wurde.



Warum wurde die russischsprachige Kolumne nicht gestartet?



Soweit ich das beurteilen kann, hat Google viele verschiedene Sprachen. Die Prioritäten sollten nach Volumen und Wert der Märkte geordnet werden, und der russische Markt ist nicht der interessanteste. Es ist ein wenig anregend, dass es in Russland Yandex gibt, und man kann damit konkurrieren, aber aus praktischer Sicht will es niemand. Außerdem hat Google nach der Verabschiedung des Gesetzes über personenbezogene Daten Entwicklungsbüros in Russland geschlossen.



Gibt es offene Bibliotheken für die Spracherkennung und -generierung, Datenfelder für das Training neuronaler Netze? Wie offen ist diese Technologie?



Ja, voller Open Source-Algorithmen. Google hat kürzlich Bert veröffentlicht, eine super neue Bibliothek. Jetzt sind Konferenzen voll von Aktualisierungen, die verschiedene lustige Wörter genannt werden, in denen sich "Bert" (Albert) befindet. Dies ist alles Open Source, hergestellt von unseren exzellenten Wissenschaftlern in Berlin. Sie können alles trainieren; Wissenschaftsgemeinschaften verfügen über Daten, mit denen sie neuronale Netze trainieren und sehen können, was passiert. Wie gesagt, diese Daten reichen nicht für Russisch, sondern eher für Englisch, sodass jeder Spaß mit ihm hat.



Das heißt, Sie haben keine Benutzerprotokolltexte?



Wir können keine Benutzerprotokolle lesen. Die einzigen Ausnahmen sind Fälle, in denen Benutzer sich beschweren und ausdrücklich um Erlaubnis gebeten werden, die letzten so vielen Aussagen zu teilen. Aber selbst in solchen Fällen sehen wir nur eine Nacherzählung des Problems aus speziell geschulten Unterstützungen und aggregierten Statistiken der Form "Der Assistent hat geantwortet, dass er so und so oft nicht versteht". Google geht mit Nutzerdaten sehr vorsichtig um. Ein Teil meiner Arbeit besteht darin, darüber nachzudenken, wie realistische Daten generiert oder von speziell bezahlten Personen gesammelt werden können. Dies ist eine wichtige Richtung für alle Industrieteams, da die Privatsphäre niemals verletzt werden sollte. Wir müssen nach neuen Methoden der Datenerfassung suchen, neue Werkzeuge schreiben;Ich mache das seit sechs Monaten ziemlich genau. Leider wurden die Details noch nicht veröffentlicht. Wir wollten einen Artikel für die Konferenz schreiben, aber die Epidemie störte uns. Wenn Sie in einem Unternehmen arbeiten, benötigen Sie im Prinzip nur einen Artikel, um auf Kosten des Unternehmens zu einer Konferenz zu gehen und abzuhängen. Und jetzt sind alle Konferenzen online gegangen, und Sie können nicht mehr abhängen - die Motivation, einen Artikel zu schreiben, ist wirklich verschwunden. Jetzt wird die Epidemie enden und wir werden es trotzdem tun.Jetzt wird die Epidemie enden und wir werden es trotzdem tun.Jetzt wird die Epidemie enden und wir werden es trotzdem tun.



, , ?



Ich werde Ihnen keine Testgegenstände zeigen, aber ich kann Ihnen von dem Interview erzählen. Wie gesagt, wir haben jetzt 100 Linguisten, und die Interviews finden jetzt in dem den Ingenieuren bekannten Format statt - ein Interview im Pool. Wir interviewen Linguisten hintereinander, und wenn es einen guten Linguisten gibt, schauen wir, wo eine Stelle frei ist, und weisen sie Teams zu. Wir haben Linguisten mit verschiedenen Profilen; jemand programmiert, jemand programmiert praktisch nicht. Ich komme aus der zweiten Kategorie: Ich bin mehr im Forschungsteil, ich trainiere keine Modelle selbst - es gibt Leute im Team, die das tun. Wir haben jetzt 8 Teams von Linguisten unterschiedlicher Größe und wir haben auch ein Internalisierungsteam, in dem ich Spezialist für die russische Sprache war: Dies sind Leute, die die Qualität des Assistenten überwachen (jetzt bin ich nur noch ein Linguist-Forscher und erledige Aufgaben, die nicht mit einer bestimmten Sprache zusammenhängen). ...Linguisten fallen je nach Profil in eines dieser Teams.



Wenn Aufgaben für eine bestimmte Sprache ausgeführt werden, werden Muttersprachler bestimmter Sprachen benötigt. Sie erhalten spezielle Aufgaben in dieser Sprache - wir versuchen herauszufinden, ob die Person die Funktionen gut versteht. Wenn wir zum Beispiel eine Stelle mit der russischen Sprache einstellen würden (jetzt gibt es sie jedoch nicht), würden wir fragen, warum Russisch komplizierter als Englisch ist, welche Methoden es gibt, um diese Schwierigkeiten zu überwinden, wie die russische Morphologie funktioniert, was ein Computer benötigt, um dies zu verstehen, wie es sich auswirkt durch die Datenmenge. Wenn die Rolle allgemein ist, werden wir fragen, wie gut eine Person die aktuellen Realitäten der Linguistik versteht und wie viel sie über Algorithmen nachdenken kann. Obwohl ich mich kaum selbst programmiere, verstehe ich gut, wie maschinelles Lernen funktioniert, was zum Trainieren des Systems erforderlich ist, über Signale, überwachtes / unbeaufsichtigtes Lernen und so weiter. Eigentlich ist das waswas ich normalerweise in Interviews frage. Das häufigste Beispiel: „Wie würden Sie Tippfehler beheben? Es gibt unendlich viel Geld und Entwickler, aber es gibt noch kein Produkt - wie kann man es aus sprachlicher Sicht bauen, was sind die Schritte? " Im Allgemeinen können Sie nach jeder Komponente fragen, die natürliche Sprache enthält. Wie ist es laut dem Befragten aufgebaut? Wie wird eine Person eine ähnliche bauen, welche Probleme sieht sie? Wie übertrage ich die Erfahrung von Englisch auf Chinesisch, von Chinesisch auf Russisch, von Russisch auf Hindi? Wie wird er seine Arbeit mit einer Sprache organisieren, die er nicht kennt? Es gibt viele Möglichkeiten.Was sind die Schritte? " Im Allgemeinen kann man nach jeder Komponente fragen, die natürliche Sprache enthält. Wie ist es laut dem Befragten aufgebaut? Wie wird eine Person eine ähnliche bauen, welche Probleme sieht sie? Wie übertrage ich die Erfahrung von Englisch auf Chinesisch, von Chinesisch auf Russisch, von Russisch auf Hindi? Wie wird er seine Arbeit mit einer Sprache organisieren, die er nicht kennt? Es gibt viele Möglichkeiten.Was sind die Schritte? " Im Allgemeinen können Sie nach jeder Komponente fragen, die natürliche Sprache enthält. Wie ist es laut dem Befragten aufgebaut? Wie wird eine Person eine ähnliche bauen, welche Probleme sieht sie? Wie übertrage ich die Erfahrung von Englisch auf Chinesisch, von Chinesisch auf Russisch, von Russisch auf Hindi? Wie wird er seine Arbeit mit einer Sprache organisieren, die er nicht kennt? Es gibt viele Möglichkeiten.



Überwachen Sie das Benutzerverhalten: Welchen Befehl hat der Benutzer gegeben, welche Aktion wurde vom Gerät ausgeführt?



Wir können das Benutzerverhalten nicht überwachen. Wir können nur Methoden entwickeln, um dies zu simulieren und zu testen, wie das System reagiert. Dies ist, was wir tatsächlich tun: versuchen, herauszufinden, wie man es misst, und versuchen, Daten zu sammeln, um die Algorithmen zu trainieren.



Wie wird der Kontext des Gesprächs verfolgt? Wie viel Speicher wird dafür verwendet? Gibt es eine Persistenz zwischen den Sitzungen?



Gibt es viel Speicherbedarf - ich kenne die Details nicht, es ist nicht einmal für die Abteilung, in der ich arbeite. Unsere Abteilung ist mehr auf Qualität bedacht, aber es gibt Abteilungen, die prüfen, ob genügend Speicher vorhanden ist, ob es Lecks gibt, ob der Assistent 10 Minuten lang dumm ist, um den Alarm einzustellen.



Wir verfolgen den Kontext. Bisher leider nur innerhalb einer Sitzung. Dies ist eine der Aufgaben, die unsere Abteilung - mein Team, benachbarte Ingenieurteams - im nächsten Jahr lösen wird. Eine sehr coole und interessante Aufgabe: Wie lange der Kontext beibehalten werden soll, zu welchem ​​Zeitpunkt zu berücksichtigen ist, dass die Konversation beendet ist, ob der Kontext des Benutzers immer beibehalten werden soll, welche Informationen über den Benutzer das System in sich selbst speichern wird. Wenn ein Benutzer "Ich hasse Pizza" sagt, ist es wahrscheinlich gut, diesen Kontext für immer beizubehalten und einmal im Jahr zu fragen, ob sich die Situation geändert hat. Und wenn der Benutzer antwortet, dass er sich nicht geändert hat, bieten Sie keine Pizza-Lieferung an. Assistenten wissen zwar nicht, wie das geht - leider sind sie noch weit davon entfernt, perfekt zu sein, aber sie würden viel mehr verschiedene Kontexte benötigen.



Jetzt können wir Pronomen innerhalb einer Sitzung verstehen („Alarm einstellen, auf 8 Uhr einstellen“). Wir arbeiten daran, diesen Kontext zu erweitern und separat zu untersuchen, welcher Kontext nützlich ist, wie viel benötigt wird, wo und wie viel gespeichert werden muss. Natürlich hat Google viele Server, sodass wir kein Geld sparen müssen, aber wir möchten, dass der Assistent nicht jede Anfrage 3 Stunden lang bearbeitet. Es ist jetzt ziemlich schnell, aber nicht perfekt; und wenn wir es perfekt machen, möchten wir, dass es schnell weiter funktioniert.



Hast du Konkurrenz zwischen Teams?



Ja und nein. Je nachdem, wie die Arbeit in Google angeordnet ist, können Sie natürlich eine separate Sendung erstellen. Wir haben viel lokale Initiative; Leute können versuchen, Prototypen von allem zu machen, es den Chefs vorschlagen - Chefs sind immer sehr offen und sie werden den Top-Chefs vorschlagen. Nicht wenige Projekte ergeben sich aus der Tatsache, dass jemand versucht hat, etwas zu tun, was ihm gelungen ist, und es wurde beschlossen, dies in einer für die Veröffentlichung geeigneten Qualität zu tun. Natürlich gibt es Situationen, in denen an 5 Orten gleichzeitig Menschen zur gleichen Idee kommen und 10 Prototypen erhalten werden. In einem solchen Moment muss man manchmal einen der Prototypen auswählen, aber normalerweise versuchen sie, die Leute zu einem Team zusammenzufassen, damit sie gemeinsam ein neues Feature entwickeln, es für die Produktion freigeben können und alle glücklich sind.



Es gibt also Wettbewerb, aber wir versuchen, den Wettbewerb gesund zu halten, damit es nicht zu viel Politik gibt. Insgesamt ist die Atmosphäre großartig. Wir sitzen jetzt zwischen Forschung und Produktion, wir bringen Ideen ein, wir sind im Epizentrum mit Produktmanagern und mit Projekten und mit jedem - jeder ist koordiniert und kooperiert. Chaos, aber alles ist spirituell.



Was wird schneller passieren - werden sie einen intelligenten Sprachassistenten entwickeln, der nichts schlechter versteht als eine Person, oder wird Elon Musk eine neuronale Schnittstelle erfinden?



Ich weiß nichts über das Stadium, in dem sich die neuronale Schnittstelle befindet. Aber ein kluger Sprachassistent, der genauso gut versteht wie eine Person, ist noch sehr weit weg. Bisher versteht niemand, wie man den Assistenten verständlich macht. Alle Chatter in leistungsstarken neuronalen Netzen sind Nachahmungen. Ich habe eine Frage zum Turing-Test gesehen - dies ist auch ein Test zur Nachahmung, wie gut das System vorgibt, menschlich zu sein und vorgibt, es zu verstehen, aber schließlich versteht kein System etwas. Da war der Chatbot Eugene Goostman, der einen der Tests gewann - einen bestimmten Prozentsatz der Richter bestanden, die ausgetrickst werden mussten. Er gab vor, mit seinem Vater, einem Gynäkologen und einem Meerschweinchen ein 15-jähriger Junge aus Odessa zu sein (kein Scherz - er sprach über sich selbst). Der Bot hielt den Kontext ein wenig aufrecht und fragte: "Woher kommst du?" - und erinnerte sich an die Stadt aus der Antwort,und benutzte dann das gespeicherte nach einer Weile, was einen Wow-Effekt verursachte. Obwohl es jetzt nicht allzu schwierig ist, mit Sprachassistenten einen Wah-Effekt zu erzielen. Sie sind nicht perfekt. Da der Wettbewerb auf Englisch stattfand, wurden die Unregelmäßigkeiten in der Rede des Bots der Tatsache zugeschrieben, dass er "aus Odessa" stammte - sie glaubten an einen ausländischen Jungen.



Die Frage ist, was man "Verstehen" nennt, was "Verstehen so gut wie ein Mensch" ist und was wir grundsätzlich von Chat-Bots wollen. Auch die Antwort auf diese Frage kennt niemand. Wollen wir, dass er wie ein bester Freund mit uns plaudert oder dass er das Smart Home und das Auto ständig kontrolliert und Alarm schlägt? Was kann er tun? Kann er uns Namen nennen und uns verspotten? Es ist nicht so, dass unsere besten Freunde alle Namen und Spott nennen, aber es gibt spezielle Möglichkeiten, mit geliebten Menschen zu kommunizieren. Vielleicht möchten wir nicht, dass das System nett mit uns spricht und Anekdoten verfolgt?






Was ist vorher passiert?



  1. Ilona Papava, Senior Software Engineer bei Facebook - wie man ein Praktikum bekommt, ein Angebot bekommt und alles über die Arbeit in einem Unternehmen
  2. Boris Yangel, Yandex ML-Ingenieur - wie man sich als Data Scientist nicht den dummen Spezialisten anschließt
  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