Em uma publicação recente, o Facebook anunciou que abriram o código fonte do PyText, uma estrutura de modelagem usada em sistemas de processamento de linguagem natural (NLP). O PyText é uma biblioteca construída sobre o PyTorch e melhora a eficácia da promoção de projetos de experimentação para implementações de produção em grande escala.
O PyText oferece várias vantagens ao criar aplicações PNL em relação a abordagens tradicionais. Ahmed Aly Hegazy, engenheiro de software do Facebook, informou os seguintes benefícios com esta solução:
O PyText fornece um fluxo de trabalho simplificado que permite uma experimentação mais rápida. Isso ocorre por meio do acesso a um conjunto avançado de arquiteturas e utilitários de modelos pré-construídos para processamento de texto e gerenciamento de vocabulário para facilitar a implementação em grande escala. Além disso, a capacidade de aproveitar o ecossistema PyTorch, incluindo modelos pré-construídos e ferramentas criadas por pesquisadores e engenheiros da comunidade PNL, também oferece oportunidades.
Os sistemas PNL facilitam as interações entre humanos e computadores através do uso de linguagem natural e do uso de inteligência artificial. O Facebook aproveita o processamento de linguagem natural em muitos de seus serviços, incluindo o Messenger e seu dispositivo de videoconferência chamado Portal.
O Facebook conseguiu reduzir o tempo de comercialização de muitos de seus recursos, como resultado do uso do PyText, explica Aly Hegazy:
No Facebook, usamos essa estrutura para levar os modelos de PNL da ideia à implementação completa em apenas alguns dias, em vez de semanas ou meses, e para implantar modelos complexos que dependem do aprendizado multitarefa.
Historicamente, os frameworks de processamento de linguagem natural têm lutado para atender às necessidades de pesquisa, ou experimentação, projetos e cargas de trabalho de produção. Aly Hegazy atribui muitos dos desafios associados a:
Os sistemas PNL podem exigir a criação, o treinamento e o teste de dezenas de modelos e que usam uma estrutura inerentemente dinâmica. Os frameworks orientados para a pesquisa podem fornecer uma interface fácil de execução ágil que acelera o processo de escrever modelos avançados e dinâmicos, mas eles também sofrem com o aumento de latência e uso de memória em produção.
O PyText é capaz de evitar muitos desses desafios de projeto-para-produção de pesquisa, pois é construído sobre o PyTorch 1.0, que acelera o caminho da pesquisa à produção. O Facebook conseguiu demonstrar os recursos da PyText em escala, já que ela é usada em mais de um bilhão de previsões diárias, atendendo aos exigentes requisitos de latência do Facebook. Um exemplo de como o Facebook usa o PyText está no Portal, pois é usado para interpretar os comandos dos usuários. Quando um usuário instrui o Portal a "chamar meu pai", o PyText é capaz de usar a análise semântica para entender o relacionamento entre o usuário e a pessoa que ele está tentando chamar.
O PyText complementa os outros investimentos em PNL do Facebook, incluindo a integração com o fastText, uma biblioteca de classificação de texto. Ele também é capaz de melhorar o DeepText, um mecanismo de compreensão de texto, fornecendo análise semântica e implementando modelos de aprendizado multitarefa que não podem ser criados usando o DeepText.
Os benefícios que o Facebook acumulou ao usar o PyText vão além das eficiências de tempo para mercado e estendem-se a uma precisão aprimorada. Aly Hegazy explica:
Usamos o PyText para iterar rapidamente melhorias incrementais nos modelos de NLP do Portal, como conjuntos de campos aleatórios condicionais e um modelo conflitado para todos os domínios. Isso melhorou a precisão de nossos modelos para nossos principais domínios em 5% a 10%. Também usamos o suporte da PyText para treinamento distribuído para reduzir o tempo de treinamento em 3-5x para o Portal.
O framework PyText está disponível no GitHub e inclui modelos e tutoriais pré-treinados para treinamento e implementação de modelos PyText em escala.