用 NVIDIA Jetson 创建 Phi3 聊天机器人

本文介绍了如何在低配置的NVIDIAJetson设备上部署微软的Phi-3小语言模型,并通过Ollama和OpenWebUI实现多人交互的AIChatBot。文章详细描述了安装过程和使用体验,展示了在资源受限情况下利用本地技术进行大模型应用的可能性。
摘要由CSDN通过智能技术生成

本地部署“小语言模型”的趋势

大部分人在面对大语言模型的最大困扰,就是缺乏足够的计算资源来使用这些功能强大的AI应用。

微软AI研究院于2024年4月发表《Phi-3 Technical Report: A Highly Capable Language Model Locally on Your Phone》的论文,同时开源一款十分优异的Phi3小语言模型(SLM),表示能在手机上执行。

于是我们便尝试配置较低的 NVIDIA Jetson 边缘智能设备上,透过 Ollama 模型管理器与Open webui 互动式界面,在只有 6核/1.4GHz主频的 ARM处理器与8G显存的设备上,成功地运行起 Phi3:8b 模型,并且搭建起多人交互使用的智能对话机器人(AI ChatBot),得到下面视频的效果。

jetson_phi3_chatbot

视频内的主要操作如下:

  • 让对话机器人做自我介绍
  • 询问关于中国人口数的信息
  • 写一段能画出正五边形的 Python 代码
  • 阅读一篇网上的文章,并作出500字中文总结
  • 解答鸡兔同笼的问题

整个过程都相当流畅,没有卡顿。

如果您对视频的效果感到满意,那么下面就可以按照我们提供的安装教程,为自己搭建一个专属的对话机器人。

模型下载与管理

这里使用 ollama 来作为语言模型的管理器,负责下载与管理模型的存储。由于ollama也具备终端交谈的功能,也能作为本机

安装 ollama 模型管理

这部分的安装非常简单,

  1. 进入 Ollama官网下载区 (如下图)
  2. 点击中间企鹅图标选择Linux平台,然后点击右下角“复制”图标,复制这行执行代码
    在这里插入图片描述
  3. 将指令粘贴在 Jetson Xavier NX 的指令终端里执行,如下图:
    在这里插入图片描述
    这样就安装好了,现在 ollama 也以服务的方式在后台启动。

用 ollama下载模型

我们可以用 Ollama 来下载大语言模型,有以下三个好处:

  1. 简单快速:只要执行 ollama pull <模型名:版本> 就能下载
  2. 支持断点续传
  3. 不需要特特殊上网
    当然这些好处只限于Ollama所支持的模型,可以在点击下图的 Models 进入支持列表
    在这里插入图片描述
    还好微软 Phi3、Meta Llama3、Google Gemma、Mistral以及国内的qwen(千问)等知名模型都在列表之内。
    至于支持名单以外的模型,可以从HuggingFace或其他地方下载之后,再经过 ollama 模型转换指令去处理,不过这里不说明这部分。

现在执行以下代码来下载 phi3 模型。

ollama  pull  phi3	(下载 latest 版本)

由于在 ollama 支持的 phi3 模型的最新(latest)版本为 3.8b,如果输入 ollama pull phi3 就会下载最新版本。
在这里插入图片描述
而 Llama3 模型则支持 8b 与 70b 两个版本,预设为 8b 版本,如果执行 ollma pull llama3 会下载 8b 模型,如果想要下载70b模型,就要执行

ollama  pull  llama3:70b

检查已下载模型

任何时候都能执行以下指令,就能显示已下载模型的名单

ollama  list

执行已下载模型

请用 ollama run <模型名:版本>指令,在本机上运行模型。例如运行phi3模型:

ollama  run  phi3 

在这里插入图片描述
现在就可以在 Jetson Xavier NX 的文字终端上与 Phi3 模型进行对话,但到目前为止只能提供一对一的对话,实用性还是不够。如果想要用1台设备为多个用户提供同时对话功能,就需要借助Open WebUI 工具的协助。

安装 Open Webui 交互界面

这个应用对 x86 平台提供比较完整的 docker 安装镜像,但是没有提供对Jetson ARM 平台的支持,因此这部分需要使用手动安装的方式。完整的操作可以到官网的 ” How to Install Without Docker “去参考。

由于手动安装时要求 python >= 3.11,而 Jetson 不管时 Jetpack 5.12/5.13 或 6.0DP 版本,都不符合这项要求,因此要使用 MiniConda 来解决 python 版本问题。

下载与安装 MiniConda

关于 MiniConda 的安装,网上有非常多的教程,这里不多做赘述。主要重点是要下载支持 aarch 架构的版本,这里推荐支持python 3.11的版本(点击连接),或者在 Jetson 设备上执行以下指令:

wget https://repo.anaconda.com/miniconda/Miniconda3-py311_24.3.0-0-Linux-aarch64.sh 

接下去的安装与创建环境就请自行操作。

手动安装 Open Webui

接下去就按照安装步骤去执行就可以,如下:

# 下载代码仓
git clone https://github.com/open-webui/open-webui.git
cd open-webui/

# 复制所需要的 env 文件
cp  -RPp  .env.example  .env

#  使用 node 创建前端应用
sudo apt update  &&  sudo apt install npm -y
npm i  &&  npm run build

#  创建后端服务
cd ./backend
pip install -r requirements.txt -U

这样就安装好 Open Webui 互动式操作环境,现在就可以准备启动聊天机器人了。

启动聊天机器人

完成以上工作之后,就可以启动聊天机器人。提醒大家在启动之前,需要检查以下环境:

  • Python版本:如果重新启动设备之后,记得要先 conda activate <虚拟环境> ,然后执行 python -V确认版本
  • ollama服务是否启动:先执行 ollama list 是否能正常工作?如果不行的话,请执行 ollama serve 启动服务,然后另外开个终端再执行 ollama list
    一切就绪之后,就可以执行以下指令来启动 Open Webui 应用:
cd 	<路径>/open-webui/backend
bash start.sh

执行到出现以下画面,表示正常启动。
在这里插入图片描述
接下去就可以在远端设备(例如笔记本电脑)上,在浏览器输入<IP_OF_JETSON>:8080 进入以下操作画面。

由于 OpenWebui 具有管理功能,允许多个用户上线使用,因此第一次登录时,需要注册一个作为管理员的用户,您可以提供任意的邮箱与密码,系统并不会检查正确性,只是为了本地管理用途。
在这里插入图片描述
进入主画面后(如下图),可以点击右上角的设置去修改显示的语系,中间 ” Seletc a model " 下拉框会提供由 Ollama 所下载管理的模型,请自行选择就行。
在这里插入图片描述
最后附带一点,Open Webui有自己的大模型执行体系,并不需要现在 Jetson 上用 ollama run 先执行,如此才能做到在 Open Webui 中自由选择要执行的大大语言模型。
现在,您就可以像开头的视频那样,透过内网与 Jetson 设备所搭建的语言模型聊天机器人,开始进行交谈了。【完】

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值