Создание помощника для письма на базе ИИ для WPS Office
WPS Office — это инструмент для продуктивной работы, разработанный Kingsoft и насчитывающий более 150 млн пользователей по всему миру. Отдел искусственного интеллекта (AI) компании создал умного помощника для письма с нуля, используя алгоритмы семантического сопоставления, такие как распознавание намерений и кластеризация текста. Инструмент существует как в виде веб-приложения, так и мини-программы WeChat, которая помогает пользователям быстро создавать планы, отдельные абзацы и целые документы, просто вводя заголовок и выбирая до пяти ключевых слов.
Рекомендательный движок помощника для письма использует Milvus, open-source движок поиска по сходству, для работы своего основного модуля векторной обработки. Ниже мы рассмотрим процесс создания умного помощника для письма WPS Office, включая то, как признаки извлекаются из неструктурированных данных, а также роль Milvus в хранении данных и обеспечении работы рекомендательного движка инструмента.
Перейти к:
- Осмысление неструктурированных текстовых данных
- Использование модели TFIDF для максимального извлечения признаков
- Извлечение признаков с помощью модели глубокого обучения bi-directional LSTM-CNNs-CRF
- Создание эмбеддингов предложений с использованием Infersent
- Хранение и запрос векторов с помощью Milvus
Осмысление неструктурированных текстовых данных
Как и любая современная задача, стоящая решения, создание помощника для письма WPS начинается с беспорядочных данных. Если быть немного точнее, с десятков миллионов насыщенных текстовых документов, из которых необходимо извлечь значимые признаки. Чтобы понять сложность этой проблемы, представьте, как два журналиста из разных новостных изданий могут освещать одну и ту же тему.
Хотя оба будут придерживаться правил, принципов и процессов, которые управляют структурой предложения, они будут выбирать разные слова, создавать предложения различной длины и использовать собственные структуры статей, чтобы рассказать похожие (или, возможно, непохожие) истории. В отличие от структурированных наборов данных с фиксированным числом измерений, массивы текста по своей природе лишены структуры, потому что управляющий ими синтаксис настолько гибок. Чтобы найти смысл, из неструктурированного корпуса документов необходимо извлечь машиночитаемые признаки. Но сначала данные нужно очистить.
Существует множество способов очистки текстовых данных, ни один из которых эта статья не будет подробно рассматривать. Тем не менее это важный этап, предшествующий обработке данных, и он может включать удаление тегов, удаление символов с диакритическими знаками, разворачивание сокращений, удаление специальных символов, удаление стоп-слов и многое другое. Подробное объяснение методов предварительной обработки и очистки текстовых данных можно найти здесь.
Использование модели TFIDF для максимального извлечения признаков
Чтобы начать осмыслять неструктурированные текстовые данные, к корпусу, из которого извлекает данные помощник для письма WPS, была применена модель term frequency–inverse document frequency (TFIDF). Эта модель использует комбинацию двух метрик — частоты термина и обратной частоты документа — чтобы присвоить каждому слову в документе значение TFIDF. Частота термина (TF) представляет собой необработанное количество вхождений термина в документе, деленное на общее число терминов в документе, тогда как обратная частота документа (IDF) — это число документов в корпусе, деленное на число документов, в которых встречается термин.
Произведение TF и IDF дает меру того, насколько часто термин встречается в документе, умноженную на то, насколько уникальным является слово в корпусе. В конечном счете значения TFIDF являются мерой того, насколько релевантно слово документу в коллекции документов. Термины сортируются по значениям TFIDF, и тем, у которых низкие значения (т. е. общеупотребительным словам), можно присваивать меньший вес при использовании глубокого обучения для извлечения признаков из корпуса.
Извлечение признаков с помощью модели глубокого обучения bi-directional LSTM-CNNs-CRF
Используя комбинацию двунаправленной долгой краткосрочной памяти (BLSTM), сверточных нейронных сетей (CNN) и условных случайных полей (CRF), из корпуса можно извлекать представления как на уровне слов, так и на уровне символов. Модель BLSTM-CNNs-CRF, использованная для создания ассистента письма WPS Office, работает следующим образом:
- CNN: Векторные представления символов используются как входные данные для CNN, затем семантически релевантные структуры слов (т. е. префикс или суффикс) извлекаются и кодируются в векторы представления на уровне символов.
- BLSTM: Векторы на уровне символов конкатенируются с векторами вложений слов, затем подаются в сеть BLSTM. Каждая последовательность подается вперед и назад в два отдельных скрытых состояния, чтобы захватить прошлую и будущую информацию.
- CRF: Выходные векторы из BLSTM подаются на слой CRF для совместного декодирования лучшей последовательности меток.
Теперь нейронная сеть способна извлекать и классифицировать именованные сущности из неструктурированного текста. Этот процесс называется распознаванием именованных сущностей (NER) и включает в себя поиск и классификацию таких категорий, как имена людей, учреждения, географические местоположения и многое другое. Эти сущности играют важную роль в сортировке и извлечении данных из памяти. Отсюда из корпуса можно извлекать ключевые предложения, абзацы и резюме.
Создание векторных представлений предложений с помощью Infersent
Infersent, метод векторных представлений предложений с учителем, разработанный Facebook, который встраивает полные предложения в векторное пространство, используется для создания векторов, которые будут переданы в базу данных Milvus. Infersent был обучен с использованием корпуса Stanford Natural Language Inference (SNLI), который содержит 570 тыс. пар предложений, написанных и размеченных людьми. Дополнительную информацию о том, как работает Infersent, можно найти здесь.
Хранение и запрос векторов с помощью Milvus
Milvus — это поисковая система сходства с открытым исходным кодом, которая поддерживает добавление, удаление, обновление и поиск вложений в почти реальном времени в масштабе триллионов байтов. Чтобы улучшить производительность запросов, Milvus позволяет указывать тип индекса для каждого векторного поля. Интеллектуальный ассистент WPS Office использует индекс IVF_FLAT, самый базовый тип индекса Inverted File (IVF), где «flat» означает, что векторы хранятся без сжатия или квантования. Кластеризация основана на IndexFlat2, который использует точный поиск по расстоянию L2.
Хотя IVF_FLAT имеет 100% коэффициент полноты запросов, отсутствие сжатия приводит к сравнительно низкой скорости запросов. Функция партиционирования Milvus используется для разделения данных на несколько частей физического хранилища на основе заранее определенных правил, что делает запросы быстрее и точнее. Когда векторы добавляются в Milvus, теги указывают, в какой раздел следует добавить данные. Запросы к векторным данным используют теги, чтобы указать, в каком разделе должен выполняться запрос. Данные можно дополнительно разбивать на сегменты внутри каждого раздела для дальнейшего повышения скорости.
Интеллектуальный ассистент письма также использует кластеры Kubernetes, позволяя контейнерам приложений работать на нескольких машинах и в разных средах, а также MySQL для управления метаданными.
ИИ не заменяет писателей, он помогает им писать
Писательский ассистент Kingsoft для WPS Office использует Milvus для управления и выполнения запросов к базе данных, содержащей более 2 миллионов документов. Система отличается высокой гибкостью и способна выполнять поиск почти в реальном времени по наборам данных триллионного масштаба. Запросы выполняются в среднем за 0,2 секунды, что означает, что целые документы можно генерировать практически мгновенно, используя только заголовок или несколько ключевых слов. Хотя ИИ не заменяет профессиональных писателей, существующие сегодня технологии способны дополнять процесс письма новыми и интересными способами. Будущее неизвестно, но, как минимум, писатели могут рассчитывать на более продуктивные, а для некоторых — менее трудные способы «перенесения мыслей на бумагу».
Для этой статьи были использованы следующие источники:
- “End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF,” Xuezhe Ma and 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
Прочитайте другие истории пользователей, чтобы узнать больше о создании решений с Milvus.
Читать далее

Smarter Autoscaling in Zilliz Cloud: Always Optimized for Every Workload
With the latest upgrade, Zilliz Cloud introduces smarter autoscaling—a fully automated, more streamlined, elastic resource management system.

Why Not All VectorDBs Are Agent-Ready
Explore why choosing the right vector database is critical for scaling AI agents, and why traditional solutions fall short in production.

Milvus WebUI: A Visual Management Tool for Your Vector Database
Explore Milvus WebUI to monitor, manage, and optimize your vector database with real-time insights, performance tracking, and system health monitoring.



