Mac上运行微软最新Phi-3.5-mini大模型+开发Agent

文摘   2024-09-02 17:37   北京  

Phi-3.5-mini[1]是微软广为人知的 Phi-3 模型的轻量级版本,旨在以无与伦比的效率处理多达 128K 个 token 的长上下文。该模型由合成数据和精心筛选的 Web 内容混合而成,在高质量、推理密集型任务中表现出色。Phi-3.5-mini 的开发用到了先进技术,例如监督微调和创新优化策略,还有近端策略优化和直接偏好优化。这些强劲的功能提升可确保出色地遵守指令和强大的安全协议,从而为 AI 领域树立了新标准。 

本文我们会讨论

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

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

在本地运行 Phi-3.5-mini-instruct

第一步:通过以下命令行安 WasmEdge[4]

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

第二步:下载Phi-3.5-mini-instruct[5] GGUF 文件。因为模型有 2.82G,可能需要一定时间才能下载好。

curl -LO https://huggingface.co/second-state/Phi-3.5-mini-instruct-GGUF/resolve/main/Phi-3.5-mini-instruct-Q5_K_M.gguf

第三步: 下载 LlamaEdge API server程序。它也是一个跨平台的可移植 Wasm 应用,可以在不同 CPU 和 GPU 设备上运行。

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

第四步下载聊天机器人 UI,从而在浏览器中与 Phi-3.5-mini-instruct 模型进行交互。

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

接下来,使用以下命令行为模型启动 LlamaEdge API server。或者可以打开 http://localhost:8080[6] 通过 Chatbot UI 与模型互动。

wasmedge --dir .:. --nn-preload default:GGML:AUTO:Phi-3.5-mini-instruct-Q5_K_M.gguf \
  llama-api-server.wasm \
  --prompt-template phi-3-chat \
  --ctx-size 128000 \
  --model-name phi-3.5-mini-instruct

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

在你的应用或 Agent 中直接替换 OpenAI

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

接下来,我们展示如何为 Phi-3.5-mini-instruct 模型以及 embedding 模型启动完整的 API server。API server将有 chat/completions embedding endpoints。除了上一节中的步骤之外,我们还需要:

第五步:下载 embedding 模型。

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

然后,我们可以使用以下命令行启动带有聊天和嵌入模型的 LlamaEdge API server。有关更详细的解释,请查看文档启动 LlamaEdge API 服务[7]

wasmedge --dir .:. \
    --nn-preload default:GGML:AUTO:Phi-3.5-mini-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 phi-3.5-mini-instruct,nomic-embed \
    --prompt-template phi-3-chat,embedding \
    --batch-size 128,8192 \
    --ctx-size 4096,8192

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

Config optionValue
Base API URLhttp://localhost:8080/v1
Model Name (for LLM)phi-3.5-mini-instruc
Model Name (for Text embedding)nomic-embed

好啦。这篇指南只展示了一种潜在的应用,可以访问 LlamaEdge文档[9]了解更多。加入 WasmEdge discord[10] 向我们提问,分享你的看法吧。

参考资料
[1]

Phi-3.5-mini: https://huggingface.co/microsoft/Phi-3.5-mini-instruct

[2]

LlamaEdge: https://github.com/second-state/LlamaEdge/

[3]

选择这项技术的原因: https://www.secondstate.io/articles/wasm-runtime-agi/

[4]

WasmEdge: https://github.com/WasmEdge/WasmEdge

[5]

Phi-3.5-mini-instruct: https://huggingface.co/second-state/Phi-3.5-mini-instruct-GGUF

[6]

http://localhost:8080: http://localhost:8080/

[7]

启动 LlamaEdge API 服务: https://llamaedge.com/docs/user-guide/openai-api/intro

[8]

这些教程: https://llamaedge.com/docs/category/ecosystem-apps/

[9]

LlamaEdge文档: https://llamaedge.com/docs/category/drop-in-replacement-for-openai

[10]

WasmEdge discord: https://discord.com/invite/U4B5sFTkFc


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