3 ms·
You have to be really careful with every single level of the stack. - metrics code - batching code - data parsing/formatting/quality - data sanitation(avoid
by pizza 3y ago
You have to be really careful with every single level of the stack.
- metrics code
- batching code
- data parsing/formatting/quality
- data sanitation(avoiding leakage)
- devising a proper dummy baseline early in the design process
- sufficient patience/grit, at a personal level
- data sufficiency
- checking proper gradient flows
- knowledge of the hardware
- knowledge of each framework’s quirks
- knowledge of the probability theory
- knowledge of numerical stability
- ability to setup a complicated stack
- ability to debug both math problems and extremely complicated program stacks
- data normalization
- knowledge of nn architectures
- knowledge of a constantly accelerating milieu of the state of the art
- knowledge of which versions of which libraries/dependencies are buggy
- ability to compare research papers and research code very carefully and critically
- ability to make results reproducible
- ability to share and communicate results
- ability to prioritize beforehand which few of the many possible options you could try, are actually worth your limited time at the moment
- ability to find prior art that has been overlooked by the current popular methods
- ability to optimize code to run fast
- ability to scale up the process to a larger distributed system when required
- ability to unit test stochastic code
- ability to modularize extremely bespoke spaghetti research code once its gotten ugly