File size: 1,837 Bytes
8f8e390
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
## Miscellaneous remarks

* Use loss regularization if you train with `bfloat16` (more info below)
* Beware of the dropout rate in the config.json file.
  Check in a model's `config.json` what the dropout rate has been set to. Unless you
  intend to run many epochs on the same data, its worth to try a training run without dropout.
  If you want to compare losses, be sure to set the dropout rate equal.
  The smaller models can probably always be trained without.
* For the translation task, I am not sure that a 'deep-narrow' model (e.g. base-nl36) is better than a normal model
  or even a 'wide-deep' model.
* Training with more layers is much slower than you'd expect from the increased model size.
  It is also more difficult to get batch size and learning rate right. Below is a section
  about finding the right hyperparameters for the base-36L training.
* The 'larger' models are not only harder to pre-train, but also harder to fine-tune. The optimizer eats up a lot of
  space, and the amount of memory required also depends on the length of source and target sequences.
* PyCharms remote debugging features are useful to inspect variables on either a TPU VM or your deep-learning rig.
* When increasing the batch size, increase the learning rate. bs * 2 -> lr * sqrt(2) is a good heuristic but mileage may
  vary.
* Translation evaluation: the low score of the 128 seq len models on opus books may be because of the brevity penaly...
  that books may have sentences longer than 128 tokens.
* Dataset quality is a key success factor. Do not expect a model to magically turn mediocre data into magic. This holds for 
  the pre-training data, fine-tuning and also evaluating.
* Good Bleu score does not necessarily mean fluent text. Evaluation loss on a large translation dataset might be
  better suited for model comparison.