Editar

Partilhar via


Tecnologia de processamento de linguagem natural

Azure AI services
Azure Databricks
Azure HDInsight
Azure Synapse Analytics

O processamento de linguagem natural (NLP) tem muitas aplicações, como análise de sentimento, deteção de tópicos, deteção de linguagem, extração de frases-chave e categorização de documentos.

Especificamente, você pode usar a PNL para:

  • Classifique documentos, por exemplo, rotulando-os como confidenciais ou spam.
  • Realize processamento subsequente ou pesquisas com saídas de PNL.
  • Resuma o texto identificando entidades no documento.
  • Marque documentos com palavras-chave, utilizando entidades identificadas.
  • Realize pesquisas e recuperações baseadas em conteúdo por meio de marcação.
  • Resuma os principais tópicos de um documento usando entidades identificadas.
  • Categorize documentos para navegação utilizando tópicos detetados.
  • Enumerar documentos relacionados com base em um tópico selecionado.
  • Avalie o sentimento do texto para entender seu tom positivo ou negativo.

Com os avanços na tecnologia, a PNL não só pode ser usada para categorizar e analisar dados de texto, mas também para melhorar as funções de IA interpretáveis em diversos domínios. A integração de Large Language Models (LLM) melhora significativamente as capacidades da PNL. LLMs como GPT e BERT podem gerar texto semelhante ao humano e contextualmente consciente, tornando-os altamente eficazes para tarefas complexas de processamento de linguagem. Eles complementam as técnicas de PNL existentes, lidando com tarefas cognitivas mais amplas, que melhoram os sistemas de conversação e o envolvimento do cliente, especialmente com modelos como o Dolly 2.0da Databricks.

Relação e diferenças entre modelos linguísticos e PNL

A PNL é um campo abrangente que abrange várias técnicas de processamento da linguagem humana. Em contraste, os modelos de linguagem são um subconjunto específico dentro da PNL, com foco na aprendizagem profunda para executar tarefas de linguagem de alto nível. Embora os modelos de linguagem aprimorem a PNL fornecendo recursos avançados de geração e compreensão de texto, eles não são sinônimo de PNL. Em vez disso, eles servem como ferramentas poderosas dentro do domínio mais amplo da PNL, permitindo um processamento de linguagem mais sofisticado.

Observação

Este artigo se concentra na PNL. A relação entre PNL e modelos de linguagem demonstra que os modelos de linguagem melhoram os processos de PNL através de recursos superiores de compreensão e geração de linguagem.

Apache®, Apache Spark e o logotipo flame são marcas registradas ou marcas comerciais da Apache Software Foundation nos Estados Unidos e/ou em outros países. Nenhum endosso da Apache Software Foundation está implícito no uso dessas marcas.

Potenciais casos de utilização

Os cenários de negócios que podem se beneficiar da PNL personalizada incluem:

  • Inteligência Documental para documentos manuscritos ou criados por máquina em finanças, saúde, varejo, governo e outros setores.
  • Tarefas de PNL agnósticas do setor para processamento de texto, como reconhecimento de entidade de nome (NER), classificação, sumarização e extração de relação. Essas tarefas automatizam o processo de recuperação, identificação e análise de informações de documentos, como texto e dados não estruturados. Exemplos dessas tarefas incluem modelos de estratificação de risco, classificação ontológica e resumos de varejo.
  • Recuperação de informação e criação de gráficos de conhecimento para pesquisa semântica. Esta funcionalidade torna possível criar gráficos de conhecimento médico que apoiam a descoberta de medicamentos e ensaios clínicos.
  • Tradução de texto para sistemas de IA conversacional em aplicativos voltados para o cliente em varejo, finanças, viagens e outros setores.
  • Sentimento e inteligência emocional melhorada em analytics, particularmente para monitorizar a perceção da marca e análise de feedback do cliente.
  • Geração automatizada de relatórios. Sintetizar e gerar relatórios textuais abrangentes a partir de entradas de dados estruturados, auxiliando setores como finanças e conformidade onde a documentação completa é necessária.
  • Interfaces ativadas por voz para melhorar as interações do usuário em aplicativos de IoT e dispositivos inteligentes, integrando PNL para reconhecimento de voz e recursos naturais de conversação.
  • Modelos de linguagem adaptativa para ajustar dinamicamente a produção de linguagem para se adequar a vários níveis de compreensão do público, o que é crucial para o conteúdo educacional e melhorias de acessibilidade.
  • Análise de texto de cibersegurança para analisar padrões de comunicação e uso de linguagem em tempo real para identificar potenciais ameaças à segurança na comunicação digital, melhorando a deteção de tentativas de phishing ou desinformação.

Apache Spark como uma estrutura de PNL personalizada

O Apache Spark é uma poderosa estrutura de processamento paralelo que melhora o desempenho de aplicativos analíticos de big data por meio do processamento na memória. do Azure Synapse Analytics , Azure HDInsighte Azure Databricks continuam a fornecer acesso robusto aos recursos de processamento do Spark, garantindo a execução perfeita de operações de dados em grande escala.

Para cargas de trabalho de PNL personalizadas, o Spark NLP continua sendo uma estrutura eficiente capaz de processar grandes volumes de texto. Esta biblioteca de código aberto fornece funcionalidade extensiva através de bibliotecas Python, Java e Scala, que oferecem a sofisticação encontrada em bibliotecas de PNL proeminentes, como spaCy e NLTK. O Spark NLP inclui recursos avançados, como verificação ortográfica, análise de sentimento e classificação de documentos, garantindo consistentemente precisão e escalabilidade de última geração.

Diagrama que mostra áreas da funcionalidade N L P como reconhecimento de entidade. Várias caixas listam anotadores N L P, modelos e idiomas suportados.

Benchmarks públicos recentes destacam o desempenho do Spark NLP, mostrando melhorias significativas de velocidade em relação a outras bibliotecas, mantendo uma precisão comparável para treinar modelos personalizados. Notavelmente, a integração dos modelos Llama-2 e OpenAI Whisper melhora as interfaces de conversação e o reconhecimento de fala multilíngue, marcando avanços significativos nas capacidades de processamento otimizado.

Exclusivamente, o Spark NLP utiliza efetivamente um cluster Spark distribuído, funcionando como uma extensão nativa do Spark ML que opera diretamente em quadros de dados. Essa integração oferece suporte a ganhos de desempenho aprimorados em clusters, facilitando a criação de pipelines unificados de NLP e aprendizado de máquina para tarefas como classificação de documentos e previsão de riscos. A introdução de incorporações MPNet e o extenso suporte a ONNX enriquecem ainda mais esses recursos, permitindo um processamento preciso e sensível ao contexto.

Além das vantagens de desempenho, o Spark NLP oferece precisão de última geração em uma gama crescente de tarefas de PNL. A biblioteca vem com modelos de aprendizagem profunda pré-construídos para reconhecimento de entidades nomeadas, classificação de documentos, deteção de sentimentos e muito mais. Seu design rico em recursos inclui modelos de linguagem pré-treinados que suportam incorporações de palavras, pedaços, frases e documentos.

Com compilações otimizadas para CPUs, GPUs e os mais recentes chips Intel Xeon, a infraestrutura do Spark NLP foi projetada para escalabilidade, permitindo processos de treinamento e inferência para utilizar totalmente os clusters Spark. Isso garante o manuseio eficiente de tarefas de PNL em diversos ambientes e aplicativos, mantendo sua posição na vanguarda da inovação em PNL.

Desafios

  • Recursos de processamento: O processamento de uma coleção de documentos de texto de forma livre requer uma quantidade significativa de recursos computacionais, e o processamento também é demorado. Esse tipo de processamento geralmente envolve a implantação de computação de GPU. Avanços recentes, como otimizações em arquiteturas Spark NLP como Llama-2, que suportam quantização, ajudam a simplificar essas tarefas intensivas, tornando a alocação de recursos mais eficiente.

  • Problemas de padronização: Sem um formato de documento padronizado, pode ser difícil obter resultados consistentemente precisos quando você usa o processamento de texto de forma livre para extrair fatos específicos de um documento. Por exemplo, extrair o número e a data da fatura de várias faturas coloca desafios. A integração de modelos de PNL adaptáveis como o M2M100 melhorou a precisão de processamento em vários idiomas e formatos, facilitando uma maior consistência nos resultados.

  • Variedade e complexidade dos dados: Abordar a variedade de estruturas de documentos e nuances linguísticas permanece complexo. Inovações como as incorporações MPNet proporcionam uma melhor compreensão contextual, oferecendo um tratamento mais intuitivo de diversos formatos textuais e melhorando a confiabilidade geral do processamento de dados.

Principais critérios de seleção

No Azure, os serviços do Spark, como o Azure Databricks, o Microsoft Fabric e o Azure HDInsight, fornecem funcionalidade de PNL quando usados com o Spark NLP. Os serviços de IA do Azure são outra opção para a funcionalidade de PNL. Para decidir qual serviço usar, considere estas perguntas:

  • Pretende utilizar modelos pré-construídos ou pré-treinados? Se sim, considere usar as APIs que os serviços de IA do Azure oferecem ou baixe seu modelo de escolha por meio do Spark NLP, que agora inclui modelos avançados como Llama-2 e MPNet para recursos aprimorados.

  • Você precisa treinar modelos personalizados em relação a um grande corpus de dados de texto? Se sim, considere usar o Azure Databricks, o Microsoft Fabric ou o Azure HDInsight com o Spark NLP. Essas plataformas fornecem o poder computacional e a flexibilidade necessários para o treinamento extensivo de modelos.

  • Você precisa de recursos de PNL de baixo nível, como tokenização, derivação, lemmatização e frequência de termo/frequência de documento inversa (TF/IDF)? Se sim, considere usar o Azure Databricks, o Microsoft Fabric ou o Azure HDInsight com o Spark NLP. Como alternativa, use uma biblioteca de software de código aberto na ferramenta de processamento de sua escolha.

  • Você precisa de recursos simples e de alto nível de PNL, como identificação de entidade e intenção, deteção de tópicos, verificação ortográfica ou análise de sentimento? Se sim, considere usar as APIs que os serviços de IA do Azure oferecem. Ou faça o download do seu modelo de escolha através do Spark NLP para aproveitar funções pré-construídas para essas tarefas.

Matriz de capacidades

As tabelas a seguir resumem as principais diferenças nos recursos dos serviços de PNL.

Capacidades gerais

Funcionalidade Serviço Spark (Azure Databricks, Microsoft Fabric, Azure HDInsight) com Spark NLP Serviços de IA do Azure
Fornece modelos pré-treinados como um serviço Sim Sim
API REST Sim Sim
Programabilidade Python, Scala Para idiomas suportados, consulte Recursos adicionais
Suporta o processamento de grandes conjuntos de dados e documentos grandes Sim No

Recursos de PNL de baixo nível

Capacidade dos Anotadores

Funcionalidade Serviço Spark (Azure Databricks, Microsoft Fabric, Azure HDInsight) com Spark NLP Serviços de IA do Azure
Detetor de frases Sim No
Detetor de frases profundas Sim Sim
Tokenizador Sim Sim
Gerador de N-gramas Sim No
Segmentação de palavras Sim Sim
Stemmer Sim No
Lemmatizador Sim No
Identificação de classe gramatical Sim No
Analisador de dependência Sim No
Tradução Sim No
Limpador de palavras paradas Sim No
Correção ortográfica Sim No
Normalizador Sim Sim
Correspondente de texto Sim No
TF/IDF Sim No
Correspondente de expressão regular Sim Incorporado na compreensão de linguagem conversacional (CLU)
Correspondente de data Sim Possível na CLU através de reconhecedores DateTime
Fragmento Sim No

Observação

O Microsoft Language Understanding (LUIS) será desativado em 1º de outubro de 2025. Os aplicativos LUIS existentes são incentivados a migrar para o Entendimento de Linguagem Conversacional (CLU), um recurso dos Serviços de IA do Azure para Idioma, que aprimora os recursos de compreensão de idiomas e oferece novos recursos.

Recursos de PNL de alto nível

Funcionalidade Serviço Spark (Azure Databricks, Microsoft Fabric, Azure HDInsight) com Spark NLP Serviços de IA do Azure
Verificação ortográfica Sim No
Resumo Sim Sim
Perguntas e respostas Sim Sim
Deteção de sentimentos Sim Sim
Deteção de emoções Sim Apoia a mineração de opinião
Classificação de tokens Sim Sim, através de modelos personalizados
Classificação de textos Sim Sim, através de modelos personalizados
Representação de texto Sim No
NER Sim Sim — a análise de texto fornece um conjunto de NER, e os modelos personalizados estão em reconhecimento de entidade
Reconhecimento de entidades Sim Sim, através de modelos personalizados
Deteção de idioma Sim Sim
Suporta idiomas além do inglês Sim, suporta mais de 200 idiomas Sim, suporta mais de 97 idiomas

Configurar o Spark NLP no Azure

Para instalar o Spark NLP, use o código a seguir, mas substitua <version> pelo número da versão mais recente. Para obter mais informações, consulte a documentação do Spark NLP.

# Install Spark NLP from PyPI.
pip install spark-nlp==<version>

# Install Spark NLP from Anacodna or Conda.
conda install -c johnsnowlabs spark-nlp

# Load Spark NLP with Spark Shell.
spark-shell --packages com.johnsnowlabs.nlp:spark-nlp_<version>

# Load Spark NLP with PySpark.
pyspark --packages com.johnsnowlabs.nlp:spark-nlp_<version>

# Load Spark NLP with Spark Submit.
spark-submit --packages com.johnsnowlabs.nlp:spark-nlp_<version>

# Load Spark NLP as an external JAR after compiling and building Spark NLP by using sbt assembly.
spark-shell --jars spark-nlp-assembly-3 <version>.jar

Desenvolver pipelines de PNL

Para a ordem de execução de um pipeline de PNL, o Spark NLP segue o mesmo conceito de desenvolvimento dos modelos tradicionais de aprendizado de máquina do Spark ML, aplicando técnicas especializadas de PNL.

Diagrama que mostra os estágios do pipeline N L P, como montagem de documentos, deteção de frases, tokenização, normalização e incorporação de palavras.

Os principais componentes de um pipeline de PNL do Spark são:

  • DocumentAssembler: Um transformador que prepara dados convertendo-os em um formato que o Spark NLP pode processar. Este estágio é o ponto de entrada para cada pipeline de PNL do Spark. O DocumentAssembler lê uma coluna String ou um Array[String], com opções para pré-processar o texto usando setCleanupMode, que está desativado por padrão.

  • SentenceDetector: Um anotador que identifica limites de frases usando abordagens predefinidas. Ele pode retornar cada frase detetada em um Arrayou em linhas separadas quando explodeSentences estiver definido como true.

  • Tokenizer: Um anotador que divide o texto bruto em tokens discretos — palavras, números e símbolos — colocando-os como um TokenizedSentence. O Tokenizer não é ajustado e usa a configuração de entrada dentro do RuleFactory para criar regras de tokenização. Regras personalizadas podem ser adicionadas quando os padrões são insuficientes.

  • Normalizer: Um anotador encarregado de refinar tokens. O Normalizer aplica expressões regulares e transformações de dicionário para limpar texto e remover caracteres estranhos.

  • WordEmbeddings: Anotadores de pesquisa que mapeiam tokens para vetores, facilitando o processamento semântico. Você pode especificar um dicionário de incorporação personalizado usando setStoragePath, onde cada linha contém um token e seu vetor, separados por espaços. Tokens não resolvidos padrão para vetores zero.

O Spark NLP aproveita os pipelines do Spark MLlib, com suporte nativo do MLflow, uma plataforma de código aberto que gerencia o ciclo de vida do aprendizado de máquina. Os principais componentes do MLflow incluem:

  • MLflow Tracking: Registra execuções experimentais e fornece recursos de consulta robustos para analisar resultados.

  • Projetos MLflow: Permite a execução de código de ciência de dados em diversas plataformas, aumentando a portabilidade e reprodutibilidade.

  • MLflow Models: Suporta a implantação de modelos versáteis em diferentes ambientes por meio de uma estrutura consistente.

  • Model Registry: Fornece gerenciamento abrangente de modelos, armazenando versões centralmente para acesso e implantação simplificados, facilitando a prontidão para a produção.

O MLflow é integrado com plataformas como o Azure Databricks, mas também pode ser instalado em outros ambientes baseados no Spark para gerenciar e acompanhar seus experimentos. Essa integração permite o uso do MLflow Model Registry para disponibilizar modelos para fins de produção, simplificando assim o processo de implantação e mantendo a governança do modelo.

Usando o MLflow juntamente com o Spark NLP, você pode garantir o gerenciamento e a implantação eficientes de pipelines de NLP, atendendo aos requisitos modernos de escalabilidade e integração, ao mesmo tempo em que oferece suporte a técnicas avançadas, como incorporações de palavras e adaptações de modelos de linguagem grandes.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Principais autores:

Próximos passos