本地部署大模型

利用ollama部署大模型

使用说明

整个操作过程是基于在linux系统中使用。

硬件准备

参考文章

为什么需要使用 GPU 去跑我们的大模型呢?

  1. 训练时间:使用GPU可以显著缩短模型的训练时间。例如,一个复杂的深度学习模型在GPU上可能只需要几小时,而在CPU上可能需要几天甚至几周。
  2. 模型推理:在推理阶段,尤其是需要处理大量实时数据时,GPU的高并行处理能力可以提供更快的响应时间和更高的吞吐量。
  3. 虽然CPU也可以用于运行大模型,但在处理深度学习任务时,GPU的并行计算能力、计算性能和专用硬件支持使其更为适合。GPU能够显著提升大模型的训练和推理效率,降低时间和功耗成本。

为什么需要CUDA?

  • 通俗地说,CUDA是一种协助“CPU任务分发+GPU并行处理”的编程模型/平台,用于加速GPU和CPU之间的计算。

  • 也就是说CUDA通过CPU任务分发和GPU并行处理的方式,把计算任务通过CPU分发给GPU进行并行计算加速。而GPU并行计算的能力需要CUDA借助其自带的编程接口和工具,比如C/C++语言来编写并行计算程序,并通过CUDA编译器将程序转化为可以在英NVIDIA GPU上执行的机器码快速运行。

  • 所以,通过使用CUDA平台,开发者可以充分利用GPU的并行计算能力加速各种应用程序的运行速度,同时还能与CPU进行协同计算。而人工智能运算往往需要进行大规模亿级的计算,这也就是CUDA在人工智能领域大行其道的原因之一。

部署教程

1. 创建Conda虚拟环境

conda create -n gyy1(输入虚拟环境名字) python=3.9(输入自己需要的版本号)
conda activate gyy1
什么是Conda?

Conda 是一个开源跨平台的包管理、环境管理工具,适用于 Python、Lua、Scala、Java、JavaScript、C/C++、FORTRAN 多种开发语言,是目前最流行的 Python 环境管理工具

Conda 作为包管理器可帮助您查找和安装包, 如果你需要一个不同版本 Python 包,你不需要切换到不同的环境管理器,因为 conda 本身就是一个环境管理器。只需几行命令,就可以设置一个完全独立的环境来运行不同版本的 Python 包,同时支持继续在正常环境中运行常用的 Python 版本。

2. 安装torch

PyTorch是一个由Facebook的人工智能研究团队开发的开源深度学习框架,在近两年,PyTorch已经成为全球最流行的深度学习框架之一。其在GitHub上的星标数量超过了50k,被用在了各种各样的项目中,从最新的研究论文到大规模的工业应用。

pip install torch

如果发生报错,可以尝试运行以下命令,即换成清华源。

pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple

3. 安装ollama

curl -fsSl https://ollama.com/install.sh| sh

4. 运行测试ollama

systemctl status ollama   #启动ollama
ollama run qwen2      #利用ollama跑模型qwen2
Ollama 常用命令
  1. 启动Ollama服务
ollama serve
  1. 从模型文件创建模型
ollama create
  1. 显示模型信息
ollama show
  1. 运行模型
ollama run 模型名称
  1. 列出模型
ollama list
  1. 查看本地模型运行列表
ollama ps
  1. 复制模型
ollama cp
  1. 删除模型
ollama rm 模型名称
  1. 获取有关Ollama任何命令的帮助信息
ollama help

5. 采用 docker 部署 Open WebUI

这一步花费的时间比较久,需要耐心等待……

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

其中:--add-host=host.docker.internal:host-gateway 是为了添加一个主机名映射,将 host.docker.internal 指向宿主机的网关,方便容器访问宿主机服务

一键启动

一键启动 Ollama + Open WebUI~

docker -compose up -d

docker ps  #下载启动完成后,利用这条命令,列出所有容器,检查是否安装成功
什么是docker?

Docker 是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在本地编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
简单的理解,Docker类似于集装箱,各式各样的货物,经过集装箱的标准化进行托管,而集装箱和集装箱之间没有影响。也就是说,Docker平台就是一个软件集装箱化平台,这就意味着我们自己可以构建应用程序,将其依赖关系一起打包到一个容器中,然后这容器就很容易运送到其他的机器上进行运行,而且非常易于装载、复制、移除,非常适合软件弹性架构。

Open WebUI 使用

在打开主机 3000 端口的防火墙之后,浏览器中输入:http://your_ip:3000/,注册一个账号:

利用命令 ollama run aputa/harvey,可以将模型下载到本地,刷新WebUI

将模型部署为API

一键启动 REST API 服务:

ollama serve
生成回复

示例代码:

curl http://129.150.63.xxx:11434/api/generate -d '{
  "model": "qwen2:0.5b",
  "prompt":"Why is the sky blue?",
  "stream":false
}'

stream 参数用于控制 API 是否以流式的方式返回响应。

stream: true:当 stream 被设置为 true 时,API 会逐步返回生成的内容,而不是一次性返回整个响应。这种方式有助于更快地获取部分结果,尤其是在处理较长的生成时,用户可以逐步看到内容的生成进展。

stream: false:当 stream 被设置为 false 时,API 会等待生成完整的响应后再一次性返回所有内容。对于较短的请求,这种方式可能更适合。

模型对话

示例代码

curl http://localhost:11434/api/chat -d '{
  "model": "qwen2:0.5b",
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
  ],
  "stream":false
}'

更多参数和使用,可参考 API 文档:
https://github.com/ollama/ollama/blob/main/docs/api.md

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

poggioxay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值