初试Ollama本地大模型

准备工作

  • 机器配置:

    CPUi5-10400
    内存16GB
    硬盘SSD 480GB
    显卡GTX 1660
  • 系统:Ubuntu 18.04 Server

NVIDIA驱动安装

- 下载

驱动下载地址:https://www.nvidia.cn/geforce/drivers/

在这里插入图片描述

在这里插入图片描述

- 获取下载链接

GTX 1660驱动下载链接:https://cn.download.nvidia.cn/XFree86/Linux-x86_64/550.100/NVIDIA-Linux-x86_64-550.100.run

- 安装驱动所需依赖

sudo apt install gcc g++ make

- 安装驱动

chmod +x NVIDIA-Linux-x86_64-550.100.run 
./NVIDIA-Linux-x86_64-550.100.run

- 验证驱动

在这里插入图片描述

安装 Ollama

- 安装方式:

  • 1.通过官网shell脚本安装 curl -fsSL https://ollama.com/install.sh | sh
  • 2.通过github仓库步骤手动安装 仓库地址

在这里插入图片描述

- 修改ollama.service环境变量

由于ollama.service默认启动地址是127.0.0.1,仅限本机访问,所以要改成0.0.0.0,使其能被其他主机连接,后边docker部署open-webui也会用到这个地址。

chain@ubuntu:~$ cat /etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/data/envs/go/bin"
Environment="OLLAMA_HOST=0.0.0.0"  # 增加这一行[Install]
WantedBy=default.target

- 重载并重启服务

systemctl daemon-reload 
systemctl restart ollama.service

- 验证是否正常运行

chain@ubuntu:~$ curl localhost:11434
Ollama is running

- ollama常用命令

ollama list:显示模型列表。
ollama show:显示模型的信息
ollama pull:拉取模型
ollama push:推送模型
ollama cp:  拷贝一个模型
ollama rm:  删除一个模型
ollama run: 运行一个模型

大模型库下载

下载地址:https://ollama.com/library 模型版本数值B数越低,最低要求的资源就少,B数越高,最低要求的资源就多,可根据自己主机配置,酌情选择。

- 例子:llama2模型使用

模型地址文档:https://ollama.com/library/llama2,由文档中可知模型有三个版本

  • 7b通常最低需要8GB内存
  • 13b通常最低需要16GB内存
  • 70b通常最低需要64GB内存

在这里插入图片描述

我的主机配置是16GB,我选择7b这个版本

- 开始下载

# 直接运行下载命令默认为7 ,模型较大3.8GB,耐心等待下载完毕即可
ollama run llama2	# 下载完毕查看列表
chain@ubuntu:~$ ollama list
NAME            ID              SIZE    MODIFIED     
llama2:latest   78e26419b446    3.8 GB  4 hours ago 

- 开始运行

问一个AI模型中最近比较热的问题,看起来答的还可以,只不过中文回答支持不太好。

chain@ubuntu:~$ ollama run llama2
>>> 9.9和9.11哪个大Both 9.9 and 9.11 are less than 10. Therefore, the smallest of the two is 9.11.

- 资源使用情况

chain@ubuntu:~$ nvidia-smi
Tue Jul 23 06:54:50 2024       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.100                Driver Version: 550.100        CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce GTX 1660        Off |   00000000:01:00.0 Off |                  N/A |
| 46%   38C    P0             22W /  120W |    5071MiB /   6144MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------++-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A     23520      C   ...unners/cuda_v11/ollama_llama_server       5068MiB |
+-----------------------------------------------------------------------------------------+
chain@ubuntu:~$ free -htotal        used        free      shared  buff/cache   available
Mem:            15G        1.7G        553M         27M         13G         13G
Swap:            0B          0B          0B
chain@ubuntu:~$ w06:58:22 up 1 day, 18 min,  2 users,  load average: 0.03, 0.02, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
chain    pts/0    192.168.1.110    Mon09    3:41   0.92s  0.70s ollama run llama2

由此看到显卡资源:5G/6G,内存:1.7G/15G ,CPU: 0.02。由于我们装了显卡驱动,优先计算使用资源的是显卡。如果无显卡,则使用CPU和内存资源。

open-webui部署

官方仓库地址:https://github.com/open-webui/open-webui

docker部署

 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添加到容器内/etc/hosts中,即容器内的hosts文件会增加一条记录172.17.0.1 host.docker.internal。host.docker.internal=host-gateway是固定用法。

  • -v open-webui:/app/backend/data : 将宿主机的open-webui目录映射到容器/app/backend/data目录.

    【宿主机的open-webui目录存放位置:/var/lib/docker/volumes/open-webui,这里我尝试过改到其他目录,即 -v /data/open-webui:/app/backend/data ,但启动后查看日志会报OSError: We couldn’t connect to ‘https://huggingface.co’ to load this file, couldn’t find it in the cached files and it looks like sentence-transformers/all-MiniLM-L6-v2 is not the path to a directory containing a file named config.json.此问题暂未解决。】

  • 其他参数为docker常用参数,不再细嗦。

web访问

地址:http:// ip 或者 localhost: 3000,首次访问需要离线注册,没有验证码。

界面展示:

在这里插入图片描述

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

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

相关文章

怎么理解FPGA的查找表与CPLD的乘积项

怎么理解 fpga的查找表 与cpld的乘积项 FPGA(现场可编程门阵列)和CPLD(复杂可编程逻辑器件)是两种常见的数字逻辑器件,它们在内部架构和工作原理上有着一些显著的区别。理解FPGA的查找表(LUT,L…

在 Android 上实现语音命令识别:详细指南

在 Android 上实现语音命令识别:详细指南 语音命令识别在现代 Android 应用中变得越来越普遍。它允许用户通过自然语言与设备进行交互,从而提升用户体验。本文将详细介绍如何在 Android 上实现语音命令识别,包括基本实现、带有占位槽位的命令处理,以及相关的配置和调试步骤…

力扣SQL50 指定日期的产品价格 双重子查询 coalesce

Problem: 1164. 指定日期的产品价格 coalesce 的使用 简洁版 &#x1f468;‍&#x1f3eb; 参考题解 select distinct p1.product_id,coalesce((select p2.new_pricefrom Products p2where p2.product_id p1.product_id and p2.change_date < 2019-08-16order by p2.…

黑马JavaWeb企业级开发(知识清单)03——HTML实现正文:排版(音视频、换行、段落)、布局标签(div、span)、盒子模型

文章目录 前言一、正文排版1. 视频标签: < video >2. 音频标签: < audio >3. 换行标签: < br >4. 段落标签 < p >5. vscode实现 二、布局1. 盒子模型2. 布局标签< div >和< span >3. VScode实现 三、源代码和运行结果总结 前言 本篇文章是…

uniapp bug解决:uniapp文件查找失败:‘uview-ui‘ at main.js:14

文章目录 报错内容解决方法main.js 文件中 uView 主 JS 库引入 uView 的全局 SCSS 主题文件内容修改引入 uView 基础样式内容修改配置 easycom 内容修改 报错内容 10:50:51.795 文件查找失败&#xff1a;uview-ui at main.js:14 10:59:39.570 正在差量编译... 10:59:43.213 文…

git的一些使用技巧(git fetch 和 git pull的区别,git merge 和 git rebase的区别)

最近闲来无聊&#xff0c;虽然会使用git操作&#xff0c;但是 git fetch 和 git pull 的区别&#xff0c;git merge 和 git rebase的区别只是一知半解&#xff0c;稍微研究一下&#xff1b; git fetch 和 git pull 的区别 git fetch git fetch 是将远程仓库中的改动拉到本地…

ARM架构(三)——AMBA和总线②

本文参考 ARM文档“Introduction to AMBA AXI4 - Arm Developer” 手册可以在ARM官方文档中下载ARM.con&#xff0c;也可以访问我的百度网盘资源 提取码&#xff1a;1234 目录 1. AXI协议概述1.1 多主系统中的AXI1.2 AXI通道1.3 AXI的主要特点 2. 通道传输和事务&#xff08; …

基础IO(重定向与缓冲区)

一、重定向 1、stat() 与 read() 函数 &#xff08;1&#xff09;stat() 函数 path&#xff1a;文件路径 buf&#xff1a;输出型参数&#xff0c;用于返回文件的各种属性。 函数成功返回 0 &#xff0c;失败返回 -1 &#xff08;2&#xff09;read() 函数 fd&#xff1a;文…

使用minio cllient(mc)完成不同服务器的minio的数据迁移和mc基本操作

minio client 前言使用1.拉取minio client 镜像2.部署mc容器3.添加云存储服务器4.迁移数据1.全量迁移2.只迁移某个桶3.覆盖重名文件 5.其他操作1.列出所有alias、列出列出桶中的文件和目录1.1.列出所有alias1.2.列出桶中的文件和目录 2.创建桶、删除桶2.1.创建桶2.2.删除桶 3.删…

Android APK混淆处理方案分析

这里写目录标题 一、前言1.1 相关工具二、Apk 分析2.1 apk 解压文件2.2 apk 签名信息2.3 apk AndroidManifest.xml2.4 apk code三、Apk 处理3.1 添加垃圾文件3.2 AndroidManifest.xml 处理3.3 dex 混淆处理3.4 zipalign对齐3.5 apk 重新签名3.6 apk 安装测试四、总结一、前言 提…

顺序表和单链表的经典算法题

目录 前言 一、基础思想&#xff08;数组&#xff09; 1. 移除元素 2.删除有序元素的重复项 3.合并两个有序数组 二、单链表算法 1.移除链表元素 2.翻转链表 3.合并两个有序的链表 前言 Hello,小伙伴们&#xff0c;今天我们来做一个往期知识的回顾&#xff0c;今天我将…

C++ 设计模式(五)——状态模式

状态模式 序言理解源码 序言 设计模式只是一个抽象的设计模式方法&#xff0c;并不是一个固定使用的搭配&#xff0c;就算是普通switch语句&#xff0c;Map&#xff0c;乃至状态机都是状态模式的其中一种实现方法 状态模式看起来好像和策略模式差不多&#xff0c;主要是其的侧…

【vluhub】log4j注入漏洞 CVE-2021-44228

LOG4介绍 是一个用Java编写的可靠&#xff0c;快速和灵活的日志框架&#xff08;API&#xff09;&#xff0c;它在Apache软件许可下发布 log4j存在远程代码执行漏洞、受影响版本2.x 部署环境 攻击机环境&#xff1a;192.168.3.180 kail环境&#xff1a;192.168.203.12【NAT…

深入理解 OSPF NSSA “P-bit”

** 注&#xff1a;机翻&#xff0c;未校对。** OSPF NSSA P-bit Explained OSPF Forward Address Filtering OSPF 转发地址过滤 In this lesson we’ll take a closer look at the OSPF NSSA “P-bit”. When we redistribute something into an OSPF NSSA area then these …

数据开发/数仓工程师上手指南(一)数仓概念总览

前言 笔者毕业最开始从事的就是大数据开发和数据仓库建设工作&#xff0c;途中曾担任过人工智能工程师和计算机视觉工程师&#xff0c;没想到最后兜兜转转还是回到了最原本的工作数据开发工程师。但很少有写关于本职工作的技术内容输出。 之前笔者撰文内容大部分都是关于算法…

C++入门基础:C++中的循环语句

循环语句是编程语言中用来重复执行一段代码直到满足特定条件的一种控制结构。它们对于处理需要重复任务的场景非常有用&#xff0c;比如遍历数组、累加数值、重复执行某项操作直到满足条件等。 但是在使用循环语句的时候需要注意下哈&#xff0c;有时候一不小心会构成死循环或者…

Ubuntu上安装anaconda创建虚拟环境(各种踩坑版)

之前都是在Windows桌面版进行深度学习的环境部署及训练&#xff0c;今天尝试了一下在Ubuntu上进行环境部署&#xff0c;踩了不少坑&#xff0c;提供一些解决办法给大家避雷。 目录 一、下载和安装anaconda 1. 下载 2. 安装 二、创建虚拟环境 一、下载和安装anaconda 1. …

uniapp入门超详细教程:如何从零开始搭建项目

目录 一、介绍 二、环境搭建 2.1.需要下载的软件 2.1.1 HBuilderX 2.1.2 下载微信开发者工具 2.2 创建uniapp项目 2.2.1 新建项目 2.2.2 项目基本结构 2.2.3 在微信开发者工具上运行 2.2.4 发布微信小程序 三、pages.json 页面路由 四、组件 4.1 视图容器 4.1.1 v…

RabbitMQ入门详解

前言 本篇文章将详细介绍rabbitmq的基本概念知识&#xff0c;以及rabbitmq各个工作模式在springboot中如何使用。 文章目录 介绍 简介 RabbitMQ 核心 生产者与消费者 Exchange Queue 工作模式 简单模式 工作队列模式 发布订阅模式 路由模式 主题模式 SpringBoot中…

扭蛋机潮玩小程序搭建,扭蛋机行业的创新

在当下潮玩市场中&#xff0c;扭蛋机具有盲盒的未知性和惊喜体验感&#xff0c;商品丰富&#xff0c;并且价格相对低廉&#xff0c;获得了极高的人气。年轻人开始对扭蛋机逐渐“上头”&#xff0c;为了扭到喜欢的商品不断地进行复购下单&#xff0c;在这场随机性的扭蛋游戏中&a…