Масштабная дедупликация: подготовка AI-ассистента, который знает о компании всё

Среди наших клиентов — производитель и переработчик углеводородного сырья из Восточной Сибири. Ему требовался чат-бот, который повысил бы продуктивность сотрудников, ускорив для них поиск информации и отвечая на любые вопросы о компании. Что особенно ценно, клиент пришел к нам по рекомендации.
Масштабная дедупликация: подготовка AI-ассистента, который знает о компании всё
Среди наших клиентов — производитель и переработчик углеводородного сырья из Восточной Сибири. Ему требовался чат-бот, который повысил бы продуктивность сотрудников, ускорив для них поиск информации и отвечая на любые вопросы о компании. Что особенно ценно, клиент пришел к нам по рекомендации.
Перед CYFER была поставлена задача — создать AI-ассистента, способного отвечать на вопросы на основании всех существующих документов компании. Предстояло извлечь информацию из более чем 100 000 файлов, представленных в самых разных форматах: фотографии, сканы, сохраненные тексты в Word и Google, таблицы Excel, PDF
Перед CYFER была поставлена задача — создать AI-ассистента, способного отвечать на вопросы на основании всех существующих документов компании. Предстояло извлечь информацию из более чем 100 000 файлов, представленных в самых разных форматах: фотографии, сканы, сохраненные тексты в Word и Google, таблицы Excel, PDF
Решение по внедрению чат-бота в Базу знаний (БЗ) компании-клиента включало:
  • Сервис обновления и управления знаниями. Происходит автоматическое обновление БЗ и документов в ней автоматически обновляются. Очищаются устаревшие и дублированные данные (проводится дедупликация). Отслеживаются изменения в документах с фиксацией версий.
  • API ассистента. Оно состоит из основного API для взаимодействия с пользователями и отдельных для:
  • LLM (модели обработки естественного языка) — генерация ответов на запросы.
  • Embeddings — работа с векторизацией текста для поиска контекстно релевантной информации.
  • Базы данных (Postgres) — для хранения документов, индексов и связанной с ними метаинформации.
  • Фронтенд интерфейс на Gradio. Удобный пользовательский интерфейс для взаимодействия как с сотрудниками компании, так и с администраторами системы. Gradio обеспечивает простую настройку и использование графического интерфейса без сложной разработки.
  • Интеграцию с внешними приложениями компании. Есть возможность подключения к внутренним системам клиента (например, ERP, CRM, системам документооборота, BI-платформам и другим корпоративным приложениям). Также доступна интеграция через стандартные API или кастомные коннекторы.
  • Базу данных для хранения и обработки. Для структурированного хранения данных используется Postgres. Имеет место организация индексов для быстрого поиска по системе, включая текстовые поля, метаданные и документы оцифрованного формата.
  • Обеспечение защиты данных и разграничение доступа. Права доступа к различным функциям настраиваются в зависимости от ролей сотрудников. Происходит обеспечение шифрования данных, в том числе при взаимодействии между API и базой данных.

Таким образом, система представляет собой модульное и масштабируемое решение, подходящее для интеграции в корпоративные процессы, с акцентом на автоматизацию и качество обслуживания запросов с помощью AI.

Что представляет собой AI-ассистент

Решение по внедрению чат-бота в Базу знаний (БЗ) компании-клиента включало:
  • Сервис обновления и управления знаниями. Происходит автоматическое обновление БЗ и документов в ней автоматически обновляются. Очищаются устаревшие и дублированные данные (проводится дедупликация). Отслеживаются изменения в документах с фиксацией версий.
  • API ассистента. Оно состоит из основного API для взаимодействия с пользователями и отдельных для:
  • LLM (модели обработки естественного языка) — генерация ответов на запросы.
  • Embeddings — работа с векторизацией текста для поиска контекстно релевантной информации.
  • Базы данных (Postgres) — для хранения документов, индексов и связанной с ними метаинформации.
  • Фронтенд интерфейс на Gradio. Удобный пользовательский интерфейс для взаимодействия как с сотрудниками компании, так и с администраторами системы. Gradio обеспечивает простую настройку и использование графического интерфейса без сложной разработки.
  • Интеграцию с внешними приложениями компании. Есть возможность подключения к внутренним системам клиента (например, ERP, CRM, системам документооборота, BI-платформам и другим корпоративным приложениям). Также доступна интеграция через стандартные API или кастомные коннекторы.
  • Базу данных для хранения и обработки. Для структурированного хранения данных используется Postgres. Имеет место организация индексов для быстрого поиска по системе, включая текстовые поля, метаданные и документы оцифрованного формата.
  • Обеспечение защиты данных и разграничение доступа. Права доступа к различным функциям настраиваются в зависимости от ролей сотрудников. Происходит обеспечение шифрования данных, в том числе при взаимодействии между API и базой данных.

Таким образом, система представляет собой модульное и масштабируемое решение, подходящее для интеграции в корпоративные процессы, с акцентом на автоматизацию и качество обслуживания запросов с помощью AI.
Что представляет собой AI-ассистент

Дедуплекация

1
Дедуплекация
1
Один и тот же документ мог существовать в массиве данных сразу в нескольких вариантах: для публикации на портале, для рассылки по почте, в виде оригинального приказа и т.д. Поэтому для начала требовалось провести дедупликацию — очистить большой архив от любых повторов.

Мы действовали последовательно:
  1. Сначала на основе простого хеша провели поиск и устранение явных дубликатов.
  2. Затем искали и группировали одинаковые документы, в том числе с использованием технологии кластеризации. На основе TF-IDF-подхода быстро справились с первичной обработкой.
  3. Далее использовали кластеризацию для поиска файлов, совпадающих по темам, а также близких по содержанию, пусть и по-разному написанных: пользовательские инструкции к приложениям, шаблоны заявлений, примеры аналитических записок и т.д.
  4. Следующим шагом извлекли из документов их версии и метаданные. Это позволило понять, какие из них актуальнее.
Не обошлось без казусов. В одном из случаев было обнаружено порядка 15 документов, которые по содержанию отличались лишь названием подразделений. Нам предстояло определить, являются они обособленными или могут быть загружены в базу как нечто единое. В итоге мы создали виртуальный документ, который распространялся на все подразделения. Дополнительно провели зачистку от дублей чанков.

Проблематичной оказалась и работа с таблицами, имеющими сложный дизайн: изменяющееся количество колонок, одновременное использование вертикального и горизонтального текста и др. Но мы справились и с этим.

По завершению дедупликации от первичного массива файлов осталось около 20%, то есть порядка 20 000 документов.
Один и тот же документ мог существовать в массиве данных сразу в нескольких вариантах: для публикации на портале, для рассылки по почте, в виде оригинального приказа и т.д. Поэтому для начала требовалось провести дедупликацию — очистить большой архив от любых повторов.

Мы действовали последовательно:
  1. Сначала на основе простого хеша провели поиск и устранение явных дубликатов.
  2. Затем искали и группировали одинаковые документы, в том числе с использованием технологии кластеризации. На основе TF-IDF-подхода быстро справились с первичной обработкой.
  3. Далее использовали кластеризацию для поиска файлов, совпадающих по темам, а также близких по содержанию, пусть и по-разному написанных: пользовательские инструкции к приложениям, шаблоны заявлений, примеры аналитических записок и т.д.
  4. Следующим шагом извлекли из документов их версии и метаданные. Это позволило понять, какие из них актуальнее.
Не обошлось без казусов. В одном из случаев было обнаружено порядка 15 документов, которые по содержанию отличались лишь названием подразделений. Нам предстояло определить, являются они обособленными или могут быть загружены в базу как нечто единое. В итоге мы создали виртуальный документ, который распространялся на все подразделения. Дополнительно провели зачистку от дублей чанков.

Проблематичной оказалась и работа с таблицами, имеющими сложный дизайн: изменяющееся количество колонок, одновременное использование вертикального и горизонтального текста и др. Но мы справились и с этим.

По завершению дедупликации от первичного массива файлов осталось около 20%, то есть порядка 20 000 документов.

Подготовка данных

2
Подготовка данных
2
После устранения повторов перед нами стояла другая большая задача — собрать базу данных для AI-ассистента. При этом документы содержали не только текст, но и изображения, которые требовалось распознать и описать. На решение данной задачи у нас ушло 5 рабочих дней.

Поскольку файлов было много, мы разделили их на несколько групп, в зависимости от исходного качества. Для понимания выделим крайние:

Самые качественные. В эту группу попали документы, которые хорошо распознавались, не имели существенного количества шаблонов, таблиц и подписей: инструкции , приказы, тексты без изображений и с понятной структурой.

Одну их часть мы обработали автоматически, другую — через достаточно простой алгоритм на основе архитектуры BERT, связанных с исправлением недостатков, повторяющихся символов, табуляцией.

Распознавание качественных текстов проводили через программу Tesseract. Все данные переводили в Markdown (простой язык разметки, предпочтительнее для обучения больших языковых моделей) и немного подчищали.

Документы самого низкого качества. Это файлы со множеством разреженных таблиц и шаблонов, не несущих информацию, скриншоты с плохим разрешением или снятых с экранов (частый «спутник» инструкций для пользователей), фотографии бумажных версий. Для обработки здесь использовался весь набор технологий, визуальные LLM (мультимодальные языковые модели) и просмотр вручную.
Задействованные серверные мощности: графическая карта А100, 128 Гб оперативной памяти, HDD 2T.

Нам удалось сделать данные пригодными для непосредственного внедрения в AI-ассистент. С внушительным объемом в более чем 100 000 файлов наша команда справилась за 10 рабочих дней. Сотрудники клиента стали продуктивнее, повысилась точность принятия решений.

Помимо ассистента, который может отвечать абсолютно на любые вопросы о компании и ее правилах, регламентах, процедурах, клиент получил рекомендации по формированию документов и систему дедупликации на будущее. Также мы помогли в описании тех процессов, которые ранее не были описаны.

CYFER продолжает развивать и поддерживать созданный для данного клиента AI-ассистент. После реализации данного проекта на базе развернутой LLM мы реализовали другие сервисы и верим в дальнейшее плодотворное сотрудничество.
После устранения повторов перед нами стояла другая большая задача — собрать базу данных для AI-ассистента. При этом документы содержали не только текст, но и изображения, которые требовалось распознать и описать. На решение данной задачи у нас ушло 5 рабочих дней.

Поскольку файлов было много, мы разделили их на несколько групп, в зависимости от исходного качества. Для понимания выделим крайние:

Самые качественные. В эту группу попали документы, которые хорошо распознавались, не имели существенного количества шаблонов, таблиц и подписей: инструкции , приказы, тексты без изображений и с понятной структурой.

Одну их часть мы обработали автоматически, другую — через достаточно простой алгоритм на основе архитектуры BERT, связанных с исправлением недостатков, повторяющихся символов, табуляцией.

Распознавание качественных текстов проводили через программу Tesseract. Все данные переводили в Markdown (простой язык разметки, предпочтительнее для обучения больших языковых моделей) и немного подчищали.

Документы самого низкого качества. Это файлы со множеством разреженных таблиц и шаблонов, не несущих информацию, скриншоты с плохим разрешением или снятых с экранов (частый «спутник» инструкций для пользователей), фотографии бумажных версий. Для обработки здесь использовался весь набор технологий, визуальные LLM (мультимодальные языковые модели) и просмотр вручную.
Задействованные серверные мощности: графическая карта А100, 128 Гб оперативной памяти, HDD 2T.

Нам удалось сделать данные пригодными для непосредственного внедрения в AI-ассистент. С внушительным объемом в более чем 100 000 файлов наша команда справилась за 10 рабочих дней. Сотрудники клиента стали продуктивнее, повысилась точность принятия решений.

Помимо ассистента, который может отвечать абсолютно на любые вопросы о компании и ее правилах, регламентах, процедурах, клиент получил рекомендации по формированию документов и систему дедупликации на будущее. Также мы помогли в описании тех процессов, которые ранее не были описаны.

CYFER продолжает развивать и поддерживать созданный для данного клиента AI-ассистент. После реализации данного проекта на базе развернутой LLM мы реализовали другие сервисы и верим в дальнейшее плодотворное сотрудничество.

Вопросы по внедрению AI-ассистента

?
Вопросы по внедрению AI-ассистента
?

Резюме

Собранный объем данных
100 000 файлов (сканы, текстовые документы, табличные данные)
Ключевые эффекты
  • Повышение точности и скорости принятия решений
  • Увеличение продуктивности сотрудников
  • Развитие и поддержка со стороны CYFER для будущих интеграций и сервисов
Этапы работы
Дедупликация:
  • Устранение дубликатов и похожих документов (по контексту и содержанию)
  • Сокращение объема данных до 20% (20 000 файлов)
Подготовка данных:
  • Преобразование данных в единый формат (Markdown)
  • Работа с низкокачественными документами (OCR, визуальные LLM)
Результат
За 10 рабочих дней создан AI-ассистент, который:
  • оперирует обширной базой знаний
  • поддерживает точное и быстрое принятие решений
  • интегрирован с корпоративными системами (ERP, CRM)
Даны рекомендации клиенту по структуре документов и управления данными после внедрения
Резюме
Собранный объем данных
100 000 файлов (сканы, текстовые документы, табличные данные)
Ключевые эффекты
  • Повышение точности и скорости принятия решений
  • Увеличение продуктивности сотрудников
  • Развитие и поддержка со стороны CYFER для будущих интеграций и сервисов
Этапы работы
Дедупликация:
  • Устранение дубликатов и похожих документов (по контексту и содержанию)
  • Сокращение объема данных до 20% (20 000 файлов)
Подготовка данных:
  • Преобразование данных в единый формат (Markdown)
  • Работа с низкокачественными документами (OCR, визуальные LLM)
Результат
За 10 рабочих дней создан AI-ассистент, который:
  • оперирует обширной базой знаний
  • поддерживает точное и быстрое принятие решений
  • интегрирован с корпоративными системами (ERP, CRM)
Даны рекомендации клиенту по структуре документов и управления данными после внедрения
Внедрите искусственный интеллект, который решает ваши задачи, а не создает их
Внедрите искусственный интеллект, который решает ваши задачи,
а не создает их
Внедрите искусственный интеллект, который решает ваши задачи, а не создает их
Внедрите искусственный интеллект, который решает ваши задачи,
а не создает их
Made on
Tilda