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

➡️ 前言

本地可以跑大模型吗?

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.mzph.cn/bicheng/34732.shtml

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

相关文章

木材容易发霉怎么办除霉处理方法

木材存放不当就容易出现发霉情况,那么可通过那些方法将木材表面的霉斑除掉呢?经ihaoer防霉人士介绍处理木材发霉处理方法如下: 木材发霉的原因主要包括木材本身的营养物质、环境湿度、温度以及空气流动性等因素。木材中含有蛋白质、淀粉、油类…

CPR曲面重建代码

废话不说,直接上代码: #include "vtkAutoInit.h" #include "vtkPolyData.h" #include "vtkProbeFilter.h" #include "vtkParametricFunctionSource.h" #include "vtkParametricSpline.h" #include &…

基于Java微信小程序校园自助打印系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟感兴趣的可以先收藏起来,还…

【开源项目】智慧北京案例~超经典实景三维数字孪生智慧城市CIM/BIM数字孪生可视化项目——开源工程及源码!

飞渡科技数字孪生北京管理平台, 依托实景数字孪生底座,以城市感知网络为硬件基础,以城市大数据为核心资源,以数字孪生、云计算、人工智能为关键技术,实现城市产业规划、资产安全管理、城市能耗监控等一体化空间融合。 …

基于电商模式的性能测试(2) —— 使用Jmeter参数化功能+JSR223 PreProcessor+JSON Extractor完成注册登录的数据驱动

1、前置条件 此例使用的是GitHub上一个开源的电商项目mall,需要的可以去GitHub上下载部署,有详细的部署教程: GitHub地址:github.com/macrozheng/…部署教程:macrozheng.github.io/mall-learni… 2、场景抽离 首先要…

C#的无边框窗体项目模板 - 开源研究系列文章

继续整理和编写代码及博文。 这次将笔者自己整理的C#的无边框窗体项目的基本模板进行总结,得出了基于C#的.net framework的Winform的4个项目模板,这些模板具有基本的功能,即已经初步将代码写了,直接在其基础上添加业务代码即可&am…

java实现一个图的最短路径算法

import java.util.*; //java实现一个图的最短路径算法 public class Test_34 { // 定义一个常量INF,表示无穷大。private static final int INF Integer.MAX_VALUE; // 定义一个方法dijkstra,接受一个二维数组图和一个起始节点作为参数。public s…

七牛云 Miku 快直播,陪你一起看球!

足球,作为全球最受欢迎的运动之一,每一次大赛都是球迷心中的狂欢,每一场比赛都记录着足球历史的精彩。 2000 年,特雷泽盖的金球,照亮了法兰西的足球梦想。 2004 年,查理斯特亚斯的头槌破门,成就…

浅谈逻辑控制器之while控制器

浅谈逻辑控制器之while控制器 “While控制器”是一种高级控制结构,它允许用户基于特定条件来循环执行其下的子采样器或控制器,直至该条件不再满足。本文旨在详细介绍While控制器的功能、配置方法、使用场景以及实践示例,帮助测试工程师高效利…

工信部中小企业局一行莅临盘古信息调研指导

近日,中小企业数字化转型城市试点调研交流活动在广东东莞举行,工业和信息化部中小企业局副局长商超,广东工业和信息化厅二级巡视员张振祥,工业和信息化部中小企业局创业创新处处长李海涛,东莞市委常委、副市长刘光滨&a…

泵设备的监测控制和智慧运维

泵是一种输送流体或使流体增压的机械。它通过各种工作原理(如离心、柱塞等)将机械能转换为流体的动能或压力能,从而实现液体的输送、提升、循环等操作。 泵的一些具体应用场景: 1.智能水务:在城市供水管网中&#xff…

python turtle 002代码表白

代码:pythonturtle002表白资源-CSDN文库 # 作者V w1933423 import turtle import mathdef draw_love():# 创建turtle画笔t turtle.pen()t turtle# 提起画笔,移动到起始位置t.up()t.goto(0, 150)t.down()# 设置颜色并开始填充t.color(red)t.begin_fill…

​中国9大流域地图SHP数据

九大流域片区是指中国境内九个主要流域片区。 分别包括东南诸河区、内陆河区、松辽河流区、海河流域区、淮河流域区、珠江流域片、西南诸河片、长江流域片和黄河流域片等。 如果这九大流域数据对你有用,请在文末查看该数据的领取方法。 中国9大流域图 流域&…

jeecg启动微服务并注册到本地nacos

1、maven勾选环境和微服务模式,并刷新 2、pom文件修改nacos注册地址 3、本地启nacos gateway 和自己想要的cloud下面的模块pos sys 4、打断点测试接口,访问gateway端口和想要测试的地址

【数据结构】线性表之《队列》超详细实现

队列 一.队列的概念及结构二.顺序队列与链队列1.顺序队列2.链队列 三.链队列的实现1.创建队列2.初始化队列3.入队4.出队5.获取队头元素6.获取队尾元素7.队列的大小8.队列的判空9.清空队列10.销毁队列 四.队列的盲区五.模块化源代码1.Queue.h2.Queue.c3.test.c 六.栈和队列必做O…

unity-调用讯飞星火语音唤醒-新版windowsSDK

调用讯飞星火语音唤醒-新版windowsSDK 先贴一张在unity中 wins系统下成功调用新版的讯飞windowsSDK的运行截图 为什么要用讯飞的语音唤醒? 项目中需要在unity和win系统下进行语音唤醒开启语音对话,而语音唤醒比较成熟的方案大多都是在linux系统下的&…

kafka 生产者 API 实践总结

文章目录 前言创建 kafka 生产者同步与异步发送消息同步发送异步发送 生产者参数配置client.idacks消息传递时间 序列化器在Kafka中使用Avro记录 分区标头拦截器配额和节流 前言 kafka 对外提供的 API 主要有两类:生产者 API 和 消费者 API,本文将从Kaf…

Spring中事务的传播机制

一、前言 首先事务传播机制解决了什么问题 Spring 事务传播机制是包含多个事务的方法在相互调用时,事务是如何在这些方法间传播的。 事务的传播级别有 7 个,支持当前事务的:REQUIRED、SUPPORTS、MANDATORY; 不支持当前事务的&…

[Django学习]前端+后端两种方式处理图片流数据

方式1:数据库存放图片地址,图片存放在Django项目文件中 1.首先,我们现在models.py文件中定义模型来存放该图片数据,前端传来的数据都会存放在Django项目文件里的images文件夹下 from django.db import modelsclass Image(models.Model):title models.C…

幻兽帕鲁更新时间 幻兽帕鲁最新更新内容一览

超级缝合怪游戏幻兽帕鲁相信大家都有所了解了,游戏刚出的时候也是引起很大的轰动,吸引了很多玩家,一度登上steam榜首,游戏借鉴了“全球最赚钱IP”任天堂宝可梦的收集神奇生物系统,缝合到更多开放世界游戏玩法里&#x…