返回模型
说明文档
Phi-3.5-vision-instruct-onnx-cpu
<b><ul>注意:这是非官方版本,仅供测试和开发使用。</ul></b>
这是 Microsoft Phi-3.5 Vision 的 ONNX 格式 FP32 量化版本,支持 CPU。您可以运行此脚本进行转换
转换步骤
- 安装
pip install torch transformers onnx onnxruntime
pip install --pre onnxruntime-genai
- 在终端中设置环境
mkdir models
cd models
- 在 models 文件夹中下载 microsoft/Phi-3.5-vision-instruct
https://huggingface.co/microsoft/Phi-3.5-vision-instruct
- 请将以下文件下载到您的 Phi-3.5-vision-instruct 文件夹中
https://huggingface.co/lokinfey/Phi-3.5-vision-instruct-onnx-cpu/resolve/main/onnx/config.json
https://huggingface.co/lokinfey/Phi-3.5-vision-instruct-onnx-cpu/blob/main/onnx/image_embedding_phi3_v_for_onnx.py
https://huggingface.co/lokinfey/Phi-3.5-vision-instruct-onnx-cpu/blob/main/onnx/modeling_phi3_v.py
- 将此文件下载到 models 文件夹
https://huggingface.co/lokinfey/Phi-3.5-vision-instruct-onnx-cpu/blob/main/onnx/build.py
- 打开终端
使用 FP32 转换为 ONNX 格式
python build.py -i .\Your Phi-3.5-vision-instruct Path\ -o .\vision-cpu-fp32 -p f32 -e cpu
使用 ORT for GenAI 运行
import onnxruntime_genai as og
model_path = './Your Phi-3.5-vision-instruct Path'
# 定义图像文件的路径
# 此路径指向用于演示或测试的图像文件
img_path = './Your Image Path'
# 从 onnxruntime_genai 模块创建 Model 类的实例
# 此实例使用模型文件的路径进行初始化
model = og.Model(model_path)
# 使用模型实例创建多模态处理器
# 此处理器将处理不同类型的输入数据(例如文本、图像)
processor = model.create_multimodal_processor()
# 使用处理器创建用于对输入数据进行分词的流
# 此流将用于处理和分词模型的输入数据
tokenizer_stream = processor.create_stream()
text = \"Your Prompt\"
# 使用用户标签初始化提示字符串变量
prompt = \"<|user|>\n\"
# 在提示中添加图像标签
prompt += \"<|image_1|>\n\"
# 将文本提示添加到提示字符串中,后跟结束标签
prompt += f\"{text}<|end|>\n\"
# 在提示中添加助手标签,表示助手响应的开始
prompt += \"<|assistant|\">\n\"
image = og.Images.open(img_path)
inputs = processor(prompt, images=image)
# 从 onnxruntime_genai 模块创建 GeneratorParams 类的实例
# 此实例使用模型对象进行初始化
params = og.GeneratorParams(model)
# 使用处理后的输入设置生成器参数的输入
params.set_inputs(inputs)
# 设置生成器参数的搜索选项
# max_length 参数指定生成输出的最大长度
params.set_search_options(max_length=3072)
generator = og.Generator(model, params)
# 循环直到生成器完成 token 生成
while not generator.is_done():
# 计算下一个 token 的 logits(概率)
generator.compute_logits()
# 根据计算的 logits 生成下一个 token
generator.generate_next_token()
# 获取新生成的 token
new_token = generator.get_next_tokens()[0]
# 解码新 token 并将其附加到代码字符串中
code += tokenizer_stream.decode(new_token)
# 将解码的 token 打印到控制台,不带换行符,并刷新输出缓冲区
print(tokenizer_stream.decode(new_token), end='', flush=True)
lokinfey/Phi-3.5-vision-instruct-onnx-cpu
作者 lokinfey
↓ 0
♥ 0
创建时间: 2024-08-31 14:07:46+00:00
更新时间: 2024-08-31 14:49:32+00:00
在 Hugging Face 上查看文件 (19)
.gitattributes
README.md
onnx/build.py
onnx/config.json
onnx/genai_config.json
onnx/image_embedding_phi3_v_for_onnx.py
onnx/modeling_phi3_v.py
onnx/processor_config.json
vision-cpu-fp32/genai_config.json
vision-cpu-fp32/phi-3.5-v-128k-instruct-text-embedding.onnx
ONNX
vision-cpu-fp32/phi-3.5-v-128k-instruct-text-embedding.onnx.data
vision-cpu-fp32/phi-3.5-v-128k-instruct-text.onnx
ONNX
vision-cpu-fp32/phi-3.5-v-128k-instruct-text.onnx.data
vision-cpu-fp32/phi-3.5-v-128k-instruct-vision.onnx
ONNX
vision-cpu-fp32/phi-3.5-v-128k-instruct-vision.onnx.data
vision-cpu-fp32/processor_config.json
vision-cpu-fp32/special_tokens_map.json
vision-cpu-fp32/tokenizer.json
vision-cpu-fp32/tokenizer_config.json