项目简介
本项目是一个用于将MindSpore生成的模型checkpoint(ckpt)文件转换为GGUF格式文件的工具。GGUF是一种特定的神经网络模型文件格式,用于存储模型的张量信息和元数据。该工具可帮助用户快速将MindSpore生成的模型文件转换为Ollama可以加载的GGUF格式文件。
项目的主要特性和功能
- 支持从MindSpore checkpoint文件提取张量信息,可读取MindSpore生成的ckpt文件并提取其中的张量信息。
- 提供GGUF文件的读取和解析功能,能读取GGUF文件的结构信息并提取其中的超参数。
- 支持元数据的提取和JSON格式输出,可将GGUF文件中的超参数信息提取并保存为JSON文件。
- 可处理名称映射,支持将MindSpore的层名称映射为GGUF格式的层名称,确保转换后的文件结构正确。
- 生成GGUF文件,通过提供的脚本,将MindSpore的ckpt文件转换为GGUF格式文件,并支持在Ollama中加载使用。
安装使用步骤
依赖项
- Python
- gguf==0.6.0
- mindspore
- numpy
使用步骤
- 准备MindSpore的checkpoint文件:可以使用MindSpore生成的ckpt文件,例如通过mindformers项目提供的ckpt文件,或者使用自己训练的ckpt文件。
- 下载参考的GGUF文件:从Hugging Face或Ollama模型库中下载对应的GGUF文件,用于提取GGUF文件的结构信息。
- 创建模型目录:在
models
目录下创建对应的模型目录,例如models/llama2
,用于存放相关配置文件和ckpt文件。 - 提取GGUF文件的超参数信息:使用
make_gguf_meta_data_json.py
脚本从GGUF文件中提取超参数信息,并生成一个JSON文件。 - 生成层名称映射字典:创建一个JSON文件,用于将MindSpore的层名称映射为GGUF格式的层名称。
- 执行转换脚本:修改
main_writer.py
中的参数,执行脚本生成GGUF文件。确保提供正确的超参数JSON文件、层名称映射JSON文件以及ckpt文件路径。 - 在Ollama中导入模型:编写modelfile文件,并使用Ollama命令行工具导入生成的GGUF文件。例如:
shell ollama create llama2_new -f llama2_ms.modelfile ollama run llama2_new
注意事项
- 确保使用的MindSpore版本和GGUF格式版本兼容。
- 在转换过程中,MindSpore导出的ckpt文件的张量可能与GGUF文件的张量存在转置关系,需通过对比确认是否需要转置。
- 对于复杂的模型,可能需要进一步调整层名称映射或处理张量信息。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】