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 option | Value |
---|---|
Base API URL | http://localhost:8080/v1 |
Model Name (for LLM) | phi-3.5-mini-instruc |
Model Name (for Text embedding) | nomic-embed |
好啦。这篇指南只展示了一种潜在的应用,可以访问 LlamaEdge文档[9]了解更多。加入 WasmEdge discord[10] 向我们提问,分享你的看法吧。
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