支持私有云部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


部署Ollama后端引擎运行LLM

发布日期:2025-03-16 13:06:16 浏览次数: 1567 来源:键盘上的茶歇
推荐语

掌握Ollama部署框架,高效运行大型语言模型。

核心内容:
1. Linux系统下Ollama的安装与验证步骤
2. 将Ollama注册为后台服务的方法
3. Ollama服务更新版本的操作流程

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

 

自己使用ollama部署大模型的一些笔记

1、linux 安装 Ollama 部署框架

1.1、初次安装

Ollama 官网

命令行安装国内网络卡顿,仓库直接下载 tgz 文件,超级管理员解压安装。

curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz   # 0.3.14

1.2、Ollama 安装验证

安装完成后,终端输入:

ollama serve

另起一个新的终端,输入:

ollama -v  # 0.3.14

或者进入终端输出的端口(local:11434),即可验证 Ollama 服务是否启动成功,终端验证会输出版本号。

1.3、注册为启动服务后台运行

执行命令注册为后台服务。

注册服务

sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)

写入文件

/etc/systemd/system/ollama.service:

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_NUM_PARALLEL=8"#并行处理请求的数量
Environment="OLLAMA_KEEP_ALIVE=5m"#内存保持时间
Environment="OLLAMA_MAX_LOADED_MODELS=4"#最大并发模型数量
Environment="OLLAMA_MODELS=/data/ollama/models"

[Install]
WantedBy=default.target

启动服务

sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl restart ollama

服务地址端口默认为 11434,浏览器访问该端口即可看到服务运行信息。

停止服务

sudo systemctl stop ollama

1.4、更新版本(0.3.14-->0.4.1)

首先删除旧文件

sudo rm -rf /usr/lib/ollama

下载新版本tgz文件,执行命令解压,之后重启服务即可。

1.5、将 Ollama 模型移动到自定义位置并更新配置

步骤 1: 创建目标文件夹

首先,在 desired location(例如 /home/abc/ollama-models)创建一个文件夹来存放模型。

sudo mkdir -p /home/abc/ollama-models

步骤 2: 设置文件夹权限

确保该文件夹有适当的权限,这里设置为775。

sudo chmod -R 775 /home/abc/ollama-models

步骤 3: 移动现有模型

将 Ollama 默认存放的模型移动到新创建的文件夹。Ollama 的默认模型路径是 /usr/share/ollama/.ollama/models

sudo mv /usr/share/ollama/.ollama/models/\* /home/abc/ollama-models

步骤 4: 更新 Ollama 配置

修改 Ollama 的系统服务配置,使其指向新的模型路径。

  1. 1.
     sudo nano /etc/systemd/system/ollama.service
  2. 2. 在文件中添加或修改 Environment 参数,指定新的模型路径:
    Environment\="OLLAMA\_MODELS\=/home/abc/ollama-models"
    确保这一行存在于 [Service] 部分。

步骤 5: 重新加载 systemd 配置

为了使更改生效,需要重新加载 systemd 的配置并重启 Ollama 服务。

2、运行 LLM 模型

官方支持的开源模型较多,运行模型的方式如下:

2.1、直接到官方模型库复制对应模型的运行命令,即可从官方 pull 到该模型运行。

以 llama3.2 3B 为例子:

ollama run llama3.2

之后即可在终端和大模型进行交互。

2.2、加载 gguf 格式的权重文件进行运行。(已测试成功:qwen2.5-1.5b)

创建一个名称为:Modelfile 无扩展名的文件,文件内容用 FROM 指令指向模型地址,例如:

FROM ./vicuna-33b.Q4_0.gguf

之后运行创建即可,这里模型名称为”example“

ollama create example -f Modelfile

2.3、加载 safetensors 格式模型运行( 实测Ollama部署Qwen2-coder-1.5B

实测Ollama部署Qwen2-coder-1.5B

下载safetensors格式的数据

国内网络使用modelscope快速下载,下载的数据保存在文件夹

#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('Qwen/Qwen2.5-Coder-1.5B')

按照ollama官方文档创建Modelfile文件:

FROM .cache/modelscope/hub/Qwen/Qwen/Qwen2.5-Coder-1.5B

转换失败,原因未知(提示架构不支持)。0.3.14版本先后尝试多个模型,均不能成功从safetensors加载。


升级0.4.1测试llama3.2:1b,成功。转换命令如下:

ollama create --quantize q4_K_M llama3.2

3、其他指令

3.1、删除模型

ollama rm llama3.2

3.2、复制模型

ollama cp llama3.2 my-model-name

3.3、多模态模型测试

ollama run llava "What's in this image? /Users/jmorgan/Desktop/smile.png"
The image features a yellow smiley face, which is likely the central focus of the picture.

3.4、查看模型信息

ollama show llama3.2

3.4、查看已安装模型

ollama list

3.5、查看正在运行的模型

ollama ps

3.6、停止正在运行的模型

ollama stop llama3.2

3.7、常驻显存(不生效)

curl http://localhost:11434/api/embed -d '{"model": "modelname", "keep_alive": -1}'  # -1可以为时间,秒数

4、API 相关

Ollama 有一个用于运行和管理模型的 REST API。

4.1、请求一个响应

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt":"Why is the sky blue?"
}'

4.2、和模型聊天

curl http://localhost:11434/api/chat -d '{
  "model": "llama3.2",
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
  ]
}

详细细节可见:官方 API 文档

4.3、python测试脚本

# 基于Ollama的python调用
import ollama
import requests

host = "127.0.0.1"
post = "11434"
llm_model = "codellama"
url = f"http://{host}:{post}/api/chat"
# message = [
#     {
#         "role": "user",
#         "content": "hi"
#     }
# ]
# options = {"temperature": 0}

# client = ollama.Client(host=url)
# res = client.chat(model=llm_model, messages=message, options=options)
# print(res)

#方式2: 
headers = {"Content-Type""application/json"
data = { "model": llm_model, #模型选择 
        "options": { "temperature"0.#为0表示不让模型自由发挥,输出结果相对较固定,>0的话,输出的结果会比较放飞自我 
                    },
            "stream"False#流式输出 
            "messages": [{ "role""system""content":"你能够将图片作为输入吗?" }] #对话列表 
            } 
response=requests.post(url,json=data,headers=headers,timeout=60
res=response.json() 
print(res)

5、设置并发响应

在配置文件中添加相关参数设置并发,命令如下:

sudo nano ollama.service
sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl restart ollama

更新后,内容为:

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_NUM_PARALLEL=8"#并行处理请求的数量
Environment="OLLAMA_KEEP_ALIVE=4h"#内存保持时间
Environment="OLLAMA_MAX_LOADED_MODELS=4"#最大并发模型数量

[Install]
WantedBy=default.target

注:

web端输入长时间请求无响应,显存中未加载模型,暂时只能重启服务解决。

sudo systemctl restart ollama


 


53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询