1.前情
本次采用Ollama进行大语言模型qwen2-0.5B、embedding模型bge-large-zh-1.5的部署,通过离线部署的方式,并接入原有系统中使用。
系统环境: Linux VM-16-15-tencentos 5.4.119-19.0009.44 x86_64
备注: 无显卡资源,只有CPU
2.简介
Ollama:是一个旨在简化大型语言模型本地部署和运行过程的工具。非常方便将模型服务发布为API。Ollama支持两种格式的模型文件:GGUF、Safetensors。
GGUF:专为大型语言模型设计的二进制文件格式,主要关注存储效率和加载性能,以及跨平台和跨框架的兼容性。
Safetensors: Hugging Face团队开发,专为存储和加载大型张量(tensors)而设计,旨在提供一种高效、安全且易于使用的方式来管理机器学习模型的权重和其他相关数据。将安全性作为核心设计理念之一。
建议采用gguf的模型权重文件,可以通过ollama下载(https://ollama.org.cn/library
),也可以在社区直接找对应模型转为gguf文件或者是现成的gguf。
3.离线安装ollama
3.1准备材料
ollama各版本地址: https://github.com/ollama/ollama/releases/
本次使用:ollama-linux-amd64.tgz ( x86_64版本 )
安装脚本下载地址:https://ollama.com/install.sh
上面两个文件可以通过网盘下载:
通过网盘分享的文件:ollama
链接: https://pan.baidu.com/s/1WPHmMNjoV2SNjuAOiyMQxg?pwd=j36h 提取码: j36h
--来自百度网盘超级会员v6的分享
3.2安装启动
将ollama-linux-amd64.tgz、安装脚本:install.sh上传到linux服务器 ollama目录下:
修改安装脚本
- 将启动脚本的82-84行注释:
#curl --fail --show-error --location --progress-bar \
#"https://ollama.com/download/ollama-linux-${ARCH}.tgz${VER_PARAM}" | \
#$SUDO tar -xzf - -C "$OLLAMA_INSTALL_DIR"
- 更改为ollama压缩包的路径:
$SUDO tar -xzf /root/ollama/ollama-linux-${ARCH}.tgz -C "$OLLAMA_INSTALL_DIR"
- 启动脚本
bash install.sh
- 检查安装,如果显示版本号,即说明成功
ollama --version
- 启动ollama,启动后会显示在监听服务器
127.0.0.1:11434
ollama serve
- 启动默认是127.0.0.1,即只有本地的请求能够访问,需要将其改为:0.0.0.0;
# 文件地址为:
vim /etc/systemd/system/ollama.service
注意: 第二行和第三行可不加,根据具体需求调整即可
# 在原有的Environment下,添加一下内容
Environment="OLLAMA_HOST=0.0.0.0:11434" #允许其他ip地址请求访问
Environment="OLLAMA_NUM_PARALLEL=4" #并行处理请求的数量
Environment="OLLAMA_MAX_LOADED_MODELS=4" #同时加载的模型数量
重新加载systemd配置,并重启ollama
sudo systemctl daemon-reload
sudo systemctl restart ollama
部署大模型
- 将gguf格式的大模型文件上传到服务器中。
- 创建Modelfile文件,内容如下:
# 创建文件
vi Modelfile
# 文件内容为模型的路径
FROM <model_path>/model_name.gguf
- ollama引入或者创建模型
# 模型名称可以自定义,即后续在ollama中的标识
ollama create <model_name> -f <path_to_Modelfile>
- 查看模型列表
ollama list
- 测试请求
curl http://localhost:11434/api/generate -d '{
"model": "qwen2-instruct",
"prompt":"Why is the sky blue?"
}'
部署embedding
- 将gguf格式的embedding模型bge-large-zh-1.5文件上传到服务器中。
- 创建Modelfile文件,(文件名是自定义的),内容如下:
# 创建文件
vi Modelfile
# 文件内容为模型的路径
FROM <model_path>/model_name.gguf
- ollama引入或者创建模型
# 模型名称可以自定义,即后续在ollama中的标识
ollama create <model_name> -f <path_to_Modelfile>
- 查看模型列表
ollama list
- 测试请求
curl http://localhost:11434/api/embeddings -d '{
"model": "bge-large-zh-1.5",
"prompt":"Why is the sky blue?"
}'
curl http://localhost:11434/api/embed -d '{
"model": "bge-large-zh-1.5",
"input":["Why is the sky blue?","批量"]
}'
移除模型:ollama rm <model_name>
6.查看作为启动服务运行的 Ollama 的日志,请运行:
journalctl -e -u ollama
迁移模型
1.将服务器下面目录对应的模型文件打为压缩包:
/usr/share/ollama/.ollama/models/blobs
2.将服务器下面目录中的模型文件夹,打为压缩包
/usr/share/ollama/.ollama/models/manifests/registry.ollama.ai/library/模型名称
3.将上述的压缩包放到新环境中的ollama对应目录中,即可