Size: a a a

2020 May 13

OT

Oscar Tempter in catboost_ru
Ivan Lyzhin
Можно попробовать через параметр feature_weights задать вес этой фиче меньше 1
о отлично, спасибо!
источник

MF

Maxim FromSiberia in catboost_ru
Обучаю две модели, которые отличаются только размером обучающего множества. Все остальное - одинаковое: фичи, колво итераций, другие параметры. В первой модели размер обуч мнва 1 млн строк, во второй 100 млн строк. В итоге вторая модель отдает предсказания в 5 раз медленнее. Есть ли этому объяснение?
источник

Аa

Андрей amber4eg... in catboost_ru
а запрашиваешь ты одинаковое количество предсказаний одним и тем же пакетом?
источник

Аa

Андрей amber4eg... in catboost_ru
условно 100 тысяч, а не 10%?
источник

MF

Maxim FromSiberia in catboost_ru
Да, все одинаково делаю.
источник

AK

Andrei Khropov in catboost_ru
Maxim FromSiberia
Обучаю две модели, которые отличаются только размером обучающего множества. Все остальное - одинаковое: фичи, колво итераций, другие параметры. В первой модели размер обуч мнва 1 млн строк, во второй 100 млн строк. В итоге вторая модель отдает предсказания в 5 раз медленнее. Есть ли этому объяснение?
Категориальные признаки есть?
источник

MF

Maxim FromSiberia in catboost_ru
Andrei Khropov
Категориальные признаки есть?
Нет.
источник

NT

Nikolay Tolstov in catboost_ru
залезтье в _get_params както так пишется, сравните параметры. Некоторые автоматически настраиваются
источник
2020 May 14

AB

Alexey Belyaev in catboost_ru
Alexey Belyaev
И в догонку второй вопрос. Я убрал категориальные фичи. Теперь у меня есть train и eval файлы по 22Г. Я запускаю quantize для них как в примере, и на подготовку расходуется 25Г RAM. После чего У видеокарт запрашивается 22Г памяти, которых в них нет – там 8Г + 6Г
Что мне следовало сделать, чтобы что-то заработало? =)
Можно ли как-то ограничить используемую память имеющимися на машинке ресурсами?

PS попробовал параметр quantize used_ram_limit, для которого нет описания. Получил лог на 60МБ из сообщений
Resource CPU RAM: functionWithResourceUsage.ResourceUsage(10000) > ResourceQuota(0)
пришлось прервать

PPS удалось запустить fit на CPU, но использована вся RAM. Выглядит так, будто quantize строит пулы на основе доступной памяти CPU. Но тогда это делает невозможным использование GPU, если его память на машине меньше, чем RAM. И скорость на CPU совершенно неприемлемая. Нужно плашки оперативки вынимать, чтобы все заработало? =)
И все-таки, возможно ли использовать quantize в ситуации, когда память GPU меньше, чем память CPU, или это не предусмотрено?
источник

SK

Stanislav Kirillov in catboost_ru
конечно
источник

SK

Stanislav Kirillov in catboost_ru
Более того, это типичная ситуация 🙂
источник

SK

Stanislav Kirillov in catboost_ru
Скажите, а вы квантизуете с помощью отдельного метода или с помощью объекта Pool?
источник

AB

Alexey Belyaev in catboost_ru
Stanislav Kirillov
Скажите, а вы квантизуете с помощью отдельного метода или с помощью объекта Pool?
Привет! =)

Вчера задал два вопроса)

1) Доброй ночи, коллеги! Решил воспользоваться долгожданной функцией utils.quantize и получил такое:
_catboost.CatBoostError: catboost/libs/data/load_and_quantize_data.cpp:52: Categorical features are not supported in block quantization

Правильно ли я понял, что киллер фича релиза не работает с Categorical features вообще? =(

Есть ли какие-то способы с этим работать (без предварительного one-hot и тп)?

Ну, и планируется ли поддержка категориальных фич в будущем? В ближней перспективе или дальней?

2) Как раз про отдельный метод quantize:

И в догонку второй вопрос. Я убрал категориальные фичи. Теперь у меня есть train и eval файлы по 22Г. Я запускаю quantize для них как в примере, и на подготовку расходуется 25Г RAM. После чего У видеокарт запрашивается 22Г памяти, которых в них нет – там 8Г + 6Г
Что мне следовало сделать, чтобы что-то заработало? =)
Можно ли как-то ограничить используемую память имеющимися на машинке ресурсами?

PS попробовал параметр quantize used_ram_limit, для которого нет описания. Получил лог на 60МБ из сообщений
Resource CPU RAM: functionWithResourceUsage.ResourceUsage(10000) > ResourceQuota(0)
пришлось прервать

PPS удалось запустить fit на CPU, но использована вся RAM. Выглядит так, будто quantize строит пулы на основе доступной памяти CPU. Но тогда это делает невозможным использование GPU, если его память на машине меньше, чем RAM. И скорость на CPU совершенно неприемлемая. Нужно плашки оперативки вынимать, чтобы все заработало? =) Поможет ли ulimit, например?
источник

AB

Alexey Belyaev in catboost_ru
PPPS
- ulimit не помогает
- дополнительно запустил quantize на сете 80Г (вчера было 22) – процесс съел всю память сервера (32Г) и своп. Перестал работать sshd 😂
источник

AB

Alexey Belyaev in catboost_ru
Пока впечатление, что utils.quantize работает на игрушечных примерах. В любом случае, исходя из того, как преподносится функция, меньше всего ожидаешь, что она будет использовать по 32Г+ RAM 😵
источник

SK

Stanislav Kirillov in catboost_ru
Alexey Belyaev
Привет! =)

Вчера задал два вопроса)

1) Доброй ночи, коллеги! Решил воспользоваться долгожданной функцией utils.quantize и получил такое:
_catboost.CatBoostError: catboost/libs/data/load_and_quantize_data.cpp:52: Categorical features are not supported in block quantization

Правильно ли я понял, что киллер фича релиза не работает с Categorical features вообще? =(

Есть ли какие-то способы с этим работать (без предварительного one-hot и тп)?

Ну, и планируется ли поддержка категориальных фич в будущем? В ближней перспективе или дальней?

2) Как раз про отдельный метод quantize:

И в догонку второй вопрос. Я убрал категориальные фичи. Теперь у меня есть train и eval файлы по 22Г. Я запускаю quantize для них как в примере, и на подготовку расходуется 25Г RAM. После чего У видеокарт запрашивается 22Г памяти, которых в них нет – там 8Г + 6Г
Что мне следовало сделать, чтобы что-то заработало? =)
Можно ли как-то ограничить используемую память имеющимися на машинке ресурсами?

PS попробовал параметр quantize used_ram_limit, для которого нет описания. Получил лог на 60МБ из сообщений
Resource CPU RAM: functionWithResourceUsage.ResourceUsage(10000) > ResourceQuota(0)
пришлось прервать

PPS удалось запустить fit на CPU, но использована вся RAM. Выглядит так, будто quantize строит пулы на основе доступной памяти CPU. Но тогда это делает невозможным использование GPU, если его память на машине меньше, чем RAM. И скорость на CPU совершенно неприемлемая. Нужно плашки оперативки вынимать, чтобы все заработало? =) Поможет ли ulimit, например?
А если сохранить результирующий квантованный пул в файл, какой будет размер?
Да, катфичи пока не квантуются, тут планы есть, но не в ближайшем будущем, к сожалению 🙁
источник

AB

Alexey Belyaev in catboost_ru
Stanislav Kirillov
А если сохранить результирующий квантованный пул в файл, какой будет размер?
Да, катфичи пока не квантуются, тут планы есть, но не в ближайшем будущем, к сожалению 🙁
Привет! К сожалению, на вызов train_pool.save(...) после train_pool = quantize(...) памяти уже не хватает – процесс убивается системой.
- после train_pool = quantize(...) занято 12Г
- train_pool.save(...) съедает все остальное до 32 и своп, потом смерть
источник

SK

Stanislav Kirillov in catboost_ru
Ого
источник

SK

Stanislav Kirillov in catboost_ru
это явный баг!
источник

SK

Stanislav Kirillov in catboost_ru
Ты пока не завел ишью под это дело?
источник