安装 cmake
由于需要使用到 llama.cpp 进行模型格式换转,安装时需要使用到 cmake,所以需要先更新 Cloud Studio 的环境
安装依赖包
1
| sudo apt install build-essential libssl-dev
|
源码安装
llama.cpp 需要 cmake 3.18 以上的版本
1
2
3
4
5
6
7
8
9
10
11
12
13
| # 下载
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
|
建立软连接
1
| ln -fs /usr/local/bin/cmake /usr/bin/cmake
|
安装 llama.cpp
更多安装方式可参考官方说明文档,以下使用 CUDA 安装方式
https://github.com/ggerganov/llama.cpp/blob/master/docs/build.md
拉取仓库代码
1
2
3
4
5
6
| # 切换到git目录下拉取代码,不存在目录则先创建
cd /workspace/git
# 拉取仓库
git clone https://github.com/ggerganov/llama.cpp
# 切换到项目目录
cd llama.cpp
|
GPU 加速安装
1
2
| 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 权限的
1
2
3
4
5
6
| # 切换到 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 部分
1
2
3
4
5
6
7
8
| # 切换到项目
cd /workspace/git/llama.cpp
# 创建虚拟环境
uv venv .venv
# 激活虚拟环境
source .venv/bin/activate
# 安装项目依赖
uv pip install -r ./requirements.txt
|
格式转换
下载好的模型大概有 14G , 接下来将大语言模型由 HuggingFace 格式转换成 GGUF 格式
1
2
3
4
| # 切换到项目目录
cd /workspace/git/llama.cpp
# 执行转换命令
python convert_hf_to_gguf.py /workspace/model/deepseek-math-7b-instruct/ --outfile deepseek-math-7b.gguf
|
然后将生成的文件放到一个的目录下
1
2
| # 如果目录不存在则先创建
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 文件,内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
| 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 not $last }}<|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 服务
1
2
3
4
| # 通过 deepseek-math-7b.modelfile 文件创建新模型
ollama create deepseek-math-7b -f deepseek-math-7b.modelfile
# 查看 deepseek-math-7b 模型是否已创建
ollama list
|

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

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