前面的文章中我有提到过使用Ollama和LM Studio,一个命令行,一个图形界面在本地来管理和运行大模型。
本文,我将使用LLama.cpp来进行本地推理,运行大模型。
顺便吐槽:
网上太多文章,都是各种编译,小白弄这个也会比较麻烦。大多也是互相抄别人的文章。从安装到使用,早就信息滞后了。
本身这个早就不需要编译了,下载包就能直接用。
Llama.cpp是啥
先发官网:
https://github.com/ggerganov/llama.cpp
目前最火的大模型推理框架之一。我们使用的LM Studio,在Mac上,就是使用的Llama.cpp的底层进行推理。
不明白啥是推理的,可以搜索一下,简单说就是让大模型跑起来,能让我们进行使用。
比较专业的说法:
推理:指利用训练好的神经网络模型进行运算,利用输入的新数据来一次性获得正确结论的过程。
来抄一段Llama.cpp的介绍:
LLaMa.cpp 是由 Georgi Gerganov 开发的。它用高效的 C/C++ 实现了 Meta 的 LLaMa 架构,并且是 LLM 推理领域最活跃的开源社区之一,拥有 390 多位贡献者,官方 GitHub 仓库拥有 43000 多颗星,以及 930 多个版本。 (目前已经 7万多星)
我的总结就是:
1、可以使用CPU来推理(穷人的福利,虽然很慢,但是跑一1、2B的模型体验没问题),比前2天我写文章《Mac本地推理体验DeepSeek最新多模态模型Janus-Pro-7B》代码里,用huggingface的推理脚本,性能更好。
2、可以在Mac上利用Metal芯片显卡进行推理。实测 7B的模型,速度能达到 每秒60 Token的输出,相当相当的流畅。
3、安装比较简单
安装Llama.cpp
1、最新的release发布版本
https://github.com/ggerganov/llama.cpp/releases
2、下载
Intel芯片,下载 x64的。
Mac芯片,下载 arm64的。
3、下载回来解压,放到一个目录中。注意路径不要有中文。
比如我的:
/Users/kyle/AITool/Inference/llama.cpp-bin
里面还有一层bin目录,bin下面是命令文件,现在就可以使用了。
大概是这样的目录结构:
4、运行测试一下
在终端中进入这个目录。
这篇文章《Mac 本地体验Dify并连上DeepSeek R1,堪比Coze的开源本地化Agent框架》有快捷办法,可以一键在终端中打开当前目录。
在目录下运行命令:
./llama-cli -h
有提示即成功,代表可以正常使用了。
最好是建议不要用网上那些编译的方法,当然可以这样做,但是太复杂,也容易出问题。
如果无法运行代表电脑上可能缺一些相关的库。根据提示来安装即可。正常应该很容易运行起来
测试命令行聊天,使用DeepSeek R1
我们之前在LM Studio中已经下载过模型,所以这里直接用LM Studio中的模型。
1、打开LM Studio ,打开我的模型,然后在下拉中,点开在Finder中显示。
Tips:
也可以像我一样,更换目录,把LM Studio的模型放到一个目录中统一管理。
a、先在Finder中显示,然后把所有模板剪到新的目录中。
b、回过来更改路径为新目录
c、重启一下LM,看看模型这里能否正确加载即可。
特别注意:LM的模板是三层目录式,要迁移的时候,要把模型的上层,上上层目录,一切剪切过去。
2、在Finder中使用Mac复制路径快捷键
Cmd+Option+C。复制文件路径
得到模型的全路径。
3、在命令行中运行聊天模式
# 最简聊天
./llama-cli -m /Users/kyle/AIModel/lmstudio-community/DeepSeek-R1-Distill-Llama-8B-GGUF/DeepSeek-R1-Distill-Llama-8B-Q4_K_M.gguf
注意:./llama-cli需要在llama.cpp的bin目录下执行。
我不想这么麻烦。那就需要把llama-cpp添加到全局环境变量中。
方法:
在~/.bash_profile或者~/.zshrc或者~/.bashrc中添加下面这行。路径换为自己的路径。
以后可以在任意终端中运行和使用llama.cpp的命令了。非常方便。
# Llama.cpp
export PATH="/Users/kyle/AITool/Inference/llama.cpp-bin/bin:$PATH"
出现下面的截图,代表运行成功,可以聊天了。
然后直接在命令行聊天吧
4、使用服务模式,可以在界面或者API中调用。
使用命令:启动WebServer API模式
./llama-server -m /Users/kyle/AIModel/lmstudio-community/DeepSeek-R1-Distill-Llama-8B-GGUF/DeepSeek-R1-Distill-Llama-8B-Q4_K_M.gguf
运行后,最后日志提示main: server is listening on http://127.0.0.1:8080 – starting the main loop
代表运行成功。
此时打开http://127.0.0.1:8080 可以使用官方提供的网页版功能。
当然也可以通过API去调用了。
调用地址:http://localhost:8080/v1/chat/completions
可以使用我上次推荐的Api Fox中,API Hub中的ChatGPT API功能,便捷调试。
实测8B模型速度在60Token /s,配置Mac 64G内存,48G显卡。
后记
相关的更多命令可以在官网上查询。还有很多别的功能。
其实LLama.cpp最常用的功能还有2个。
1、把别的格式的权重文件(我叫大模型文件,一般是safetensor格式,一种.bin格式。)转换为GGUF格式,供Ollama和LM Studio使用。
2、对模型进一步量化,比如16位的,量化为4位,体积一下就缩小了。
但是这2种操作一般不推荐在自己电脑上玩。最好用免费的算力机器,去跑一跑再上传到HuggingFace或者ModelScope。
有机会继续分享。