当前位置:   article > 正文

用 NVIDIA Jetson 创建 Phi3 聊天机器人_ollama jetson

ollama jetson

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

大部分人在面对大语言模型的最大困扰,就是缺乏足够的计算资源来使用这些功能强大的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 版本)
  • 1

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

ollama  pull  llama3:70b
  • 1

检查已下载模型

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

ollama  list
  • 1

执行已下载模型

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

ollama  run  phi3 
  • 1

在这里插入图片描述
现在就可以在 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 
  • 1

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

手动安装 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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

启动聊天机器人

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/659744
推荐阅读
相关标签
  

闽ICP备14008679号