Criando um assistente de escrita com IA para o WPS Office
O WPS Office é uma ferramenta de produtividade desenvolvida pela Kingsoft com mais de 150M de usuários em todo o mundo. O departamento de inteligência artificial (IA) da empresa criou um assistente de escrita inteligente do zero usando algoritmos de correspondência semântica, como reconhecimento de intenção e agrupamento de texto. A ferramenta existe tanto como uma aplicação web quanto como um mini programa do WeChat que ajuda os usuários a criar rapidamente esboços, parágrafos individuais e documentos inteiros simplesmente inserindo um título e selecionando até cinco palavras-chave.
O mecanismo de recomendação do assistente de escrita usa o Milvus, um mecanismo de busca por similaridade de código aberto, para impulsionar seu módulo central de processamento vetorial. Abaixo, exploraremos o processo de criação do assistente de escrita inteligente do WPS Office, incluindo como os recursos são extraídos de dados não estruturados, bem como o papel que o Milvus desempenha no armazenamento de dados e no funcionamento do mecanismo de recomendação da ferramenta.
Ir para:
- Dando sentido a dados textuais não estruturados
- Usando o modelo TFIDF para maximizar a extração de recursos
- Extraindo recursos com o modelo de aprendizado profundo LSTM-CNNs-CRF bidirecional
- Criando embeddings de frases usando Infersent
- Armazenando e consultando vetores com Milvus
Dando sentido a dados textuais não estruturados
Assim como qualquer problema moderno que vale a pena resolver, a criação do assistente de escrita do WPS começa com dados confusos. Dezenas de milhões de documentos de texto densos dos quais recursos significativos devem ser extraídos, para ser um pouco mais preciso. Para entender a complexidade desse problema, considere como dois jornalistas de diferentes veículos de notícias poderiam reportar sobre o mesmo tema.
Embora ambos sigam as regras, princípios e processos que regem a estrutura das frases, eles farão diferentes escolhas de palavras, criarão frases de comprimentos variados e usarão suas próprias estruturas de artigo para contar histórias semelhantes (ou talvez diferentes). Ao contrário de conjuntos de dados estruturados com um número fixo de dimensões, corpos de texto inerentemente carecem de estrutura porque a sintaxe que os rege é muito maleável. Para encontrar significado, recursos legíveis por máquina devem ser extraídos de um corpus não estruturado de documentos. Mas, primeiro, os dados devem ser limpos.
Há várias maneiras de limpar dados textuais, nenhuma das quais este artigo abordará em profundidade. Ainda assim, esta é uma etapa importante que antecede o processamento dos dados e pode incluir a remoção de tags, remoção de caracteres acentuados, expansão de contrações, remoção de caracteres especiais, remoção de stopwords e muito mais. Uma explicação detalhada dos métodos de pré-processamento e limpeza de dados de texto pode ser encontrada aqui.
Usando o modelo TFIDF para maximizar a extração de recursos
Para começar a dar sentido aos dados textuais não estruturados, o modelo de frequência do termo–frequência inversa do documento (TFIDF) foi aplicado ao corpus do qual o assistente de escrita do WPS se alimenta. Esse modelo usa uma combinação de duas métricas, frequência do termo e frequência inversa do documento, para atribuir a cada palavra dentro de um documento um valor TFIDF. A frequência do termo (TF) representa a contagem bruta de um termo em um documento dividida pelo número total de termos no documento, enquanto a frequência inversa do documento (IDF) é o número de documentos em um corpus dividido pelo número de documentos nos quais um termo aparece.
O produto de TF e IDF fornece uma medida de quão frequentemente um termo aparece em um documento multiplicada por quão única a palavra é no corpus. Em última análise, os valores de TFIDF são uma medida de quão relevante uma palavra é para um documento dentro de uma coleção de documentos. Os termos são ordenados por valores de TFIDF, e aqueles com valores baixos (ou seja, palavras comuns) podem receber menor peso ao usar deep learning para extrair recursos do corpus.
Extraindo recursos com o modelo de deep learning bi-directional LSTM-CNNs-CRF
Usando uma combinação de memória de longo e curto prazo bidirecional (BLSTM), redes neurais convolucionais (CNN) e campos aleatórios condicionais (CRF), representações em nível de palavra e de caractere podem ser extraídas do corpus. O modelo BLSTM-CNNs-CRF usado para criar o assistente de escrita do WPS Office funciona da seguinte forma:
- CNN: Embeddings de caracteres são usados como entradas para a CNN; então, estruturas de palavras semanticamente relevantes (ou seja, o prefixo ou sufixo) são extraídas e codificadas em vetores de representação em nível de caractere.
- BLSTM: Vetores em nível de caractere são concatenados com vetores de embedding de palavras e então alimentados na rede BLSTM. Cada sequência é apresentada para frente e para trás a dois estados ocultos separados para capturar informações passadas e futuras.
- CRF: Os vetores de saída da BLSTM são alimentados à camada CRF para decodificar conjuntamente a melhor sequência de rótulos.
A rede neural agora é capaz de extrair e classificar entidades nomeadas a partir de texto não estruturado. Esse processo é chamado de reconhecimento de entidades nomeadas (NER) e envolve localizar e classificar categorias como nomes de pessoas, instituições, localizações geográficas e mais. Essas entidades desempenham um papel importante na classificação e recuperação de dados. A partir daqui, frases-chave, parágrafos e resumos podem ser extraídos do corpus.
Criando embeddings de frases usando Infersent
Infersent, um método supervisionado de embeddings de frases desenvolvido pelo Facebook que incorpora frases completas em espaço vetorial, é usado para criar vetores que serão inseridos no banco de dados Milvus. O Infersent foi treinado usando o corpus Stanford Natural Language Inference (SNLI), que contém 570 mil pares de frases que foram escritas e rotuladas por humanos. Informações adicionais sobre como o Infersent funciona podem ser encontradas aqui.
Armazenando e consultando vetores com Milvus
Milvus é um mecanismo de busca por similaridade de código aberto que oferece suporte à adição, exclusão, atualização e busca em tempo quase real de embeddings na escala de trilhões de bytes. Para melhorar o desempenho das consultas, o Milvus permite que um tipo de índice seja especificado para cada campo vetorial. O assistente inteligente do WPS Office usa o índice IVF_FLAT, o tipo mais básico de índice Inverted File (IVF), em que “flat” significa que os vetores são armazenados sem compressão ou quantização. O agrupamento é baseado no IndexFlat2, que usa busca exata para distância L2.
Embora o IVF_FLAT tenha uma taxa de recall de consulta de 100%, sua falta de compressão resulta em velocidades de consulta comparativamente lentas. A função de particionamento do Milvus é usada para dividir os dados em várias partes de armazenamento físico com base em regras predefinidas, tornando as consultas mais rápidas e mais precisas. Quando vetores são adicionados ao Milvus, tags especificam a qual partição os dados devem ser adicionados. Consultas dos dados vetoriais usam tags para especificar em qual partição a consulta deve ser executada. Os dados podem ser ainda subdivididos em segmentos dentro de cada partição para melhorar ainda mais a velocidade.
O assistente de escrita inteligente também usa clusters Kubernetes, permitindo que contêineres de aplicativos sejam executados em várias máquinas e ambientes, bem como MySQL para gerenciamento de metadados.
A IA não está substituindo escritores, está ajudando-os a escrever
O assistente de escrita da Kingsoft para o WPS Office depende do Milvus para gerenciar e consultar um banco de dados com mais de 2 milhões de documentos. O sistema é altamente flexível, capaz de executar buscas quase em tempo real em conjuntos de dados na escala de trilhões. As consultas são concluídas em 0,2 segundo, em média, o que significa que documentos inteiros podem ser gerados quase instantaneamente usando apenas um título ou algumas palavras-chave. Embora a IA não esteja substituindo escritores profissionais, a tecnologia que existe hoje é capaz de aprimorar o processo de escrita de maneiras novas e interessantes. O futuro é desconhecido, mas, no mínimo, os escritores podem esperar métodos mais produtivos e, para alguns, menos difíceis de “colocar as ideias no papel.”
As seguintes fontes foram usadas para este artigo:
- “End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF,” Xuezhe Ma e Eduard Hovy.
- “Traditional Methods for Text Data,” Dipanjan (DJ) Sarkar.
- “Text Features Extraction based on TF-IDF Associating Semantic,” Qing Liu, Jing Wang, Dehai Zhang, Yun Yang, NaiYao Wang.
- “Understanding Sentence Embeddings using Facebook’s Infersent,” Rehan Ahmad
- “Supervised Learning of Universal Sentence Representations from Natural Language Inference Data,” Alexis Conneau, Douwe Kiela, Holger Schwenk, LoÏc Barrault, Antoine Bordes.V1
Leia outras histórias de usuários para saber mais sobre como criar coisas com o Milvus.
Continue lendo
Stop Building AI Data Infra for the Wrong Stage
Learn how AI data infrastructure should evolve from prototype to enterprise scale, and when Vector Lakebase becomes the right architecture for AI apps.

Zilliz Cloud Delivers Better Performance and Lower Costs with Arm Neoverse-based AWS Graviton
Zilliz Cloud adopts Arm-based AWS Graviton3 CPUs to cut costs, speed up AI vector search, and power billion-scale RAG and semantic search workloads.

Proactive Monitoring for Vector Database: Zilliz Cloud Integrates with Datadog
we're excited to announce Zilliz Cloud's integration with Datadog, enabling comprehensive monitoring and observability for your vectorDB deployments.



