本地快速安装运行开源 LLaMa3 大模型
Meta 发布的 LLaMa3 大模型在各项指标上全面逼近 GPT-4,提供了 8B 和 70B 两个版本。其中 8B 版本最低仅需 4G 显存即可运行,是迄今为止能在本地运行的最强 LLM 之一。虽然原生模型对中文支持有限,但 HuggingFace 上已有大量针对中文的微调版本。
本文介绍了在本地环境部署和运行 Meta 发布的 LLaMa3 大模型的完整流程。通过 Ollama 作为后端推理引擎,配合 Open WebUI 提供浏览器访问界面,实现了类似 GPT 的本地聊天体验。内容涵盖环境准备、GGUF 模型下载与导入、命令行交互、Web 界面搭建及 API 调用测试,并详细解释了量化格式选择与 Docker 网络配置细节,确保用户能安全高效地在本地运行开源大模型。

Meta 发布的 LLaMa3 大模型在各项指标上全面逼近 GPT-4,提供了 8B 和 70B 两个版本。其中 8B 版本最低仅需 4G 显存即可运行,是迄今为止能在本地运行的最强 LLM 之一。虽然原生模型对中文支持有限,但 HuggingFace 上已有大量针对中文的微调版本。
本文将详细介绍如何在本地环境从零开始部署和运行发布在 HuggingFace 上的各种 LLaMa3 大模型,包括使用 Ollama 作为推理引擎,Open WebUI 作为前端界面,以及通过 API 进行交互。
本文演示环境为 Mac M1 芯片(16G 内存)。主要工具如下:
首先安装 Ollama。它允许用户通过命令行方便地运行各种大语言模型。
前往 Ollama 官网下载对应操作系统的安装包并安装。安装完成后,打开终端测试 Ollama 是否正常运行:
$ ollama -v
ollama version is 0.1.32
如果显示版本号,说明安装成功。
Ollama 内置了一些基础模型,但选择有限。为了评估各种微调模型,建议从 HuggingFace 下载 GGUF 格式的模型文件。
在 HuggingFace 搜索 llama3,设置 Languages 为 Chinese,可以看到若干基于 LLaMa3 的中文模型。
GGUF 格式是由 llama.cpp 团队开发的一种模型存储格式,将模型权重、元数据等整合在一个文件中,便于下载和管理。
点击 Files 标签页,可以看到不同量化等级的 GGUF 文件。文件名中的 q 值代表量化精度(如 q4, q6, q8),数值越大模型质量越高,但文件体积也越大。对于本地运行,推荐选择 q6_k 或 q5_k_m 以平衡性能与资源占用。
直接点击下载按钮,将模型文件保存到本地目录,例如 /Users/username/llm/models/。
下载到本地的 GGUF 文件不能直接由 Ollama 识别,需要编写一个配置文件来定义模型路径和对话模板。
新建一个文本文件,命名为 Modelfile(注意大小写敏感,Ollama 默认查找 Modelfile):
FROM "/Users/username/llm/models/Llama3-8B-Chinese-Chat.q6_k.GGUF"
TEMPLATE """{{- if .System }}
<|im_start|>system {{ .System }}<|im_end|>
{{- end }}
<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
"""
SYSTEM """""
PARAMETER stop <|im_start|>
PARAMETER stop <|im_end|>
配置说明:
FROM "...":指定本地 GGUF 文件的绝对路径,需根据实际路径修改。TEMPLATE:定义了系统提示词、用户输入和助手回复的格式,确保符合 LLaMa3 的对话结构。PARAMETER stop:设置停止符,防止生成无限循环。在终端进入配置文件所在目录,运行以下命令:
$ ollama create llama3-cn -f ./Modelfile
llama3-cn 是我们给模型起的名称。导入成功后,可以使用 list 命令查看已加载的模型:
$ ollama list
NAME ID SIZE MODIFIED
llama3-cn:latest f3fa01629cab 6.6 GB 2 minutes ago
您可以重复此步骤,为不同的模型文件编写不同的配置文件并导入,以便随时切换。
使用 Ollama 的 run 命令可以直接在终端与模型交互。
$ ollama run llama3-cn
出现 >>> 提示符后,即可输入问题。模型会实时输出回答。输入 /exit 退出会话。
命令行交互较为繁琐,推荐使用 Open WebUI 搭建图形化界面。
使用 Docker 运行是最简单的方式。确保 Docker 已安装并正在运行,执行以下命令:
$ docker run -p 8080:8080 -e OLLAMA_BASE_URL=http://host.docker.internal:11434 --name open-webui --restart always -v open-webui-data:/app/backend/data ghcr.io/open-webui/open-webui:main
参数详解:
-p 8080:8080:将容器端口映射到本机 8080 端口。-e OLLAMA_BASE_URL:指定 Ollama 的地址。在 macOS 和 Windows 的 Docker Desktop 中,必须使用 host.docker.internal 才能正确访问宿主机上的 Ollama 服务,不能使用 127.0.0.1。-v open-webui-data:持久化存储聊天记录和配置数据。打开浏览器访问 http://localhost:8080。首次访问需要注册账号,所有数据均存储在本地。
登录后,点击右上角配置按钮,进入 Connections 页面,点击刷新按钮验证连接。如果一切正常,会显示 Server connection verified。
在聊天界面顶部选择之前导入的 llama3-cn 模型,即可开始对话。
Open WebUI 提供了与 OpenAI 兼容的 API 接口,方便开发者集成。
在 Open WebUI 的设置页面(Settings -> Account),生成一个 API Key。
使用 curl 命令进行测试:
$ curl -X POST -H "Authorization: Bearer sk-your-api-key" -H "Content-Type: application/json" http://localhost:8080/api/generate -d '{"model":"llama3-cn","stream":false,"prompt":"请介绍人工智能的发展历史?"}'
返回结果包含 JSON 格式的回答内容。由于模型运行在本地,数据不会上传至云端,隐私性极佳。
如果在 Docker 容器中无法连接 Ollama,请检查防火墙设置,并确保 OLLAMA_BASE_URL 地址正确。在 Linux 环境下,可能需要使用宿主机的 IP 地址代替 host.docker.internal。
NUM_THREAD 环境变量可以控制 CPU 线程数,多核 CPU 可适当增加该值。如果运行过程中出现 OOM(Out Of Memory)错误,请尝试降低模型量化等级(如从 q6 降至 q4),或关闭其他占用内存的应用程序。
通过 Ollama 和 Open WebUI 的组合,用户可以低成本地在本地构建强大的 AI 应用。这种方式不仅保护了数据隐私,还能灵活切换不同的开源模型以适应特定需求。随着硬件性能的提升和模型压缩技术的进步,本地运行大模型将成为未来开发的重要趋势。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online