Cloud Studio 使用 HuggingFace + Ollama 部署最新大模型

安装 cmake

由于需要使用到 llama.cpp 进行模型格式换转,安装时需要使用到 cmake,所以需要先更新 Cloud Studio 的环境

安装依赖包

sudo apt install build-essential libssl-dev

源码安装

llama.cpp 需要 cmake 3.18 以上的版本

# 下载
wget https://github.com/Kitware/CMake/releases/download/v3.31.4/cmake-3.31.4.tar.gz
# 解压
tar -zxvf cmake-3.31.4.tar.gz
# 切换目录
cd cmake-3.31.4
# 编译
./bootstrap
make
# 安装
sudo make install
# 查看版本
cmake --version

建立软连接

ln -fs /usr/local/bin/cmake /usr/bin/cmake

安装 llama.cpp

更多安装方式可参考官方说明文档,以下使用 CUDA 安装方式

https://github.com/ggerganov/llama.cpp/blob/master/docs/build.md

拉取仓库代码

# 切换到git目录下拉取代码,不存在目录则先创建
cd /workspace/git
# 拉取仓库
git clone https://github.com/ggerganov/llama.cpp
# 切换到项目目录
cd llama.cpp

GPU 加速安装

cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release

Hugging Face 模型处理

接下来以 deepseek-ai/deepseek-math-7b-instruct 模型为例

https://huggingface.co/deepseek-ai/deepseek-math-7b-instruct

模型下载

这里需要使用 Hugging FaceAccess Token创建Access Token,需要创建 WRITE 权限的

# 切换到 model 目录,不存在则先创建
cd /workspace/model
# 使用镜像加速
export HF_ENDPOINT="https://hf-mirror.com"
# 下载模型,注意替换自己实际的 access token
huggingface-cli download --token [your token] deepseek-ai/deepseek-math-7b-instruct --local-dir deepseek-math-7b-instruct

创建虚拟环境

使用 uv 安装运行环境依赖组件

uv 安装可参考 Cloud Studio 安装部署 open-webui 实现个人知识库安装 uv 部分

# 切换到项目
cd /workspace/git/llama.cpp
# 创建虚拟环境
uv venv .venv
# 激活虚拟环境
source .venv/bin/activate
# 安装项目依赖
uv pip install -r ./requirements.txt

格式转换

下载好的模型大概有 14G , 接下来将大语言模型由 HuggingFace 格式转换成 GGUF 格式

# 切换到项目目录
cd /workspace/git/llama.cpp
# 执行转换命令
python convert_hf_to_gguf.py /workspace/model/deepseek-math-7b-instruct/ --outfile deepseek-math-7b.gguf

然后将生成的文件放到一个的目录下

# 如果目录不存在则先创建
mv ./deepseek-math-7b.gguf /workspace/gguf/deepseek/

创建 Ollama 模型服务

编写 modefile 文件

可参考官方的说明文档

https://github.com/ollama/ollama/blob/main/docs/modelfile.md

/workspace/gguf/deepseek/ 目录下,创建 deepseek-math-7b.modelfile 文件,内容如下

FROM "./deepseek-math-7b.gguf"
TEMPLATE """{{- if .System }}{{ .System }}{{ end }}
{{- range i,_ := .Messages }}
{{- last := eq (len (slice.Messages i)) 1}}
{{- if eq .Role "user" }}<|User|>{{ .Content }}
{{- else if eq .Role "assistant" }}<|Assistant|>{{ .Content }}{{- if notlast }}<|end▁of▁sentence|>{{- end }}
{{- end }}
{{- if and $last (ne .Role "assistant") }}<|Assistant|>{{- end }}
{{- end }}"""
PARAMETER stop <|begin▁of▁sentence|>
PARAMETER stop <|end▁of▁sentence|>
PARAMETER stop <|User|>
PARAMETER stop <|Assistant|>

deepseek 的 modelfile 文件格式,可以通过 ollama 下载 deepseek 相关模型查看,例如 deepseek-r1,然后通过 ollama show --modelfile deepseek-r1 命令查看

创建 deepseek-math-7b 模型

执行下面命令前,先要启动 ollama 服务

# 通过 deepseek-math-7b.modelfile 文件创建新模型
ollama create deepseek-math-7b -f deepseek-math-7b.modelfile
# 查看 deepseek-math-7b 模型是否已创建
ollama list

ollama_deepseek_math_7b

测试模型

借助 open web-ui 测试一下模型是否有效,还有模型的能力

ollama_deepseek_math_7b_01

这道算是中等难度题,但是明显是翻车的,答案应该是18个苹果

版权声明:
作者:lrbmike
链接:https://blog.liurb.org/2025/01/28/cloud-studio-huggingface-ollama/
来源:大卷学长
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>