浅谈人工智能之Windows:基于ollama进行本地化大模型部署

news2024/11/15 10:33:29

浅谈人工智能之Windows:基于ollama进行本地化大模型部署

引言

随着人工智能技术的飞速发展,大型语言模型(LLMs)已经成为推动自然语言处理领域进步的关键力量。然而,传统的云部署方式可能带来数据隐私、成本以及访问速度等方面的挑战。为了应对这些难题,Ollama作为一个开源项目应运而生,它极大地简化了在本地环境部署和管理大型语言模型的过程。本文将详细介绍如何利用Ollama工具,在您的个人设备或私有服务器上部署大模型,实现数据的完全控制与高效的模型应用。

Ollama简介

Ollama是由Meta公司开源的一个命令行工具,旨在帮助开发者和研究者在本地计算机上轻松部署和运行大型语言模型。它支持多种知名模型,如Llama 3、Code Llama等,通过Docker容器化技术,用户无需关心复杂的环境配置,即可快速启动模型服务。

准备工作

其实从网上搜索到的资料来看,基于Ollama部署大模型其实很简单,总共就3个步骤:

  1. 第一步:下载Ollama
  2. 第二步:下载大模型
  3. 第三步:使用Ollama命令运行大模型
    但是在实际的环境搭建中,仅仅上述步骤中会碰到各种各样的问题,在这里将遇到的问题一一给大家罗列,并且在网络受限的情况下,教大家如何解决。
    Ollama环境搭建
    第一步:进入Ollama进行对应的工具下载,官网地址如下:
    ollama官网
    第二步:我们可以在官方界面中直接下载Download进行下载
    在这里插入图片描述
    第三步:随后官网会根据你的操作系统自动让你自动对应系统版本
    在这里插入图片描述
    第四步:然后点击下载即可,如果网速好的情况下,就能够下载成功,但是我这边下载过程中经常出现如下错误
    在这里插入图片描述
    因此第一个问题出现:

下载超时,提示需要获取授权

问题解决如下:
第一步:登录Ollama对应的Github路径,地址如下,这里可以获取最新的Ollama版本:
ollama github地址
第二步:找到最新的版本,以我搭建的环境为例,目前Ollama最新版本是:v0.3.9,我们找到对应的Windows版本OllamaSetup.exe并且进行右键选择“复制链接地址”:
在这里插入图片描述

第三步:这步很关键,为了防止下载超时,加速下载文件,我们打开如下网站地址:
github加速网站

第四步:我们将上述复制的链接地址拷贝至打开的网站,例如我们的地址是:https://github.com/ollama/ollama/releases/download/v0.3.9/OllamaSetup.exe

在这里插入图片描述
第五步:此时发现,下载的文件会变快,然后待文件下载完成,双击OllamaSetup.exe进行安装,这里没有啥大的讲究,直接下一步安装即可。
第六步:OllamaSetup.exe环境变量设置,默认情况下我们按照好的OllamaSetup.exe的默认模型训练以后的路径会存放在:C:\Users\XXX.ollama路径下,但是由于我的C盘快满了,无法在该路径下进行放置,所以我们需要设置一个模型存放路径的环境变量。
第七步:右键“我的电脑”-属性-高级系统设置-高级-环境变量中,在系统环境变量点击新建:变量名字输入:OLLAMA_MODELS,变量值输入:D:\LLM\OllamaLLM\models(根据你实际需求进行设置)

在这里插入图片描述
第八步:设置完成以后进行保存退出,如果在设置的时候Ollama是开启的,请在任务栏右下角找到ollama图标,并且进行退出后再重新开启,请注意:Ollama是没有UI界面的,启动后只有这个图标。
在这里插入图片描述
至此,Ollama环境部署完成。

Ollama版本不匹配

建议一定要下载最新的Ollama版本,因为之前由于超时的问题没有解决,使得我在csdn上下载了一个比较低的版本v0.1.38,然后在部署完本地模型后运行模型的时候就出现如下问题

D:\LLM\qwen2>ollama run Qwen2-7B
Error: llama runner process has terminated: exit status 0xc0000409

该问题的主要原因就是版本比较老,无法进行兼容

大模型下载

由于网络限制,如果按照网上的教程进行Ollama大模型运行,命令如下:
ollama run qwen2:0.5b
运行完命令以后,你大概率会碰到如下问题:

/>ollama run qwen2:0.5b
pulling manifest
Error: pull model manifest: Get “https://registry.ollama.ai/v2/library/qwen2/manifests/0.5b”: tls: failed to verify certificate: x509: certificate signed by unknown authority

所有我们需要下载一个大模型,放到本地有进行处理后才能使用,因此本文教授大家如果下载模型,注意:ollama下载的模型需要的文件是以“.gguf”结尾,因为工作机配置有限,我们这里以qwen1_5-0_5b-chat-q2_k.gguf为例进行介绍
第一步:我们打开模型下载的网站,地址如下:
模型下载

第二步:我们在打开的网站上搜索“Qwen1.5-0.5B”,点击回车进行搜索
在这里插入图片描述
第三步:在跳出来的界面中,点击模型库
在这里插入图片描述
第四步:在跳出来的界面中,选择包含GGUF的模型库,如我们需要的qwen1_5-0_5b-chat模型库如下,点击对应的模型库进入模型下载界面
在这里插入图片描述
第五步:在跳出来的界面中,点击模型文件
在这里插入图片描述
第六步:在模型文件列表中,为了演示方便,我们下载一个比较小的模型,在对应的模型右侧点击下载:
在这里插入图片描述
至此,我们对应的大模型下载完成。

ollama模型创建

上述准备工作,我们已经准备了ollama和大模型,现在我们就准备本地将模型搭建起来
第一步:我们将新下载的模型放到一个目录下面,例如:D:\LLM\qwen1
在这里插入图片描述
第二步:我们新建一个Modelfile文件,并且将使用notepad++打开该文件,文件内容如下:

FROM qwen1_5-0_5b-chat-q2_k.gguf

输入完成以后进行保存,该文件内容跟你下载的大模型文件名称要一致哦,另外,你也可以添加一些参数,具体可参考如下网址:
千问模型设置
第三步:使用鼠标在刚才的路径:D:\LLM\qwen1下输入cmd命令
在这里插入图片描述
第四步:输入命令以后会跳出命令行窗口,我们在命令行窗口输入如下命令:

D:\LLM\qwen1>ollama create Qwen1 -f ./Modelfile

输入以后,我们可以看到如下内容

D:\LLM\qwen1>ollama create Qwen1 -f ./Modelfile
transferring model data 100%
using existing layer sha256:dafa51a44e4e9e3a96be7ad9232e3cc5bf819f90cc9b9f5ac5a848886977ecc1
using autodetected template chatml
using existing layer sha256:f02dd72bb2423204352eabc5637b44d79d17f109fdb510a7c51455892aa2d216
creating new layer sha256:21755018ac4e58739fdf5a28589d819b681e29666a77b776b60d4d3bb9df7607
writing manifest
success

当看到上述success时,我们可以看到我们的模型已经加载完成,然后大家是否还记得上述内容的模型路径设置,我们可以打开我们之前设置的模型放置的环境变量:D:\LLM\OllamaLLM\models,我们可以看到如下内容:
在这里插入图片描述
第五步:查看模型,我们使用如下命令查看模型列表

D:\LLM\qwen1>ollama list
NAME ID SIZE MODIFIED
Qwen1:latest 7f7343f3274f 298 MB 35 seconds ago

第六步:模型启动,我们通过如下命令进行模型启动

D:\LLM\qwen1>ollama run Qwen1

我们可以看到模型启动了,并且可以通过命令行中输入信息进行交流
在这里插入图片描述
至此,在windows环境下的ollama加载本地大模型环境搭建完成。

总结

通过Ollama,本地化部署大模型变得简单且高效。这不仅保障了数据的隐私安全,还提供了灵活的定制化选项和低成本的运行环境。无论是研究、开发还是个人学习,Ollama都是一个值得尝试的强大工具。随着模型和服务的持续迭代,未来本地化部署的体验和功能将会更加丰富和完善。

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

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

相关文章

pikachu文件包含漏洞靶场通关攻略

本地文件包含 先上传一个jpg文件&#xff0c;内容写上<?php phpinfo();?> 上传成功并且知晓了文件的路径 返回本地上传&#xff0c;并../返回上级目录 可以看到我们的php语句已经生效 远程文件包含 在云服务器上创建一个php文件 然后打开pikachu的远程文件包含靶场&…

鸿蒙开发培训多少钱?

随着物联网技术的发展&#xff0c;HarmonyOS(鸿蒙系统)作为华为推出的一款面向全场景的分布式操作系统&#xff0c;正在逐步成为开发者们关注的焦点。对于那些想要进入这个新兴领域的开发者来说&#xff0c;参加鸿蒙开发培训是一个不错的选择。那么&#xff0c;这样的培训究竟需…

【Hadoop|HDFS篇】HDFS概述

1. HDFS产出背景及定义 1.1 HDFS产生背景 随着数据量越来越大&#xff0c;在一个操作系统存不下所有的数据&#xff0c;那么就分配到更多的操作系 统管理的磁盘中&#xff0c;但是不方便管理和维护&#xff0c;迫切需要一种系统来管理多台机器上的文件&#xff0c;这 就是分布…

Oracle授权如何购买?多少钱?如何计算?

前言 作为DBA时常也会遇到一些商务的问题&#xff0c;比如购买Oracle 的授权&#xff0c;比如老板问用oracle有没有法律风险&#xff0c;这个组件是否收费&#xff1f;如何计算授权数&#xff1f;等等&#xff0c;本文根据博主的经验和一些Oracle公开的资料&#xff0c;来做一个…

DBNET文字检测

原文:DBNET文字检测 - 知乎 (zhihu.com) 一、DBNET介绍 DBNET核心采用的是基于分割的做法进行文本检测,即将每个文本块都进行语义分割,然后对分割概率图进行简单二值化、最终转化得为box或者poly格式的检测结果。除去网络设计方面的差异,最大特点是引入了Differentiable …

Python 从入门到实战6(二维列表)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;通过熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 之前的文章我们通过举例学习了python 中列表的相关操作&#xff0…

什么是阿凡达2.0直播模式?

要了解什么是什么是阿凡达2.0直播模式,首先要了解什么是的阿凡达直播模式。 我们知道真人直播&#xff0c;播不了几个小时&#xff0c;主播就讲累了。且真人主播的价格又贵&#xff0c;以小时计费。所以很多数字人厂商推出了数字人直播。用数字人代替真人直播。在前几年的时候…

强烈建议!重罚自燃车企

文 | AUTO芯球 作者 | 雷慢 想想就叫人害怕啊&#xff0c; 广东惠州电车自燃那个事&#xff0c;你们看了吗 3辆汽车和多辆电动自行车被烧毁&#xff0c;住宅变危房&#xff0c; 最触目惊心的还是浓烟&#xff0c;许多住户咳呛不止&#xff0c; 周边小区也惨遭浓烟毒害&…

Css:css的属性选择器vs关系选择器及css中伪元素

css的属性选择器&#xff1a; 注&#xff1a;属性值只能由数字&#xff0c;字母&#xff0c;下划线&#xff0c;中划线组成&#xff0c;并且不能以数字开头。 1、[属性] 选择含有指定属性的元素&#xff0c;用[]中括号表示。 <style> [title]{color:red;} p[title]{col…

「Python数据分析」Pandas进阶,使用groupby分组聚合数据(一)

在数据分析过程中&#xff0c;groupby语句&#xff0c;起到对原始数据集&#xff0c;进行分组和聚合的作用。我们在进行数据处理的时候&#xff0c;经常需要对不同的数据维度&#xff0c;以及不同的数据切片集合&#xff0c;进行操作和处理。 比如说&#xff0c;假设我们有全国…

零基础国产GD32单片机编程入门(十二)FreeRTOS实时操作系统移植含源码

文章目录 一.概要二.什么是实时操作系统三.FreeRTOS的特性四.FreeRTOS的任务详解1.任务函数定义2.任务的创建3.任务的调度原理 五.FreeRTOS系统移植到GD32F103C8T6单片机1.硬件准备2.程序移植3.调试FreeRTOS任务调度 六.工程源代码下载七.小结 一.概要 FreeRTOS是一个迷你的实…

海外直播对网速、带宽、安全的要求

要满足海外直播的要求&#xff0c;需要拥有合适的网络配置。在全球化的浪潮下&#xff0c;海外直播正逐渐成为企业、个人和各类组织的重要工具。不论是用于市场推广、品牌宣传&#xff0c;还是与观众互动&#xff0c;海外直播都为参与者带来了丰富的机会。然而&#xff0c;确保…

KTH2502 系列车规数字锁存霍尔效应传感器

KTH2502 采用了先进的斩波技术&#xff0c;集成了温度补偿电路和过流、负压保护电路&#xff0c;具有卓越的灵敏度和温度稳定 性。磁场通过数字双极锁存器输出指示。该芯片具有开漏输出级以及 30mA 的灌电流能力。 2.7~32 V 的宽电压工 作范围&#xff0c;反极性保护高达 -22…

渗透测试靶机--- DC系列 DC-9

渗透测试靶机— DC系列 DC-9 开启靶机&#xff0c;依旧登录窗&#xff0c;平平无奇 扫描信息 访问页面看看 页面中存在查询接口&#xff0c;这里页面输入的内容是get请求&#xff0c;可以尝试sql注入&#xff0c;如果是post请求&#xff0c;那么抓包。将请求体放入sqlmap跑一下…

太速科技-基于Kintex-7 XC7K160T 的CameraLink转四路光纤数据转发卡(Full Camera Link图像转万兆以太网适配器 )

基于Kintex-7 XC7K160T 的CameraLink转四路光纤数据转发卡&#xff08;Full Camera Link图像转万兆以太网适配器 &#xff09; 一、板卡概述 该板卡是一款CameraLink&#xff08;Full&#xff09;转4路光纤接口板&#xff0c;可以实现1路CamerLink Full模式的图像信号转换成…

Druid未授权访问解决

Druid未授权访问原因分析 漏洞说明&#xff1a;Druid由阿里巴巴数据库出品&#xff0c;为监控而生的数据库连接池&#xff0c;并且Druid可以提供监控&#xff0c;监控SQL的执行时间、监控Web URI的请求、Session监控等功能&#xff0c;使用广泛。 需要明确&#xff1a; Druid…

物联网(IoT)支持的小型水处理厂实时硬件在环(HIL)仿真

这篇论文的标题是《Real-Time Hardware-In-The-Loop Simulation of IoT-Enabled Mini Water Treatment Plant》&#xff0c;作者是 Mohamad Taib Miskon 等人&#xff0c;发表在 2024 年 IEEE 自动控制与智能系统国际会议&#xff08;I2CACIS&#xff09;上。以下是该论文的主要…

搭建 xxl-job 调度中心

文章目录 1、初始化“调度数据库”2、修改“调度中心”配置3、打包运行”调度中心“ 1、初始化“调度数据库” 请下载项目源码并解压&#xff0c;获取 “调度数据库初始化SQL脚本” 并执行即可。 “调度数据库初始化SQL脚本” 位置为&#xff1a;/xxl-job/doc/db/tables_xxl_j…

微服务日常总结

1.当我们在开发中&#xff0c;需要连接多个库时&#xff0c;可以在yml中进行配置。 当在查询的时候&#xff0c;跨库时&#xff0c;需要通过DS 注解来指定&#xff0c;需要yml配置需要保持一致。 2. 当我们想把数据存入到clob类型中&#xff0c;需要再字段 的占位符后面加上j…

鸢尾花书实践和知识记录[数学要素3-1万物皆数]

章节框图 文章目录 本章用到的函数使用math库来打印出一些常用的值判断奇数偶数两数加减产生序列矩阵向量的表示&#xff1a;取数组矩阵元素的方法streamlit的绘图矩阵的一般类型构造二维矩阵矩阵的加和运算 本章用到的函数 复数和自然数 使用math库来打印出一些常用的值 i…