Llama 3模型的扩展实践
引言
问题:Llama 3的原始上下文窗口有多大?
答:Llama 3的原始上下文窗口仅有8k。
问题:Llama 3的上下文窗口为何这么小?
答:可能是为了给开源社区留下贡献的空间。
Llama 3的自动扩展实现
问题:如何扩展Llama 3的上下文窗口?
答:通过简单的58行代码,任何Llama 3 70b的微调版本都能自动扩展到1048k(一百万)上下文。
关键技术:LoRA
- LoRA 是从扩展好上下文的Llama 3 70B Instruct微调版本中提取出来的技术,文件大小为800mb。
- 使用 Mergekit 工具,可以将LoRA与其他同架构模型一起运行或直接合并到模型中。
详细的技术细节
如何创建1048k上下文版Llama 3
调整位置编码
- 方法:使用NTK-aware插值初始化RoPE theta的最佳调度。
- 目的:优化并防止扩展长度后丢失高频信息。
渐进式训练
- 方法:应用UC伯克利Pieter Abbeel团队提出的 Blockwise RingAttention 方法。
- 优势:自定义网络拓扑分层并行化,利用大型GPU集群应对网络瓶颈,使模型训练速度提高了33倍。
长文本检索性能评估
- 挑战:在“针”藏在文本中间部分时,检索性能会有所下降。
开源贡献
Eric Hartford的贡献
- Eric Hartford开源了合并LoRA到其他模型的代码,该代码仅包含58行,可在GitHub上找到。
链接资源
- 524k版本LoRA: Hugging Face上的Llama-3-70B-Gradient-524k-adapter
- 1048k版本LoRA: Hugging Face上的Llama-3-70B-Gradient-1048k-adapter
- 合并代码: Eric Hartford的GitHub Gist
总结与感悟
Llama 3的这次上下文扩展展示了开源社区在AI领域的创新和合作精神。从一个仅8k的基础上下文窗口到扩展至1048k的巨大跨步,不仅体现了技术的进步,还凸显了社区合作的重要性。这种通过开源工具和社区力量来不断推进技术前沿的实践,为整个AI领域的发展提供了宝贵的经验和启示。
标签 :人工智能, 开源, Llama 3, LoRA, Mergekit
© 版权声明
文章版权归作者所有,未经允许请勿转载。