Обновить

Создание системы по управлению цифровыми активами для базы данных PostGIS. Часть 3. Семантические связи между таблицами

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели5.5K
Всего голосов 3: ↑3 и ↓0+3
Комментарии6

Комментарии 6

Спасибо! Исправил)

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

Спасибо!
В данной работе применены две модели:

  1. BERTopic использует для вычисления эмбеддингов модель paraphrase-multilingual-MiniLM-L12-v2, скачанную с Hugging Face.

  2. В библиотеке SpaСy для извлечения именованных сущностей (получения тегов) в использую модель ru_core_news_lg . Она устанавливается консольной командой python -m spacy download ru_core_news_lg.

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

но подскажите, ведь записей много, с какой скоростью у вас они анализировались?

Данных действительно много: более чем 300 млн.записей разбросаны среди 1200 таблиц. Эмбеддинги вычислялись на видеокарте MSI GeForce RTX 3070 Ti VENTUS 3X 8G с помощью CUDA. BERTopic автоматически использует GPU для этой цели при наличии такой возможности.

Время получения векторизованного представления зависит от длины обрабатываемой строки: чем больше в ней токенов, тем больше требуется вычислений и, соответственно, времени для её обработки. 1.5 млн. записей обрабатываются приблизительно за 1,5-2 часа. Значит, для обработки всех записей с такой скоростью потребуется 300-400 часов (13-17 дней). Но т.к. можно параллельно создать несколько моделей для подмножества таблиц и потом объединить воедино полученные близкие кластеры (для этого в BERTopic предусмотрена функция merge_topics), то время может быть существенно сокращено. Причём данный подход с объединением близких тематик также можно использовать, если добавлены новые записи в одну или несколько таблиц - это позволяет не создавать модель для всего объёма данных, а лишь дообучить её.

Аналогичный подход используется при построении кластеризованной модели для оптимизации поиска по геометрии объектов (см. 1-ю статью). Каждая таблица кластеризуется отдельно, а затем все полученные кластеры добавляются в единую модель (таблицу). Алгоритм DBSCAN провёл кластеризацию 1.5 млн. записей приблизительно за 60 сек. Для кластеризации всех объектов БД по геометрии понадобится 3-4 часа.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации