➡️ 前言
本地可以跑大模型吗?
ChatGPT发布之后,引起了AI领域剧烈震动,从2023年3月百度发布新一代大预言模型文心一言开始,大模型如雨后春笋般不断涌现,国内阿里巴巴的通义千问、华为的盘古大模型、科大讯飞的星火认知大模型、360的360智脑、字节跳动的火山方舟、京东的言犀产业大模型、腾讯的混元大模型、谷歌的PaLM2模型、Meta的LLaMA模型、微软的Phi等一一亮相。业内都把2023年称之为AI元年。
不少程序员都想跑一下大模型,小编也想试试,现在本地运行大模型方法有好几种,那么我们今天来介绍一下其中一种–>Ollama。
Ollama比较倾向于为个人用户提供便捷的开源模型部署和调用服务,而且Ollama也提供OpenAI风格的调用方法,支持GPU和CPU混合运行模式、以及更加便捷的显存管理方法。一起跟随小编来试试吧
➡️ 目录
一、安装NVIDIA相关组件
二、安装ollama
三、安装OpenWebUI
➡️ 正文
一、安装NVIDIA相关组件
虽然ollama支持GPU和CPU混合,但是我们还是检查一下环境是否支持CUDA,如果支持,那安装一下NVIDIA驱动,为大模型加速。
如果已安装CUDA相关驱动,这里可忽略。
1. 检查环境
查看有没有Nvidia GPUs
lspci | grep -i nvidia
如图↑,返回信息显示服务器上是有显卡的,那么下面安装一下驱动
英伟达这个标识有可能全大写,全小写,或者是首字母大小Nvidia,所以我们平时在搜索这个英文的时候,建议忽略大小写查询。
2. 查看系统名称以及相关版本号
uname -m && cat /etc/*release
图中可知,系统架构是X86_64,内核版本4.18.0-513.24.1.0.1.an8.x86_64
重点看这里 ID_LIKE=“rhel fedora centos” VERSION_ID=“8.9”。
我们系统安装的是龙蜥操作系统,兼容 CentOS 软件生态,从参数来看,系统名称可以参考rhel/fedora/centos,版本参考8.9。
(tip:centos停更了,笔者采用国产龙蜥操作系统,安装步骤可以查看之前发布的教程)
3. 禁用nouveau
在Linux系统中安装NVIDIA显卡驱动前,建议先卸载Linux系统自带的显卡驱动nouveau。
nouveau是一个由爱好者组织的针对NVIDIA显卡开发的第三方开源3D驱动的共同项目,并且nouveau是在完全没有得到NVIDIA任何支持的情况下进行开发的,与NVIDIA驱动存在冲突,并且会影响GPU运行的可靠性,使用NVIDIA GPU前先禁用该驱动。如果没有禁用,在安装过程中,也会被提示有冲突,导致安装失败。
查看nouvean是否已加载,如果未被加载,此处跳过。
lsmod|grep -i nouveau
如回显中存在nouveau,则说明nouveau驱动已被加载。需要禁用。
以本篇anolis系统为例
创建文件
touch /etc/modprobe.d/blacklist-nouveau.conf
添加如下文本:
blacklist nouveau
options nouveau modeset=0
然后保存退出,执行命令
dracut --force
重启服务器
reboot
启动之后,再次检查是否还存在nouveau,如不存在,禁止成功,进行下一步。
检查一下必要组件是否已安装,如果没安装,输入Y进行安装操作。
dnf install --enablerepo=Plus gcc gcc-c++ kernel-devel-$(uname -r) kernel-headers-$(uname -r)
4. 下载&安装驱动
上面查看服务器是否有NVIDIA的时候可以看到对应的型号,去NVIDIA的官网下载对应型号的驱动文件。
https://www.nvidia.cn/Download/index.aspx?lang=cn#
小编自己的对应型号搜索到下载的文件是
NVIDIA-Linux-x86_64-470.239.06.run
执行如下命令启动安装,安装过程中会编译适配当前内核版本的驱动,按照提示安装即可:
sh NVIDIA-Linux-x86_64-470.239.06.run --no-x-check
安装完成后执行命令即可看到驱动的信息
lsmod | grep -i nvidia
安装成功,执行命令可以查看NVIDIA工作情况
nvidia-smi
上图可知,CUDA的版本为11.4,安装与NVIDIA Driver版本适配的CUDA去官网下载需要安装的CUDA版本:
https://developer.nvidia.com/cuda-toolkit-archive
小编对应型号下载的是
cuda_11.4.0_470.42.01_linux.ru
执行如下命令启动安装(文件比较大,时间可能较长)
sh cuda_11.4.0_470.42.01_linux.run
如图↓所示,输入accept,同意用户协议。
如图↓,CUDA包里面包含了NVIDIA Driver,前面我们安装过了NVIDIA Driver,这里取消该选项。
如图↓,安装成功。
根据图片提示添加环境变量
echo 'export PATH=/usr/local/cuda-11.4/bin:$PATH' >> /etc/profile
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH' >> /etc/profile
source /etc/profile
ldconfig
nvcc --version命令可以查看编译器版本
安装与CUDA版本适配的cuDNN
下载cuDNN需要NVIDIA账号,并且加入了「NVIDIA Developer Program」。
https://developer.nvidia.com/developer-program
下载与CUDA版本对应的cuDNN版本:
https://developer.nvidia.com/rdp/cudnn-archive
获取到的是一个压缩文件
cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz
解压到当前目录,解压完毕后,进入解压文件夹
执行如下命令将cuDNN拷贝到前面安装的CUDA目录下
到此,Nvidia相关组件安装算是结束了,可以松一口气了。
二、安装ollama
1. 一键安装
访问ollama官网,也提供了windows的安装包,不过我们用的是Linux系统,官网也提供了一键安装脚本命令。
#一键安装
curl -fsSL https://ollama.com/install.sh | sh
2. 手动安装
一键安装有一键的好处,小编喜欢自己鼓捣,下面我们选择手动自行安装。
访问ollama的网址
https://github.com/ollama/ollama/blob/main/docs/linux.md
下载ollama的二进制文件
curl -L https://ollama.com/download/ollama-linux-amd64 -o /usr/bin/ollama
赋予可执行权限
chmod +x /usr/bin/ollama
实际上,下载完二进制文件,现在已经可以使用了;不过为了后续方便,我们添加一个启动服务,也是官方推荐的方式。
先添加一个用户
useradd -r -s /bin/false -m -d /usr/share/ollama ollama
在/etc/systemd/system
创建一个名称ollama.service的文件
[Unit]Description=Ollama ServiceAfter=network-online.target[Service]ExecStart=/usr/bin/ollama serveUser=ollamaGroup=ollamaRestart=alwaysRestartSec=3#添加相关变量Environment="OLLAMA_HOST=0.0.0.0"Environment="OLLAMA_MODELS=/mnt/vdb1/module/ollama/.ollama/models"#Environment=CUDA_VISIBLE_DEVICES=1,2[Install]WantedBy=default.target
后续方便维护和集成调用,我们添加三个变量
①修改默认地址
ollama默认绑定127.0.0.1,端口11434。后面我们会集成网页工具来调用,那需要修改一下访问的地址,这里可以通过OLLAMA_HOST更改绑定地址。
②修改存储路径
默认情况下,不同操作系统大模型存储的路径如下:
Linux平台安装ollama时,默认安装时会创建用户ollama,再将模型文件存储到该用户的目录/usr/share/ollama/.ollama/models。但由于大模型文件往往特别大,有时需要将大模型文件存储到专门的数据盘,此时就需要修改大模型文件的存储路径。官方提供的方法是设置环境变量“OLLAMA_MODELS”。
③指定GPU
本地有多张 GPU,如何用指定的 GPU 来运行 ollama?在Linux上配置环境变量CUDA_VISIBLE_DEVICES来指定运行ollama的GPU。
创建完就可以开始启动了
添加开机启动
systemctl enable ollama
这下安装完结。
我们先把删除的方法贴上来。
好了,上面是整个安装和删除流程。
激动人心的时刻来了,我们开始来跑一个大模型看看
ollama支持的模型有很多,如图
ollama还可以自定义模型文件
我们先选择比较火热的meta的llama3 8B的模型试试
执行命令
输入完命令,首次运行服务会开始下载模型文件,下载完自动运行,窗口上显示send a message,就是启动成功,可以开始聊天了
不过这样有点不好玩,必须在控制台才行,有个网页来对话就更好了,别担心,互联网是强大的,没有做不到,只有你想不到。
三、安装OpenWebUI
我们来安装一款ui工具
先安装一下docker
dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装可能会报软件冲突,按照提示添加替换试试
(尝试在命令行中添加 '--allowerasing' 来替换冲突的软件包 或 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用软件包的最佳候选)
dnf install docker-ce docker-ce-cli containerd.io --allowerasing
按照提示安装完docker
启动docker
systemctl start docker
国内从 DockerHub 拉取镜像有时会遇到困难,配置镜像加速可以缓解这一情况,在/etc/docker目录下新建文件,名称为daemon.json,在文件中添加镜像仓库地址。
docker可以搭配GPU一起运行,但是需要安装NVIDIA相关组件
可参考
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installing-with-yum-or-dnf
上命令…
#添加nvidia容器组件库
dnf config-manager --add-repo https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo
#安装nvidia容器组件
dnf install nvidia-container-toolkit
#配置容器信息
nvidia-ctk runtime configure --runtime=docker
#配置完查看信息
cat /etc/docker/daemon.json
#重启
dockersystemctl restart docker
访问GitHub - open-webui网站查看安装方法
https://github.com/open-webui/open-webui
#有GPU的用这个
docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda#走CPU的用这个
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name openwebui1 --restart always ghcr.io/open-webui/open-webui:main
访问docker启动的地址加端口号3000
首次登录没有账号注册一下
登录之后还可以选择显示语言
连接这里填服务器的地址,ollama默认端口11434
最后展示一下成果!
安装完成,动手试试吧!
如何学习AI大模型?
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。