А именно:
- < li>Для разработки/тестирования необходимо достаточно быстро обучиться на умеренном количестве документов (от десятков тысяч до нескольких сотен тысяч)
- Наши машины для разработки — Mac, так что это вероятно, придется выполнять на ЦП
- Для базового уровня, с настройками по умолчанию на моем компьютере, BERTopic имеет пиковое использование памяти примерно 35 КБ на документ, что легко превращается в сотни ГБ или даже ТБ для объема данных, которые будут предоставлены в рабочей среде.
- В идеале пиковое использование памяти должно быть сублинейным в зависимости от количества документов.
< /ul>
Некоторые модели, которые я рассматривал, включают:
- через scikit-learn: использует даже больше памяти, чем стандартный HDBSCAN BERTopic, даже при пакетной обработке. Также работает намного медленнее.
Код: Выделить всё
Birch - через incdbscan: поначалу это казалось многообещающим, но время выполнения и, в конечном итоге, объем памяти раздулись. Для примерно 120 тысяч документов в пакетах по 5000 он не использовал более 4 ГБ ОЗУ в течение первых 3,5 часов, но не завершил работу в течение десяти часов и в какой-то момент в середине использовал почти 40 ГБ ОЗУ.
Код: Выделить всё
IncrementalDBSCANчерез scikit-learn: дал очень хорошие результаты при первоначальном тестировании (возможно, даже лучше, чем HDBSCAN), но он не реализует метод parts_fit. Я нашел этот ответ на другой вопрос, в котором говорится, что можно обучить два из них, используя одну связь, независимо, а затем объединить их, но не указано, как это сделать.Код: Выделить всё
AgglomerativeClustering
Я новичок в этой теме, так что, возможно, я подхожу к этому совершенно неверно, и непосредственная проблема, которую я пытаюсь решить, не имеет решения. Чтобы внести ясность, на базовом уровне я пытаюсь ответить на вопрос: Как мне выполнить тематическое моделирование (и получить хорошие результаты) для большого количества документов, не используя слишком много памяти? >
Подробнее здесь: https://stackoverflow.com/questions/790 ... y-overhead