在ollama上运行huggingface模型

截止2025-02-08,ollama已经实现了可以直接从huggingface拉取模型,我们只要找到模型的地址,例如 https://huggingface.co/lier007/xiaobu-embedding-v2,然后调用命令

ollama pull https://huggingface.co/lier007/xiaobu-embedding-v2

就可以直接拉取 huggingface上的模型。

但是~~~这里有个前提,file里面有上传gguf文件,如果没有的话,是没法直接拉取的。所以我们要另想办法去加载huggingface的模型。

原理

通过命令加载模型:
ollama create 自定义modelName -f modelfile绝对路径

其中modelfile里面只需要一行:
FROM ./xxxxxxxxx.gguf

所以关键的步骤就是要获取gguf文件。

我们将要做的就是,下载huggingface的模型仓库,然后通过工具,把仓库里的模型转成gguf格式。

步骤

环境准备:
通过 conda 构建一个 python3.11的环境。

  1. 克隆 llama.cpp 仓库
    首先,克隆 llama.cpp 仓库,该工具可用于模型转换。
    $ git clone https://github.com/ggerganov/llama.cpp.git
    $ cd llama.cpp
  2. 下载 Hugging Face 嵌入模型
    将您需要的 Hugging Face 嵌入模型下载到 llama.cpp/models 目录。例如,下载 DMetaSoul/Dmeta-embedding-zh 模型:
    $ git clone https://huggingface.co/DMetaSoul/Dmeta-embedding-zh models/Dmeta-embedding-zh
  3. 转换模型为 GGUF 格式
    使用 convert-hf-to-gguf.py 脚本将 Hugging Face 模型转换为 GGUF 格式。
    $ python3 convert-hf-to-gguf.py --outtype f32 models/Dmeta-embedding-zh

到这里就可以在modols/Dmeta-embedding-zh找到对应的 gguf 文件了,接下来就像前面原理里面说的一样,通过OLLAMA加载就好。


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注