本地部署大模型其实很简单:AI-Guide-and-Demos-zh_CN的Transformer量化模型实践

【免费下载链接】AI-Guide-and-Demos-zh_CN 这是一份入门AI/LLM大模型的逐步指南,包含教程和演示代码,带你从API走进本地大模型部署和微调,代码文件会提供Kaggle或Colab在线版本,即便没有显卡也可以进行学习。项目中还开设了一个小型的代码游乐场🎡,你可以尝试在里面实验一些有意思的AI脚本。同时,包含李宏毅 (HUNG-YI LEE)2024生成式人工智能导论课程的完整中文镜像作业。 【免费下载链接】AI-Guide-and-Demos-zh_CN 项目地址: https://gitcode.com/gh_mirrors/ai/AI-Guide-and-Demos-zh_CN

AI-Guide-and-Demos-zh_CN是一份入门AI/LLM大模型的逐步指南,包含教程和演示代码,带你从API走进本地大模型部署和微调,即使没有显卡也可以通过Kaggle或Colab在线版本进行学习。

为什么选择量化模型?

随着大语言模型(LLM)的参数规模不断增长,部署这些模型所需的计算资源也随之增加。以7B参数的模型为例,其原始大小可能需要30GB的磁盘空间,这对于普通用户来说是一个不小的负担。而模型量化技术可以有效解决这个问题,通过降低权重的位宽(如4-bit量化),在大幅减少模型大小和计算成本的同时,还能保持较好的模型性能。

常见的量化方法

目前主流的量化方法包括:

  • RTN(Round-to-Nearest):一种直接将权重四舍五入到目标位宽的量化方法,简单但可能带来显著的量化误差。
  • GPTQ:基于近似二阶信息的后训练量化技术,能够将模型的权重位宽降低到3-4 bits。
  • AWQ:通过通道缩放保护显著权重,利用激活分布找到重要的权重并缩放它们的值来减少量化误差。

准备工作

在开始部署之前,我们需要准备以下环境:

  1. 安装Transformers库:确保安装最新版本的Transformers,因为从v4.41.0开始,它已经支持了GGUF格式的量化模型。
pip install transformers --upgrade
  1. 选择量化模型:在Hugging Face上搜索量化版本的模型,通常搜索[模型名称]-[GPTQ]/[AWQ]/[GGUF][模型名称]-[4bit/INT4]即可找到合适的模型。

部署步骤

使用Transformers加载量化模型

以下是使用Transformers加载GPTQ或AWQ量化模型的基本步骤:

  1. 导入必要的库
from transformers import AutoModelForCausalLM, AutoTokenizer
  1. 加载模型和tokenizer
model_name = "TheBloke/Llama-2-7B-Chat-GPTQ"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto")
  1. 进行推理
inputs = tokenizer("你好,世界!", return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=50)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

使用Llama-cpp-python加载GGUF模型

对于GGUF格式的量化模型,推荐使用Llama-cpp-python,它能够更好地支持GGUF格式的量化模型,并且在加载分片模型时也更为方便。

  1. 安装Llama-cpp-python
pip install llama-cpp-python
  1. 加载模型
from llama_cpp import Llama

llm = Llama(
    model_path="models/llama-2-7b-chat.Q4_K_M.gguf",
    n_ctx=2048,
    n_threads=8,
)
  1. 进行推理
output = llm(
    "你好,世界!",
    max_tokens=50,
    stop=["\n", "###"],
    echo=True,
)
print(output["choices"][0]["text"])

在线环境部署

如果你没有足够的本地计算资源,可以使用Kaggle或Colab等在线平台进行部署。这些平台提供免费的GPU资源,非常适合学习和实验。

Kaggle环境设置

  1. 创建新的Notebook:登录Kaggle后,创建一个新的Notebook。

  2. 配置环境:在Notebook的设置中,选择合适的加速器(如GPU T4 x2)。

  3. 上传模型或使用API:你可以直接上传量化模型文件,或者通过Hugging Face Hub下载模型。

常见问题解决

如何处理分片模型?

对于文件名末尾为<ShardNum>-of-<ShardTotal>形式的GGUF分片模型,Transformers暂时不支持直接加载。此时,推荐使用Llama-cpp-python,它能够自动处理分片模型。

量化模型的性能如何?

量化模型在减少模型大小和计算成本的同时,性能可能会有一定损失,但对于大多数应用场景来说,这种损失是可以接受的。如果对性能要求较高,可以选择更高位宽的量化模型(如8-bit)。

总结

通过模型量化技术,我们可以在普通设备上部署和运行大语言模型,大大降低了AI技术的使用门槛。AI-Guide-and-Demos-zh_CN项目提供了丰富的教程和代码示例,帮助你快速上手本地大模型部署。无论是使用Transformers还是Llama-cpp-python,都可以轻松实现量化模型的加载和推理。

如果你想深入了解模型量化的原理,可以参考项目中的18. 模型量化技术概述及 GGUF & GGML 文件格式解析一文。同时,项目中的Demos/16a. 使用 Transformers 加载量化后的 LLM 大模型(GPTQ & AWQ).ipynb提供了完整的代码示例,你可以直接在Kaggle或Colab中运行。

希望本指南能够帮助你顺利部署自己的本地大模型,开启AI探索之旅!

【免费下载链接】AI-Guide-and-Demos-zh_CN 这是一份入门AI/LLM大模型的逐步指南,包含教程和演示代码,带你从API走进本地大模型部署和微调,代码文件会提供Kaggle或Colab在线版本,即便没有显卡也可以进行学习。项目中还开设了一个小型的代码游乐场🎡,你可以尝试在里面实验一些有意思的AI脚本。同时,包含李宏毅 (HUNG-YI LEE)2024生成式人工智能导论课程的完整中文镜像作业。 【免费下载链接】AI-Guide-and-Demos-zh_CN 项目地址: https://gitcode.com/gh_mirrors/ai/AI-Guide-and-Demos-zh_CN

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐