Ollama+OpenWebUI+llama3本地部署

引言
llama3在4月19日刚刚发布,官方的对比结果中在开源模型中堪称世界第一,整好周六日有时间,在魔搭社区上测试一下

2 安装Ollama

2.1 下载Ollama

登录Ollama官网下载Ollama安装包
GitHub:https://github.com/ollama/ollama?tab=readme-ov-file
在这里插入图片描述
下载后双击安装
在这里插入图片描述

2.2 安装Ollama

Windows下安装Ollama很简单,双击运行安装文件即可,此处不赘述。

打开终端,输入ollama,出现下图所示代表安装成功

在这里插入图片描述

注意:
windows 的安装默认不支持修改程序安装目录,
默认安装后的目录:C:\Users\username\AppData\Local\Programs\Ollama
默认安装的模型目录:C:\Users\username\ .ollama
默认的配置文件目录:C:\Users\username\AppData\Local\Ollama

2.3 配置Ollama的模型路径

由于Ollama的模型默认会在C盘用户文件夹下的.ollama/models文件夹中,可以配置环境变量OLLAMA_MODELS,设置为指定的路径:
在这里插入图片描述
在这里插入图片描述

2.4 下载llama3模型

llama3目前主要有8B和70B两个模型,分别代表80亿和700亿个训练参数。
在这里插入图片描述

8B模型一般16GB内存就可以跑的很流畅,70B模型则至少需要64GB内存,有CPU就可以跑,当然有GPU更好。
这里我安装的是8B的模型。
打开终端,输入命令:ollama run llama3默认安装8B模型,也可以使用ollama run llama3:8b来指定相应的模型,安装成功会有如下提示:
在这里插入图片描述

提问题,发现该模型给了不太靠谱的回复。
在这里插入图片描述

当然也可以写代码
在这里插入图片描述

至此,llama3本地部署已完成。
注意1:
在没有互联网的环境下部署,可以将下载好的Ollama安装包复制到此环境安装,然后将下载好的模型复制到相应路径就可以在无互联网的环境下使用。
注意2:
由于llama3对中文的支持并不是很好,需要中文的可以使用GitHub上开源的这个llama3中文微调模型https://github.com/LlamaFamily/Llama-Chinese

3 Ollama+OpenWebUI

前面部署的llama3是在命令行里面进行交互,体验感并不好,安装OpenWebUI可以使用web界面进行交互。这里我使用docker的方式部署OpenWebUI。

3.1 安装Docker

3.1.1 下载Docker
Docker下载
在这里插入图片描述
安装启动, 提示如下, 需要启动微软Hyper-V选项
在这里插入图片描述

3.1.2 启动微软Hyper-V

打开“控制面板->程序->启用或关闭Windows功能”
在这里插入图片描述

在这里插入图片描述

勾选Hyper-V选项

在这里插入图片描述

重启电脑后安装成功
Windows工具中可以看到Hyper-V已安装成功。
在这里插入图片描述

注意:
若没有Hyper-V选项,可以使用如下命令安装:

pushd "%~dp0"dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hv.txtfor /f %%i in ('findstr /i . hv.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"del hv.txtDism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALLPause

将上述命令复制到Hyper-V.bat批处理文件中,然后以管理员身份运行。
在这里插入图片描述

3.1.3 安装Docker

打开之后是这个样子,一般不需要使用,用命令行操作即可。

在这里插入图片描述

在这里插入图片描述

3.1.4 切换国内镜像源
在这里插入图片描述

{"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"],"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"features": {"buildkit": true}
}

Docker中国区官方镜像地址
网易地址
中国科技大学地址
阿里巴巴

3.2 安装OpenWebUI

GitHub地址
在这里插入图片描述
在这里插入图片描述

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

浏览器输入http://localhost:3000/
在这里插入图片描述

注意:
注册时邮箱可以随便填写,例如:admin@111.com

3.3 web访问llama3

注册登录后可以看到直接可以选择之前部署好的llama3:8b模型,通过对话测试下它的能力。
在这里插入图片描述

写代码:
在这里插入图片描述

注意:
后台一定要运行着llama3,ollama run llama3:8b

3.4 离线部署

先安装Docker
将在线下载的docker images保存
在这里插入图片描述

在离线的机器上装载该镜像

docker load -i open-webui.tar

使用3.2章节的命令启动容器即可

常用指令

开启ollam服务

ollama serve

然后,再打开一个窗口,执行下面的命令安装和在命令行中调用llama3大模型:

ollama run llama3

启动后,可以在命令行调用:

另外,回到代码环境,可以使用openai风格代码调用

!pip install openai
1
from openai import OpenAI
client =0penAI(
base url='http://localhost:11434/v1/',
api key='ollama', # required but ignored
)
chat_completion=client.chat.completions.create(
messages=[{'role':'user''content':'你好,请介绍下你自己’}],
model='llama3',
)chat_completion.choices[0]

写一个多轮对话脚本

lef run chat session():# 初始化客户端client = 0penAI(base_url='http://localhost:11434/v1/',api_key='ollama', # API key is required but ig#初始化对话历史chat_history =[]#启动对话循环while True:# 获取用户输入user_input = input("你:")# 检查是否退出对话if user_input.lower()=='exit':print("退出对话。”)break#更新对话历史chat_history.append({'role': 'user','content':user_input}) # 调用模型获取回答try:chat completion=client.chat.completions.create(messages=chat_history,model='llama3')# 获取最新回答,适当修改以适应对象属性model_response=chat_completion.choices[0]print("AI:"model response)# 更新对话历史chat_history.append({'role':'assistant', 'content':model_response)except Exception as e:print("发生错误:",e)breakrun_chat_session()

总结
至此,完成了LLAMA3的模型部署,从测试的结果可以看到, llama3的基础模型对于中文的支持并不好,我们的问题是中文,它却返回了英文的结果,原因可能是因为它的训练集有15个T但是其中95%是英文,想要它支持中文更好,还需要使用中文的训练集进行微调,可喜的是,微调llma系列的中文训练集并不少(可能是因为llama系列都有这个问题),后续我会接着对llama3进行微调, 待续。。。

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

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

相关文章

【vue2父组件调用子组件方法之slot的使用】

父组件调用子组件方法之slot的使用 具体功能需求: 一个页面,点击按钮,打开一个弹窗。弹窗有自定义表单和公共表单,提交的时候要获取两个表单的数据以及复显表单数据 为什么使用插槽了,因为我需要在弹窗中复用公共表单…

【HarmonyOS】鸿蒙将资源文件夹Resource-RawFile下的文件存放到沙箱目录下

【HarmonyOS】鸿蒙将资源文件夹Resource-RawFile下的文件存放到沙箱目录下 一、问题背景 应用开发中,我们经常会遇到一些文件原先是放在资源文件夹 rawfile下,但是逻辑处理时,需要转移到本地沙箱才能操作。这种情况下,就需要将将…

ubuntu 网络管理--NetworkManager

ubuntu 网络管理--NetworkManager 1 介绍2 NetworkManager 命令2 nmcli 命令显示可用的wifi AP连接wifi检查网络连接 ?? 如何删除删除网络连接查看设备状态添加一个新的以太网连接设置静态 IP 地址启用并测试连接添加新的wifi连接 3 其他命令参考 1 介绍 NetworkManager 是标…

Unity功能模块一对话系统(1)前置准备

也许你也曾被游戏中的对话系统深深吸引,那些精心设计的对白、鲜活的角色配音、甚至是简单的文字对话,往往能让玩家产生强烈的代入感和情感共鸣。如果你正在开发一款游戏,或者计划为你的项目加入一个引人入胜的对话系统,那么 Unity…

【自留】Unity VR入门

帮老师写的,自留,不保证是很好的教程。 1.PICO开发指南(官方) 在该页面,能找到大部分能实现的功能,以及实现方式。非常推荐!PICO Unity Integration SDK | PICO 开发者平台 2.如何快速入门&…

以太网帧结构

以太网帧结构 目前,我们局域网当中应用最广的技术或者协议啊,就是以太网。我们首先来看一下以太网的真结构。这块内容这里边再系统的来给大家去展开说一下,以太网真格式就如下面这个图。所示前面有八个字节,是用于时钟同步的&…

【C语言练习(17)—输出杨辉三角形】

C语言练习(17) 文章目录 C语言练习(17)前言题目题目解析整体代码 前言 杨辉三角形的输出可以分三步,第一步构建一个三角形、第二步根据规律将三角形内容填写、第三步将三角形以等腰的形式输出 题目 请输出一个十行的…

Java圣诞树

目录 写在前面 技术需求 程序设计 代码分析 一、代码结构与主要功能概述 二、代码功能分解与分析 1. 类与常量定义 2. 绘制树的主逻辑 3. 彩色球的绘制 4. 动态效果的实现 5. 窗口初始化 三、关键特性与优点 四、总结 写在后面 写在前面 Java语言绘制精美圣诞树…

YashanDB 23.2 YAC -单库多实例架构多活共享集群安装部署指南

一、概述 1.1 文档目标 ​ 本说明旨在指导技术人员在 CentOS 7 x86_64 操作系统上完成崖山数据库企业版 23.2 的共享集群安装与部署。通过系统架构、集群拓扑及部署需求的精确描述,帮助读者在开始安装前对崖山数据库的架构形成清晰认识。本文以高效、稳定、安全为…

uniapp 文本转语音

uniapp 文本转语音 基于 Minimax API 的 UniApp 文本转语音工具,支持文本分段、队列播放、暂停恢复等功能。目前只内置了 Minimax文本转语音Minimax 的语音生成技术以其自然、情感丰富和实时性强而著称 API_KEY、GroupId 获取方法 https://platform.minimaxi.com…

ArrayList源码解析

1、介绍 1、可扩容,允许存储任何元素,包括null。这个类提供了一些方法来操纵数组大小,大致相当于Vector类。 2、ArrayList的容量是表示存储数组元素的大小,容量至少大于列表大小,在容量不足时,会自动扩容至…

ElementPlus 自定义封装 el-date-picker 的快捷功能

文章目录 需求分析 需求 分析 我们看到官网上给出的案例如下,但是不太满足我们用户想要的快捷功能,因为不太多,因此需要我们自己封装一些,方法如下 外部自定义该组件的快捷内容 export const getPickerOptions () > {cons…

GitLab 服务变更提醒:中国大陆、澳门和香港用户停止提供服务(GitLab 服务停止)

目录 前言 一. 变更详情 1. 停止服务区域 2. 邮件通知 3. 新的服务提供商 4. 关键日期 5. 行动建议 二. 迁移指南 三. 注意事项 四. 相关推荐 前言 近期,许多位于中国大陆、澳门和香港的 GitLab 用户收到了一封来自 GitLab 官方的重要通知。根据这封邮件…

使用Grafana中按钮插件实现收发HTTP请求

最近项目中需要监控分布式集群的各项指标信息,需要用到PrometheusGrafana的技术栈实现对分布式集群的各个节点状态进行可视化显示,但是要求前端需要提供一个易用的接口让用户可以触发一些操作,例如负载高时进行负载均衡或弹性伸缩。网上找到的…

【前端】MVC模式详解:如何构建高效的Web应用程序?

💥 欢迎来到[爱学习的小羊]的博客!希望你能在这里发现有趣的内容和丰富的知识。同时,期待你分享自己的观点和见解,让我们一起开启精彩的交流旅程!🌟> 首页:爱学习的小羊 – 热爱AI、热爱Pyt…

对一篇单细胞RNA综述的评述:细胞和基因质控参数的选择

原文链接: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6072887 摘要 单细胞RNA测序技术的发展加深了我们对于细胞作为功能单元的理解,不仅能基于成百到成千上万个单细胞的基因表达谱得到新的结论,还能发现新的具有特异基因表达谱的细胞…

【再谈设计模式】享元模式~对象共享的优化妙手

一、引言 在软件开发过程中,我们常常面临着创建大量细粒度对象的情况,这可能会导致内存占用过高、性能下降等问题。享元模式(Flyweight Pattern)就像是一位空间管理大师,它能够在不影响功能的前提下,有效地…

windos挂载目录到linux

验证环境麒麟V10 1: 在windows任意目录设置共享文件夹 2:记住网络路径\LAPTOP-86JV6NT1\gantie13_sdk 在linux中替换为本机ip级相对路径 比如本级ip是192.168.23.23,linux环境需要ping通本地地址 3: sudo apt-get install cifs-utils sud…

基于STM32单片机矿井矿工作业安全监测设计

基于STM32单片机矿井矿工作业安全监测设计 目录 项目开发背景设计实现的功能项目硬件模块组成设计思路系统功能总结使用的模块技术详情介绍总结 1. 项目开发背景 随着矿井矿工作业环境的复杂性和危险性逐渐增加,矿井作业安全问题引起了社会各界的广泛关注。传统的…

WebRTC服务质量(11)- Pacer机制(03) IntervalBudget

WebRTC服务质量(01)- Qos概述 WebRTC服务质量(02)- RTP协议 WebRTC服务质量(03)- RTCP协议 WebRTC服务质量(04)- 重传机制(01) RTX NACK概述 WebRTC服务质量(…