Тема моделирования множества документов с небольшими затратами памятиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Тема моделирования множества документов с небольшими затратами памяти

Сообщение Anonymous »

Я работал над проектом тематического моделирования с использованием BERTopic 0.16.3, и предварительные результаты были многообещающими. Однако по мере развития проекта и появления требований я столкнулся с конкретной проблемой масштабируемости.
А именно:
  • < li>Для разработки/тестирования необходимо достаточно быстро обучиться на умеренном количестве документов (от десятков тысяч до нескольких сотен тысяч)
  • Наши машины для разработки — Mac, так что это вероятно, придется выполнять на ЦП
[*]Для производства необходимо обучение на большом количестве документов (несколько миллионов ) без увеличения использования памяти
  • Для базового уровня, с настройками по умолчанию на моем компьютере, BERTopic имеет пиковое использование памяти примерно 35 КБ на документ, что легко превращается в сотни ГБ или даже ТБ для объема данных, которые будут предоставлены в рабочей среде.
  • В идеале пиковое использование памяти должно быть сублинейным в зависимости от количества документов.
    < /ul>
Последнее требование требует пакетной обработки документов, поскольку для одновременной загрузки их всех в память требуется линейная память. Итак, я изучал алгоритмы кластеризации, которые работают с тематическим онлайн-моделированием. В документации BERTopic предлагается использовать MiniBatchKMeans от scikit-learn, но результаты, которые я получаю от этого, не очень хорошие.
Некоторые модели, которые я рассматривал, включают:
  • через scikit-learn: использует даже больше памяти, чем стандартный HDBSCAN BERTopic, даже при пакетной обработке. Также работает намного медленнее.
  • Код: Выделить всё

    IncrementalDBSCAN
    через incdbscan: поначалу это казалось многообещающим, но время выполнения и, в конечном итоге, объем памяти раздулись. Для примерно 120 тысяч документов в пакетах по 5000 он не использовал более 4 ГБ ОЗУ в течение первых 3,5 часов, но не завершил работу в течение десяти часов и в какой-то момент в середине использовал почти 40 ГБ ОЗУ.

    Код: Выделить всё

    AgglomerativeClustering
    через scikit-learn: дал очень хорошие результаты при первоначальном тестировании (возможно, даже лучше, чем HDBSCAN), но он не реализует метод parts_fit. Я нашел этот ответ на другой вопрос, в котором говорится, что можно обучить два из них, используя одну связь, независимо, а затем объединить их, но не указано, как это сделать.
Последние два также не предоставляют метод прогнозирования, что ограничивает их полезность.
Я новичок в этой теме, так что, возможно, я подхожу к этому совершенно неверно, и непосредственная проблема, которую я пытаюсь решить, не имеет решения. Чтобы внести ясность, на базовом уровне я пытаюсь ответить на вопрос: Как мне выполнить тематическое моделирование (и получить хорошие результаты) для большого количества документов, не используя слишком много памяти? >

Подробнее здесь: https://stackoverflow.com/questions/790 ... y-overhead
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»