【实践心得】如何对大模型进行量化 #41

Open
opened 2024-09-09 20:37:20 +08:00 by 11608857409cs · 0 comments

学员信息

刘杰-北京-产品经理 学习分组M

前言

周末在完成本周作业时,碍于自己的电脑配置较低,无法完成老师的两个“部署”作业。我的配置说一下:Windows11-i7CPU-16G内存-4G独立显卡,按说这个配置办公或者设计都绰绰有余,但是运行大模型7B8B以上的大模型就显得捉襟见肘了。
这次两个作业所使用的大模型为llama-3-chinese-8b-instruct-v3,显存占用在15G之多,所以,不管我选择GPU或是CPU版本方案经过试验都不能加载成功。本着学习就要死磕的原则,不采用更换较小大模型的方案。而是采用了为大模型“瘦身”的量化方案。

量化专项训练项目

image

(一)项目背景

模型通常具有庞大的参数量和计算复杂度,导致其在实际应用中面临着高昂的计算资源和存储需求。为了在边缘设备和资源受限的环境中有效部署这些强大的模型,量化技术应运而生。量化不仅可以显著减少模型的存储空间,还能加速推理过程,提高模型的运行效率。本文将对实践过程中的量化过程进行记录,以备后用。

(二)准备步骤与阶段产物

image

(三)步骤说明

首先,可以去ModelScope或HuggingFace网站手动或通过命令行下载模型文件。
image
下载.safeTensor格式的的如下图文件目录。    
image
之后,我们要准备以下量化软件的环境准备,首先需要安装CMake,打开这个网址 https://cmake.org/download/
image
下载与你系统相对应的安装包,我在这里下载的是linux版本。
image (MacOS/Linux系统自带make或cmake(而Windows需自行安装)编译工具,建议使用Python 3.10以上编译和运行该工具)

以下步骤均在Linux命令行环境下执行,请提前准备并激活虚拟环境:

之后我们开始准备量化软件llama.cpp,按照顺序依次执行以下Linux命令行:
git clone https://github.com/ggerganov/llama.cpp  					(下载llama.cpp)
cd llama.cpp   														(进入llama.cpp目录下)
pip install -r requirements/requirements-convert-hf-to-gguf.txt     (安装转换所需依赖)
cmake -B build   													(配置构建环境)
cmake --build build --config Release   								(执行构建过程)

在\home\ollmajiu\llama.cp\这个路径内执行:

格式转换

convert-hf-to-gguf.py \home\ollmajiu\.cache\modelscope\hub\ChineseAlpacaGroup\llama-3-chinese-8b-instruct-v3 --outtype f16 --outfile \home\ollmajiu\.cache\modelscope\hub\ChineseAlpacaGroup\llama-3-chinese-8b-instruct-v3-2b.gguf
(需要自行替换用户名ollmajiu)

image

在\home\ollmajiu\llama.cp\build\bin\这个路径内执行:

量化转换

llama-quantize \home\ollmajiu\.cache\modelscope\hub\ChineseAlpacaGroup\llama-3-chinese-8b-instruct-v3-2b.gguf \home\ollmajiu\.cache\modelscope\hub\ChineseAlpacaGroup\llama-3-chinese-8b-instruct-v3-Q2_K.gguf q4_0
(需要自行替换用户名ollmajiu)

image

好了,我们终于完成了这个大家伙的瘦身工作,从15G瘦身为3.1G。现在我终于可以在GPU和CPU版本方案中实现选择自由了,准备去完成作业吧。

image


以上就是本次的实践心得,如果有不解之处可以加我微信( LiuJie201X ),很愿意与好学之人成为朋友。
# 学员信息 刘杰-北京-产品经理 学习分组M # 前言 > 周末在完成本周作业时,碍于自己的电脑配置较低,无法完成老师的两个“部署”作业。我的配置说一下:Windows11-i7CPU-16G内存-4G独立显卡,按说这个配置办公或者设计都绰绰有余,但是运行大模型7B8B以上的大模型就显得捉襟见肘了。 > 这次两个作业所使用的大模型为llama-3-chinese-8b-instruct-v3,显存占用在15G之多,所以,不管我选择GPU或是CPU版本方案经过试验都不能加载成功。本着学习就要死磕的原则,不采用更换较小大模型的方案。而是采用了为大模型“瘦身”的量化方案。 # 量化专项训练项目 <img width="960" alt="image" src="/attachments/43ef156a-4489-4627-89ea-a2b3769f5816"> ## (一)项目背景 模型通常具有庞大的参数量和计算复杂度,导致其在实际应用中面临着高昂的计算资源和存储需求。为了在边缘设备和资源受限的环境中有效部署这些强大的模型,量化技术应运而生。量化不仅可以显著减少模型的存储空间,还能加速推理过程,提高模型的运行效率。本文将对实践过程中的量化过程进行记录,以备后用。 ## (二)准备步骤与阶段产物 ![image](/attachments/2fb1456d-6145-43b7-b9bd-ab70023de792) ## (三)步骤说明 首先,可以去ModelScope或HuggingFace网站手动或通过命令行下载模型文件。 <img width="960" alt="image" src="/attachments/1beb9852-7fa0-4ab3-8044-5b10187925f7"> 下载.safeTensor格式的的如下图文件目录。 <img width="570" alt="image" src="/attachments/08c98cba-3817-47b6-bb77-05fea0bf8a09"> 之后,我们要准备以下量化软件的环境准备,首先需要安装CMake,打开这个网址 https://cmake.org/download/ <img width="960" alt="image" src="/attachments/52ecd063-8ca9-4d6e-bcad-4acf2026c6b9"> 下载与你系统相对应的安装包,我在这里下载的是linux版本。 <img width="960" alt="image" src="/attachments/d59f22f8-06e3-430a-81e9-1cb8a5048740"> (MacOS/Linux系统自带make或cmake(而Windows需自行安装)编译工具,建议使用Python 3.10以上编译和运行该工具) #### 以下步骤均在Linux命令行环境下执行,请提前准备并激活虚拟环境: 之后我们开始准备量化软件llama.cpp,按照顺序依次执行以下Linux命令行: git clone https://github.com/ggerganov/llama.cpp (下载llama.cpp) cd llama.cpp (进入llama.cpp目录下) pip install -r requirements/requirements-convert-hf-to-gguf.txt (安装转换所需依赖) cmake -B build (配置构建环境) cmake --build build --config Release (执行构建过程) #### 在\home\ollmajiu\llama.cp\这个路径内执行: #### 格式转换 convert-hf-to-gguf.py \home\ollmajiu\.cache\modelscope\hub\ChineseAlpacaGroup\llama-3-chinese-8b-instruct-v3 --outtype f16 --outfile \home\ollmajiu\.cache\modelscope\hub\ChineseAlpacaGroup\llama-3-chinese-8b-instruct-v3-2b.gguf (需要自行替换用户名ollmajiu) ![image](/attachments/2dfc65b6-253f-4356-9f01-51a9334254d6) #### 在\home\ollmajiu\llama.cp\build\bin\这个路径内执行: #### 量化转换 llama-quantize \home\ollmajiu\.cache\modelscope\hub\ChineseAlpacaGroup\llama-3-chinese-8b-instruct-v3-2b.gguf \home\ollmajiu\.cache\modelscope\hub\ChineseAlpacaGroup\llama-3-chinese-8b-instruct-v3-Q2_K.gguf q4_0 (需要自行替换用户名ollmajiu) ![image](/attachments/9b2da17a-cdf4-4e92-88a1-b449620a65cd) 好了,我们终于完成了这个大家伙的瘦身工作,从15G瘦身为3.1G。现在我终于可以在GPU和CPU版本方案中实现选择自由了,准备去完成作业吧。 ![image](/attachments/a37ed8b4-7615-4c42-9bd9-19c41e8d01b5) ----- 以上就是本次的实践心得,如果有不解之处可以加我微信( LiuJie201X ),很愿意与好学之人成为朋友。
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: HswOAuth/llm_course#41
No description provided.