笔记本电脑能否部署Llama 3 8B?

作者:袖梨 2026-07-25

2024 年 4 月 18 日Meta开源了 Llama 3 大模型把 AI 的门槛降低到了最低这是人工智能领域的一个重要飞跃。我们个人也可以部署大模型了这简直就是给个人开发者发了个大红包Llama 3 模型有不同的参数版本本文主要分享我在个人笔记本电脑上部署 8B 参数过程和编写客户端让我们大家都参与进来推动 AI 应用更上一层楼……

笔记本电脑能部署 Llama 3 8B吗?

本文Llama 3 8B客户端源代码地址https://gitee.com/obullxl/PythonCS/tree/master/Llama-3-8B

选择 Llama 3 模型版本8B80 亿参数

特别注意 Meta 虽然开源了 Llama 3 大模型但是每个版本都有 Meta 的许可协议建议大家在接受使用这些模型所需的条款之前仔细阅读。

Llama 3 模型版本有几个我们主要关注 80 亿参数Llama 3 8B和 700 亿参数Llama 3 70B这两个版本。它们对电脑系统配置有不同的要求主要计算资源即CPU/GPU和内存来存储和处理模型权重

  • Llama 3 8B 版本对于 80 亿参数的模型建议至少 4 核 CPU至少 16GB 内存推荐 32GB 或更高以确保模型加载和运行过程中的流畅性模型文件大小 5 GB 左右磁盘空间有 10GB 足够了GPU 是可选的它可以显著提高推理速度

  • Llama 3 70B 版本对于 700 亿参数的模型CPU 要求显著提高建议 16 核以上至少需要 64GB 内存推荐 128GB 或更高模型在推理时会占用大量的内存资源模型文件超过 20GB远超 8B 版本强烈推荐使用高端 GPU以实现有效加速

综上所述8B 版本比较适合我们个人电脑硬件配置基本能符合同时模型又不失推理效果

下载 Llama 3 8B 模型文件

我们第一步是想自己部署尝鲜因此直接下载压缩后的模型权重文件为GGUF格式GGUF格式是为了快速推理和优化内存使用而设计的相比以前的GGML格式GGUF支持更复杂的令牌化过程和特殊令牌处理能更好地应对多样化的语言模型需求。就是因为有GGUF格式Llama 3大语言模型才可以在笔记本电脑上运行同时GGUF就一个文件也简化了模型交换和部署的过程它对促进模型的普及和应用有着积极作用。

因为Hugging Face官网正常无法访问需要科学上网因此推荐国内镜像进行下载

官网地址https://huggingface.co/QuantFactory/Meta-Llama-3-8B-Instruct-GGUF/tree/main

国内镜像https://hf-mirror.com/QuantFactory/Meta-Llama-3-8B-Instruct-GGUF/tree/main

如上述列表中GGUF 模型文件名称有Meta-Llama-3-8B-Instruct.Q4_K_M.gguf和Meta-Llama-3-8B-Instruct.Q5_K_M.gguf等

  • Instruct代表本模型是对基线模型进行了微调用于更好地理解和生成遵循指令instruction-following的文本以提供符合要求的响应

  • Q4/Q5 等代表模型权重的量化位数其中QQuantization的缩小即量化是一种模型压缩技术用于减少模型大小同时降低对计算资源的需求特别是内存但又尽量保持模型的性能数字45则代表量化精度的位数Q4 是 4 位Q5 是 5 位等精度越高模型体积和内存使用也会越大但仍然远小于未量化的基线模型

  • K_M/K_S代表含义笔者还未明确K可能是Knowledge的缩写M应该是Medium缩写即中等模型S应该是Small缩小即小模型若有明确的朋友还望不吝告知共同进步

若个人电脑配置不是特别好我们可以选择Q2_K版本大小 3.2GB它相较于Q4_K_M版本大小 4.9GBQ2版本的推理精度较低但速度较快而Q4版本在速度和精度之间均取得了很好的平衡因此首选推荐Q4_K_M版本。

点击下载图标即可下载由于文件较大浏览器的下载容易过程容易终端重试可继续下载笔者浏览器中断了好几次总共耗时 4 个多小时

启动大模型服务端

GGUF模型量化文件下载完成后我们就可以来运行Llama 3大模型了。首先打开一个 Terminal 终端窗口切换到GGUF文件目录设置 Python虚拟环境

# 切换到存放GGUF文件目录
cd ~/PythonSpace/Llama3-8B/

# 切换Python 3.12.2版本
conda activate PY3.12.2

# 创建并激活虚拟环境
python -m venv venv
source ./venv/bin/activate

# 安装依赖包
pip install llama-cpp-python
pip install openai
pip install uvicorn
pip install starlette
pip install fastapi
pip install sse_starlette
pip install starlette_context
pip install pydantic_settings

# 启动Llama大模型
python -m llama_cpp.server --host 0.0.0.0 --model 
   ./Meta-Llama-3-8B-Instruct.Q4_K_M.gguf 
   --n_ctx 2048

最后启动 Llama 模型命令中n_ctx 2048代表单次回话最大 Token 数量。启动成功我们应该看到类似如下的信息

恭喜你你已经迈入 Llama 大模型大厦的大门了后面存在无限可能就看我们的创意了

编写 Llama 模型对话客户端

接下来我们将使用llama-cpp库和openai库在个人电脑上快速搭建Llama 模型客户端开始尝鲜大模型它目前只是个控制台客户端还不能如 ChatGPT 那样有可视化的界面但它的功能一样完备所以请各位不用着急我们先来体验一下 Llama 大模型可视化的界面下文我在和大家分享。

Python 客户端代码如下为了后续方便演示这个 Client.py 文件也放到GGUF模型文件一起

  1. 我们使用OpenAI接口来与 Llama 交互上面启动模型的最后我们看到服务端 IP 是本地端口是8000
  2. 接着我们使用 2 条信息对历史记录进行初始化第一个条是系统信息第二个条是要求模型自我介绍的用户提示为了避免长篇大论我这里限制了回答的长度和字数
  3. 接下来通过>提示符等待用户即我们输入输入bye、quit和exit任意一个即代表退出客户端
from openai import OpenAI

# 注意服务端端口因为是本地所以不需要api_key
client = OpenAI(base_url="http://localhost:8000/v1",
         api_key="not-needed")

# 对话历史设定系统角色是一个只能助理同时提交“自我介绍”问题
history = [
    {"role": "system", "content": "你是一个智能助理你的回答总是正确的、有用的和内容非常精简."},
    {"role": "user", "content": "请用中文进行自我介绍要求不能超过5句话总字数不超过100个字。"},
]
print("33[92;1m")

# 首次自我介绍完毕接下来是等代码我们的提示
while True:
    completion = client.chat.completions.create(
        model="local-model",
        messages=history,
        temperature=0.7,
        stream=True,
    )

    new_message = {"role": "assistant", "content": ""}

    for chunk in completion:
        if chunk.choices[0].delta.content:
            print(chunk.choices[0].delta.content, end="", flush=True)
            new_message["content"] += chunk.choices[0].delta.content

    history.append(new_message)
    print("33[91;1m")

    userinput = input("> ")
    if userinput.lower() in ["bye", "quit", "exit"]: # 我们输入bye/quit/exit等均退出客户端
        print("33[0mBYE BYE!")
        break

    history.append({"role": "user", "content": userinput})
    print("33[92;1m")

我们新打开一个 Terminal 终端窗口同样切换目标到 GGUF 文件目录并且激活 Python 虚拟环境

# 切换到存放GGUF文件目录
cd ~/PythonSpace/Llama3-8B/

# 切换Python 3.12.2版本
conda activate PY3.12.2

# 激活虚拟环境之前已经创建
source ./venv/bin/activate

# 启动客户端
python client.py

首次打开客户端因为有第一个默认的自我介绍问题稍微有点忙但是可以看到Llama 模型按照我们的要求完成了自我介绍总体还不赖

接着我给Llama 模型来了一个类哲学的问题请你用中文问答人为什么要不断追求卓越

Llama 模型的回答非常精简且只有 5 句话所谓言简意赅

上图中红色为我的输入绿色为模型的答复超级赞

禅定总结

现在我们的Llama 模型聊天机器人已准备就绪我们想问什么就可以问什么尽情享受吧。

当然我们废了大半天劲如果只是和模型简单的聊聊天那就有点可惜了或者说如果要人工输入那我们本地部署的意义就不大。

假设能够通过程序的方式自动调用本地部署的Llama 模型是不是可以提供我们工作效率Llama 模型的能力非常广泛可用于多种场景和任务

  1. 自然语言生成Llama 3 能够生成连贯、高质量的文本包括文章、故事、诗歌等创意写作以及邮件、报告等实用文体。
  2. 对话系统模型可以用于构建聊天机器人或 AI 助手进行自然、流畅的对话交流提供信息查询、娱乐互动等功能。
  3. 代码生成它在代码生成任务上表现优异能够根据描述自动生成或补全代码片段辅助程序员提高开发效率。
  4. 翻译Llama 3 支持跨语言应用可以实现文本的自动翻译覆盖多种语言对。
  5. 文本摘要能够自动生成文章、报告的摘要提取关键信息帮助用户快速浏览大量内容。
  6. 情感分析和文本分类可以识别文本中的情绪倾向、主题分类为企业提供市场洞察、客户服务优化等。
  7. 问答系统高效准确地回答用户提出的问题无论是常识性问题还是专业领域的复杂询问。
  8. 个性化推荐基于用户的历史交互和偏好生成个性化的推荐内容如新闻、商品、音乐等。
  9. 文本生成图像描述结合多模态技术Llama 3 可以根据文本描述生成图像内容的描述助力图像生成或图像检索。
  10. 法律文档处理微调后的模型可以用于法律文档的理解、分析比如合同审查、案例研究等。

关注本公众号下次继续我们分享Llama 模型可视化对话的功能

我的本博客原地址https://ntopic.cn/p/2024051101


相关文章

精彩推荐