如何用hugging face hub一键下载模型并将模型转换为gguf格式(支持自定义量化)

如何在hugging face hub一键下载模型并将模型转换为gguf格式(支持自定义量化)

作者:申非

第一步:在【hugging face】网站上寻找到支持模型列表中的模型的  相对地址

如:

7785ceba6fe44bb8a6acfdaf5d5c1500.png

第二步:克隆llama.cpp并编译

be53b476c9854129b6cb0c4078909f16.png

make的安装使用可以看【在windows上安装make - 知乎 (zhihu.com)】。然后使用make编译【llama】

第三步:环境配置

进入本地【E:\llamaapp\llama.cpp】文件夹(llama.cpp文件夹),在当前环境下将【llama】依赖包安装好

3503d99f62fc4dc4825a61d17388a7c5.png

pip install -r requirements.txt

并导入【huggingface_hub】

pip install huggingface_hub

如果C盘内存不充足,可以更换缓存地址,即添加系统变量

【HF_HUB_CACHE = ‘你自己设定的缓存地址’】

如:

c99cb7744c4443c3b56a78cc0713fec0.png

第四步:在llama.app文件夹下,创建并运行【Hub_download.py】文件,下载模型

结合第一步的相对地址填入参数【model_addr】中

创建Hub_download.py文件代码内容如下:

 (更新)目前需要加入login()用access tokens登录才可以获取模型下载权限。token获取可以参考:仓库申请报错:Cannot access gated repo for url https://huggingface.co/api-CSDN博客

​

from huggingface_hub import snapshot_download

from huggingface_hub import login

#目前需要输入access token确认登陆
huggingface_hub.login("在这里输入你的access token")

#自行选择模型,自行修改下面参数(第一步的相对地址)
model_addr = 'Qwen/Qwen1.5-1.8B-Chat'

#提取模型库名和模型名称
model_repo = model_addr.split('/')[0]
model_name = model_addr.split('/')[1]

# 下载模型
snapshot_download(
repo_id=f"{model_addr}",

#去除tensorflow的模型,只下载pytorch模型
ignore_patterns=["*.h5", "*.ot", "*.msgpack"],

#模型存储地址
local_dir=f"E:\\llamaapp\\llama.cpp\\models\\{model_repo}\\{model_name}",
)
​

然后在llama.app文件夹的【cmd】下执行命令:python Hub_download.py

如果有其他需求可以自行修改该上面Hub_download.py文件内容。(参考hub官方文档:Manage your Space (huggingface.co)

运行结果:

04f267fd97374a19afff14c8215fa5b5.png

期间由于网络问题可能会出现timed out,但会自动继续下载(只要网络良好)

出现这样是正常情况:

ccf75db71627452bbfa9b241d9c91aab.png

下载完成:

e2a93eb2535f423196bad2031d5c9fd0.png

每次下载完,模型就存储在了models文件夹下

31ca19bd704043d8ad354cb889a918df.png

下载完成的话,缓存【modelcache】里面选中的文件就可以删除了(所有文件都可以删除)

847be162573047cda404067619c04a10.png

第五步:完成模型的转换和量化,转换为【gguf】格式(支持部分大语言模型)

我当前需要转化的模型所在文件夹为【\models\microsoft\phi-2】

我尝试了采用convert.py文件失败,所以采用convert-hf-to-gguf.py,成功

命令为:

Python convert-hf-to-gguf.py .\models\microsoft\phi-2

3c095607187d44ee84d5fdeafe34444d.png

出现以下一系列tensor转换,等待完成就成功了

24b4a5a49f2c45e79c40064fc69587a9.png

接着在模型文件夹下可以看到【gguf】文件

a3c2e355cb414717863fde259ff37052.png

第六步:量化(可跳过)

量化就是减少模型所占内存的大小,量化位数越少,模型占有内存越小,但相对可能模型表现会更差,所以建议在模型过大的时候可以适当采用。

在此我尝试使用,但是失败了,有的模型可能不支持量化操作

量化命令(【quantize + gguf文件地址 + 量化位数】),如:

【quantize .\models\microsoft\phi-2\ggml-model-f16.gguf q8_0】

可以先用【quantize + gguf文件地址】查看可以选择的量化程度:

d0341a4279804a07bfde01bf3975407f.png

我在这里选择6位量化【quantize .\models\microsoft\phi-2\ggml-model-f16.gguf Q6_K】,结果:

e1961fdee802471d87605eead0b7f64d.png

量化完成后,模型文件夹里面又有了一个量化后的模型文件:

264a86aae6c742f18e149558d1c7e388.png

第七步:运行模型推理

命令:

【main -m .\models\microsoft\phi-2\ggml-model-Q6_K.gguf --prompt "please introduce yourself" --n-predict 50】

结果:

8a3c2ee155d5475298daa95eacb9e322.png

另外,gguf格式可以直接放入lm studio进行页面问答

好的,能看到这里的小伙伴都是大牛了,我也是花了好长时间才跑成功的。再接再厉哦!!

参考文章:

大模型部署工具 llama.cpp – 陈少文的网站 (chenshaowen.com)

https://www.chenshaowen.com/blog/llama-cpp-that-is-a-llm-deployment-tool.html

如何优雅的下载huggingface-transformers模型 - 知乎 (zhihu.com)

https://zhuanlan.zhihu.com/p/475260268

windows 下跑一波 llama.cpp - 知乎 (zhihu.com)

https://zhuanlan.zhihu.com/p/686638968

在windows上安装make - 知乎 (zhihu.com)

https://zhuanlan.zhihu.com/p/630244738

Manage your Space (huggingface.co)

https://huggingface.co/docs/huggingface_hub/v0.22.0.rc0/guides/manage-spaces

使用 llama.cpp 在本地部署 AI 大模型的一次尝试 - 知乎 (zhihu.com)

https://zhuanlan.zhihu.com/p/682585600

  • 27
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值