首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Aquila2-34B推出Int4量化版本,低资源实现最强开源模型性能

日前,智源团队发布了中英双语基础模型 Aquila2-34B以及中英双语对话模型AquilaChat2-34B,在各种中英双语主/客观综合评测中全面领先现有的全球开源模型(包括LLama-70B等)。其强大的推理(Reasoning)能力在多项推理评测中超越 LLama2-70B、GPT3.5等模型,仅次于 GPT4。

为了降低开发者使用大模型的门槛,智源Aquila团队在AquilaChat2 系列模型基础上整合了Int4量化技术和QLoRA微调推理技术,显著降低了34B级别大模型的训练和推理所需的资源,为用户在低资源环境中运行大参数模型提供了新的可能。

经过 Int4 量化,AquilaChat2-34B 模型用7B量级模型相近的GPU资源消耗,提供了超越Llama2-70B模型的性能。

利用 QLoRA 进行 AquilaChat2-34B 微调训练,实现“降显存、提速度”两手抓,甚至可以用单张消费级显卡上进行34B级别模型微调。

* 注:AquilaChat2模型的 int4 量化及QLoRA使用方式见文末“开发者指南”一节,两步操作、快速体验!

面对当前芯片短缺的问题,如何通过训练及推理优化技术来降低对高端GPU卡的依赖,已经成为大模型产业发展的关键课题。智源团队坚定地探索大模型与低资源推理和训练技术的高效结合,降低大模型的使用门槛,让更多企业和个人“用上”大模型、“用好”大模型,为大模型的产业落地提供有力支持。

此外,Aquila2-34B 系列模型已与较低配置的AI芯片进行适配,已成功在 24G 显存的国产芯片上进行推理,后续将积极推动模型与更多国产异构芯片的适配,期望广泛链接大模型产业生态创新力量,推动AI软硬件生态繁荣。

仅需7B模型的资源消耗

性能超过Llama2-70B

通过 Int4 量化技术的支持,AquilaChat2-34B 仅需接近7B级别模型的GPU资源消耗,就能提供了超过Llama2-70B模型的性能。

如下表所示,经过 Int4量化之后,AquilaChat2-7B、34B模型的显存占用大幅降低了58%、70%,而模型综合性能指标仅降低了1.1%和0.7%。在Int4(Quantization)量化后能还能保持如此高的性能,得益于Aquila2模型本身出色的性能和稳健性。

Aquila2 系列模型量化方式已集成至 github/FlagAI-Open/Aquila2 项目

https://github.com/FlagAI-Open/Aquila2/blob/main/examples/predict_chat_quantize.py

“降存提速”两手抓

不损失模型性能的高效微调

QLoRA技术将量化技术与LoRA微调技术相结合,首先将LLM进行4位量化,从而大幅减小了模型的内存占用,然后用Low Rank Adapters (LoRA)方法对量化后的LLM进行微调。LoRA使经过微调的模型能够保留大部分原始LLM的准确性,同时显著减小了模型的尺寸并提高了速度,实现了在基本不损失模型性能的情况下节省内存、提高训练速度的目的。

通过使用QLoRA技术,在34B模型上我们实现了超50倍显存降低(相对于全参数微调),同时实现了9倍的速度提升。

用户可以在消费级GPU(如单张不到3000元的2080Ti)上进行34B模型微调训练,进一步降低了个人和小团体研发AI模型的门槛。

QLoRA显存占用训练速度与全参数对比(batch size都是1,34/7b 都是512长度,降低长度可以进一步降低显存占用和提升速度 )

QLoRA 方法已经集成至 Aquila2 开源仓库:

https://github.com/FlagAI-Open/Aquila2/blob/main/finetune/7B/finetune_qlora.sh

https://github.com/FlagAI-Open/Aquila2/blob/main/finetune/34B/finetune_qlora.sh

开发者指南

01 仅需2步即可对Aquila2 模型进行 Int4量化

操作步骤:

1) 安装下列第三方工具:FlagAI,Torch, Transformers

pip install flagaipip install torchpip install transformers

2) 运行以下代码即可对原始模型进行量化推理:

import torchfrom flagai.auto_model.auto_loader import AutoLoaderfrom transformers import BitsAndBytesConfig

model_name = 'AquilaChat2-34B'#model_name = 'AquilaChat2-7B'

autoloader = AutoLoader("aquila2", model_name=model_name, quantization_config=BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_use_double_quant=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16, ))

model = autoloader.get_model()tokenizer = autoloader.get_tokenizer()

test_data = [ "北京的十大景点是什么?", "写一首中秋主题的五言绝句", "Write a tongue twister that's extremely difficult to pronounce.",]

for text in test_data: print(model.predict(text, tokenizer=tokenizer, model_name=model_name))

02 仅需2步即可使用 QLoRA 对 Aquila2 模型进行推理

操作步骤:

1) 安装FlagAI

pip install flagai

2) 准备好原始模型以及训练好的QLoRA模块路径,接着运行下列代码即可进行QLoRA推理:

from flagai.auto_model.auto_loader import AutoLoader

# 模型名称model_name = 'AquilaChat2-7B'# model_name = 'AquilaChat2-34B'

# 需要额外提供Q-LoRA模块的地址autoloader = AutoLoader("aquila2", model_name=model_name,qlora_dir='./examples/checkpoints/qlora/aquila2chat-hf')

model = autoloader.get_model()tokenizer = autoloader.get_tokenizer()

# 对话测试样例test_data = [ "北京的十大景点是什么?", "写一首中秋主题的五言绝句",]

for text in test_data: print(model.predict(text, tokenizer=tokenizer, model_name=model_name))

快速上手 Aquila2 系列模型

悟道天鹰Aquila2-34B系列模型已开源并支持商用许可

欢迎社区开发者下载,并反馈使用体验!

使用方式一(推荐):通过 FlagAI 加载 Aquila2 系列模型

https://github.com/FlagAI-Open/Aquila2

使用方式二:通过 FlagOpen 模型仓库单独下载权重

https://model.baai.ac.cn/

使用方式三:通过 Hugging Face 加载 Aquila2 系列模型

https://huggingface.co/BAAI

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OwfMzbPXWfBwREAbIRNnf5hw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券