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 Face
的 Access 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
测试模型
借助 open web-ui
测试一下模型是否有效,还有模型的能力
这道算是中等难度题,但是明显是翻车的,答案应该是18个苹果
版权声明:
作者:lrbmike
链接:https://blog.liurb.org/2025/01/28/cloud-studio-huggingface-ollama/
来源:大卷学长
文章版权归作者所有,未经允许请勿转载。