ICARUS: Před nějakou dobou jsme dělal finetuning BERTa, používal jsme na to transformers knihovnu:
https://github.com/huggingface/transformers, ta obsahuje i GPT-2.
Předtím jsem zkoušel implementaci BERTa v tensorflow, a ta při tréninku potřebovala výrazně víc paměti než ty transformers v pytorchi. To je nejspíš tím, že velkou část paměti spotřebuje první embedding vrstva (token do vektoru). Tensorflow si nejprve připraví celý výpočetní graf, tj. alokuje paměť pro gradient u každého token embeddingu. Pytorch naopak výpočetní graf vytváří "define-by-run" přístupem, tj. alokuje pameť jen když jí bude používat. Při každém batchi použiješ jen pár tokenů -> pytorch potřeboval výrazně méně paměti (asi 6GB vs 16GB).
Asi by to šlo udělat i v tensorflow (2.0) použitím eager execution.
Jinak těch 300$ jsi spočítal z toho že víš jak dlouho chceš trénovat? Na AWS je gpu instance s Teslou asi od 1$ / hod. myslím, na google cloudu to bude podobně. Existují i tzv. spot instance (
https://aws.amazon.com/ec2/spot/pricing/), které jsou několikrát levnější, ale nemáš zaručené že ti jí během běhu neshodí (ale když pořešíš nějaké průběžné ukládání pro tento případ, tak asi můžeš dost ušetřit.)