O mercado de processamento de linguagem natural está em expansão e muitos novos instrumentos surgiram recentemente no ecossistema. Aqui estão as bibliotecas, quadros, línguas, serviços e actores que deve conhecer para integrar a compreensão e geração de texto no seu projecto em 2022.

Python tem sido a linguagem padrão de facto na ciência dos dados durante muitos anos. Se estiver a trabalhar num projecto de processamento de linguagem natural, é muito provável que haja algures algum código Python.
Python é uma linguagem de alto nível muito expressiva e simples que a torna perfeitamente adequada para aplicações de aprendizagem de máquinas. Mas ainda mais importante, Python beneficia de um ecossistema abrangente de bibliotecas e estruturas que tornam a vida dos cientistas de dados mais fácil.
Quer esteja a trabalhar num projecto de investigação ou num projecto de produção, quer esteja a treinar novos modelos ou a utilizá-los para inferência, muito provavelmente terá de usar Python. Se precisar absolutamente de utilizar outra língua, poderá encontrar bibliotecas agradáveis também noutras línguas mas apenas para casos de utilização básica (para casos de utilização mais avançada, a solução será adoptar uma estratégia de microserviços e utilizar uma API REST).

Hugging Face Hub é um repositório central que armazena a maior parte dos modelos de processamento de linguagem natural de código aberto.
Em Hugging Face, é fácil descobrir novos modelos de IA mas também carregar e partilhar os seus. É também um óptimo local para navegar e encontrar conjuntos de dados para o seu próximo projecto. Os modelos e conjuntos de dados podem ser facilmente descarregados e utilizados através da sua estrutura de Transformers (ver abaixo).
A visão de Hugging Face é "democratizar" o processamento da linguagem natural e tornar-se o "Github da aprendizagem de máquinas".

OpenAI é a empresa por detrás do GPT-3, o modelo AI de linguagem mais avançada alguma vez criado.
As 2 primeiras versões deste modelo (GPT e GPT-2) eram de código aberto, mas o OpenAI decidiu que o GPT-3 já não seria de código aberto. Se quiser utilizar o GPT-3, precisa de subscrever a API do OpenAI. Apenas a Microsoft tem acesso ao código fonte do GPT-3, uma vez que adquiriu uma licença exclusiva.
Os modelos GPT são modelos AI de geração de texto que são muito bons a escrever texto como um humano. Na verdade, é bastante difícil para um humano detectar se um texto foi escrito por uma pessoa real ou por GPT-3...
Custou à OpenAI milhões de dólares para conceber e treinar esta nova IA. Se quiser utilizá-la, terá de passar por um processo de validação exigente, pois o OpenAI não permite que todos os tipos de aplicações utilizem o seu modelo.
Novos modelos de código aberto estão agora a ser lançados a fim de alcançar o OpenAI como GPT-J e GPT-NeoX.

Isto somos nós!
NLP Cloud é uma API que lhe permite utilizar facilmente os modelos de IA de processamento de linguagem natural mais avançados na produção.
Por exemplo, pode gerar texto com GPT-J e GPT-NeoX, resumir conteúdo com Bart Large CNN do Facebook, classificar um pedaço de texto com Roberta, extrair entidades com spaCy, traduzir conteúdo com Opus MT... e muito mais.
Na NLP Cloud é também possível treinar e afinar a sua própria IA, ou implementar os seus próprios modelos internos. Por exemplo, se quiser criar o seu próprio chatbot médico baseado em GPT-J, basta carregar o seu conjunto de dados composto pelos seus próprios exemplos provenientes da sua indústria, depois iniciar o processo de formação, e utilizar o seu modelo final em produção através da API.

Deepspeed é uma estrutura de código aberto da Microsoft que se concentra na paralelização de modelos.
O que significa isso exactamente?
Os modelos AI estão cada vez maiores (ver GPT-3, GPT-J, GPT-NeoX 20B, T0, Fairseq 13B...). Estes modelos enormes abrem a porta a toneladas de novas aplicações, mas são também muito difíceis de executar.
A formação destes modelos, e a sua execução fiável na produção para inferência, pode ser feita quer através da escalabilidade vertical (utilizando enormes GPUs como NVIDIA A100 ou Google TPUs) ou da escalabilidade horizontal (utilizando várias pequenas GPUs em paralelo).
A 2ª abordagem é cada vez mais popular por ser mais barata e melhor escalonada. No entanto, realizar treino distribuído e inferência está longe de ser fácil, razão pela qual a Deepspeed ajuda realmente.
A Deepspeed foi inicialmente orientada para tarefas de formação, mas é agora cada vez mais utilizada para inferências, uma vez que é fácil de utilizar e se integra com os Transformadores de Rosto Abraçador (ver abaixo).

Big Science é um colectivo ou investigadores e empresas que trabalham em grandes modelos linguísticos.
O seu primeiro workshop produziu um modelo de IA chamado T0 que funciona muito bem na compreensão das instruções humanas.
Estão agora a trabalhar em modelos muito maiores: o seu objectivo é criar modelos de IA multilingues de código aberto que sejam maiores e mais avançados do que o GPT-3.

SpaCy é uma estrutura de processamento de linguagem natural Python perfeitamente adequada para a produção: é rápida e fácil de jogar.
Este é um quadro mantido por uma empresa alemã de IA chamada Explosion AI.
A SpaCy é muito boa no Reconhecimento de Entidades Nomeadas (também conhecida como extracção de entidades), e em cerca de 50 línguas diferentes. Fornecem modelos pré-formados e pode facilmente criar os seus próprios modelos através de exemplos anotados.
A estrutura dos Transformers foi lançada por Hugging Face há alguns anos atrás. A maioria dos modelos avançados de processamento de linguagem natural são agora baseados em Transformers.
Este é um módulo Python que se baseia em PyTorch, Tensorflow, e Jax, que pode ser utilizado tanto para treino como para inferência.
Os Transformadores de Rosto de Abraço tornam muito fácil descarregar e carregar modelos para o Hugging Face Hub.
A biblioteca de tokenizers de Hugging Face é um conjunto de tokenizers avançados de processamento de linguagem natural, utilizados por modelos baseados em transformadores.
Tokenization consiste em dividir um texto de entrada em pequenas palavras de sub-palavras que podem depois ser codificadas e processadas pelo modelo AI.
A Tokenização pode parecer um pormenor, mas não é. Na verdade, é uma parte crítica do processamento da linguagem natural, e utilizar o tokenizer certo faz uma enorme diferença em termos de qualidade dos resultados e desempenhos.
NLTK significa Natural Language Toolkit (Conjunto de Ferramentas de Linguagem Natural). É uma estrutura Python que existe há muitos anos e que é óptima para a investigação e educação.
NLTK não é um quadro orientado para a produção, mas é perfeito para cientistas de dados que tentam aumentar o processamento da linguagem natural.
O campo de processamento da linguagem natural evoluiu consideravelmente em 2021. Hoje em dia, cada vez mais empresas querem utilizar modelos de IA de linguagem na produção, e isto é interessante para ver que em 2022 o ecossistema não tem praticamente nada a ver com o que era há 5 anos atrás.
As bibliotecas e estruturas estão cada vez mais avançadas, e a criação de grandes modelos linguísticos como o GPT-3 levanta novos e interessantes desafios.
Mal posso esperar para ver como será 2023!
Julien Salinas