Como não se juntar às fileiras de especialistas aspirantes se você é um cientista de dados


A comunidade Habra realizou outra entrevista em nosso projeto educacional: transmissões ao vivo com profissionais de TI que respondem às suas perguntas em um formato de comunicação ao vivo.

Nosso projeto é uma tentativa de criar um conjunto completo de guias e recomendações para a vida de um desenvolvedor de sucesso: como construir uma carreira, obter uma oferta de sonho, atrair investimentos em startups, não participar de projetos chatos, crescer em seus negócios e crescer em sua empresa e comprar uma casa à beira-mar a caminho.

No início da semana, Boris Yangel, engenheiro da Yandex ML que participou da criação dos cérebros de Alice e agora fabrica veículos não tripulados, respondeu às nossas perguntas. 

Borya falou sobre como se tornar um bom cientista de dados, como o paraquedismo o ajuda em seu trabalho, por que as conferências de ML são inúteis e respondeu a um post recente . pai irritado sobre como Alice recomendou um vídeo de histórias de assassinato para uma criança.



Meu nome é Boris Yangel, trabalho na Yandex. Sou engenheiro de ML por profissão e, recentemente, tenho gerenciado projetos de ML. No momento, estou trabalhando no projeto de veículo não tripulado Yandex, desenvolvendo uma parte da pilha ML. Anteriormente, ele estava envolvido com Alice, era responsável pelo desenvolvimento do módulo, que pode ser chamado condicionalmente de “cérebro” - este módulo, após o reconhecimento do discurso, determina o que o usuário quer dizer e decide a resposta. Antes disso, trabalhei no grupo de tecnologia de redes neurais Yandex e, antes, na Microsoft Research, no grupo Chris Bishop, no projeto Infer.net, essa é uma biblioteca de saída bayesiana. Ainda mais cedo, eu estava no Yandex responsável por classificar a pesquisa em imagens.

, ? , machine learning ?


A questão é um pouco estranha. Vou reformular: quais são as habilidades técnicas mínimas necessárias (dependendo do que você deseja fazer), uma pessoa com educação liberal pode recebê-las?

Se "fazer login" for, digamos, treinar uma rede neural não apenas para distinguir cães de gatos, mas para fazer o que você precisa pessoalmente, existe uma maneira acessível a muitas pessoas. Há muito código na Internet para solucionar problemas comuns, e agora você pode facilmente e rapidamente pegar esse código, inserir seus dados nele e obter o resultado. Essa é a coisa mais simples que pode ser feita, as habilidades para isso exigem o mínimo, incluindo a programação.

Você só precisa entender o código finalizado e editá-lo. Se o código estiver bem estruturado, é fácil.

Se você "efetua login" - significa criar uma rede neural para resolver uma tarefa um pouco menos trivial, a tarefa se torna mais complicada, são necessárias mais habilidades.

Para coletar as redes neurais, você precisa pelo menos ter um pouco de compreensão da matemática, conhecer o básico da álgebra linear, entender o que são matrizes, vetores, tensores, o que você pode fazer com elas, o que é descida derivada e gradiente. Não posso dizer que apenas um especialista descobrirá, mas você precisa ter conhecimento, incluindo de quais partes as redes neurais são feitas e como é habitual encaixá-las para obter o resultado.

Agora, existem estruturas bastante fáceis de usar para conectar elementos de redes neurais - por exemplo, o TensorFlow com o suplemento Keras (é muito simples, você precisa de um conhecimento mínimo de Python). Mas o Keras pode não ser suficiente para operações não triviais, e então você terá que trabalhar com o TensorFlow "nu" - isso requer mais habilidades, especialmente para criar suas próprias operações no TensorFlow. Quanto mais você quer ir, mais habilidades precisará. Além disso, os problemas começam exatamente quando algo dá errado: para descobrir por que o sistema não funciona da maneira que você precisa, você precisa de um nível relativamente mais alto de habilidades - você precisa estar totalmente ciente do que está acontecendo “sob o capuz. "

Que tipo de livros sobre ciência de dados e aprendizado de máquina em Python um iniciante precisa? Como praticar esse conhecimento?


Não tenho certeza de que posso responder corretamente a esta pergunta. Quando eu era iniciante, havia muito menos livros bons do que agora, e era mais difícil encontrar as informações corretas de forma conveniente.

Agora, existem muitos livros sobre aprendizagem profunda, por exemplo, o livro Goodfellow - há a maioria dos conceitos básicos que você precisa saber sobre redes neurais e a matemática necessária. Existem livros com uma abordagem prática - eles não apenas fornecem familiaridade com métodos matemáticos, mas também informam imediatamente como fazer algo específico em Python.

Há um livro do autor de Keras, François Scholl, sobre aprendizado profundo com Keras. Existem muitos livros, embora eu não possa dizer quais são os melhores. Parece-me que você pode levar com segurança livros de autores famosos.

Se a tarefa é formar a espinha dorsal do conhecimento, serão necessários livros mais fundamentais, por exemplo, Reconhecimento de padrões e aprendizado de máquina de Chris Bishop , recomendo a leitura e a realização de exercícios. Não é necessário ler na íntegra, mas os capítulos principais - por exemplo, sobre a teoria da probabilidade - ajudarão a entender como todo o aprendizado de máquina forma uma única estrutura.

Além disso, é importante aprender a pensar em modelos . Não usamos apenas certos métodos para obter o resultado, mas modelamos os dados. Precisamos adotar essa maneira de pensar - por exemplo, o livro on-line de Chris Bishop, Model-Based Machine Learning , ajudará nisso .parcialmente livre. Cada capítulo deste livro é um exemplo de uma tarefa para a qual você precisa construir um modelo e, no decorrer do capítulo, você tenta consistentemente fazer isso, complicando gradualmente o modelo, até obter o resultado. Isso ajuda a adotar o modo de pensar necessário para a ciência de dados.

Quanto à prática - eu já falei sobre o quão importante é saber o que está acontecendo "sob o capô". Para fazer isso, é melhor tentar coletar algo você mesmo. Escreva uma descida gradiente em vez de usar uma estrutura pronta ou escreva uma camada e adicione-a à estrutura. Tente criar uma tarefa relativamente não trivial com uma estrutura interessante; resolva-o no curso de determinar que conhecimento e informação você falta. Complicam consistentemente a solução para melhorar a qualidade. Que seja essa tarefa, cujo resultado seja uma solução para o seu interesse pessoal.

Agora, há um rápido desenvolvimento do TensorFlow JS. Estou aprendendo aprendizado de máquina e quero usar esta biblioteca. Quais são as perspectivas para o frontend?


O TensorFlow JS no front-end pode ser usado como um ponto de entrada para o aprendizado de máquina, embora eu não entenda bem o porquê. Se isso ocorre porque você só conhece JavaScript, essa é a motivação errada; Python é muito fácil de aprender.

O TensorFlow JS possui seu próprio campo de aplicação: este é o aprendizado de máquina, no qual a inferência funciona diretamente no navegador, o que permite criar ferramentas interativas de aprendizado profundo. Permite fornecer a uma pessoa uma ferramenta interativa na qual você pode trabalhar com algoritmos e modelos, fazer visualizações e, assim, melhorar sua compreensão do assunto. Provavelmente, existem outras áreas promissoras de aprendizado profundo em que você precisa de interatividade - por exemplo, ferramentas para criatividade, nas quais você pode trabalhar com imagens em tempo real ou sintetizar músicas.

Como se tornar um especialista legal em qualquer campo da inteligência artificial (por exemplo, PNL), o mais rápido possível?


Quanto à segunda parte, a velocidade sempre depende da base de conhecimento existente.

Quanto à primeira parte - parece-me que a questão é colocada incorretamente aqui. A PNL costumava ter muitas técnicas diferentes, você precisava saber muito para resolver problemas, mas os especialistas em aprendizado profundo chegaram lá. Eles criaram o BERT com melhorias incrementais e, agora, para resolver tarefas da PNL, você não precisa saber nada, exceto o BERT. Ao mesmo tempo, para entender o BERT, você não precisa entender a PNL - precisa saber como os modelos são aplicados aos tokens de símbolo. Você precisa se tornar um especialista em aprendizado de máquina e estará disponível - com pouco esforço - em suas diversas áreas de aplicação.

Como se tornar um especialista em aprendizado de máquina legal?


Primeiro de tudo, você precisa criar em sua cabeça uma boa estrutura conceitual do que está acontecendo no aprendizado de máquina. Contanto que você o perceba como um conjunto de fatos, algoritmos e heurísticos díspares, você não irá longe.

Grosso modo, é preciso entender o seguinte: tudo o que fazemos é procurar funções de algum conjunto dos melhores em certo sentido. Você precisa entender quais são os significados em que a função é melhor, entre quais conjuntos você pode procurar por quais funções, por que preferimos um ou outro, por que é mais eficaz pesquisar em alguns do que em outros, quais truques existem para pesquisar em conjuntos diferentes. Você precisa entender que essas funções são modelos de dados (pelo menos aquelas que nos interessam).

Os modelos de dados são construídos usando técnicas padrão de um conjunto pequeno, que é aproximadamente o mesmo para aprendizado profundo e programação probabilística; você precisa entender como essas técnicas são combinadas e em quais casos. Então você descobrirá como as tarefas são resolvidas em diferentes áreas.

Suponha que haja filtros de Kalman - modelando a dinâmica dos sistemas no tempo e que haja livros sobre eles que possam ser lidos. Se o filtro Kalman não combina com você, você não poderá fazer modificações para fazer algo semelhante à sua tarefa, mas "não é um filtro Kalman".

Mas se você entender que este é apenas um modelo probabilístico construído em certos princípios razoavelmente simples (sempre que algo for desconhecido, adicione uma distribuição normal e tudo o que for modelado diretamente é dinâmica linear), você poderá criar algo o que você precisa, mesmo sem saber sobre os filtros Kalman.

Se você conseguir esse modo de pensar, verá que a maioria dos artigos - mesmo das principais conferências - é desinteressante. Geralmente, as melhorias incrementais são descritas usando técnicas padrão que você mesmo pode aplicar - e isso será óbvio para você - e sem a possibilidade de escalar além dos limites do conjunto de dados usado. De qualquer forma, você não perderá bons artigos nos quais são apresentadas técnicas verdadeiramente novas - todos falarão sobre elas e você aprenderá rapidamente sobre elas. Acontece que existem poucos artigos realmente necessários.

Conte-nos sobre a pilha com a qual você está trabalhando. Quais bibliotecas e estruturas um especialista em aprendizado de máquina novato deve estudar?


Eu trabalho principalmente com TensorFlow e Keras. PyTorch ainda está ganhando popularidade - colegas o elogiam.

Quando o Keras aparece - ou seja, as abstrações de alto nível que estão nele podem ser usadas e não há necessidade de ir mais fundo - é melhor usar o Keras, economizando tempo. Obviamente, você precisa entender como o Keras funciona e como ir além, se necessário.

Se algo estiver faltando no próprio Keras, você sempre poderá adicionar uma peça ao TensorFlow - a arquitetura permite isso.

Como o piloto automático do Yandex é criado em etapas? Que tipo de especialistas são contratados para isso, como é construído o fluxo de trabalho de ciência de dados / aprendizado de máquina?


Primeiro, descreverei brevemente como a pilha "não tripulada" funciona. Para obter mais detalhes, consulte o relatório em vídeo de Anton Slesarev, é fácil de encontrar. A pilha tem muitos componentes. Percepção é uma visão do que está acontecendo em torno da máquina no momento. 

Localização é uma compreensão de onde o carro está localizado, usando informações de sensores e mapas pré-construídos.

Previsão é uma previsão do que acontecerá nos próximos segundos (isto é, como os outros participantes do movimento se comportarão) com a ajuda do conhecimento sobre como o mundo é construído agora e como foi construído no passado; Estou apenas trabalhando nesta parte.

Planejamento- o que vem depois da percepção e previsão: você precisa escolher uma sequência segura de ações que leve à solução do problema. 

Controle - convertendo essa sequência em instruções para o carro (volante, freio a gás).

Em muitos elementos dessa pilha, o ML agora é necessário ou não é usado em soluções de ponta. Há muito trabalho de engenharia de ML - é necessário fazer esse trabalho e trabalhar rapidamente, porque a latência nesses sistemas é muito crítica. Precisamos aprender a treinar modelos, entender quais métricas nos permitem entender o que se tornou melhor, quais não nos permitem, entender como coletar dados com mais eficiência. Além disso, há um enorme componente do trabalho de infraestrutura, geralmente subestimado. É necessária uma infraestrutura muito poderosa para desenvolver todos esses componentes juntos.

Os UAVs coletam uma enorme quantidade de dados sobre tudo o que acontece com eles - você precisa trabalhar rapidamente com esses dados, responder a perguntas como "o que aconteceria na situação X se houvesse uma alteração em Y no código". Isso requer soluções de engenharia não triviais e bons engenheiros.

O fluxo de trabalho de ciência de dados / aprendizado de máquina é, como em outros lugares, na minha opinião. Qualquer equipe deve ter uma métrica que precise ser otimizada no momento.

Para a maioria das pessoas, passa um dia típico em busca do que fazer para melhorar essa métrica. E essa métrica deve estar alinhada com seu objetivo - é claro, é difícil defini-la imediatamente, a métrica evoluirá gradualmente.

Digamos que você faça um classificador de pedestres. Pedestres encontrados por aí, usando precisão média, digamos. Você otimiza a métrica e descobre que ela parece crescer com as alterações, mas, na realidade, fica pior. Você entende que a métrica é ruim. Chegue à conclusão de que não é necessário procurar todos os pedestres - aqueles que estão muito à frente ou a 50 metros atrás não nos afetam de forma alguma. Precisamos esclarecer a métrica. Você vai apenas para os pedestres que estão por perto. Então você entende que isso também é ruim: você só está interessado naqueles que estão à frente.

É assim que a evolução da métrica ocorre. A cada momento, uma determinada métrica é fixada e você a aprimora. Isso alivia a carga cognitiva: você apenas pensa em como melhorar um número - e parte da equipe trabalha constantemente na escolha ideal do número que precisa ser aprimorado.

Estou imerso no tema da "IA forte". Eu tenho duas perguntas: por que não podemos aprender IA da maneira como ensinamos a nossos filhos e que área de uso criará uma IA forte, se é que existe alguma?


Entendo a primeira pergunta da seguinte forma: é como se as crianças fossem ensinadas do simples ao complexo. Inicialmente, eles vivem em um modelo simplificado do mundo, onde está o Papai Noel, mas gradualmente seu mundo se torna mais complicado, e as crianças aprendem a resolver problemas mais complexos. Parece lógico que a IA deve ser ensinada de acordo com um princípio semelhante - existe até uma proposta de Thomas Miklov (ele agora está no Facebook AI Research) de construir um esquema de treinamento para uma IA forte.

Além disso, no aprendizado de máquina, há um campo de aprendizado curricular - ou seja, modelar o treinamento com base no princípio "do simples ao complexo". O problema é que agora tudo funciona dentro da mesma tarefa. A mesma tarefa de encontrar cães - a princípio, a rede é ensinada a distinguir cães e gatos em imagens onde eles não se parecem, e depois eles tomam mais e mais similares. Este é um método iterativo-translacional: supõe-se que a rede construa conceitos simples e, em seguida, mais complexos. Não funciona quando se trata de conceitos diferentes.

Se você começar a ensinar algo ao sistema, depois de ensiná-lo a outro, ele esquecerá os conceitos que foram lembrados anteriormente. Este é um problema de esquecimento catastrófico; ninguém o resolveu ainda. A descida do gradiente altera todos os pesos de uma só vez, e isso destrói conceitos antigos. Precisamos descobrir como construir novos conceitos sem destruir os antigos.

Os campos de pesquisa one-shot learning e-shot shot estão associados a isso: aprender conceitos para uma tarefa e usá-los para resolver outro problema com um pequeno número de exemplos. Não houve avanços fundamentais nessa área, mas eles precisam ser feitos para se ter uma idéia de uma IA forte.

Não vejo razão para uma IA forte não aparecer no futuro. Em nossa visão moderna, o cérebro humano é uma máquina que realiza cálculos, embora de acordo com outros princípios.

Não há obstáculos fundamentais para criar uma IA forte, mas não posso fazer uma estimativa de quanto tempo resta até esse momento - não se sabe quais outras etapas serão necessárias para isso. Se você extrapolar, usando a velocidade do progresso para superar as "manchas brancas" do passado, poderá chamar uma figura como "de 10 a 50 anos" - mas ainda é um "dedo para o céu". Você pode apelar para a lei de Moore e calcular quando os processadores terão densidade de transistor suficiente para atingir a capacidade computacional do cérebro - também várias décadas, e isso também será um "dedo para o céu".

Eu não acho que uma IA forte - se for inventada - virá dos negócios. Em vez disso, ele será criado por alguém que, com recursos significativos, está envolvido em pesquisa básica em aprendizado por reforço: em todas as áreas do aprendizado de máquina, este é o mais próximo do que queremos de uma IA forte. Se o DeepMind ou o OpenAI existirem por várias décadas - talvez eles existam. Ou alguém que entrará em seu lugar.

Qual arquitetura é melhor usada para classificar (não prever, mas classificar) séries temporais? LSTM ou algo mais?


Nos últimos anos, essa tendência foi observada: em quase todos os lugares onde o LSTM foi útil, a atenção funciona melhor. A revolução da PNL acabou de acontecer: substituímos as redes recorrentes pela atenção e ela melhorou. Para séries temporais, eu recomendaria tentar atenção também. Tudo depende da tarefa, mas, em geral, esta é a maneira mais eficaz de analisar seqüências e agregar dados nelas.

Envolvido em aprendizado de máquina, não apenas para o trabalho, mas também como um hobby caro. Estou construindo uma rede, ela ficou em placas de 3 GB, um pouco mais complicada - acabou. Existem alternativas além da CPU?


A falta de fundos para o ferro, nos quais você pode mostrar resultados em pesquisas modernas de aprendizado profundo, é um problema para os entusiastas e até para as universidades.

O Google tem a iniciativa Google Collab: é esse IPython nas instalações do Google, onde você pode obter o poder de uma placa de vídeo de ponta por 12 ou 24 horas e também executar algo em seu TPU. As placas de vídeo não são usadas pelos consumidores, elas têm mais memória - existem 130 GB, como me parece. Mãos que desencadeia. Mas, em geral, coisas verdadeiramente em grande escala que um usuário individual não pode pagar.

Algumas empresas estão tentando criar chips especialmente adaptados para aprendizado profundo, o que tornará os cálculos para redes neurais muito mais rápidos e mais baratos que as GPUs - talvez soluções de consumidor com esses chips apareçam nos próximos anos.

Por que você prevê o comportamento de outros participantes do movimento ao desenvolver um drone?


Na estrada é necessário. Ao tomar uma decisão, é necessário levar em consideração, inter alia, a inércia da máquina: é impossível mudar instantaneamente a direção (mesmo que fosse possível, o passageiro teria que ser ruim). Precisamos planejar ações para que, no local em que gostaríamos de estar em alguns segundos, não haja mais ninguém - para isso, precisamos prever a posição e as intenções de outros participantes. A trajetória da máquina deve correr o mais longe possível dos outros participantes - isso é necessário para uma viagem segura.

Como o volante de um drone gira?


Eu não me controlo. Posso dizer que existem carros diferentes - alguns podem apenas dar comandos para girar o volante. Na minha opinião, o Prius pode.

O que você usa - Scrum, Kanban, caos?


Caos organizado.

Não vejo a necessidade de estruturar rigidamente o fluxo de trabalho, especialmente o de pesquisa: é difícil dizer quanto tempo uma tarefa específica levará. Temos muita incerteza e não me é óbvio por que introduzir uma estrutura adicional.

Tentamos nos comunicar muito, tentamos registrar todos os resultados das experiências; temos sistemas especiais que armazenam dados de experimentos, independentemente de sua escala - que tipo de código foi usado, de qual filial foi montada e com quais dados foram lançados - com o objetivo de reproduzir totalmente. Registramos todas as conclusões e as discutimos entre nós, compartilhamos informações, tentamos tornar tudo o mais aberto e transparente possível.

Existe alguma experiência no uso de ML na indústria - metalurgia, mineração, enriquecimento?


Eu sei que nessas áreas o ML é usado ativamente, mas não há experiência pessoal.

Recentemente, foi publicado um artigo comovente sobre Alice recomendando um vídeo sobre uma história de assassinato para uma criança. Por que isso está acontecendo, é difícil filtrar o conteúdo?


A tarefa de filtrar o conteúdo é, em princípio, solucionável e com alta precisão. O que exatamente aconteceu nessa situação, não sei ao certo, mas posso refletir.

Suponha que o sistema tenha conteúdo afiliado e que exista uma API na qual os parceiros devem marcar esse conteúdo com tags ou de outras maneiras. O sistema trabalha inicialmente com a confiança nos parceiros - é possível que, ocasionalmente, ocorram verificações de conteúdo. Com o tempo, isso não será suficiente, você desligará um sistema de conteúdo simples com busca de palavras de parada nos cabeçalhos e tags, visualizando pelo menos parte do conteúdo pelos moderadores.

Em todo sistema, inevitavelmente haverá um ponto de falha: às vezes as pessoas cometem erros, às vezes os parceiros não cumprem suas obrigações. Tudo o que pode ser feito é realizar iterações adicionais e melhorar o sistema, e as melhorias são geralmente reativas: se algo funcionar bem o suficiente, geralmente não haverá melhorias até que sejam necessárias.

Talvez quando uma IA forte aparecer, você pode pedir a ele para filtrar todo o conteúdo com 100% de precisão.

Você participa de conferências internacionais sobre sistemas de processamento de informações neurais e aprendizado de máquina? Quais são suas impressões sobre as conferências russas nessa área?


Eu não posso dizer sobre os russos. Às vezes vou para o internacional, mas entendo cada vez menos o porquê.

O “turismo científico” é, é claro, importante e interessante, mas as próprias conferências, ao que me parece, deixaram de cumprir sua função. Um grande número de artigos é aceito, mas, por causa disso, é impossível organizar uma apresentação normal para cada autor. Por exemplo, na ICML, apenas o melhor artigo tinha relatórios longos e todo o resto possuía relatórios em destaque, em menos de cinco minutos.

Além disso, um grande número de obras - incrementais, com reprodutibilidade duvidosa, o benefício delas para os ouvintes - não. Se a conferência tiver um trabalho muito legal, você já deve estar familiarizado com ela, provavelmente - a pré-impressão está sendo feita mais cedo.

Eu acho que o formato da conferência deve ser reinventado - ou pelo menos elevar muito a fasquia sobre o que levar.

Qual foi a sua motivação para voltar à Rússia?


Saí da Rússia porque era interessante para mim viver em novos lugares e aprender com novas pessoas. Pareceu-me que, para o desenvolvimento pessoal, você precisa chegar onde as pessoas sabem mais do que eu. Na verdade, foi o que aconteceu: no Microsoft Research, eu entendi muito sobre o quão metódico você precisa ser, o quão profundo e bem você precisa entender o que está fazendo, o quanto precisa estar ciente do que está acontecendo. Bem, em algum momento fiquei entediado, embora houvesse tarefas interessantes.

Eu então morei em Cambridge - esta é uma cidade pequena em que pouco está acontecendo, o círculo social nela não pode ser comparado a Moscou. Pensei: agora você pode morar em Moscou, aplicar o conhecimento adquirido e, talvez, ir para outro lugar. Fui trabalhar na Yandex - parece ser muito bom em aplicar o que aprendi.

Parece-me que agora no DeepMind e OpenAI estão fazendo coisas interessantes, eu poderia aprender muito lá.

Ouvi dizer que a equipe de drones prefere usar o TensorFlow em vez do PyTorch para treinar modelos de inferência. Qual é a razão para isto?


Talvez por razões históricas. Não sei dizer por que o TensorFlow é melhor ou pior que o PyTorch.

Qual o tamanho do conjunto de dados? 50 a 60 mil exemplos de treinamento são suficientes ou são necessários milhões?


Depende do modelo usado e da tarefa. O conjunto de dados deve configurar os parâmetros do modelo e impedir a reciclagem. Se você possui um modelo linear trivial, o conjunto de dados pode ser pequeno. Se esta é uma rede neural complexa, 60 mil não são suficientes.

Aprender redes neurais complexas a partir de coisas não triviais do zero quase sempre requer dezenas ou centenas de milhões. O princípio de "mais dados - mais qualidade" não desapareceu.

A propósito, sobre a questão de como se tornar um especialista em PNL. Agora, o aprendizado profundo de última geração está sempre trabalhando com big data. Eles precisam ser pré-processados, então - efetivamente transmitidos para nós computacionais que fornecem treinamento.

Podemos dizer que o aprendizado profundo é um pequeno trabalho de macaco: para ter sucesso, você precisa tentar muitas coisas, sem ter certeza do resultado de trabalhar com cada uma delas.

Talvez você possa desenvolver uma intuição para opções que funcionem mais provavelmente, embora eu não tenha conhecido uma pessoa com intuição exata. No caso geral, a mais bem-sucedida de todas as equipes será a que mais conduzirá experimentos por unidade de tempo.

A maior parte do meu trabalho é eliminar "gargalos" no processo de aprendizado, na tentativa de "dispersá-lo" na velocidade teoricamente possível. Isso requer habilidades de engenharia, a capacidade de reduzir o desempenho do código e do hardware.

O que distingue um especialista de um cientista de dados comum é que o especialista geralmente também é um bom engenheiro, capaz de trabalhar rapidamente, escrever código, entender sistemas de armazenamento distribuído e processamento de dados e entender a arquitetura de computadores e redes - para calcular “gags”. É muito importante desenvolver essas habilidades em si mesmo.

Com o domínio do big data, aqueles que sabem como obter treinamento para trabalhar rapidamente nesses volumes de dados são os mais bem-sucedidos do setor. Se o aprendizado profundo funcionasse em pequenos volumes, eu diria que apenas o conhecimento é necessário, mas agora não é.

Aprenda a programar bem, aprenda algoritmos padrão de ciência da computação, aumente seus horizontes. A propósito, a criptografia é útil.

Você usa análogos do AutoML para ajustar a arquitetura e os parâmetros, ou mais experimentos e intuições manuais?


Agora - mais que o segundo. O ajuste automático está presente no nível de varredura por grade ou otimização bayesiana, algo mais complicado no AutoML ainda não foi feito. Requer muitos recursos de computação - se eles são limitados, é melhor confiar na intuição. Mas, se você entender que chegou a alguma sorte ao acaso, é melhor confiar no processo.

O que Alice faz, o que o Google Assistant não faz? Qual é o tamanho da equipe nessa direção para o Google e o Yandex?


Eu não posso falar sobre o Yandex. O Google parece ter centenas ou mil pessoas. Quanto às vantagens de Alice, não tenho certeza se não segui os recursos de desenvolvimento de produtos ou de assistente de Alice recentemente.

A questão da qualidade está incorreta, parece-me. Mesmo se Alice fosse pior, isso significaria que ela não tem o direito de existir? Os produtos são criados e competem entre si, por isso todos vencem, evoluem e se expandem.

Não entendo a mentalidade "um novo produto é igual ao Google". Nos negócios, os produtos são criados desta maneira: você toma a ideia de outra pessoa como base, implementa-a - às vezes como é em geral - mas esse não é o ponto final do caminho, mas o começo. Então você muda progressivamente a ideia para que ela se torne melhor que a de um concorrente. Esta é toda a história do progresso!

Como o esporte ajuda a obter mais em outras áreas?


No esporte, principalmente competitivo, gosto da ambiguidade. Se você perde, você perde. Você não pode culpar as circunstâncias: você não era bom o suficiente, fez algo errado.

Nos esportes competitivos, a franqueza, a sinceridade e a capacidade de admitir os erros se desenvolvem. Isso ajuda em outras áreas - é sempre melhor admitir que você precisa melhorar em X, Y e Z do que procurar desculpas. Além dos benefícios de saúde, é claro.

Como o paraquedismo ajuda você a sair da sua zona de conforto?


Imagine que você quer pular de um avião por um grupo de pessoas e montar algo. O avião entra no avião de combate, a porta se abre, todos alinham-se lá dentro e esperam o sinal pular juntos.

Neste momento, não deve haver dúvida do que está acontecendo. Um atraso de até uma fração de segundo atrasa a todos. Você deve entrar em um estado em que salte sem hesitar. O mundo desaparece, resta apenas um salto. Se algo acontecer com um paraquedas, você terá pouco tempo para agir - então também não deve haver dúvida e medo, você precisa fazer exatamente o que lhe foi ensinado, o mais rápido possível.

O pára-quedas nutre em uma pessoa a capacidade de tomar uma decisão de fazer algo - e não duvidar mais. Um paralelo pode ser traçado entre este e projetos complexos. Às vezes, não está claro o que fazer no projeto; quando você inicia a tarefa, não sabe exatamente o que fazer, como fazê-lo, se pode ou não ser feito. Nesse momento, é fácil começar a duvidar e pensar: "e se eu não puder?" - Tanto tempo quanto esforço mental são gastos nisso. Se lhe pedissem para resolver um problema, eles acreditavam em você. Você deve fazer todos os esforços para esse problema. Você precisa se colocar no mesmo estado mental de um salto, abandonar tudo o que é desnecessário e se concentrar. Tornou-se muito mais fácil para mim conseguir isso depois que comecei a praticar pára-quedas.

Quanto você gasta em paraquedismo?


Muito de. Este é um artigo significativo no meu orçamento. Entendo isso como um incentivo para o crescimento da carreira.

Em que clube você está?


Principalmente em Pushchino, certas disciplinas são bem desenvolvidas lá - por exemplo, freefly.

Onde ir estudar como engenheiro ML?


Meus dados já estão desatualizados, estudei por um longo tempo - na Universidade Estadual de Moscou, na VMK. Não posso dizer que foi uma educação de super-ML, mas os professores nos ensinaram bem e nos apresentaram o mundo da ML. Eu acho que muitas pessoas conhecem Dmitry Petrovich Vetrov - eu devo muito a ele, se não fosse por suas palestras e pelo curso especial que me trouxe, eu provavelmente não teria estudado ML. Não sei onde ele está ensinando agora, mas definitivamente vale a pena ir para lá. Além disso, não importa em que faculdade você estuda, eu recomendo ir ao SHAD, se possível. Não porque é Yandex, mas porque é um lugar muito legal - lá eles fornecerão todo o conhecimento necessário para um bom trabalho prático na indústria, que pode não estar em uma universidade. Da ShAD, muitas pessoas treinadas e talentosas chegam até nós e sabem o que fazer.

Mais uma vez, sobre a questão de saber se é possível entrar no ML "não é um técnico". São necessárias habilidades técnicas, mas um especialista em artes liberais não é um bloqueador. Para entender os conceitos básicos de programação e matemática, você precisa apenas de uma cabeça apoiada nos ombros e da capacidade de raciocínio lógico e estrutural. Muitas pessoas, embora tenham escolhido por algum motivo uma especialidade humanitária, possuem essas habilidades. Nada é impossível, o principal é tentar. É necessário não pensar no tópico "posso", mas começar a fazê-lo? Isso aumenta muito as chances de sucesso.

É possível estudar em uma escola de aprendizagem ao mesmo tempo que uma universidade?


Eu fiz isso, embora tenha sido bastante difícil. Há uma grande carga no SHAD. Você pode combinar o SHAD com os cursos mais recentes da universidade, onde a carga é relativamente pequena - será um trabalho árduo, mas valerá a pena.

Experiência de automobilismo com drones?


Temos desportistas motorizados ativos na equipe, porque precisamos treinar motoristas e engenheiros de controle de qualidade diretamente no carro. Eles devem ser capazes de reconhecer uma situação de emergência durante os testes e responder, todos eles passam por treinamento contra-emergência de esportistas motorizados. Se estamos falando sobre se usamos algum tipo de modelo de física de pneus que atletas profissionais usam em simulações de esportes a motor para desenvolver táticas - na minha opinião, não, ainda não cortamos os centésimos de segundo no círculo. A telemetria, útil para atletas, é diferente do que precisamos e temos mais dados medidos.

Qual é o próximo?


A próxima transmissão ao vivo ocorrerá na próxima segunda-feira.
Você pode fazer uma pergunta ao membro da equipe principal do Natalya Teplukhina - Vue.js., GoogleDevExpret e engenheiro de front-end sênior no GitLab.

Você pode pedir-lhe uma pergunta nos comentários a esta . Pós

Interpretação de uma entrevista com Ilona, Engenheiro de Software Senior no Facebook, pode ser lido aqui. Insiderings de um funcionário do Facebook: como conseguir um estágio, receber uma oferta e tudo sobre como trabalhar em uma empresa


All Articles