llama.cpp的安装和使用

1.创作日期

2025年6月24日

2.创作目的

记录分享一下llama.cpp的安装和使用经验,没用官方的docker镜像,自己制作了一个llama.cpp的docker镜像并启动使用

3.安装

系统配置:
1.windows下的wsl2(现在安装一般都是wsl2,安装后在cmd直接输入wsl -l -v可以查看版本),发行版是ubuntu:22.04 LTS,最全最权威的安装方法:wsl安装官方地址
2.显卡是英伟达的3070ti
特别注意: 目前wsl2和linux在使用上基本没差别,因此linux系统可以照着安装,如果没有英伟达显卡,单纯使用cpu也是可以使用的,只不过需要调整文章中涉及nvidia的步骤

前置条件:
1.已经安装了docker,最全最权威的安装方法:docker安装官方地址
2.已经安装了最新的nvidia驱动,wsl只需要windows下安装了就可以了,windows的英伟达驱动一般都是安装好的。最全最权威的安装方法:英伟达驱动安装官方地址
特别注意: wsl安装docker的方法直接找对应的发行版就行;如果linux下使用.run文件安装了旧版本的英伟达驱动需要先删除干净才能安装新的,如果是apt-get、yum、dnf这些包管理工具安装的一般是可以直接升级的,驱动删除和安装后最好重启系统

安装开始:
1、根据我的dockerfile创建一个conda镜像,conda的dockerfile地址,这是我github的仓库文件,公共的都可以访问,dockerfile中基本每一步都有注释,可以自己阅读理解后按步骤直接在linux系统中安装,有些dockerfile的说明在readme

#1、先创建一个带有conda的镜像,我给它的标签是my-conda:1.0,意思是镜像名字是my-conda,版本是1.0,可以自己修改成想要的
docker build -t my-conda:1.0 -f docker-my-conda .
#2、接着创建一个带有llama.cpp项目的镜像,我给它的标签是my-llama_cpp:1.0,意思是镜像名字是my-llama_cpp,版本是1.0,可以自己修改成想要的,如果conda镜像的标签跟我设置的不一样,my-llama_cpp里面from后面的内容需要修改成修改后的标签
docker build -t my-llama_cpp:1.0 -f docker-my-llama_cpp .

4.使用

1、根据构建好的镜像启动一个容器,并进入容器

#1、使用标签为my-llama_cpp:1.0的镜像启动一个容器,挂载主机/mnt/models目录到容器中,开启自动重启(如果容器意外被关闭会尝试自动重启,docker stop除外),开放主机的12348、12349、12350端口并映射给容器的22、80、8080,开启gpu,容器名字为my-llama_cpp,开始后台运行
docker run -itd --restart=always -p 12348:22 -p 12349:80 -p 12350:8080  --gpus all -v /mnt/models:/mnt/models --name my-llama_cpp my-llama_cpp:1.0  bash
#2、进入容器,可以使用llama.cpp的各个功能
docker exec -it my-llama_cpp bash
#3、如果想要停止和删除已启动的容器可以使用以下两个命令
docker stop my-llama_cpp
docker rm  my-llama_cpp

2、下载大模型到本地,一般都是从国内的魔搭社区(modelscope)和国外的huggingface(需要能够连接外网,并且本地使用huggingface-cli login,粘贴自己的token登录才能下载一些需要授权的模型,如llama系列的模型),手动下载模型然后上传也能用

#1、使用modelscope下载deepseek-ai/DeepSeek-R1-0528-Qwen3-8B模型到/mnt/models/modelscope/DeepSeek-R1-0528-Qwen3-8B,没有这个路径需要自己创建
modelscope download --model deepseek-ai/DeepSeek-R1-0528-Qwen3-8B --local_dir /mnt/models/modelscope/DeepSeek-R1-0528-Qwen3-8B
#2、使用huggingface-cli下载deepseek-ai/DeepSeek-R1-0528-Qwen3-8B模型到/mnt/models/huggingface/DeepSeek-R1-0528-Qwen3-8B,没有这个路径需要自己创建
huggingface-cli download deepseek-ai/DeepSeek-R1-0528-Qwen3-8B --local-dir /mnt/models/huggingface/DeepSeek-R1-0528-Qwen3-8B --local-dir-use-symlinks False

3、使用convert_hf_to_gguf_update.py优化convert_hf_to_gguf.py,原因是现在很多模型分词都是BPE模式,没现成的tokenizer.model可以使用,导致convert_hf_to_gguf.py使用时报错找不到tokenizer模型(FileNotFoundError: File not found: tokenizer.model),使用convert_hf_to_gguf_update.py优化后就可以了。

#直接执行以下命令即可
python convert_hf_to_gguf_update.py

特别注意: 运行convert_hf_to_gguf_update.py需要联网下载一些tokenizer的相关文件到llama.cpp项目下的models/tokenizers目录,huggingface和modelscope下载的同一模型里面的tokenizer文件对应的哈希值不一样,所以执行后面的操作需要注意区分,如果不联网,理论上按下面的方法操作应该也能用:
(1)自己找到convert_hf_to_gguf_update.py中的models =[ {"name": "llama-spm", "tokt": TOKENIZER_TYPE.SPM, "repo": "https://huggingface.co/meta-llama/Llama-2-7b-hf", }...]部分
(2)清空[]里的内容,再在[]内加上自定义的tokenizers内容{"name": "deepseek-r1-qwen3", "tokt": TOKENIZER_TYPE.BPE, "repo": "https://huggingface.co/deepseek-ai/DeepSeek-R1-0528-Qwen3-8B", }
(3)在models/tokenizers目录下面创建一个deepseek-r1-qwen3目录,自己将DeepSeek-R1-0528-Qwen3-8B模型下的tokenizer.json、tokenizer_config.json、config.json各拷贝一份到deepseek-r1-qwen3目录
(4)运行convert_hf_to_gguf_update.py,使用命令:python convert_hf_to_gguf_update.py

4、转换huggingface上下载的模型目录为.gguf文件,目前llama.cpp加载模型只认.gguf文件

#转换DeepSeek-R1-0528-Qwen3-8B,先给出模型所在路径,--outfile指定输出文件,--outtype指定输出模型的精度类型,一般默认是f16,/mnt/models/llamacpp/gguf路径不存在需要自己创建
python convert_hf_to_gguf.py /mnt/models/huggingface/DeepSeek-R1-0528-Qwen3-8B  --outfile /mnt/models/llamacpp/gguf/DeepSeek-R1-0528-Qwen3-8B.gguf --outtype f16
### 如何在MacBook上安装LLama.cpp #### 准备工作 为了确保顺利安装,需确认已安装Homebrew以及Python开发环境。对于非M2芯片设备,可以通过pip工具来获取必要的库支持。 #### 安装依赖项 利用Homebrew安装编译所需的依赖包,这一步骤能够简化后续的构建过程[^1]。 ```bash brew install cmake git ``` #### 获取源码 克隆官方仓库到本地机器,这是获得最新版本软件的基础操作[^2]。 ```bash git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp ``` #### 编译项目 根据操作系统不同选择合适的Makefile文件进行编译。对于苹果电脑而言,默认设置通常适用;而对于其他平台,则可能需要调整参数以适应特定硬件架构的需求。 ```bash make ``` #### 下载模型 除了上述提到的方式外,还可以借助`pyllama`库完成模型下载任务(针对不含有M2处理器的机型)[^4]。当然也支持手动从Hugging Face等网站获取预训练权重,并将其保存至指定路径下以便加载使用。 #### 配置环境变量 为了让系统识别新安装的应用程序及其关联资源,在`.zshrc`或同等作用范围内的shell配置文件里添加相应目录至PATH环境变量中去。 ```bash export PATH=$HOME/path/to/llama.cpp:$PATH source ~/.zshrc ``` #### 测试运行 一切准备就绪之后就可以尝试执行简单的命令行指令来进行初步验证了。如果一切正常的话应该可以看到帮助信息输出而不是报错提示。 ```bash ./main -h ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值