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

Model training and optimization 🎯 #7

Closed
62 of 70 tasks
KarelZe opened this issue Oct 7, 2022 · 1 comment
Closed
62 of 70 tasks

Model training and optimization 🎯 #7

KarelZe opened this issue Oct 7, 2022 · 1 comment
Assignees
Labels
code Everything related to code

Comments

@KarelZe
Copy link
Owner

KarelZe commented Oct 7, 2022

  • Decide whether I want to treat option trade classification as a proabilistic classification problem or not
  • Bundle training in a docker contrainer that can run in any pod or on scc infrastructure
  • Add parametrized script to run studies
  • Get access to BwUniCluster2.0
  • Write script to start studies
  • Free memory with gc.collect()
  • Set-up pre-commit hooks e. g., mypy
  • Implement gradient boosting using catboost
  • Implement TabTransformer using TabSurvey
  • Try out TabTransformer closer to original paper without einops and default PyTorch implementations for attention. (see. e. g., here.
  • Write custom DataSet for PyTorch
  • Improve training performance of TabTransformer
  • Look into data pipes / data loader 2 for PyTorch
  • Implement save callback for PyTorch models
  • PyTorch use multiple GPUs. (dataparallel) See here.
  • Implement FTTransformer
  • Add timing code
  • Implement TabNet using TabSurvey
  • Set up weights and biases integration as shown here or here
  • Set up test cases for gbms
  • Set up test cases for classical classifier
  • Set up test cases for TabTransformer.
  • Set up test cases for FTTransformer. See here
  • Set up test cases for TabNet
  • Simplify objective code through train() and test() method as done here.
  • Add weighted loss for neural networks
  • Adjust early stopping of neural networks to work with accuracy
  • Migrate heroku db
  • Save completed study objects to gcs and track in wandb
  • Track saved models in wandb
  • Visualize learning curves for best CatBoost model
  • Research, if early stopping in neural nets should also be done based on the accuracy
  • Add code to obtain feature importances from trained models
  • Add shared embeddings to TabTransformer. See paper or here.
  • Adress problem how to adress high dimensionality of categorical variables
  • Research if there is a broader theory / concept to decay e. g. exponential smooting or weighted regression etc.
  • Visualize decay parameter and find optimal decay factor
  • Study samples / probabilites where the prediction is wrong
  • Fully understand how the target value should be like for gradient boosting -1/1 or 0/1 like in neural nets?
  • Add code to study learning curves e. g., in wandb
  • Add code for pre-training
  • Experiment with learning rate scheduling
  • Add code for attention visualization. First viz done in Interpretability with SHAP and attention maps 🐇 #85, but still have to research best approach to combine maps over different attention heads and layers. Finally decided for a method proposed by Chefer et. al. See here and here.
  • Get slurm running
  • go through Google playbook
  • Define rounds for what I want to optimize
  • Do searches more systematically. See this article here. and here. and here
  • Extend experiment tracking as shown here.
  • normalize data
  • Set up configuration for training
  • Set up concrete action plan how to improve training
  • pytorch 2.0 integration
  • Differentiate into exploration and exploitation phase
  • Think about folding the validation set into the training set and retrain the best configuration
  • Check out retraining
  • change early stopping criterion
  • Set up option to fix some hyperparams through a config or so
  • Verify hyperparameter search space
  • Use batch size finder (Implemented in Automatically find maximum batch size🥐 #125)
  • Add some option to generate results fast
  • Implement a retraining
  • Replace early stopping with checkpointing?
  • Check if logits is the right word in code
  • What samples does the model get wrong?
  • Add training curves to wandb
  • Check in wandb if the hyperparameter search space is chosen optimal
  • Rerun studies with different initializations. See how it affects the results
  • Add code to average results from different initializations
  • Add code for visualizations e. g., hyperparameter search space, influence of randomness etc.
  • Do code review with @pheusel or @lxndrblz
@KarelZe KarelZe self-assigned this Oct 7, 2022
@KarelZe KarelZe changed the title Model training and optimization Model training and optimization 🎯 Oct 25, 2022
@KarelZe KarelZe added this to the Implementation milestone Oct 25, 2022
@KarelZe KarelZe added the code Everything related to code label Nov 6, 2022
KarelZe added a commit that referenced this issue Nov 10, 2022
- adds docker image based on 'runpod/stack' image
- adds gitignore
- adds shell script `start.sh`

Adresses #7
KarelZe added a commit that referenced this issue Nov 11, 2022
KarelZe added a commit that referenced this issue Nov 11, 2022
KarelZe added a commit that referenced this issue Nov 11, 2022
KarelZe added a commit that referenced this issue Nov 14, 2022
- use both double quotes and env variables

Relates to #7
KarelZe added a commit that referenced this issue Nov 15, 2022
KarelZe added a commit that referenced this issue Nov 15, 2022
KarelZe added a commit that referenced this issue Nov 15, 2022
KarelZe added a commit that referenced this issue Nov 15, 2022
KarelZe added a commit that referenced this issue Nov 15, 2022
- add login to gcloud
- add project config
- add wandb code
Adresses #7
KarelZe added a commit that referenced this issue Nov 15, 2022
KarelZe added a commit that referenced this issue Nov 15, 2022
- to resume a study see optuna docs
Adresses #7
KarelZe added a commit that referenced this issue Nov 15, 2022
KarelZe added a commit that referenced this issue Nov 16, 2022
Adresses Model training and optimization 🎯 #7
KarelZe added a commit that referenced this issue Nov 16, 2022
Adresses Model training and optimization 🎯 #7
KarelZe added a commit that referenced this issue Nov 16, 2022
- updated dependencies
- removed broken

Adresses Model training and optimization 🎯 #7
KarelZe added a commit that referenced this issue Nov 16, 2022
Adresses Model training and optimization 🎯 #7
KarelZe added a commit that referenced this issue Nov 16, 2022
Adresses Model training and optimization 🎯 #7
KarelZe added a commit that referenced this issue Nov 16, 2022
Adresses Model training and optimization 🎯 #7
KarelZe added a commit that referenced this issue Nov 16, 2022
relates to Model training and optimization 🎯 #7
KarelZe added a commit that referenced this issue Nov 16, 2022
Relates to Model training and optimization 🎯 #7
KarelZe added a commit that referenced this issue Nov 17, 2022
- finished reviewing errors from mypy pre-commit hook
- reviewed errors in `check_formalia.py`

Adresses Model training and optimization 🎯 #7
KarelZe added a commit that referenced this issue Nov 17, 2022
- refactored constants
- adjusted search space
- removed redundant code
- adjusted gitignore

Adresses Model training and optimization 🎯 #7
KarelZe added a commit that referenced this issue Nov 17, 2022
- added `typing` support
- added new pre-commit hooks
- resolved code issues

Relates to Model training and optimization 🎯 #7
KarelZe added a commit that referenced this issue Nov 17, 2022
Relates to Model training and optimization 🎯 #7
KarelZe added a commit that referenced this issue Dec 22, 2022
KarelZe added a commit that referenced this issue Dec 23, 2022
Required for `shap` implementation, as shap (and probably other tools) pass np.array to `predict()`.

Adresses #7.
KarelZe added a commit that referenced this issue Jan 1, 2023
* Remove outdated files ❎

* Start `TabTransformerClassifier` implementation 🦜

* Rewrite callback 👽

* Allow `np.arrays` in classical classifier 👽

Required for `shap` implementation, as shap (and probably other tools) pass np.array to `predict()`.

Adresses #7.

* Add support for `np.ndarray` 🦜

* Simplified objective code 🐫

* Fixed tests 👽

* Fixed some `pre-commit` tests 👽

* Add `predict_proba` 🍕

* Refactored `TransformerClassifier` to own class 🏠

* Add tests for `predict_proba` 🍕

* Improved checks in ClassicalClassifier 🧪

* Remove redundant params ❎

* Simplify tests 🍝

* Restore two files 💯

* Ran `pre-commit` hooks 🪝

* Fixed doc strings 🍩

* Add aditional checks `TransformerClassifier` 🤖

* Fix failing test 🍩

* Enhanced sklearn compatiblity🍓

* Update typehint 📣

* Added tests for `TransformerClassifier` 🤖

* Free up cache + smaller batches 🍕
KarelZe added a commit that referenced this issue Jan 4, 2023
KarelZe added a commit that referenced this issue Jan 5, 2023
KarelZe added a commit that referenced this issue Jan 5, 2023
KarelZe added a commit that referenced this issue Jan 6, 2023
KarelZe added a commit that referenced this issue Jan 6, 2023
KarelZe added a commit that referenced this issue Jan 6, 2023
KarelZe added a commit that referenced this issue Jan 6, 2023
KarelZe added a commit that referenced this issue Jan 7, 2023
* investigate cylical encoding

* fixed cylical encoding

* Finalize feature engineering script 🪄

* Add sample weighting to `TransformerClassifier` 🏋️ (#100)

Relates to #7.

* Early stopping based on accuracy for `TransformerClassifier`🧁 (#102)

Relates to #7

* Improve robustness and tests of `TabDataset` 🚀 (#101)

Adresses #7 .

* Add instructions on using `SLURM` 🐧 (#103)

Relates to #7 .

* rerun feature generation notebook

* Add refs to wandb 🪄

* Renamed notebooks for consistency 🍫

* Simplify notebook 🍫

* Add log-transform and encode day ⏰

* Add aversarial validation after feature engineering 🪄

* Update `build_features.py` to new features 🪄

* Update notes to feature set definition

* Update `Feature Sets.md`

Adresses #30.
KarelZe added a commit that referenced this issue Jan 19, 2023
KarelZe added a commit that referenced this issue Jan 19, 2023
KarelZe added a commit that referenced this issue Jan 22, 2023
KarelZe added a commit that referenced this issue Jan 23, 2023
KarelZe added a commit that referenced this issue Jan 24, 2023
@KarelZe
Copy link
Owner Author

KarelZe commented Jun 23, 2023

Most done by now. Won't work on remaining tasks. 🚀

@KarelZe KarelZe closed this as completed Jun 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
code Everything related to code
Projects
None yet
Development

No branches or pull requests

1 participant