根据搜索结果,TinyLlama-1.1B和Baichuan2-7B模型在结构上的主要区别如下:

  1. 位置编码

    • Baichuan2-7B:采用了Rotary Positional Embedding(RoPE)。
    • TinyLlama-1.1B:同样使用了RoPE作为位置编码。
  2. 激活函数和归一化

    • Baichuan2-7B:使用了SwiGLU激活函数,并且由于SwiGLU是一个双线性层,引入了额外的参数矩阵,因此将隐层尺寸从4倍减少到了8/3倍,并四舍五入为128的倍数。
    • TinyLlama-1.1B:也使用了SwiGLU激活函数和RMSNorm归一化。
  3. 注意力机制

    • Baichuan2-7B:采用了由xFormers2实现的内存高效注意力机制。
    • TinyLlama-1.1B:使用了Grouped-query Attention,有32个query attention头和4组key-value头。
  4. 模型架构

    • Baichuan2-7B:隐藏层维度为4096,层数为32,注意力头数为32,词表大小为125696。
    • TinyLlama-1.1B:使用了Llama 2的模型架构,具体参数未详细说明,但提到了有32个query attention头和4组key-value头。
  5. Tokenizer

    • Baichuan2-7B:词汇量从Baichuan1的64,000个扩大到了125,696个。
    • TinyLlama-1.1B:使用了Llama的tokenizer处理数据。
  6. 优化技术

    • Baichuan2-7B:使用了RMSNorm,对transformer的block输入进行了Layer Norm,并使用了AdamW优化器,对输出embedding进行了归一化。
    • TinyLlama-1.1B:采用了Fully Sharded Data Parallel、Flash Attention和xFormers等技术进行加速优化。
  7. 其他技术

    • Baichuan2-7B:引入了最大z损失(Max-z loss)用于规范模型输出的logit值,提高训练的稳定性。
    • TinyLlama-1.1B:没有提及使用最大z损失。

这些区别体现了两个模型在设计和实现上的不同选择,这些选择影响了模型的性能、效率和适用场景。