Creare un assistente di scrittura basato sull'IA per WPS Office
WPS Office è uno strumento di produttività sviluppato da Kingsoft con oltre 150 milioni di utenti in tutto il mondo. Il dipartimento di intelligenza artificiale (AI) dell’azienda ha creato da zero un assistente di scrittura intelligente utilizzando algoritmi di matching semantico come il riconoscimento dell’intento e il clustering del testo. Lo strumento esiste sia come applicazione web sia come mini programma WeChat che aiuta gli utenti a creare rapidamente scalette, singoli paragrafi e interi documenti semplicemente inserendo un titolo e selezionando fino a cinque parole chiave.
Il motore di raccomandazione dell’assistente di scrittura utilizza Milvus, un motore di ricerca di similarità open-source, per alimentare il suo modulo principale di elaborazione vettoriale. Di seguito esploreremo il processo di creazione dell’assistente di scrittura intelligente di WPS Office, incluso il modo in cui le funzionalità vengono estratte da dati non strutturati, nonché il ruolo che Milvus svolge nell’archiviazione dei dati e nell’alimentazione del motore di raccomandazione dello strumento.
Vai a:
- Dare senso ai dati testuali non strutturati
- Usare il modello TFIDF per massimizzare l’estrazione delle funzionalità
- Estrarre funzionalità con il modello di deep learning LSTM-CNNs-CRF bidirezionale
- Creare embedding di frasi usando Infersent
- Archiviare e interrogare vettori con Milvus
Dare senso ai dati testuali non strutturati
Proprio come qualsiasi problema moderno che valga la pena risolvere, la creazione dell’assistente di scrittura WPS inizia con dati disordinati. Decine di milioni di documenti di testo densi da cui devono essere estratte funzionalità significative, per essere un po’ più precisi. Per comprendere la complessità di questo problema, considera come due giornalisti di diverse testate potrebbero riferire sullo stesso argomento.
Sebbene entrambi aderiscano alle regole, ai principi e ai processi che governano la struttura delle frasi, faranno scelte lessicali diverse, creeranno frasi di lunghezza variabile e useranno le proprie strutture di articolo per raccontare storie simili (o forse dissimili). A differenza dei dataset strutturati con un numero fisso di dimensioni, i corpi di testo sono intrinsecamente privi di struttura perché la sintassi che li governa è così malleabile. Per trovare significato, è necessario estrarre funzionalità leggibili dalla macchina da un corpus non strutturato di documenti. Ma prima, i dati devono essere ripuliti.
Esistono vari modi per ripulire i dati testuali, nessuno dei quali verrà trattato in dettaglio in questo articolo. Tuttavia, questo è un passaggio importante che precede l’elaborazione dei dati e può includere la rimozione di tag, la rimozione di caratteri accentati, l’espansione delle contrazioni, la rimozione di caratteri speciali, la rimozione delle stopword e altro ancora. Una spiegazione dettagliata dei metodi per il pre-processing e la pulizia dei dati testuali può essere trovata qui.
Usare il modello TFIDF per massimizzare l’estrazione delle funzionalità
Per iniziare a dare senso ai dati testuali non strutturati, il modello term frequency–inverse document frequency (TFIDF) è stato applicato al corpus da cui attinge l’assistente di scrittura WPS. Questo modello utilizza una combinazione di due metriche, frequenza del termine e frequenza inversa del documento, per assegnare a ogni parola all’interno di un documento un valore TFIDF. La frequenza del termine (TF) rappresenta il conteggio grezzo di un termine in un documento diviso per il numero totale di termini nel documento, mentre la frequenza inversa del documento (IDF) è il numero di documenti in un corpus diviso per il numero di documenti in cui compare un termine.
Il prodotto di TF e IDF fornisce una misura di quanto frequentemente un termine appare in un documento moltiplicata per quanto la parola sia unica nel corpus. In definitiva, i valori TFIDF sono una misura di quanto una parola sia rilevante per un documento all’interno di una raccolta di documenti. I termini vengono ordinati in base ai valori TFIDF e a quelli con valori bassi (cioè parole comuni) può essere assegnato un peso minore quando si utilizza il deep learning per estrarre caratteristiche dal corpus.
Estrazione di caratteristiche con il modello di deep learning LSTM-CNNs-CRF bidirezionale
Utilizzando una combinazione di memoria a lungo breve termine bidirezionale (BLSTM), reti neurali convoluzionali (CNN) e campi casuali condizionali (CRF), è possibile estrarre dal corpus rappresentazioni sia a livello di parola sia a livello di carattere. Il modello BLSTM-CNNs-CRF utilizzato per creare l’assistente alla scrittura di WPS Office funziona come segue:
- CNN: Gli embedding dei caratteri vengono utilizzati come input per la CNN, quindi le strutture di parole semanticamente rilevanti (cioè il prefisso o il suffisso) vengono estratte e codificate in vettori di rappresentazione a livello di carattere.
- BLSTM: I vettori a livello di carattere vengono concatenati con i vettori di embedding delle parole e poi inseriti nella rete BLSTM. Ogni sequenza viene presentata in avanti e all’indietro a due stati nascosti separati per catturare informazioni passate e future.
- CRF: I vettori di output della BLSTM vengono inviati allo strato CRF per decodificare congiuntamente la migliore sequenza di etichette.
La rete neurale è ora in grado di estrarre e classificare entità nominate da testo non strutturato. Questo processo si chiama riconoscimento di entità nominate (NER) e prevede l’individuazione e la classificazione di categorie come nomi di persone, istituzioni, località geografiche e altro ancora. Queste entità svolgono un ruolo importante nell’ordinamento e nel recupero dei dati. Da qui è possibile estrarre dal corpus frasi chiave, paragrafi e riassunti.
Creazione di embedding di frasi utilizzando Infersent
Infersent, un metodo supervisionato di embedding di frasi progettato da Facebook che incorpora frasi complete nello spazio vettoriale, viene utilizzato per creare vettori che verranno inseriti nel database Milvus. Infersent è stato addestrato utilizzando il corpus Stanford Natural Language Inference (SNLI), che contiene 570.000 coppie di frasi scritte ed etichettate da esseri umani. Ulteriori informazioni su come funziona Infersent sono disponibili qui.
Archiviazione e interrogazione di vettori con Milvus
Milvus è un motore di ricerca di similarità open source che supporta l’aggiunta, l’eliminazione, l’aggiornamento e la ricerca quasi in tempo reale di embedding su scala di trilioni di byte. Per migliorare le prestazioni delle query, Milvus consente di specificare un tipo di indice per ciascun campo vettoriale. L’assistente intelligente di WPS Office utilizza l’indice IVF_FLAT, il tipo più basilare di indice Inverted File (IVF), dove “flat” significa che i vettori sono archiviati senza compressione o quantizzazione. Il clustering si basa su IndexFlat2, che utilizza la ricerca esatta per la distanza L2.
Sebbene IVF_FLAT abbia un tasso di richiamo delle query del 100%, la sua mancanza di compressione comporta velocità di query comparativamente lente. La funzione di partizionamento di Milvus viene utilizzata per dividere i dati in più parti di archiviazione fisica in base a regole predefinite, rendendo le query più rapide e più accurate. Quando i vettori vengono aggiunti a Milvus, i tag specificano a quale partizione devono essere aggiunti i dati. Le query dei dati vettoriali utilizzano i tag per specificare su quale partizione deve essere eseguita la query. I dati possono essere ulteriormente suddivisi in segmenti all’interno di ciascuna partizione per migliorare ulteriormente la velocità.
L’assistente intelligente alla scrittura utilizza anche cluster Kubernetes, consentendo ai container applicativi di funzionare su più macchine e ambienti, oltre a MySQL per la gestione dei metadati.
L’IA non sta sostituendo gli scrittori, li sta aiutando a scrivere
L’assistente alla scrittura di Kingsoft per WPS Office si affida a Milvus per gestire e interrogare un database di oltre 2 milioni di documenti. Il sistema è altamente flessibile, capace di eseguire ricerche quasi in tempo reale su dataset su scala di trilioni. Le query vengono completate in media in 0,2 secondi, il che significa che interi documenti possono essere generati quasi istantaneamente usando solo un titolo o alcune parole chiave. Sebbene l’IA non stia sostituendo gli scrittori professionisti, la tecnologia esistente oggi è in grado di potenziare il processo di scrittura in modi nuovi e interessanti. Il futuro è ignoto, ma quanto meno gli scrittori possono aspettarsi metodi più produttivi, e per alcuni meno difficili, per “mettere nero su bianco.”
Le seguenti fonti sono state utilizzate per questo articolo:
- “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
Leggi altre storie degli utenti per saperne di più sulla creazione di cose con Milvus.
Continua a leggere

Introducing Customer-Managed Encryption Keys (CMEK) on Zilliz Cloud
We're announcing the general availability of Customer-Managed Encryption Keys (CMEK) on Zilliz Cloud.

Data Deduplication at Trillion Scale: How to Solve the Biggest Bottleneck of LLM Training
Explore how MinHash LSH and Milvus handle data deduplication at the trillion-scale level, solving key bottlenecks in LLM training for improved AI model performance.

AI Integration in Video Surveillance Tools: Transforming the Industry with Vector Databases
Discover how AI and vector databases are revolutionizing video surveillance with real-time analysis, faster threat detection, and intelligent search capabilities for enhanced security.



