我最近做了一些项目,里面用到了LLM。我发现自己对代理应用感兴趣,这种应用让LLM负责控制流程。我把这些功能加到现有开发流程中,所以开始深入研究本地运行LLM。
为什么要在本地运行LLM?
我说本地运行LLM,意思是在我的开发机器上临时跑一个模型。这不是教你自己托管AI应用。
说清楚一点。本地运行LLM要达到ChatGPT或Claude那样的效果,还需要很久。你得有个特别强的家用实验室才能做到。如果只是想快速跟LLM聊几句,用在线服务比自己搭一个方便多了。
那什么时候适合自己跑LLM呢?
- 隐私很重要时
- 费用很敏感时
- 响应时间或质量不重要时
我现在还在试着研究怎么建代理。我担心不小心弄出循环或错误,用按量付费的API会花很多钱。还有,我在做副项目时,不太在乎响应时间或质量。
运行模型的选择
Ollama
Ollama现在好像是本地LLM最好的选择。它有很多模型可以用,还有简单好用的命令行。模型库里有各种热门开源模型,比如LLaMa、Mistral、Qwen和DeepSeek,参数和量化方式也很多。命令行像Docker的,有简单的拉取、列出和运行命令。它还支持更高级的功能,比如创建和推送自己的模型。
Ollama让模型跑起来很简单。装好应用后,只要输入ollama pull llama3.2
和ollama run llama3.2
就行。所以我觉得大多数人大多数时候都该先试这个工具。
Llama.cpp
Llama.cpp是用纯C/C++写的,所以叫这个名字。它几乎能在任何地方跑,性能也不错。它的好处是灵活和实用工具多。
低级实现让它能在各种平台上跑。这对资源少的系统有用,比如树莓派或老旧的家用电脑。它还能在安卓设备上跑,甚至通过网页封装直接在浏览器里跑。
Llama.cpp自带很多实用工具。它能直接跟Hugging Face整合,那是挺热门的LLM模型库。我觉得有趣的还有测试性能和困惑度测量命令。这些能帮你知道不同模型配置在你的硬件上跑得怎么样。
Llamafiles
Llamafiles是Mozilla弄出来的新东西,用一个可执行文件就能跑本地LLM,不用装应用。它其实是用Llama.cpp做的。这对快速分享和分发模型给其他开发者很有趣。过程简单:下载一个llamafile,设为可执行,然后运行。浏览器界面会自动在本地主机上跑起来,方便跟模型互动。
Llamafiles现在没gguf格式那么流行,Llama.cpp用的是gguf。你可以在llamafile的GitHub仓库或Hugging Face上过滤找到一些样例模型。
选择适合你的模型
你选好本地运行LLM的方法后,下一步是挑一个适合你需求和机器能力的模型。不是所有模型都一样,有些跑得快,有些效率高,选哪个看你的具体情况。
参数和量化
LLM的大小通常用参数数量来描述。你会看到7B、13B、65B这样的数字,意思是几十亿参数。大模型回答更连贯、更细致,但需要更多内存和算力。如果只是试试或在笔记本上跑,小参数模型(7B或更少)是最好的起点。
大部分模型有不同量化版本,比如Q4、Q6、Q8。量化通过降低数字精度压缩模型。这会牺牲一点回答准确度,但能在弱硬件上跑得更好。低的量化像Q4跑得快、占内存少,但回答质量会差一点。高量化像Q8效果好,但资源用得多。
能力和工具使用
不是所有模型能力都一样。有些能直接用外部工具,比如代码解释器、API调用或搜索功能。如果想用LLM做代理应用,找专门支持工具的模型。很多开源模型默认没工具支持,我发现DeepSeek就这样。如果想要支持基本工具调用的本地LLM,LLaMa 3.2是不错的起点。
你还得想想模型的技能。不同模型用不同训练数据,有的擅长代码,有的适合普通语言任务。像LiveBench这样的测试网站有排行榜,告诉你哪些模型在不同类别里表现好。
其他注意事项
你翻模型库会发现文件都很大。小模型几GB,大模型几十GB。如果试不同模型,系统容易塞满用不下的版本,所以注意存储能省不少麻烦。Ollama在机器上管自己的模型目录,能帮你避免这个问题。
最后提醒一下:跑本地LLM模型等于执行从网上下的代码,有时是预编译文件。一定要确认来源,尽量用可信的地方,比如Hugging Face、Ollama和官方开发者GitHub仓库。