
大语言模型上下文长度高效扩展的创新方法
LongQLoRA是一种扩展大语言模型上下文长度的方法,可在单个32GB V100 GPU上将LLaMA2模型的上下文长度从4096扩展到8192。该方法在PG19和Proof-pile数据集上表现优异,仅需1000步微调即可达到接近MPT-7B-8K的性能。项目还提供了预训练数据集、指令微调数据集以及扩展上下文长度的模型。
技术报告:LongQLoRA:高效有效地延长大语言模型上下文长度的方法
LongQLoRA是一种内存高效且有效的方法,可以使用较少的训练GPU来延长大语言模型的上下文长度。 在单个32GB V100 GPU上,LongQLoRA可以将LLaMA2 7B和13B的上下文长度从4096扩展到8192,甚至达到12k。 LongQLoRA在仅经过1000步微调后,就在PG19和Proof-pile数据集上达到了具有竞争力的困惑度性能,我们的模型优于LongLoRA,并且非常接近MPT-7B-8K。
在8192评估上下文长度下,PG19验证集和Proof-pile测试集上的评估困惑度:
| 模型 | PG19 | Proof-pile |
|---|---|---|
| LLaMA2-7B | >1000 | >1000 |
| MPT-7B-8K | 7.98 | 2.67 |
| LongLoRA-LoRA-7B-8K | 8.20 | 2.78 |
| LongLoRA-Full-7B-8K | 7.93 | 2.73 |
| LongQLoRA-7B-8K | 7.96 | 2.73 |
7B模型在PG19验证集和Proof-pile测试集上从1024到8192评估上下文长度的评估困惑度:
<img src="https://yellow-cdn.veclightyear.com/0a4dffa0/184b0759-b0c3-49af-b46a-ca8108b30ff3.png" width="900">我们从Redpajama数据集中采样了约54k长文本来微调预训练模型,其标记长度范围从4096到32768。
我们还构建了一个长上下文指令数据集,用于有监督微调对话模型。该数据集包含39k条指令数据,主要包括图书摘要、自然问题、LongQA的子集和WizardLM的Evol-Instruct。 为了适应8192的目标长度,每条数据的最大标记数为8192。分布如下所示。
<img src="https://yellow-cdn.veclightyear.com/0a4dffa0/339ba07e-b74b-4def-97e3-2ec64da7e09e.png" width="400">| 数据集 | 描述 |
|---|---|
| 🤗LongQLoRA-Pretrain-Data-54k | 包含54212条数据,用于微调预训练模型 |
| 🤗LongQLoRA-SFT-Data-39k | 包含38821条数据,用于微调对话模型 |
| 模型 | 上下文长度 | 描述 |
|---|---|---|
| 🤗LongQLoRA-Llama2-7b-8k | 8192 | 基于LLaMA2-7B,使用LongQLoRA-Pretrain-Data-54k微调1k步 |
| 🤗LongQLoRA-Vicuna-13b-8k | 8192 | 基于Vicuna-13B-V1.5,使用LongQLoRA-SFT-Data-39k微调1.7k步 |
| 🤗LongQLoRA-Llama2-7b-8k-lora | 8192 | LoRA权重 |
| 🤗LongQLoRA-Vicuna-13b-8k-lora | 8192 | LoRA权重 |
训练配置保存在train_args目录中,一些参数如下:
sft:如果设置为True,则执行sft任务,否则执行预训练任务。model_max_length:目标上下文长度。max_seq_length:训练中的最大序列长度,应小于或等于model_max_length。logging_steps:每n步记录一次训练损失。save_steps:每n步保存一次模型。lora_rank:训练中的LoRA秩。延长预训练模型LLaMA2-7B的上下文长度:
deepspeed train.py --train_args_file ./train_args/llama2-7b-pretrain.yaml
扩展聊天模型Vicuna-13B的上下文长度:
deepspeed train.py --train_args_file ./train_args/vicuna-13b-sft.yaml
你可以将lora权重合并到基础模型中:
cd script python merge_lora.py
使用预训练模型进行推理:
cd script/inference python inference.py
与聊天模型对话:
cd script/inference python chat.py
下载由LongLoRA使用LLaMA2分词器处理的评估数据集。
| 数据集 |
|---|
| 🤗PG19-validation.bin |
| 🤗PG19-test.bin |
| 🤗Proof-pile-test.bin |
评估模型的困惑度。你可以将load_in_4bit设置为True以节省 内存:
cd script/evaluate python evaluate.py \ --batch_size 1 \ --base_model YeungNLP/LongQLoRA-Llama2-7b-8k \ --seq_len 8192 \ --context_size 8192 \ --sliding_window 8192 \ --data_path pg19-validation.bin
使用LoRA权重评估模型的困惑度:
cd script/evaluate python evaluate.py \ --batch_size 1 \ --base_model YeungNLP/LongQLoRA-Llama2-7b-8k \ --peft_model LongQLoRA-Llama2-7b-8k-lora\ --seq_len 8192 \ --context_size 8192 \ --sliding_window 8192 \ --data_path pg19-validation.bin
以下是由LongQLoRA-Vicuna-13b-8k生成的示例。
长上下文生成的示例,输入上下文长度在4096到8192之间,超过了LLaMA2的原始上下文长度。
<img src="https://yellow-cdn.veclightyear.com/0a4dffa0/d8611abb-0c38-41fe-a390-40adcd9ed826.png" width="800">短上下文生成的示例,模型保持了短指令跟随的性能。
<img src="https://yellow-cdn.veclightyear.com/0a4dffa0/6abd061f-0eb1-4cc0-8eea-7af711d4fa60.png" width="800">@misc{yang2023longqlora, title={LongQLoRA: Efficient and Effective Method to Extend Context Length of Large Language Models}, author={Jianxin Yang}, year={2023}, eprint={2311.04879}, archivePrefix={arXiv}, primaryClass={cs.CL} }


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频


实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。


选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营 销效果。


AI辅助编 程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


最强AI数据分析助手
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。


像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号