基于 Llama 3.1 构建多种AI应用

最新发布的 Llama 3.1 系列 LLM 是 Meta “迄今为止最强大的模型”[1]。最大的 405B 模型是第一个达到或超过 GPT-4o 和 Claude 3.5 Sonnet 等 SOTA 闭源模型性能的开源 LLM。虽然 405B 模型对于个人电脑来说可能太大了,但 Meta 已使用它来进一步训练和微调较小的 Llama 3 模型。结果非常惊人!与 Llama 3 8B 相比,Llama 3.1 8B 模型不仅在基准测试分数方面全面大幅提升,而且还支持更长的上下文长度(128k vs 8k)。对于运行 Llama 3 模型的 LlamaEdge 用户,尤其是在 RAG 和 Agent 应用中,升级到 Llama-3.1-8B 有着明显的好处!

本文中,我们将介绍

  • 如何在本地运行 Llama 3.1 8B 模型作为聊天机器人
  • 在你的应用程序或 Agent 中直接替换 OpenAI

我们将使用 LlamaEdge[2](Rust + Wasm 技术栈)来开发和部署这个模型的应用程序。无需安装复杂的 Python 包或 C++ 工具链!了解我们选择这项技术的原因[3]

在本地运行 Llama-3.1-8B

步骤1:通过以下命令行安装 WasmEdge[4]

curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install_v2.sh | bash -s -- -v 0.13.5

步骤2:下载Meta-Llama-3.1-8B[5]GGUF文件。由于模型大小为5.73G,下载可能需要一段时间。

curl -LO https://huggingface.co/second-state/Meta-Llama-3.1-8B-Instruct-GGUF/resolve/main/Meta-Llama-3.1-8B-Instruct-Q5_K_M.gguf

步骤 3:下载 LlamaEdge API 服务器应用程序。这是一个跨平台的可移植 Wasm 应用程序,可以在许多 CPU 和 GPU 设备上运行。

curl -LO https://github.com/LlamaEdge/LlamaEdge/releases/latest/download/llama-api-server.wasm

步骤4:下载聊天机器人 UI,以便在浏览器中与Llama-3.1-8B模型进行交互。

curl -LO https://github.com/LlamaEdge/chatbot-ui/releases/latest/download/chatbot-ui.tar.gz
tar xzf chatbot-ui.tar.gz
rm chatbot-ui.tar.gz

接下来,使用以下命令行为 Llama-3.1-8B 模型启动 LlamaEdge API 服务器。

wasmedge --dir .:. --nn-preload default:GGML:AUTO:Meta-Llama-3.1-8B-Instruct-Q5_K_M.gguf \
  llama-api-server.wasm \
  --prompt-template llama-3-chat \
  --ctx-size 32768 \
  --batch-size 128 \
  --model-name llama-3.1-8b-chat

由于个人计算机的 RAM 限制,我们在此使用 32k (32768) 上下文大小,而不是它极限的 128k。如果你的计算机的 RAM 小于 16GB,你可能需要进一步将其调低。

然后用浏览器打开http://localhost:8080开始聊天!

直接可用的 OpenAI 替代

LlamaEdge 是很轻量的,不需要守护程序或 sudo 进程即可运行。它可以轻松嵌入到你自己的应用程序中!通过支持聊天和 embedding 模型,LlamaEdge 可以成为运行本地计算机上的 OpenAI API 替代方案!

接下来,我们将展示如何为 Llama-3.1-8B 模型以及 embedding 模型启动完整的 API 服务器。API 服务器将具有chat/completion 和 embedding 端点。除了上一节中的步骤之外,我们还需要:

步骤 5: 下载 embedding 模型。

curl -LO https://huggingface.co/second-state/Nomic-embed-text-v1.5-Embedding-GGUF/resolve/main/nomic-embed-text-v1.5.f16.gguf

接下来,我们可以使用以下命令行启动带有聊天和 embedding 模型的 LlamaEdge API 服务器。有关更详细的说明,请查看文档启动 LlamaEdge API 服务[6]

wasmedge --dir .:. \
    --nn-preload default:GGML:AUTO:Meta-Llama-3.1-8B-Instruct-Q5_K_M.gguf \
    --nn-preload embedding:GGML:AUTO:nomic-embed-text-v1.5.f16.gguf \
    llama-api-server.wasm \
    --model-alias default,embedding \
    --model-name llama-3.1-8b-chat,nomic-embed \
    --prompt-template llama-3-chat,embedding \
    --batch-size 128,8192 \
    --ctx-size 32768,8192

最后,你可以按照这些教程[7]将 LlamaEdge API 服务器作为 OpenAI 的替代与其他 Agent 框架集成。具体来说,在你的应用或 Agent 配置中使用以下值来替换 OpenAI API。

Config option Value
Base API URL http://localhost:8080/v1
Model Name (for LLM) llama-3.1-8b-chat
Model Name (for Text embedding) nomic-embed

结语

Meta 继续引领开源 AI 创新。借助 Llama 3.1,它已经赶上了最好的闭源模型。与 Llama 3 模型相比,Llama 3.1 模型在质量和上下文大小方面也显示出显著的改进。最棒的是,所有 Llama 3.1 模型在 LlamaEdge 应用程序上都开箱即用。立即升级到 Llama 3.1!

来源:Second State

滚动至顶部