通过 4-bit 量化加载和运行 Mistral 7B AI

简介: 通过 4-bit 量化加载和运行 Mistral 7B AI

image.png

大语言模型 (LLM) 的世界正在快速发展,像 LLAMA2 和 Falcon 这样的突破性模型不断出现。

去年 9 月 27 日,法国初创公司 Mistral 推出了第一个模型 —— Mistral 7B ,引起了科技界的轰动,并获得了迄今为止同类规模中最强大的语言模型的称号。

本文将展示通过 4-bit 量化加载和运行运行 Mistral 7B AI

什么是Mistral 7B?

Mistral-7B-v0.1 是对 Llama 2 等其他 小型 大型语言模型的进一步改进,以相当低的计算成本提供类似的功能(根据一些标准基准)。可适应许多场景,可以执行各种自然语言处理任务,序列长度为 8k。例如,它非常适合文本摘要、分类、文本补全、代码补全。

下面是 Mistral 7B 的特征:

  • 无与伦比的性能Mistral 7B 在所有基准测试中均优于 Llama 2 13B
    image.png
  • 更高效:得益于分组查询注意力 (GQA) 和滑动窗口注意力 (SWA),Mistral 7B 可以提供更快的推理速度并轻松处理更长的序列。
  • 开源Mistral 7B 在 Apache 2.0 许可证下发布,可以不受限制地使用。

什么是量化 quantization 和 QLoRA?

与同类产品相比,Mistral 7B 可能更小,但让它在消费类硬件中运行和训练仍然是一个巨大的挑战。

为了能在单个 GPU 上运行它,需要以 4-bit 精度运行模型,并使用 QLoRA 来减少内存使用。

QLoRA 解决方案

QLoRA 代表具有低阶适配器的量化 LLM,是一种有效的微调方法。它使用 4-bit 量化来压缩预训练的语言模型,与标准 16-bit 模型微调相比,无需牺牲性能。

QLoRA论文摘要: 我们提出了 QLoRA,这是一种高效的微调方法,可减少内存使用量,足以在单个 48GB GPU 上微调 65B 参数的模型,同时保留完整的 16-bit 微调任务性能。QLoRA 引入了多项创新技术来节省内存而不牺牲性能:a)4-bit 普通浮点型 NF4 一种新的数据类型,理论上对于正态分布权重来说是最佳信息;b)双量化通过量化量化常数来减少平均内存占用,以及分页优化器来管理内存峰值。

使用步骤

第 1 步:安装必要的软件包

QLoRA 使用 bitsandbytes 进行量化,并与 Hugging Face 的 PEFTtransformers 库集成。

这里希望确保使用最新功能,将从源代码安装这些依赖库。


pip install -q -U bitsandbytes
pip install -q -U git+https://github.com/huggingface/transformers.git
pip install -q -U git+https://github.com/huggingface/peft.git
pip install -q -U git+https://github.com/huggingface/accelerate.git

第 2 步:通过 Transformer 的 BitsandBytesConfig 定义量化参数

现在将使用 Transformer 库中的 BitsandBytesConfig 配置 QLoRA 参数。

这里是对可以调整和使用的参数进行说明:

  • load_in_4bit=True:指定要以 4-bit 精度转换和加载模型。
  • bnb_4bit_use_double_quant=True:使用嵌套量化来提高内存效率的推理和训练。
  • bnd_4bit_quant_type="nf4"4-bit 集成带有 2 种不同的量化类型 FP4NF4NF4 dtype 代表 Normal Float 4,在 QLoRA 论文中有介绍。默认情况下,使用 FP4 量化。
  • bnb_4bit_compute_dype=torch.bfloat16:计算数据类型用于更改计算期间将使用的数据类型。默认情况下,计算数据类型设置为 float32,但可以设置为 bf16 以提高速度。


import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_use_double_quant=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16
)

第 3 步:为 Mistral 7B 加载量化

现在来指定模型 ID,然后使用之前定义的量化配置加载它。


model_id = "mistralai/Mistral-7B-Instruct-v0.1"
model = AutoModelForCausalLM.from_pretrained(model_id, quantization_config=bnb_config, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_id)

第 4 步:加载后,运行一代并尝试一下!

最后,准备好将 Mistral 7B 投入使用。

  1. 首先测试它的文本生成能力,使用以下模板:


PROMPT= """ ### Instruction: Act as a data science expert.
### Question:
Explain to me what is Large Language Model. Assume that I am a 5-year-old child.
### Answer:
"""
device = "cuda:0"
encodeds = tokenizer(PROMPT, return_tensors="pt", add_special_tokens=True)
model_inputs = encodeds.to(device)
generated_ids = model.generate(**model_inputs, max_new_tokens=1000, do_sample=True, pad_token_id=tokenizer.eos_token_id)
decoded = tokenizer.batch_decode(generated_ids)
print(decoded[0])

该模型遵循了我们的指示,并很好地解释了大语言模型的概念!

image.png

  1. 现在来测试一下 Mistral 7B 的代码能力


messages = [
    {"role": "user", "content": "write a python function to generate a list of random 1000 numbers between 1 and 10000?"}"role": "user", "content": "write a python function to generate a list of random 1000 numbers between 1 and 10000?"}
    ]
encodeds = tokenizer.apply_chat_template(messages, return_tensors="pt")
device = "cuda:0"
model_inputs = encodeds.to(device)
generated_ids = model.generate(model_inputs, max_new_tokens=1000, do_sample=True)
decoded = tokenizer.batch_decode(generated_ids)
print(decoded[0])

看来模型完成的代码效果:

image.png

总结

从目前模型的发展情况来看,Mistral AI 是 LLaMA 和 Falcon 等流行模型的一个非常不错的替代品。

它是免费的、更小但更高效。它允许完全定制,并且可以轻松微调并具有令人惊喜的性能。


相关文章
|
5月前
|
机器学习/深度学习 存储 人工智能
Qlib:华尔街颤抖!微软开源金融AI量化投资神器,助力智能投研
Qlib是微软亚洲研究院推出的开源AI量化投资平台,提供从数据处理、模型训练到组合管理的全流程支持,内置高性能数据基础设施和多种机器学习模型。
1306 87
Qlib:华尔街颤抖!微软开源金融AI量化投资神器,助力智能投研
|
7月前
|
人工智能 Linux API
Omnitool:开发者桌面革命!开源神器一键整合ChatGPT+Stable Diffusion等主流AI平台,本地运行不联网
Omnitool 是一款开源的 AI 桌面环境,支持本地运行,提供统一交互界面,快速接入 OpenAI、Stable Diffusion、Hugging Face 等主流 AI 平台,具备高度扩展性。
738 94
Omnitool:开发者桌面革命!开源神器一键整合ChatGPT+Stable Diffusion等主流AI平台,本地运行不联网
|
4月前
|
人工智能 自然语言处理 程序员
不是ManusAI用不起,而是AgenticSeek更有性价比,炸裂的项目,100%本地运行的AI秘书,真的丝滑啦!
AgenticSeek是一款开源本地AI助手,基于DeepSeek R1模型构建,无需云端支持,确保隐私安全。它能执行智能上网、编程辅助、任务调度、文件管理和语音交互等多功能操作,完全离线运行,适用于多种场景如网络安全扫描、代码迁移及学术研究等。相比Manus AI等工具,AgenticSeek具备更高性价比与更强隐私保护,是用户实现高效生产力的理想选择。项目已在GitHub收获12.3k+星,欢迎体验!
441 5
|
4月前
|
人工智能 数据安全/隐私保护 Docker
短短时间,疯狂斩获1.9k star,开源AI神器AingDesk:一键部署上百模型,本地运行还能联网搜索!
AingDesk 是一款开源的本地 AI 模型管理工具,已获 1.9k Star。它支持一键部署上百款大模型(如 DeepSeek、Llama),适配 CPU/GPU,可本地运行并联网搜索。五大核心功能包括零门槛模型部署、实时联网搜证、私人知识库搭建、跨平台共享和智能体工厂,满足学术、办公及团队协作需求。相比 Ollama 和 Cherry Studio,AingDesk 更简单易用,适合技术小白、团队管理者和隐私敏感者。项目地址:https://github.com/aingdesk/AingDesk。
428 3
|
7月前
|
人工智能 Linux iOS开发
exo:22.1K Star!一个能让任何人利用日常设备构建AI集群的强大工具,组成一个虚拟GPU在多台设备上并行运行模型
exo 是一款由 exo labs 维护的开源项目,能够让你利用家中的日常设备(如 iPhone、iPad、Android、Mac 和 Linux)构建强大的 AI 集群,支持多种大模型和分布式推理。
1562 100
|
8月前
|
人工智能 算法 前端开发
OmAgent:轻松构建在终端设备上运行的 AI 应用,赋能手机、穿戴设备、摄像头等多种设备
OmAgent 是 Om AI 与浙江大学联合开源的多模态语言代理框架,支持多设备连接、高效模型集成,助力开发者快速构建复杂的多模态代理应用。
615 72
OmAgent:轻松构建在终端设备上运行的 AI 应用,赋能手机、穿戴设备、摄像头等多种设备
|
5月前
|
人工智能 自然语言处理 API
8.6K star!完全免费+本地运行+无需GPU,这款AI搜索聚合神器绝了!
FreeAskInternet是一款革命性的开源项目,它完美结合了多引擎搜索和智能语言模型,让你在不联网、不花钱、不暴露隐私的情况下,获得媲美ChatGPT的智能问答体验。这个项目最近在GitHub上狂揽8600+星,被开发者称为"本地版Perplexity"。
193 2
|
7月前
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
4590 22
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
7月前
|
人工智能 Prometheus 监控
容器化AI模型的监控与治理:确保模型持续稳定运行
在前几篇文章中,我们探讨了AI模型的容器化部署及构建容器化机器学习流水线。然而,将模型部署到生产环境只是第一步,更重要的是确保其持续稳定运行并保持性能。为此,必须关注容器化AI模型的监控与治理。 监控和治理至关重要,因为AI模型在生产环境中面临数据漂移、概念漂移、模型退化和安全风险等挑战。全面的监控涵盖模型性能、数据质量、解释性、安全性和版本管理等方面。使用Prometheus和Grafana可有效监控性能指标,而遵循模型治理最佳实践(如建立治理框架、定期评估、持续改进和加强安全)则能进一步提升模型的可信度和可靠性。总之,容器化AI模型的监控与治理是确保其长期稳定运行的关键。
|
7月前
|
存储 人工智能
Scaling Law或将终结?哈佛MIT预警:低精度量化已无路可走,重磅研究掀翻AI圈
哈佛大学和麻省理工学院的研究人员最近发布了一项重磅研究,对Scaling Law在低精度量化中的应用提出严重质疑。研究表明,随着训练数据增加,低精度量化带来的性能损失也增大,且与模型大小无关。这挑战了通过增加规模提升性能的传统观点,提醒我们在追求效率时不能忽视性能损失。该研究结果在AI圈内引发广泛讨论,提示未来需探索其他方法来提高模型效率,如混合精度训练、模型压缩及新型硬件架构。论文地址:https://arxiv.org/pdf/2411.04330。
158 11

热门文章

最新文章