dotnet 基于 DirectML 控制台运行 Phi-3 模型

💡 原文中文,约8500字,阅读约需21分钟。
📝

内容提要

本文介绍了如何在C# dotnet的控制台应用中使用DirectML运行Phi-3模型。通过DirectML可以方便地在用户机器上部署Phi-3模型,并利用机器设备资源。文章提供了具体的代码示例,并建议将模型文件放入项目输出文件夹中以便其他人使用。

🎯

关键要点

  • 本文介绍如何在C# dotnet控制台应用中使用DirectML运行Phi-3模型。

  • Phi-3模型是一个小型语言模型,可以在用户设备上运行,体积小且运行速度快。

  • DirectML简化了模型部署,支持在多种机器上运行,包括不支持GPU的设备。

  • 需要从指定链接下载Phi-3模型,使用git lfs工具进行下载。

  • 下载的模型文件需放入项目输出文件夹,方便其他人使用。

  • 创建dotnet控制台项目并安装Microsoft.ML.OnnxRuntimeGenAI.DirectML库。

  • 加载模型和创建Tokenizer对象以处理用户输入。

  • 使用Generator对象生成模型输出,并通过Tokenizer将token转换为可读文本。

  • 代码示例展示了如何实现模型的加载、输入处理和输出生成。

  • 可以将模型文件放入项目输出文件夹以便于分享和使用。

  • Microsoft.ML.OnnxRuntimeGenAI.DirectML仍为预览版,未来可能会有更新。

延伸问答

如何在C# dotnet控制台应用中使用DirectML运行Phi-3模型?

可以通过创建dotnet控制台项目,安装Microsoft.ML.OnnxRuntimeGenAI.DirectML库,并加载Phi-3模型文件来实现。

Phi-3模型的特点是什么?

Phi-3模型是一个小型语言模型,体积小且运行速度快,可以在用户设备上运行。

如何下载Phi-3模型文件?

需要从指定链接下载Phi-3模型,并使用git lfs工具进行下载。

使用DirectML的优势是什么?

DirectML简化了模型部署,支持在多种机器上运行,包括不支持GPU的设备,并能充分利用机器资源。

如何处理用户输入并生成模型输出?

通过创建Tokenizer对象将用户输入转换为token,然后使用Generator对象生成模型输出。

如何将模型文件分享给其他人?

可以将模型文件放入项目输出文件夹,以便其他人使用和运行。

🏷️

标签

➡️

继续阅读