
Nos últimos anos, o processamento de linguagem natural (PNL) sofreu um rápido crescimento de qualidade e usabilidade, e isso ajudou a impulsionar a adoção de negócios de soluções de inteligência artificial (AI). Nos últimos anos, os pesquisadores estão aplicando métodos de aprendizado mais recentes à PNL. Os cientistas de dados começaram a passar de métodos tradicionais para algoritmos de rede neural de profundidade (SOTA) (SOTA) (SOTA) que usam modelos de linguagem pré-tenhados em grandes corpora de texto.
Este repositório contém exemplos e melhores práticas para a construção de sistemas de PNL, fornecidos como notebooks e funções de utilidade Jupyter. O foco do repositório está nos métodos de última geração e nos cenários comuns que são populares entre pesquisadores e profissionais que trabalham em problemas que envolvem texto e linguagem.
O objetivo deste repositório é construir um conjunto abrangente de ferramentas e exemplos que alavancam os recentes avanços nos algoritmos da PNL, arquiteturas neurais e sistemas de aprendizado de máquina distribuídos. O conteúdo é baseado em nossos futuros compromissos futuros e possíveis com os clientes, bem como em colaboração com parceiros, pesquisadores e a comunidade de código aberto.
Esperamos que as ferramentas possam reduzir significativamente o "tempo para mercado", simplificando a experiência de definir o problema dos negócios para o desenvolvimento da solução por ordens de magnitude. Além disso, os notebooks de exemplo serviriam como diretrizes e exibiriam as melhores práticas e o uso das ferramentas em uma ampla variedade de idiomas.
Em uma era de aprendizado de transferência, transformadores e arquiteturas profundas, acreditamos que os modelos pré-teriados fornecem uma solução unificada para muitos problemas do mundo real e permitem lidar com diferentes tarefas e idiomas facilmente. Portanto, priorizaremos esses modelos, pois eles alcançarão resultados de ponta em vários benchmarks de PNL, como tabelas de cola e esquadrão . Os modelos podem ser usados em várias aplicações, desde a simples classificação de texto até os robôs de bate -papo inteligentes sofisticados.
Observe que, para certos tipos de problemas de PNL, talvez você não precise construir seus próprios modelos. Em vez disso, existem soluções pré-construídas ou facilmente personalizáveis que não requerem nenhum conhecimento personalizado de codificação ou aprendizado de máquina. Recomendamos fortemente avaliar se isso pode resolver o seu problema suficiente. Se essas soluções não forem aplicáveis ou a precisão dessas soluções não for suficiente, poderá ser necessário recorrer a abordagens personalizadas mais complexas e demoradas. Os seguintes serviços cognitivos oferecem soluções simples para tratar de tarefas comuns de PNL:
A análise de texto é um conjunto de APIs de repouso pré-treinado que podem ser chamadas para análise de sentimentos, extração de frases-chave, detecção de idiomas e detecção de entidade nomeada e muito mais. Essas APIs funcionam fora da caixa e requerem experiência mínima em aprendizado de máquina, mas têm recursos limitados de personalização.
A QNA Maker é um serviço de API baseado em nuvem que permite criar uma camada de perguntas e respostas conversacionais sobre os dados existentes. Use-o para construir uma base de conhecimento, extraindo perguntas e respostas do seu conteúdo semiestruturado, incluindo perguntas frequentes, manuais e documentos.
O entendimento do idioma é um serviço SaaS para treinar e implantar um modelo como uma API REST, dado um conjunto de treinamento fornecido pelo usuário. Você pode fazer a classificação de intenções, bem como a extração de entidade nomeada, executando etapas simples de fornecer expressões de exemplo e rotulando -as. Ele suporta aprendizado ativo, para que seu modelo sempre continue aprendendo e melhorando.
Para este repositório, nosso público-alvo inclui cientistas de dados e engenheiros de aprendizado de máquina com níveis variados de conhecimento de PNL, pois nosso conteúdo é somente fonte e tem como alvo a modelagem personalizada de aprendizado de máquina. Os utilitários e exemplos fornecidos devem ser aceleradores de solução para problemas de PNL no mundo real.
O repositório visa expandir os recursos de PNL ao longo de três dimensões separadas
Nosso objetivo é ter exemplos de ponta a ponta de tarefas e cenários comuns, como classificação de texto, reconhecimento de entidade denominado etc.
Nosso objetivo é suportar vários modelos para cada um dos cenários suportados. Atualmente, os modelos baseados em transformadores são suportados na maioria dos cenários. Temos trabalhado na integração do pacote Transformers de Hugging Face, que permite que os usuários carreguem modelos pré-traidos e ajustem-os a tarefas diferentes.
Nós assinamos fortemente os princípios de vários idiomas estabelecidos por "Emily Bender"
O repositório visa apoiar idiomas não ingleses em todos os cenários. Modelos pré-treinados usados no repositório, como o BERT, o FastText suporta mais de 100 idiomas prontos para a caixa. Nosso objetivo é fornecer exemplos de ponta a ponta no maior número possível de idiomas. Incentivamos as contribuições da comunidade nessa área.
A seguir, é apresentado um resumo dos cenários de PNL comumente usados cobertos no repositório. Cada cenário é demonstrado em um ou mais exemplos de notebooks Jupyter que utilizam a base de código principal de modelos e utilitários de repositório.
| Cenário | Modelos | Descrição | Idiomas |
|---|---|---|---|
| Classificação de texto | Bert, Distillbert, Xlnet, Roberta, Albert, XLM | A classificação de texto é um método de aprendizado supervisionado para aprender e prever a categoria ou a classe de um documento, dado seu conteúdo de texto. | Inglês, chinês, hindi, árabe, alemão, francês, japonês, espanhol, holandês |
| Reconhecimento de entidade nomeado | Bert | O reconhecimento de entidade nomeado (NER) é a tarefa de classificar palavras ou frases -chave de um texto em entidades de interesse predefinidas. | Inglês |
| Resumo do texto | Bertsumext Bertsumabs Unilm (S2S-ft) Minilm | O resumo do texto é uma tarefa de geração de idiomas de resumir o texto de entrada em um parágrafo mais curto de texto. | Inglês |
| Interna | Bert, Xlnet, Roberta | A interrupção textual é a tarefa de classificar a relação binária entre dois textos de linguagem natural, texto e hipótese , para determinar se o texto concorda com a hipótese ou não. | Inglês |
| Resposta de perguntas | Bidaf, Bert, Xlnet | A resposta a perguntas (controle de qualidade) é a tarefa de recuperar ou gerar uma resposta válida para uma determinada consulta em linguagem natural, fornecida com uma passagem relacionada à consulta. | Inglês |
| Similaridade da frase | Bert, Gensen | A similaridade da frase é o processo de calcular uma pontuação de similaridade, dado um par de documentos de texto. | Inglês |
| Incorporação | Word2vec FastText Luva | A incorporação é o processo de converter uma palavra ou um pedaço de texto em um espaço vetorial contínuo de número real, geralmente, em baixa dimensão. | Inglês |
| Análise de sentimentos | Analisador de dependência Luva | Fornece um exemplo de análise de sentimentos baseados em trem e uso com arquiteto do Azure ML e Intel NLP. | Inglês |
Ao resolver problemas de PNL, é sempre bom começar com os serviços cognitivos pré -construídos. Quando as necessidades estão além dos limites do serviço cognitivo pré -construído e quando você deseja pesquisar métodos de aprendizado de máquina personalizados, você achará esse repositório muito útil. Para começar, navegue até o guia de configuração, que lista instruções sobre como configurar seu ambiente e dependências.
O Azure Machine Learning Service é um serviço em nuvem usado para treinar, implantar, automatizar e gerenciar modelos de aprendizado de máquina, tudo em larga escala que a nuvem fornece. O AzureML é apresentado em notebooks em diferentes cenários para melhorar a eficiência do desenvolvimento de sistemas de linguagem natural em escala e para várias tarefas relacionadas ao desenvolvimento de modelos de IA, como:
Para executar com sucesso esses notebooks, você precisará de uma assinatura do Azure ou pode tentar o Azure gratuitamente . Pode haver outros serviços ou produtos do Azure usados nos notebooks. Introdução e/ou referência dessas serão fornecidas nos próprios notebooks.
Esperamos que a comunidade de código aberto contribua para o conteúdo e traga o mais recente algoritmo SOTA. Este projeto recebe contribuições e sugestões. Antes de contribuir, consulte nossas diretrizes de contribuição.
Bootstrap sua solução de resumo de texto com a versão mais recente do NLP-Recipes
Anotação de texto facilitada com Doccano
Jumpstart analisando seus dados de texto em hindi usando o repositório de PNL
Acelerando o desenvolvimento de soluções de processamento de linguagem natural com aprendizado de máquina do Azure
A seguir, é apresentada uma lista de repositórios relacionados que gostamos e achamos úteis para tarefas de PNL.
| Repositório | Descrição |
|---|---|
| Transformadores | Uma ótima biblioteca Pytorch de abraçar o rosto com implementações de modelos populares baseados em transformadores. Usamos extensivamente o pacote deles neste repositório e apreciamos muito o esforço deles. |
| Notebooks de aprendizado de máquina do Azure | ML e exemplos de aprendizado profundo com aprendizado de máquina do Azure. |
| Azureml-Bert | Receitas de ponta a ponta para Bert de pré-treinamento e ajuste fino usando o Azure Machine Learning Service. |
| MASSA | Missa: Sequência mascarada para sequenciar pré-treinamento para geração de idiomas. |
| Mt-dnn | Redes neurais profundas de várias tarefas para o entendimento da linguagem natural. |
| Unilm | Modelo de linguagem unificada Pré-treinamento. |
| Dialogpt | Dialogpt: pré-treinamento generativo em larga escala para geração de respostas de conversação |
| Construir | Filial | Status |
|---|---|---|
| CPU Linux | mestre | |
| CPU Linux | encenação | |
| GPU Linux | mestre | |
| GPU Linux | encenação |