微软Phi-3大语言模型是微软研究院推出的新一代系列先进的小语言模型。Phi-3系列包括phi-3-mini、phi-3-small和phi-3-medium三个不同规模的版本。这些模型在保持较小的参数规模的同时,通过精心设计的训练数据集和优化的算法,实现了与大型模型相媲美的语言理解和推理能力。
Phi-3-mini是微软Phi家族的第4代,有预训练和指令微调多种模型,参数只有38亿,但训练数据高达3.3T tokens。Phi-3-mini 不仅可以在传统计算设备上运行,还可以在移动设备和物联网设备等边缘设备上运行。Phi-3-mini 版本涵盖了传统的 Pytorch 模型格式、gguf 格式的量化版本和基于 onnx 的量化版本。这也为不同应用场景下的开发者带来了便利。本博客的内容希望让不同的开发者结合不同的技术框架,探索 Phi-3-mini 发布的不同模型格式,让大家可以先推断出 Phi-3-mini。
使用Semantic Kernel访问 Phi-3-mini
在生成式AI应用程序中,我们通过语义内核/LangChain 创建应用程序。这种类型的应用框架一般兼容 Azure OpenAI 服务/OpenAI 模型,还可以支持 Hugging face 和本地模型上的开源模型。因此,我们可以将Phi-3-mini与语义内核中的 Hugging face Connector 结合使用。默认情况下,它可以对应 Hugging face 上的模型 ID(第一次使用时,模型会从 Hugging face 下载,需要很长时间),也可以选择连接到本地部署的服务。
从图中可以看出,通过语义内核访问本地服务可以轻松连接到自建的 Phi-3-mini 模型服务器:
微软官方示例代码 https://github.com/Azure-Samples/Phi-3MiniSamples/tree/main/semantickernel
使用 Ollama 或 LlamaEdge 调用量化模型
很多开发者喜欢使用量化模型在本地运行模型。通过Ollama/LM Studio,个人用户可以随意调用不同的量化模型。
您可以直接运行ollama run phi3 或使用以下命令离线配置它。
- 创建模型文件
bash
ROM {Add your gguf file path}
TEMPLATE """<|user|>
{{.Prompt}}<|end|>
<|assistant|>"""
PARAMETER stop <|end|>
PARAMETER num_ctx 4096
- 在终端中运行
bash
ollama create phi3mini -f Modelfile
ollama run phi3mini
微软官方示例代码 https://github.com/Azure-Samples/Phi-3MiniSamples/tree/main/ollama
Phi-3-mini的特性使之非常适合在云和边缘设备中使用,您可以选择LlamaEdge ,将Phi-3-mini运用于云原生、边缘和去中心化应用程序。以下是要使用的步骤:
- 安装和下载相关库和文件。
bash
curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | bash -s -- --plugin wasi_nn-ggml
curl -LO https://github.com/LlamaEdge/LlamaEdge/releases/latest/download/llama-api-server.wasm
curl -LO https://github.com/LlamaEdge/chatbot-ui/releases/latest/download/chatbot-ui.tar.gz
tar xzf chatbot-ui.tar.gz
注意:llama-api-server.wasm 和 chatbot-ui 需要在同一个目录下
- 在终端中运行脚本
bash
wasmedge --dir .:. --nn-preload default:GGML:AUTO:{Your gguf path} llama-api-server.wasm -p phi-3-chat
微软官方示例代码 https://github.com/Azure-Samples/Phi-3MiniSamples/tree/main/wasm
运行 ONNX 量化模型
ONNX 运行时是 ONNX 模型的高效运行时库。它支持多种操作系统和硬件平台,包括 CPU、GPU 等。ONNX Runtime 的主要优势是其高效的性能和易于部署。通过 ONNX Runtime,开发人员可以轻松地将经过训练的模型部署到生产环境,而无需关心底层推理框架。在大型模型时代,ONNX Runtime发布了基于生成式AI的接口(Python/.NET/C/C++)。我们可以使用此接口来调用 Phi-3-mini 模型。接下来我们尝试通过 Python 调用 Phi-3-mini 模型(使用 ONNX Runtime Generative AI 时,需要先编译环境,请参考 https://github.com/microsoft/onnxruntime-genai/blob/main/examples/python/phi-3-tutorial.md)
微软官方示例代码 https://github.com/Azure-Samples/Phi-3MiniSamples/tree/main/onnx
Phi-3-mini的发布允许个人和企业在不同的硬件设备上部署SLM,特别是移动设备和工业物联网设备,这些设备可以在有限的计算能力下完成简单的智能任务。结合 LLM 可以开启生成式 AI 的新时代。