Ollama离线部署模型

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目录下:

修改安装脚本

  1. 将启动脚本的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"
  1. 更改为ollama压缩包的路径:
$SUDO tar -xzf /root/ollama/ollama-linux-${ARCH}.tgz -C "$OLLAMA_INSTALL_DIR"
  1. 启动脚本
bash install.sh
  1. 检查安装,如果显示版本号,即说明成功
ollama --version
  1. 启动ollama,启动后会显示在监听服务器127.0.0.1:11434
ollama serve
  1. 启动默认是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

部署大模型

  1. 将gguf格式的大模型文件上传到服务器中。
  2. 创建Modelfile文件,内容如下:
# 创建文件
vi Modelfile

# 文件内容为模型的路径
FROM <model_path>/model_name.gguf
  1. ollama引入或者创建模型
# 模型名称可以自定义,即后续在ollama中的标识
ollama create <model_name> -f <path_to_Modelfile>
  1. 查看模型列表
ollama list
  1. 测试请求
curl http://localhost:11434/api/generate -d '{
  "model": "qwen2-instruct",
  "prompt":"Why is the sky blue?"
}'

部署embedding

  1. 将gguf格式的embedding模型bge-large-zh-1.5文件上传到服务器中。
  2. 创建Modelfile文件,(文件名是自定义的),内容如下:
# 创建文件
vi Modelfile

# 文件内容为模型的路径
FROM <model_path>/model_name.gguf
  1. ollama引入或者创建模型
# 模型名称可以自定义,即后续在ollama中的标识
ollama create <model_name> -f <path_to_Modelfile>
  1. 查看模型列表
ollama list
  1. 测试请求
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对应目录中,即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值