首先LLM有3种架构:Encoder-only、Decoder-only、encode-decode
整体情况
1、Encoder将可变长度的输入序列编码成一个固定长度的向量,比如在bert中应用的encoder,其实是输入和输出是等长的向量。通常情况下,encoder是用来提取特征的,因此更适合用于文本分类、情感分析等任务
2、Decoder将固定长度的向量解码成一个可变长度的输出序列,经常比如gpt中,就是用前面的n个tocken来预测下一个tocken,然后将真实的下一个tocken加入再预测下下个tocken,这里我们猜测能否将预测的tocken也加入,跟真实tocken一起预测呢?形成一种对抗。通常情况下,decoder更适合用于文本生成的工作。
3、Encoder-Decoder是传统的transformer结构,相比较decoder来说更加耗费内存,也更慢一些,它是用encoder先将可变长度编码成固定长度向量,再将固定长度向量解码成可变长度的过程。通常情况下,Encoder-Decoder更适合用于机器翻译这种需要输入特征,并且也要生成不定长序列的情况