Size: a a a

2021 June 04

TB

Taras B in catboost_ru
@kizill почему а CatBoostRegressor не добавляются ни текстовые фичи, ни эмбеддинги?
источник

SK

Stanislav Kirillov in catboost_ru
1) нет, пока не сделали в C API для эмбеддингов ручку, не успели, сделали там новую сущность для хранения датафрейма пока, чтоб было проще их докидывать
2) Так сейчас написан код фичеризаторов, просто довольно много правок нужно доделать чтоб все срослось, а у вас жгу текстовые фичи и эмбеддинги? Можно попробовать тут запланировать большую работу по приведению этого кода в порядок и починить все разом
источник

TB

Taras B in catboost_ru
да, мы текстом пользуемся активно сейчас.
источник

TB

Taras B in catboost_ru
эмбеддинги не можем в проде потестить, но хочется их использовать, чтобы выкинуть нейронки из пайплайна
источник

TB

Taras B in catboost_ru
источник

TB

Taras B in catboost_ru
поломали графики в 0.26
источник

SK

Stanislav Kirillov in catboost_ru
Сейчас разберемся
источник

SK

Stanislav Kirillov in catboost_ru
вообще, в 0.26 нет функции _init_static
источник

SK

Stanislav Kirillov in catboost_ru
ты кернел рестартил после обновления катбуста?
источник

SK

Stanislav Kirillov in catboost_ru
если рестарт не поможет, надо pip uninstall catboost && pip install catboost сделать
источник

SK

Stanislav Kirillov in catboost_ru
возможно при обновлении пип что-то не переписал
источник

TB

Taras B in catboost_ru
вот это помогло 👌
источник

L

LS in catboost_ru
Планируется ли в будущем сделать init model для gpu?
источник

TB

Taras B in catboost_ru
а где-то это можно применить? ))
я сколько ни пробовал, дообучение дает прям сильно хуже результат чем просто обучение с нуля.
источник

L

LS in catboost_ru
Проблема больше в скорости на cpu, на мультиклассе) я то себе представлял другой результат когда взял на тест 80 vCPU, а оказалось работает так же как и на мощном дедике с одним cpu.(30 мин итер) А вот на gpu этот датасет обучается быстрее(~4-5 сек итерация). Общая база оч большая(~30млн) так как много классов (150). базу я естественно разбил на части - по 2млн. Обучил модель на одном из датасете, получил около 27.8 accuracy на тесте. Сейчас обучаю на втором датасете через бейзлайн, но конечно бы хотелось дообучать изначальную модель.
источник

TB

Taras B in catboost_ru
у меня дообучения не дали нормальный результат - может я их не умею готовить. Проще сделать N-моделей и бленд для них. Ну или просуммировать
источник

L

LS in catboost_ru
Вот через бейзлайн на втором обучении изначально стартовал с 22.5%(примерно столько же было когда первая модель закончила работать, сам удивился что на тесте больше) сейчас уже около 25.7 , буду смотреть тесты, там и понятно станет
источник

TB

Taras B in catboost_ru
я так и не понял, что делать с
CatBoostError: catboost/private/libs/feature_estimator/feature_estimator.h:35: Attempt to call single feature writer on packed feature writer
на GPU, эта проблема осталась и на 0.26
источник

В

Валерий in catboost_ru
Бан
источник

AK

Andrei Khropov in catboost_ru
Да, можно. Отдельного класса типа CatBoostRanker нет, так как нет абстракции Ranker в самом Spark пока (мне кажется хорошей идеей его туда добавить, фактически в mmlspark сделали свой класс такой (https://github.com/Azure/mmlspark/blob/master/src/main/scala/org/apache/spark/ml/Ranker.scala), было бы неплохо его перенести в Spark MLLib).
Пока для ранжирования надо учить CatBoostRegressor, а ранжировать в соответствии с тем какое значение выдает модель.

Можно тренировать как на обычном датасете где есть значение label у каждого примера, так и задав пары (в том случае если обучение идет с objective` / `loss_function, которая их использует - см. раздел про целевые функции и метрики в документации - https://catboost.ai/docs/concepts/loss-functions-ranking.html).

Для задания пар нужно их добавить при создании Pool. CatBoost сейчас поддерживает пары только при наличии групп в датасете (нужна колонка groupId ).

Пример с парами на Scala: https://github.com/catboost/catboost/blob/65ecec3cfde86e28f441b5309989b3be5724eb9d/catboost/spark/catboost4j-spark/core/src/test/scala/ai/catboost/spark/CatBoostRegressorTest.scala#L1179

Пример с парами на PySpark: https://github.com/catboost/catboost/blob/65ecec3cfde86e28f441b5309989b3be5724eb9d/catboost/spark/catboost4j-spark/core/src/test/python/catboost_regressor_test.py#L362
источник