HuggingFace下载模型并导入Ollama指南

此处以 moka-ai/m3e-base 模型下载为例。

  众所周知,HuggingFace 仓库托管了诸多训练模型。DeepSeek官方也将完整满血版 DeepSeek-R1:671B 模型镜像托管在此仓库,但是目前国内无法直接从HugingFace下载。

  并且,一般为了快速部署,会选择Ollama这类管模型管理工具,类似Docker引擎一样,但是Ollama支持的模型镜像格式(如GGUF)HuggingFace中不一定直接提供,DeepSeek就是如此,因此还需要进行格式转换。

  Ollama官网也提供模型下载(国内可用),但是多数情况为动态量化后的模型,如果需要下载满血版DeepSeek,必须从HuggingFace下载,此外,有些特定模型也只发布在HuggingFace,Ollama官方仓库上并没有。

  此处将以 moka-ai/m3e-base 模型下载为例,演示从 HuggingFace 下载模型镜像,转换为 Ollama 支持的 GGUF 格式并导入 Ollama 使用。

HugingFace 官网:https://huggingface.co目前国内无法下载

替代镜像站:HF-Mirror

Ollama官网:https://ollama.com

一、工具和环境说明

1.【模型下载】huggingface 官方提供python库huggingface_hub用以下载模型和克隆仓库,也可以使用 git 或者 wget 等方式下载。

2.【格式转换工具】(用以将HuggingFace的模型格式转换为Ollama支持的格式 - GGUF)

【推荐 llama.cpp】https://github.com/ggml-org/llama.cpp

【可选】llama-cpp-python:https://github.com/abetlen/llama-cpp-python

3.此处操作系统 Ubuntu Server 24.04 LTS。

二、安装 llama.cpp:

编译环境

apt install build-essential
mkdir -p /data/llama && cd /data/llama
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp

编译(如果只是为了转换模型格式,无需编译,只需要使用其中的python脚本即可

此处编译参考官方文档,支持CUDA等,此处显卡为 V100 显卡,使用 -DCMAKE_CUDA_ARCHITECTURES 指定CUDA架构。

[root@host /data/llama/llama.cpp]# cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=70 -DCMAKE_CUDA_FLAGS="-Wno-deprecated-gpu-targets"
[root@host /data/llama/llama.cpp]# cmake --build build --config Release -j$(nproc)
[root@host /data/llama/llama.cpp]#
[root@host /data/llama/llama.cpp]# python -m venv .venv
[root@host /data/llama/llama.cpp]# ls -l *.py
-rwxr-xr-x 1 root root 235826 Mar  1 03:54 convert_hf_to_gguf.py
-rwxr-xr-x 1 root root  17613 Mar  1 03:55 convert_hf_to_gguf_update.py
-rwxr-xr-x 1 root root  19106 Mar  1 03:55 convert_llama_ggml_to_gguf.py
-rwxr-xr-x 1 root root  18612 Mar  1 03:55 convert_lora_to_gguf.py
[root@host /data/llama/llama.cpp]# source .venv/bin/activate
(venv) root@host /data/llama/llama.cpp # pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

三、安装 hugingface 下载工具准备:

[root@host ~]# mkdir -p /data/hfo && cd /data/hfo
[root@host /data/hfo ]# python -m venv .venv
(.venv) root@host:/data/hfo# pip install transformers  huggingface_hub  torch tensorflow datasets tokenizers onnx safetensors \
  -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

四、下载模型(脚本可以自己写,主要使用 huggingface_hub)

此处脚本仅为示例,可以根据需要修改脚本。

更改默认仓库地址 - 环境变量。

方法1:Python下载脚本中直接设置环境变量。

os.environ['HF_ENDPOINT'] = '' 必须放到 from huggingface_hub 之前,让 huggingface_hub 能加载此变量,否则依然会使用HuggingFace官网下载。

此外也可以在命令行定义环境变量 export HF_ENDPOINT="VALUE",但是此处使用的VENV,故而不太方便。
 

方法2:直接修改 hugingface_hub

.venv/lib/python3.12/site-packages/huggingface_hub/constants.py 文件中 _HF_DEFAULT_ENDPOINT 变量。

_HF_DEFAULT_ENDPOINT = "https://hf-mirror.com"
#_HF_DEFAULT_ENDPOINT = "https://huggingface.co"

(.venv) root@host:/data/hfo# cat download.py
import os
import argparse
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
from huggingface_hub import snapshot_download
parser = argparse.ArgumentParser(
    description="Download Hugging Face Models To Local",
    usage="python download.py --model-name <model_name>",
    formatter_class=argparse.RawTextHelpFormatter
    )
parser.add_argument(
    "--model-name",
    type=str,
    required=True,
    help="Hugging Face Repo Models Name (moka-ai/m3e-base)")
args = parser.parse_args()
model_name = args.model_name
#model_name = "moka-ai/m3e-base"
down_dir = "/data/hfo/models"
org_name = model_name.split("/")[0]
down_dir_final = os.path.join(down_dir, org_name)
os.makedirs(down_dir_final, exist_ok=True)
local_dir = snapshot_download(repo_id=model_name, local_dir=down_dir_final)

print(f"模型已下载到: {local_dir}")

模型下载

(.venv) root@host:/data/hfo# python download.py --help
usage: python download.py --model-name <model_name>

Download Hugging Face Models To Local

options:
  -h, --help            show this help message and exit
  --model-name MODEL_NAME
                        Hugging Face Repo Models Name (moka-ai/m3e-base
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值