1.安装anaconda,安装python 安装torch等参考网上资料非常多 不细描述
2.参考微软官网【在windows上通过DirectML启用Pytorch文档,检查系统版本 检查gpu版本
3.参考微软官网【在windows上通过DirectML启用Pytorch】文档,安装torch_directml模块
4.参考微软官网【在windows上通过DirectML启用Pytorch】文档,验证设备是否可用。
5.下载phi-3模型
6.运行模型
import torch
import torch_directml
from transformers import Phi3Model,Phi3Config
from transformers import AutoTokenizer,pipeline
dml=torch_directml,device(0) #0为GPU设备index
torch.set_default_device(dml)
model_dir='./' #模型所在文件路径
configuration = Phi3Config.from_pretrained(model_dir)
model=Phi3Model(configuration)
tokenizer = AutoTokenizer.from_pretrained(model_dir)
messages=[{"role":"system","content":"who are you"}]
pipe =pipeline("text-generation",model=model,tokenizer=tokenizer)
generation_args = {
"max_new_tokens":500,
"return_full_text",False,
"temperature":0.0,
"do_sample":False,
}
output = pipe(message,**generation_args)
print(output[0]['generated_text'])
有两点要特别讲一下,第一,可用使用 torch_directml.device_name(0)来查看具体使用的是哪个显卡。
第二,我有安装onnxruntime,但是好像不安装也可以,这点没有验证。
最后要说明一下,我上面的代码并没有进行完全验证,主要是在执行到加载模型处,因显卡内存不足,程序退出。