最新发布的 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!
访问LlamaEdge 文档[8]了解更多信息。
迄今为止最强大的模型”: https://ai.meta.com/blog/meta-llama-3-1/
[2]LlamaEdge: https://github.com/second-state/LlamaEdge/
[3]了解我们选择这项技术的原因: https://www.secondstate.io/articles/fast-llm-inference/
[4]WasmEdge: https://github.com/WasmEdge/WasmEdge
[5]Meta-Llama-3.1-8B: https://huggingface.co/second-state/Meta-Llama-3.1-8B-Instruct-GGUF/resolve/main/Meta-Llama-3.1-8B-Instruct-Q5_K_M.gguf?download=true
[6]启动 LlamaEdge API 服务: https://llamaedge.com/docs/user-guide/openai-api/intro
[7]这些教程: https://llamaedge.com/docs/category/drop-in-replacement-for-openai
[8]访问LlamaEdge 文档: https://llamaedge.com/docs/category/drop-in-replacement-for-openai
关于 WasmEdge
WasmEdge 是轻量级、安全、高性能、可扩展、兼容OCI的软件容器与运行环境。目前是 CNCF 沙箱项目。WasmEdge 被应用在 SaaS、云原生,service mesh、边缘计算、边缘云、微服务、流数据处理、LLM 推理等领域。
GitHub:https://github.com/WasmEdge/WasmEdge
官网:https://wasmedge.org/
Discord 群:https://discord.gg/U4B5sFTkFc
文档:https://wasmedge.org/docs