本地可以Run大模型吗?Llama3?安排!

news2024/11/25 2:42:58

➡️ 前言

本地可以跑大模型吗?

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大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1862049.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大学网页制作作品1

作品须知:1.该网页作品预计分为5个页面(其中1个登录页面,1个首页主页面,3个分页面),如需要可自行删改增加页面。(总共约800行html,1200行css,100行js) 2.此网页源代码只用于学习和模…

面相对象程序设计

面相对象程序设计包含内容如下 局域网聊天程序设网页浏览器设计电子日历记事本的设计 以其中的一个的报告进行举例 1需求与总体设计 1 1.1需求分析 1 1.2总体设计方案 1 1.2.1系统功能分析以及功能表 1 1.3系统类图的关系以及表之间的联系 2 2详细设计 3 2.1 Manag…

Linux系统学习——指令三

Linux系统学习——指令三 Linux系统学习——指令三chmod — 文件执行权限添加文件执行权限去除文件执行权限 查找文件中特定关键字使用vi编辑文件并查找特定关键字文本文件查找特定关键字1: 使用 grep 命令2: 使用 find 命令3: 使用 awk 命令4: 使用 sed 命令5: 使用 ag 命令&a…

RS232自由转Profinet协议网关模块连接1200PLC与扫码枪通讯及手动清零案例

一、RS232和Profinet这两种通讯接口的特点和应用场景: RS232是一种串行通讯接口标准,常用于连接计算机和外部设备,传输速率较低但稳定可靠。Profinet则是一种工业以太网通讯协议,具有高速、实时性强的特点,适用于工业…

群智优化:探索BP神经网络的最优配置

群智优化:探索BP神经网络的最优配置 一、数据集介绍 鸢尾花数据集最初由Edgar Anderson测量得到,而后在著名的统计学家和生物学家R.A Fisher于1936年发表的文章中被引入到统计和机器学习领域数据集特征: 鸢尾花数据集包含了150个样本&#…

【计算机毕业设计】167校园失物招领微信小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

适合实习生使用的工作笔记软件

作为一名初入职场的实习生,我每天都面临着海量的信息和工作任务。刚开始时,我常常手忙脚乱,生怕漏掉任何重要细节。对于实习生来说,好的工作笔记软件不仅能帮助我们系统地整理工作信息,还能提高工作效率,确…

数据结构---二叉树前中后序遍历

1. 某完全二叉树按层次输出(同一层从左到右)的序列为 ABCDEFGH 。该完全二叉树的前序序列为() A: ABDHECFG B: ABCDEFGH C: HDBEAFCG D: HDEBFGCA 2. 二叉树的先序遍历和中序遍历如下:先序遍历: EFHIGJK; 中序遍历: HFIEJKG. 则二叉…

最新AIGC系统源码-ChatGPT商业版系统源码,自定义ChatGPT指令Promp提示词,AI绘画系统,AI换脸、多模态识图理解文档分析

目录 一、前言 系统文档 二、系统演示 核心AI能力 系统快速体验 三、系统功能模块 3.1 AI全模型支持/插件系统 AI模型提问 文档分析 ​识图理解能力 3.2 GPts应用 3.2.1 GPTs应用 3.2.2 GPTs工作台 3.2.3 自定义创建Promp指令预设应用 3.3 AI专业绘画 3.3.1 文…

Day60 代码随想录打卡|回溯算法篇---组合

题目(leecode T77): 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 方法:本题最直观的解法是使用暴力for循环遍历法,根据k的大小定for循环的嵌套次数&…

Java高级重点知识点-14-Set接口、HashSet底层原理讲解

文章目录 Set接口 (HashSet 、LinkedHashSet)HashSet底层原理(重点理解) Set接口 (HashSet 、LinkedHashSet) 无序不重复 HashSet集合 HashSet 是根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找性能。 public class HashSetDemo {publ…

经典游戏案例:仿植物大战僵尸

学习目标:仿植物大战僵尸核心玩法实现 游戏画面 项目结构目录 部分核心代码 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using Random UnityEngine.Random;public enum…

数字图像分析(第一部分)

文章目录 第2章 图像数字化数字化采样与量化像素的邻域像素的距离图像采集网络**离散直线性**距离变换**第3章 图像变换可分离和正交图像变换2D DFT变换及其本质**哈达玛变换KL变换(PCA)第4章 形态学二值形态学膨胀和腐蚀开启和闭合击中-击不中变换二值形态学实用算法噪声滤除目…

DWC USB2.0协议学习1--产品概述

本章开始学习记录DWC_otg控制器(新思USB2.0)的特点、功能和应用。 新思USB 2.0 IP主要有两个文档需要参考: 《DesignWare Cores USB 2.0 Hi-Speed On-TheGo (OTG) Data book》 《DesignWare Cores USB 2.0 Hi-Speed On-TheGo (OTG) Progra…

数值分析笔记(三)函数逼近

最佳平方逼近 函数逼近是使用一种简单易算的函数来近似表示一个复杂函数。 该问题可转化为求解线性方程组 G n C F n ​ G_{n}CF_{n}​ Gn​CFn​​ 其中,系数 C ( c 0 , c 1 , ⋯ , c n ) T , F n ( ( f , φ 0 ) , ( f , φ 1 ) , ⋯ , ( f , φ n ) ) T C(c…

私域电商的新篇章:构建深度连接与高效生态

大家好,我是电商领域的探索者,今天我想和大家分享关于私域电商的一些心得与洞见。在这个数字化飞速发展的时代,如何构建与用户之间更为紧密、深入的连接,以及如何通过私域生态来挖掘用户的更大价值,成为了我们关注的焦…

Studio One 6.6.2中文破解版安装图文激活教程

Studio One 6.6.2中文破解版做为新生代音乐工作站,凭借更低的价格和完备的功能,获得了音乐人和直播行业工作者的青睐,尤其是对硬件声卡的适配支持更好,特别适合用来配合线上教学和电商带货。 最近网上出现不少关于StudioOne不能用…

springboot民宿信息管理系统-计算机毕业设计源码08818

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对民宿信息管理系统等问题,对民宿…

Nuxt3 的生命周期和钩子函数(一)

title: Nuxt3 的生命周期和钩子函数(一) date: 2024/6/25 updated: 2024/6/25 author: cmdragon excerpt: 摘要:本文是关于Nuxt3的系列文章之一,主要探讨Nuxt3的生命周期和钩子函数,引导读者深入了解其在前端开发中…

Windows server 由于没有远程桌面授权服务器可以提供许可证,远程会话连接已断开。

问题现象: 解决办法 临时远程方式1: 打开 mstsc 时带上 /admin 等参数,如下图所示: 使用“mstsc /admin /v:目标ip”来强制登录服务器,但只能是管理员身份。 远程方式2: 通过VM远程登陆系统后,运行输入R…