在 Llama 3.1 构建多种AI应用

文摘   2024-07-26 19:03   美国  

最新发布的 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/completionembedding 端点。除了上一节中的步骤之外,我们还需要:

步骤 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 optionValue
Base API URLhttp://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]了解更多信息。

参考资料
[1]

迄今为止最强大的模型”: 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


Second State
Rust 函数即服务
 最新文章