# LongLLaMA: 专注于 Transformer 训练以实现上下文扩展
## 简短摘要
此仓库包含 **LongLLaMA 的研究预览,这是一个 大语言模型,能够处理 256k 个令牌甚至更多的长语境**。
LongLLaMA 建立在 [OpenLLaMA](https://github.com/openlm-research/open_llama) 的基础上,并使用 [Focused Transformer (FoT)](https://arxiv.org/abs/2307.03170) 方法进行微调。LongLLaMA 代码建立在 [Code LLaMA](https://huggingface.co/codellama/CodeLlama-7b-hf) 的基础上。我们在 [Hugging Face](https://huggingface.co/syzymon/long_llama_3b) 上以宽松许可证 (Apache 2.0) 发布了 LongLLaMA 模型的一个较小的 3B 基础变体 (未进行指令调整),并提供了支持更长上下文的推理代码。我们的模型权重可作为现有实现中 LLaMA 的替代方案 (适用于短上下文,最多 2048 个令牌)。此外,我们还提供了与原始 OpenLLaMA 模型的评估结果和对比。
## 概述
[《聚焦 Transformer: 相对训练用于上下文扩展》(https://arxiv.org/abs/2307.03170) (FoT) 介绍了一种简单的方法,使语言模型具有处理可能包含数百万个标记的上下文的能力,同时在训练时使用明显更短的输入。FoT 允许一组注意力层访问一个包含 (键,值) 对的内存缓存,以扩展上下文长度。FoT 的独特之处在于其训练过程,源自对比学习。具体来说,我们故意将内存注意力层暴露于相关和不相关的键(例如来自无关文档的负样本)。这种策略激励模型区分与语义上各异的值相关联的键,从而增强其结构。这反过来使得我们能够将有效上下文长度推广到远远超出训练中所见的范围。
**LongLLaMA** 是 [OpenLLaMA](https://github.com/openlm-research/open_ll