Size: a a a

2019 November 09

SK

Stanislav Kirillov in catboost_ru
Там была внезапная бага в компиляторе msvc 🙂
источник

S

Ssv in catboost_ru
источник
2019 November 10

Bo

Blen obema in catboost_ru
Ребята, а катбусте есть параметр для мультипоточности при обучении? Что-то типа как n_jobs в sklearn?
источник

MK

Maxim Khrisanfov in catboost_ru
Blen obema
Ребята, а катбусте есть параметр для мультипоточности при обучении? Что-то типа как n_jobs в sklearn?
thread_count
источник

Bo

Blen obema in catboost_ru
Maxim Khrisanfov
thread_count
благодарю!
источник

AF

Alexey Filimonov in catboost_ru
Не туда извините
источник
2019 November 11

AS

Aidar Saifoulline in catboost_ru
Всем привет. Помощь нужна. Пример ищу для логической регрессии
источник

AD

Anna Veronika Dorogush in catboost_ru
Привет, примеры есть в документации https://catboost.ai/docs/concepts/python-reference_catboostclassifier_fit.html
Также можно посмотреть в туториалах, там тоже много примеров: https://catboost.ai/docs/concepts/tutorials.html
источник
2019 November 12

AS

Aidar Saifoulline in catboost_ru
Спасибо.
Нашел такой пример: https://catboost.ai/docs/concepts/python-usages-examples.html#multiclassification
Он, кажется больше мне подходит. У меня также есть таблица, где есть столбы со строками и числами.
По сути поменял исходные данные. Если в eval_... подставляю существующую строку, то получаю 1, если меняю хотя бы один параметр то в ответ 0. Не могу понять в какую сторону смотреть.
В ML новичок, второй день. А задачу надо решить уже завтра
источник

AB

Alexey Belyaev in catboost_ru
Приветы! В соседней группе интересовались катбустом для Go. Выложил свой форк https://github.com/tostrivetoseek/catboost-go. Работает с текущей версией cgo. Надеюсь, кому-нибудь еще пригодится.

Модификации исходной версии bourbaki:
- добавлено приведение всех указателей к char* перед передачей в либу и обратное приведение на стороне С, так как текущий cgo запретил передачу вложенных указателей;
- добавлена буферизация фич в единый массив перед передачей из go в либу, чтобы сборщик мусора (или будущие его версии) не пытались их растащить;
- добавлены методы для одиночного прогноза;
- упрощены сигнатуры.
источник
2019 November 13

DT

Denis Trofimov in catboost_ru
Alexey Belyaev
Приветы! В соседней группе интересовались катбустом для Go. Выложил свой форк https://github.com/tostrivetoseek/catboost-go. Работает с текущей версией cgo. Надеюсь, кому-нибудь еще пригодится.

Модификации исходной версии bourbaki:
- добавлено приведение всех указателей к char* перед передачей в либу и обратное приведение на стороне С, так как текущий cgo запретил передачу вложенных указателей;
- добавлена буферизация фич в единый массив перед передачей из go в либу, чтобы сборщик мусора (или будущие его версии) не пытались их растащить;
- добавлены методы для одиночного прогноза;
- упрощены сигнатуры.
это может быть интересно. use case для обучения и предсказания?
источник

AB

Alexey Belyaev in catboost_ru
Alexey Belyaev
Приветы! В соседней группе интересовались катбустом для Go. Выложил свой форк https://github.com/tostrivetoseek/catboost-go. Работает с текущей версией cgo. Надеюсь, кому-нибудь еще пригодится.

Модификации исходной версии bourbaki:
- добавлено приведение всех указателей к char* перед передачей в либу и обратное приведение на стороне С, так как текущий cgo запретил передачу вложенных указателей;
- добавлена буферизация фич в единый массив перед передачей из go в либу, чтобы сборщик мусора (или будущие его версии) не пытались их растащить;
- добавлены методы для одиночного прогноза;
- упрощены сигнатуры.
Ох, ну и ник у вас! Я думал у меня в глазах двоится 😂
источник

AB

Alexey Belyaev in catboost_ru
Alexey Belyaev
Приветы! Активно используем CatBoost в продакшене: прогнозируем качество RTB трафика до его покупки. Абсолютно нет вопросов к качеству обучения, однако, присутствуют некоторые неприятные моменты в эксплуатации:

1. На наборе из 7-10КК объектов, состоящих из ~40 категориальных фич (файл .csv на 4ГБ) может получиться бинарный классификатор весом в 13ГБ (300+ деревьев): приходится ограничивать количество деревьев 50-60ю. При этом модель умещается в 4ГБ, но граница порога принятися решения перестает быть такой четкой, как в полностью обученной модели в 13Г+.
Насколько я понимаю, дело во встроенной методике преобразования категориальных фич в числовые, так как подобного эффекта нет при работе с числовыми фичами.

Снизить размер моделей (примерно в 10 раз) помогает параметр model_size_reg, но он недоступен при обучении на GPU, также модели, обученные с ним, теряют в скорости применения примерно в 2-3 раза. Хотя, возможно, на скорость влияет увеличенное количество деревьев - не могу точно сказать.

Вопросы:
- Есть ли какие-либо способы существенно уменьшить модели при обучении на GPU без сокращения числа деревьев?
- В данный момент размер модели резко увеличивается с каждым новым деревом, что может говорить о том, что каждое дерево тащит за собой огромную таблицу преобразований. Возможно, имеет смысл вынести работу с категориальными фичами за скобки и проделывать один раз? Возможно, я тут глупость говорю, так как не в полной мере владею внутренным устройством инструмента. Поправьте)

2. Наш микросервис на Go, выполняющий роль аппликатора, обращается к вашей динамическую библиотеке libcatboostmodel.so для работы с моделями. Периодически модели необходимо обновлять. Тут возникает следующая проблема:

- вызов функций ModelCalcerDelete не приводит к полному освобождению памяти от старой модели (остается от 20% до половины),
- затем после вызова ModelCalcerCreate и LoadFullModelFromFile микросервис уже занимает памяти больше, чем мог бы при рестарте
- справедливости ради нужно отметить, что ингода при вызове ModelCalcerCreate и LoadFullModelFromFile часть неудаленной (от старой модели) памяти все таки освобождается (не вся)
- но в долгосрочном периоде работы (месяц, например) микросервис с катбустом может захватить все пространство сервера

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

AB

Alexey Belyaev in catboost_ru
Denis Trofimov
это может быть интересно. use case для обучения и предсказания?
Кейс в сообщении выше. Обучение на питоне -> cbm, аппликация на го
источник

AB

Alexey Belyaev in catboost_ru
Alexey Belyaev
Ох, ну и ник у вас! Я думал у меня в глазах двоится 😂
Ахах, у вас тоже ну и ник😆
источник
2019 November 14

AB

Alexey Belyaev in catboost_ru
Alexey Belyaev
Ахах, у вас тоже ну и ник😆
я теперь догадываюсь из-за кого часть моих логинов оказывается занята 😉😁🙈😆
источник
2019 November 15

E

Edya in catboost_ru
Здравствуйте, вопрос от человека не знакомого с катбустом.
Почему сохраненная модель весит 220 мб? Это нормально?
источник

SK

Stanislav Kirillov in catboost_ru
Если были катфичи - да, так как в модели хранятся таблицы со счетчиками по катфичам и их комбинациям
источник

E

Edya in catboost_ru
Stanislav Kirillov
Если были катфичи - да, так как в модели хранятся таблицы со счетчиками по катфичам и их комбинациям
Спасибо
источник

AB

Alexey Belyaev in catboost_ru
Edya
Здравствуйте, вопрос от человека не знакомого с катбустом.
Почему сохраненная модель весит 220 мб? Это нормально?
Мы радовались, когда с 8-13Г уменьшили до 2 😉
источник