使用微软Phi-3-mini模型快速创建生成式AI应用

微软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 或使用以下命令离线配置它。

  1. 创建模型文件
bash 复制代码
ROM {Add your gguf file path}
TEMPLATE """<|user|>
{{.Prompt}}<|end|>
<|assistant|>"""
PARAMETER stop <|end|>
PARAMETER num_ctx 4096
  1. 在终端中运行
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运用于云原生、边缘和去中心化应用程序。以下是要使用的步骤:

  1. 安装和下载相关库和文件。
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 需要在同一个目录下

  1. 在终端中运行脚本
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 的新时代。

相关推荐
梧桐树04299 分钟前
python常用内建模块:collections
python
AI_NEW_COME11 分钟前
知识库管理系统可扩展性深度测评
人工智能
Dream_Snowar17 分钟前
速通Python 第三节
开发语言·python
海棠AI实验室33 分钟前
AI的进阶之路:从机器学习到深度学习的演变(一)
人工智能·深度学习·机器学习
hunteritself35 分钟前
AI Weekly『12月16-22日』:OpenAI公布o3,谷歌发布首个推理模型,GitHub Copilot免费版上线!
人工智能·gpt·chatgpt·github·openai·copilot
IT古董1 小时前
【机器学习】机器学习的基本分类-强化学习-策略梯度(Policy Gradient,PG)
人工智能·机器学习·分类
centurysee1 小时前
【最佳实践】Anthropic:Agentic系统实践案例
人工智能
mahuifa1 小时前
混合开发环境---使用编程AI辅助开发Qt
人工智能·vscode·qt·qtcreator·编程ai
四口鲸鱼爱吃盐1 小时前
Pytorch | 从零构建GoogleNet对CIFAR10进行分类
人工智能·pytorch·分类
蓝天星空2 小时前
Python调用open ai接口
人工智能·python