【AI基础】大模型部署工具之ollama的安装部署

ollama是大模型部署方案,对应docker,本质也是基于docker的容器化技术。

从前面的文章可以看到,部署大模型做的准备工作是比较繁琐的,包括各个环节的版本对应。ollama提供了一个很好的解决方案。

ollama主要针对主流的LLaMA架构的开源大模型设计,并且已被LangChain、Taskweaver等在内的多个热门项目高度集成。

一、下载安装ollama

1.1 安装

官方地址:https://ollama.com/

开源地址:https://github.com/ollama/ollama

下载后双击安装:

一路下一步即可。

 1.2 配置

ollama默认把大模型保存在路径 用户目录/.ollama/models 下:

基于各种原因,我们可能不希望使用这个默认路径,可以通过环境变量的配置来更改大模型保存的目录。

添加环境变量 OLLAMA_MODELS

这里有重要的一步,需要重启ollama,使配置生效。

在任务栏的ollama图标上点击右键,选择“Quit Ollama”退出ollama:

然后重新打开ollama:

二、部署运行大模型

接下来就是实际来部署一个大模型,这里以llama3为例。

 2.1 获取大模型部署命令

在ollama官网搜索llama3大模型:https://ollama.com/library

选择第一个llama3进入大模型详情页:

在上图可以看到默认有三个标签可以选择:最新版、8B和70B,这里我们选择 8B的,所以我们需要运行 ollama run llama3。如果我们需要部署70B的,则需要运行 ollama run llama3:70b。

2.2 部署大模型

我们可以直接运行 ollama run llama3,如果llama3没有下载过则会下载,否则直接运行。也可以先下载然后运行:

> ollama pull llama3
> ollama run llama3

可以看到,使用方式跟docker是一样的,大模型对应了docker中的镜像。

下载完后会提示成功:

2.3 和大模型交互

接下来可以直接跟llama3对话,在三个箭头➡️后输入问题,llama3会给出回应:

可以看到ollama成功部署了大模型,并成功运行。 

三、在LangChain中使用Ollama

3.1 通过jupyter来运行

3.1.1 安装jupyter

参考 【AI工具】jupyter notebook和jupyterlab对比和安装-CSDN博客 安装jupyterlab。

3.1.2 新建一个notebook

在新的文件中输入如下代码:

# 引入ollama
from langchain_community.chat_models import ChatOllama

# 加载llama3模型
ollama_llm = ChatOllama(model="llama3")

# 构造Message
from langchain_core.messages import HumanMessage

messages = [
    HumanMessage(
        content="你好,请你介绍一下你自己",
    )
]

# 发送Message
chat_model_response = ollama_llm.invoke(messages)

# 输入Message
chat_model_response

这里有个细节,代码一共是五个输入块,这是为了在出错时,可以快速定位是哪一块出了问题。

3.1.3 运行

现在把鼠标定位在第一行,点击工具栏的运行按钮,一步一步的运行,运行5步后,输出了AI的自我介绍:

这样在LangChain中通过ollama,直接调用了大模型。

可以再问一次二的问题:

3.2 直接通过python运行

3.2.1 安装LangChain环境

参考 :【AI基础】第四步:保姆喂饭级-langchain+chatglm2-6b+m3e-base_m3e-base

3.2.2 新建python文件

输入代码:

# 引入ollama
from langchain_community.chat_models import ChatOllama
# 加载llama3模型
ollama_llm = ChatOllama(model="llama3")
# 构造Message
from langchain_core.messages import HumanMessage
messages = [
    HumanMessage(
        content="你好,请你介绍一下你自己",
    )
]
# 发送Message
chat_model_response = ollama_llm.invoke(messages)
# 输入Message
chat_model_response

3.2.3 运行

执行命令运行:

> python dev_ollama.py

运行成功。 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何使用xurlfind3r查找目标域名的已知URL地址

关于xurlfind3r xurlfind3r是一款功能强大的URL地址查询工具,该工具本质上是一个CLI命令行工具,可以帮助广大研究人员从多种在线源来查询目标域名的已知URL地址。 功能介绍 1、从被动在线源获取URL地址以实现最大数量结果获取; 2、支持从Way…

可通过小球进行旋转的十字光标(vtkResliceCursor)

前一段事件看到VTK的一个例子: 该案例是vtk.js写的,觉得很有意思,个人正好也要用到,于是萌生了用C修改VTK源码来实现该功能的想法。原本以为很简单,只需要修改一下vtkResliceCursor就可以了,加上小球&#…

【面试 - 页面优化举例】页面跳转卡顿问题解决 - 页面跳转速度优化

目录 为何要优化如何优化优化1 - 懒加载优化2 - el-tree 子节点默认不展开 为何要优化 页面A跳转到也页面B时,页面出现卡顿情况: 【问题】页面A → 页面B时,页面B进入到了 created 钩子后过了六七秒才进入到 mounted 钩子;【分析经…

遗传算法浅理解

1. 什么是遗传算法? ​ 遗传算法,又称为 Genetic algorithm(GA)Genetic algorithm(GA)。其主要思想就是模拟生物的遗传与变异。它的用途非常广泛,可以用于加速某些求最大或者最小值的算法(换句话说就是加速算法收敛,最…

PV180R1K1T1NMMC派克通轴传动结构柱塞泵

PV180R1K1T1NMMC派克通轴传动结构柱塞泵 派克柱塞泵的结构组成部分:柱塞、手把、斜盘、压盘、滑履、泵体、配油盘、传送轴。其优点如下: 1、结构紧凑耐用,具有灵活的安装接口 2、安静的工作 3、效率高 4、降低功耗和减少发热 5、具有“…

升级到tomcat10和Java 21后,idea控制台system.out.println输出中文乱码问题

最近一次性从tomcat 9升级到tomcat 10,同时Java sdk也从1.8升级到21。 升级过程中,当然会遇到很多问题,但是控制台输出中文乱码问题,着实折腾了很久。 1、尝试各种方法 网上说的很多通用方法都试过了,就是不生效。包…

编码在网络安全中的应用和原理

前言:现在的网站架构复杂,大多都有多个应用互相配合,不同应用之间往往需要数据交互,应用之间的编码不统一,编码自身的特性等都很有可能会被利用来绕过或配合一些策略,造成一些重大的漏洞。 什么是编码,为什…

别再这么起号了!TikTok小白起号误区,你中招了吗?

看过不少Tiktok新手的起号失败案例,总结下来就是以下这几个问题,今天结合一些个人起号心得给大家分享怎么成功在TK起号,希望对大家有所帮助。 手机/网络环境 首先我们要确保手机环境和网络环境没有问题,如果被TK判断出是非海外用户…

【YOLOv8改进[注意力]】在YOLOv8中添加ECA高效通道注意力(2020.4)的实践 + 含全部代码和详细修改方式 + 手撕结构图

本文将进行在YOLOv8中添加ECA高效通道注意力的实践,助力YOLOv8目标检测效果的实践,文中含全部代码、详细修改方式以及手撕结构图。助您轻松理解改进的方法。 改进前和改进后的参数对比: 目录 一 ECA 二 在YOLOv8中添加ECA注意力

synchronized死锁

1、死锁案例 /*** descpription: 死锁案例* date 2024/6/17*/ public class DeadLockDemo {public static void main(String[] args) {Object objA new Object();Object objB new Object();new Thread(() ->{synchronized (objA){System.out.println(Thread.currentThrea…

【产品经理】ERP订单处理3-解密促销策略

由于订单到电商ERP系统中,订单金额已经不能支持改动,故电商前台端的优惠券活动、满减活动、支付优惠活动无法使用,故电商ERP只涉及赠品的活动。 一、订单金额阶梯送 顾名思义:订单金额在某个或者某几个金额范围内赠送商品。 字…

设备物联网关在实际生产中的作用解析-天拓四方

随着物联网技术的迅猛发展,设备物联网关作为连接物理世界与数字世界的核心组件,其应用已经渗透到工业、农业、医疗等多个领域。本案例将聚焦于设备物联网关在某制造企业中的应用,详细解析其在实际生产中的重要作用。 案例背景 某制造企业面…

Browserslist: caniuse-lite is outdated。浏览器列表:caniuse lite已经过时???

一、最近运行项目启动时提示 Browserslist: caniuse-lite is outdated. Please run: npx update-browserslist-dblatest Why you should do it regularly: https://github.com/browserslist/update-db#readme 这要是这一句,Browserslist: caniuse-lite is outdated.…

离散数学-代数系统证明题归类

什么是独异点? 运算 在B上封闭,运算 可结合,且存在幺元。 学会合理套用题目公式结合律 零元? 群中不可能有零元 几个结论要熟记: 1.当群的阶为1时,它的唯一元素视作幺元e 2.若群的阶大于1时,…

成都爱尔胡建斌院长提醒一张眼底照,眼病早知道

眼底藏在眼睛后方,平时没注意无察觉,其实非常重要。它包含的部位多掌控着视觉问题,稍不注意就是视觉受损,视觉缺失,严重的甚至失明致盲。 眼球前面的角膜、晶体等,被称为眼前段,后面则被称之为…

Springboot微服务整合缓存的时候报循环依赖的错误 两种解决方案

错误再现 Error starting ApplicationContext. To display the conditions report re-run your application with debug enabled. 2024-06-17 16:52:41.008 ERROR 20544 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLI…

如何通过改善团队合作来提高招聘效率

当招聘顶尖人才时,时间就是一切。招聘效率取决于团队快速响应和完成任务的能力,但招聘经理和面试官并不总是最关心重要的招聘任务。更重要的是,求职者的经历取决于准备好的面试官是否准时出现。有时候最好的候选人会接受另一份工作&#xff0…

gitlab仓库中用git bash生成不是默认路径的ssh秘钥

使用命令 ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 会在默认路径生成秘钥,(C:\Users\用户\.ssh\) 想要修改默认路径使用如下命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com"…

MyBatis 获取参数的两种方式

${paramName} 使用这种方式的结果是直接替换。底层是用 Statement 实现的。 优点 使用 ${sort} 可以实现排序查询,而使用 #{sort} 就不能实现排序查询了,因为当使⽤ #{sort} 查询时,如果传递的值为 String 则会加单引号,就会导致 …

知乎号开始运营了,宣传一波

知乎号开始发布一些小说、散文还有诗歌了,欢迎大家多来关注 知乎链接:姜亚轲 每篇小说都改编成网易云音乐,文章中也有链接,我做的词,Suno编曲和演唱,欢迎大家来听听