家用消费级显卡玩转大模型超简单,一看就懂,一学就会

这篇文章主要介绍了如下内容:

  • 模型量化,包括转换为gguf格式
  • 如何通过Ollama部署运行模型

通过这篇文章,你可以将一个很大的模型文件转换为一个相对很小的模型文件,并部署运行起来,运行速度可以大大提升,消费级显卡也可以无压力运行。

为什么要模型量化?

从智能语音助手到图像识别,大模型虽然在各个领域中展现了强大的能力,但是,这玩意需要大量的计算资源才能运行。为了降低模型的计算量和内存占用,模型量化应运而生。

模型量化通过模型中的参数表示从高精度(如 32 位浮点数)转换为低精度(如 8 位整数),从而大幅减少模型的大小和计算量。这意味着我们可以在资源有限的设备上,如家用消费级显卡,顺利运行大模型,而无需依赖昂贵的专业硬件。

模型量化有助于提高模型的运行速度。减少了参数的精度和计算量,使得模型在推理阶段能够更快地给出结果。对于一些对实时性要求较高的应用,如在线聊天机器人、实时图像识别等,模型量化带来的速度提升至关重要。

再者,模型量化能够降低能耗。在大规模的模型部署中,能耗是一个不可忽视的问题。量化后的模型在运行时消耗的电能更少,不仅有利于节约成本,还有助于减少对环境的影响。

此外,模型量化还便于模型的部署和传播。更小、更高效的量化模型更容易在不同的设备和平台上进行部署,促进了大模型技术的广泛应用和普及。

如何快速实现模型量化

llama.cpp

目前要实现模型量化,不得不说一个开源框架-  llama.cpp,我主要说明如何通过这个框架实现将模型权重文件转为一个gguf格式的文件,以便后续可以通过Ollama进行模型量化。

这个框架的功能:在各种硬件(本地和云端)上以最少的设置和最先进的性能实现 LLM 推理。

详细介绍可以参考  github 地址: GitHub - ggerganov/llama.cpp: LLM inference in C/C++

根据官网介绍,这个框架的功能还是比较强大的,不仅可以对话模式运行模型、还可以作为网络服务器等,不过,我这里只介绍了如何转换为gguf格式的功能。

这里首先介绍下gguf格式:

GGUF(GPT-Generated Unified Format)是一种二进制格式,具有以下特点:

  • 单文件部署:将模型的所有相关信息包含在一个文件中,便于分发和加载,无需额外的外部文件提供附加信息。
  • 可扩展性:可以向基于 GGML 的执行器添加新功能或向 GGUF 模型添加新信息,同时不会破坏与现有模型的兼容性。
  • mmap 兼容性:支持使用 mmap(内存映射)加载模型,从而实现快速加载和保存,提高了数据访问的效率。
  • 易于使用:不论使用何种编程语言,都可以通过少量代码轻松实现模型的加载和保存,而无需使用外部库。
  • 包含完整信息:加载模型所需的全部信息都被包含在模型文件内,用户无需再提供其他额外信息。

1、要使用llama.cpp,首先我们去github地址去下载项目代码

git clone --depth=1 https://github.com/ggerganov/llama.cpp.git

2、下载完之后,进入 llama.cpp 目录,运行如下命令:

python convert_hf_to_gguf.py   原始模型文件夹路径  --outfile  输出模型的路径

注意:要自己替换两个路径为你自己的,比如:

python convert_hf_to_gguf.py    /home/jack/Documents/modelcode/LLaMA-Factory/export    --outfile /home/jack/mnt/models/gguf/qwen2_15.gguf

你会看到如下结果就表示成功了

6f8ada84572a4df8be6d001adcebbbfb.png

模型转换已经成功,下面我将介绍如何通过Ollma将这个转换后的gguf格式的二进制模型 进行量化。

Ollama

1、首先是下载,进入官网:https://ollama.com/  ,点击Download 按钮,你会看到如下界面

5c913b444733474a9ac52e6c75dc94ce.png

根据自己的系统,拷贝命令到命令行执行即可,等待安装完毕。

2、安装完之后,创建一个文件名称为 Modelfile,在文件内输入:

FROM  gguf模型文件地址

注意:要将 gguf模型文件地址 改为你自己的地址。然后保存文件,命令行输入:

ollama create -q Q4_K_M   自定义模型名称

注意:自定义模型名称 要改为自己的,随便起一个名称就行。Q4_K_M 表示进行4 bit量化,也是比较常用的方式。这条命令的作用就是通过Modelfile 创建一个模型给Ollama管理。

3、查看模型,使用如下命令:

ollama list 

如果看到你自定义的模型名词就代表成功, 下面 myqwen15 就是我自定义的模型名称。

3dca08bdae6a4497b2caa00033268f6f.png

4、检查、运行模型,使用如下命令

ollama run 你用的模型名称

然后你就可以和模型进行对话了,检查这个模型的效果如何。如果模型的效果不好,可以参考我之前写的文章 《LLaMA-Factory 大模型微调超简单,从零开始开始玩转大模型微调》,通过 LLaMA-Factory 进行模型的微调。

总结:

本篇文章只是抛砖引玉,浅谈了大模型的转换、量化、运行等知识,更多细节知识,如果有兴趣,可以查看官方文档,本人也还在学习过程中,看到这里了,不妨点个关注,一起学习,一起交流呀~


关于我:

资深程序员,曾在北京某AI公司从事智能对话问答平台研发,也曾在大厂历练过,对AI场景应用充满热情。

  • 46
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马丁的代码日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值