本地部署小语言模型趋势
大部分人在面对大语言模型的最大困扰,就是缺乏足够的计算资源来使用这些功能强大的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),得到下面视频的效果。
视频内的主要操作如下:
整个过程都相当流畅,没有卡顿。
如果您对视频的效果感到满意,那么下面就可以按照我们提供的安装教程,为自己搭建一个专属的对话机器人。
模型下载与管理
这里使用 ollama 来作为语言模型的管理器,负责下载与管理模型的存储。由于ollama也具备终端交谈的功能,也能作为本机
安装Ollama模型管理
这部分的安装非常简单,
进入 Ollama官网下载区 (如下图)
点击中间企鹅图标选择Linux平台,然后点击右下角“复制”图标,复制这行执行代码
将指令粘贴在 Jetson Xavier NX 的指令终端里执行,如下图:
这样就安装好了,现在 ollama 也以服务的方式在后台启动。
用Ollama下载模型
我们可以用 Ollama 来下载大语言模型,有以下三个好处:
当然这些好处只限于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 Wehui界面
这个应用对 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 Wehui
接下去就按照安装步骤去执行就可以,如下:
# 下载代码仓git clone https://github.com/open-webui/open-webui.gitcd open-webui/
# 复制所需要的 env 文件cp -RPp .env.example .env
# 使用 node 创建前端应用sudo apt update && sudo apt install npm -ynpm i && npm run build
# 创建后端服务cd ./backendpip?install?-r?requirements.txt?-U
这样就安装好 Open Webui 互动式操作环境,现在就可以准备启动聊天机器人了。
启动聊天机器人
完成以上工作之后,就可以启动聊天机器人。提醒大家在启动之前,需要检查以下环境:
Python版本:如果重新启动设备之后,记得要先 conda activate <虚拟环境> ,然后执行 python -V确认版本
ollama服务是否启动:先执行 ollama list 是否能正常工作?如果不行的话,请执行 ollama serve 启动服务,然后另外开个终端再执行 ollama list
一切就绪之后,就可以执行以下指令来启动 Open Webui 应用:
cd <路径>/open-webui/backendbash start.sh
执行到出现以下画面,表示正常启动。
接下去就可以在远端设备(例如笔记本电脑)上,在浏览器输入<IP_OF_JETSON>:8080 进入以下操作画面。
由于 OpenWebui 具有管理功能,允许多个用户上线使用,因此第一次登录时,需要注册一个作为管理员的用户,您可以提供任意的邮箱与密码,系统并不会检查正确性,只是为了本地管理用途。
进入主画面后(如下图),可以点击右上角的设置去修改显示的语系,中间 ” Seletc a model " 下拉框会提供由 Ollama 所下载管理的模型,请自行选择就行。
最后附带一点,Open Webui有自己的大模型执行体系,并不需要现在 Jetson 上用 ollama run 先执行,如此才能做到在 Open Webui 中自由选择要执行的大大语言模型。
现在,您就可以像开头的视频那样,透过内网与 Jetson 设备所搭建的语言模型聊天机器人,开始进行交谈了。【完】
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。