Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integration tests fix v2 #1183

Merged
merged 29 commits into from
Nov 21, 2023
Merged

Integration tests fix v2 #1183

merged 29 commits into from
Nov 21, 2023

Conversation

IIaKyJIuH
Copy link
Collaborator

Rework of integration tests passing.

@codecov
Copy link

codecov bot commented Oct 19, 2023

Codecov Report

Attention: 17 lines in your changes are missing coverage. Please review.

Comparison is base (70fc033) 79.49% compared to head (41f5c2f) 79.27%.
Report is 2 commits behind head on master.

Files Patch % Lines
fedot/core/operations/evaluation/boostings.py 12.50% 7 Missing ⚠️
fedot/core/data/data.py 63.63% 4 Missing ⚠️
...mplementations/models/boostings_implementations.py 50.00% 3 Missing ⚠️
fedot/core/pipelines/tuning/hyperparams.py 25.00% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1183      +/-   ##
==========================================
- Coverage   79.49%   79.27%   -0.22%     
==========================================
  Files         145      145              
  Lines       10022    10047      +25     
==========================================
- Hits         7967     7965       -2     
- Misses       2055     2082      +27     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@pep8speaks
Copy link

pep8speaks commented Oct 19, 2023

Hello @IIaKyJIuH! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

There are currently no PEP 8 issues detected in this Pull Request. Cheers! 🍻

Comment last updated at 2023-11-21 12:27:45 UTC

@aim-pep8-bot
Copy link

aim-pep8-bot commented Oct 26, 2023

Hello @IIaKyJIuH! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

There are currently no PEP 8 issues detected in this Pull Request. Cheers! 🍻

Comment last updated at 2023-11-21 12:27:36 UTC

@kasyanovse kasyanovse self-assigned this Nov 2, 2023
@kasyanovse kasyanovse added the test The additon or modification of the unit test label Nov 2, 2023
@@ -33,15 +33,15 @@ def get_ts_data(dataset='australia', horizon: int = 30, validation_blocks=None):


def run_ts_forecasting_example(dataset='australia', horizon: int = 30, timeout: float = None,
visualization=False, with_tuning=True, validation_blocks=2):
visualization=False, with_tuning=False, validation_blocks=2):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Если правильно понимаю, в этом примере раньше демонстрировался и композинг, и тюнинг
Зачем отключать тюнинг?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тюнинг часто натыкается на несовместимые параметры у катбуста или некорректное окно у лаггед преобразования и вылетает с ошибкой. Чтобы уменьшить количество тестов, которые вылетают с этой проблемой, местами был отключен тюнинг.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А можешь подробнее рассказать о несовместимых параметрах катбуста?
Я правильно понимаю, катбуст там может появиться после лаггед преобразования?
Почему нельзя в таком случае просто задать кастомное пространство поиска гиперпараметров или вообще убрать катбуст из списка возможных моделей?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А можешь подробнее рассказать о несовместимых параметрах катбуста?

Например: min_data_in_leaf может быть использовано только с grow_policy in ['Lossguide', 'Depthwise']. В остальных случаях использование этого параметра выдает ошибку.

Я правильно понимаю, катбуст там может появиться после лаггед преобразования?

Да. В этом тесте проблема только с лаггед преобразованием, тут катбуст не используется в композиции.

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

  1. Если задавать кастомное пространство поиска гиперпараметров:
    2. то его надо будет определить для всех параметров катбуста, учтя все возможные сочетания
    3. это нужно будет сделать везде, где он в теории может примениться
    4. нужно будет переписать функцию мутации параметров (скорее всего)
  2. Если вариант исключить катбуст из тестирования прокатит, то я за, но он тогда не будет протестирован)) Вообще, катбусту очень не хватает юнит тестов. Ловить всякие ошибки и опечатки на интеграционниках очень сложно.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kasyanovse Встречал еще подобный параметр у катбуста и добавлял в имплементацию в федоте такую проверку, чтобы она их исправляла. Может быть добавить еще одно такое правило, что если указан min_data_in_leaf и не используется нужное grow_policy, то исправлять эти параметры.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2. Если вариант исключить катбуст из тестирования прокатит, то я за, но он тогда не будет протестирован)) Вообще, катбусту очень не хватает юнит тестов. Ловить всякие ошибки и опечатки на интеграционниках очень сложно.

Насколько я знаю, катбуст относительно недавно добавили в модели
Я однозначно за отдельный PR с юнит-тестами для него. И я однозначно за интеграционники, которые покрывают катбуст, но их можно и отдельно сделать
Поэтому я за вариант убрать катбуст из этого теста
А только в этом тесте из-за него что-то падало?

И призываю @nicl-nno. Что думаешь? Какой вариант тебе кажется лучше?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вообще, есть вариант просто убрать мутацию параметров в композере для тестов.

Вот совсем против такой штуки
Мутация параметров в композере - это одна из базовых операций, есть риск очень многое поломать

Copy link
Collaborator

@nicl-nno nicl-nno Nov 17, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Если я правильно понимаю проблему - то вот такой вариант не поможет сейчас обойти её:

image

Вернее graph.descriptive_id

?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поэтому я за вариант убрать катбуст из этого теста

Кажется, что вместе с катбустом надо будет убрать вообще все best-quality модели.

А только в этом тесте из-за него что-то падало?

Нет. У меня от 1 до 3 тестов падает с одной и той же ошибкой _catboost.CatBoostError: max_leaves option works only with lossguide tree growing. На сервере больше одного не падает.

PS. Вчера еще раз пустил тесты, появилась новая ошибка. Попробую отловить у себя.

Мутация параметров в композере - это одна из базовых операций, есть риск очень многое поломать

Как временный вариант. Однострочная правка поможет избежать изменения нескольких тестов. Или можно отключить падение композера и тюнера в тестах с созданием issue на включение после решения проблем.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Если я правильно понимаю проблему - то вот такой вариант не поможет сейчас обойти её:

Должен сработать. Потестирую пока буду ловить новую ошибку.

fedot/api/api_utils/api_params_repository.py Show resolved Hide resolved
fedot/utilities/ts_gapfilling.py Show resolved Hide resolved
@kasyanovse kasyanovse merged commit c38c22f into master Nov 21, 2023
9 checks passed
@kasyanovse kasyanovse deleted the itests_fix_2 branch November 30, 2023 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
test The additon or modification of the unit test
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants