Why optimizer need split parameter group?
I want to ask some question about follow codes:
```
no_decay = ['bias', 'LayerNorm.weight']
optimizer_grouped_parameters = [
    {'params': [p for n, p in model.named_parameters() if not any(nd in n for nd in no_decay)], 'weight_decay': 0.01},
    {'params': [p for n, p in model.named_parameters() if any(nd in n for nd in no_decay)], 'weight_decay': 0.0}
]
optimizer = AdamW(optimizer_grouped_parameters, lr=1e-5)
```

if i hide `{'params': [p for n, p in model.named_parameters() if any(nd in n for nd in no_decay)], 'weight_decay': 0.0}`.
Would it cause other problems? and why need split parameters group.

reference: https://huggingface.co/transformers/training.html#fine-tuning-in-native-pytorch
Difficult to tell what happens when you apply weight_decay to those layers as well. I think you should just give it a try and tells us what has happened. 
The shown code that applies different weight_decay to different parameters is in line with the original bert implementation ([link](https://github.com/google-research/bert/blob/eedf5716ce1268e56f0a50264a88cafad334ac61/optimization.py#L65)).<|||||>This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the [contributing guidelines](https://github.com/huggingface/transformers/blob/master/CONTRIBUTING.md) are likely to be ignored.