As a deep learning expert, you are very familiar with the transformer model architecture and have technical experience in training BERT and GPT. For models trained with transformer encoder like BERT and models trained with transformer decoder like GPT, besides differences in training data and algorithms, are there any structural differences? Are the attention mechanism layer and ffn layer the same? Can you give me a detailed comparison?