大语言模型部署教程

发布时间:2024-08-09

DM_20240813153023_001-min.jpg

    在人工智能日益普及的今天,大语言模型因其强大的学习能力和广泛的应用场景成为了研究与开发的热点。然而,运行这些模型往往需要庞大的计算资源和网络连接,这限制了它们在边缘计算设备上的应用。以往,在边缘设备上部署大型语言模型(LLM)似乎相当牵强。但时至今日,以树莓派/Jetson为代表的边缘计算设备正逐步打破这一局限,让离线运行大模型成为现实。

    今天我们将给大家演示在树莓派与Jetson主板上运行各大科技巨头的离线大语言模型,给大家测试大模型的实际表现,对比一下各家大模型的使用效果,手把手教大家搭建一台专属于你的聊天机器人



01 树莓派5大模型实测

    本次测试使用树莓派5-8G版本作为测试平台。使用树莓派5-4GB版本,由于内存过小,很多模型在该主板上无法运行。

    经实测发现,WizardLM2虽回复内容准确,但速度较慢;Phi-3则因较小的模型量而回复迅速,但准确度较低;Llama在处理中文对话时略显不足;Gemma在速度与准确性之间提供了良好的平衡;LLaVA以其多模态处理能力赢得了好评;而Qwen2则在中文语境体验方面表现最佳。

 * 亚博小课堂第46期


树莓派5大模型实测数据对比:

2024-08-13_190307_01.png


02 Jetson大模型实测

    本次使用Jetson Orin NX 16GB和8GB版本作为测试平台。Jetson Orin NX凭借其内置GPU,在处理大规模数据集和复杂算法时展现出卓越性能,几乎能在2秒内响应大多数模型请求,远超其他边缘设备。

    测试中,70亿参数规模的模型在Jetson Orin NX上表现最佳,虽然处理速度略慢于较小的模型,但回复准确率更高。此外,LLaVA在处理图文多模态内容时也展现了良好的性能。

 * 亚博小课堂第47期



Jetson大模型实测数据对比:


2024-08-13_190307_02.png

    经过我们的全面实测,大语言模型确实可以在性能有限的边缘计算设备上运行尤其适用于网络受限有隐私保护需求的场景。但离线大语言模型的使用效果并没有云端对话的流畅,其次,70亿模型运行效果要比38亿20亿模型要慢的多,但是回复准确度要优于它们。

    不过随着时间的推移,大语言模型的应用场景肯定会越来越成熟,甚至是结合视觉、音频的多模态大模型也会越来越多,我们将看到一些很酷的边缘解决方案将被部署到树莓派/Jetson等边缘设备上。


03 大模型部署教程


 * 亚博小课堂第48期

一、什么是Ollama?

    要在树莓派或Jetson等嵌入式主控上部署大语言模型呢,关键在于一个强大的开源工具——Ollama。

未标题-1_01.png

官网:https://ollama.com/

GitHub:https://github.com/ollama/ollama

    Ollama的设计旨在简化大语言模型的部署流程,免去了自行从零开始配置的繁琐,仅需几行命令,就能轻松实现模型的部署与运行。在我们的测试中,多款大语言模型均能在Ollama的支持下表现出色,流畅运行。

二、部署环境

一、开发板(4GB以上)
二、SD(TF)卡(16G以上)

树莓派5B(8G RAM):运行8B及以下参数模型
树莓派5B(4G RAM):运行3B及以下参数模型

模型

参数规模

模型大小

Llama 3.1

8B

4.7GB

Llama 3.1

70B

40GB

Llama 3.1

405B

231GB

Phi 3 Mini

3.8B

2.3GB

Phi 3 Medium

14B

7.9GB

Gemma 2

2B

1.6GB

Gemma 2

9B

5.5GB

Gemma 2

27B

16GB

Mistral

7B

4.1GB

Moondream 2

1.4B

829MB

Neural Chat

7B

4.1GB

Starling

7B

4.1GB

Code Llama

7B

3.8GB

Llama 2 Uncensored

7B

3.8GB

LLaVA

7B

4.5GB

Solar

10.7B

6.1GB

    此外,需准备一张16GB以上的系统盘存储介质,考虑到单个模型文件动辄几个GB的大小,因此系统盘容量越大,能够下载的模型数量就越多,从而拓展了使用场景的可能性。

三、Ollama安装

首先第一步开机,打开树莓派或Jetson终端,输入指令:

curl -fsSL https://ollama.com/install.sh | sh


DM_20240814094142_001.jpg

    当出现这些内容就表示安装成功了,使用树莓派部署会有一个警告,内容是未检测到NVIDIA/AMD GPU,Ollama将以CPU模式运行,我们可以直接忽略这个警告并进行下一步。

    使用Jetson等设备则没有这个警告,因此使用NVIDIA可以用上GPU加成,获得更流畅的使用体验。

四、Ollama使用

终端输入ollama可以看到提示:

ollama


DM_20240814094142_002.jpg


ollama serve

启动ollama

ollama create

从模型文件创建模型

ollama show

显示模型信息

ollama run

运行模型

ollama pull

从注册表中拉取模型

ollama push

将模型推送到注册表

ollama list

列出模型

ollama ps

列出运行的模型

ollama cp

复制模型

ollama rm

删除模型

ollama help

获取有关任何命令的帮助信息

    这些都是模型操作相关指令,然后我们可以在终端输入指令从注册表中拉取模型:

ollama run phi

DM_20240814094142_003.jpg


下载完模型就可以进行文字交互了。

演示.gif

五、安装中文输入法

除了英文交互外,也推荐大家安装中文输入法进行中文交互。

树莓派中文输入法安装:

  • 更新软件源
sudo apt-get update


  • 安装Fcitx框架和Google PinYin输入法
sudo apt-get install -y fcitx fcitx-googlepinyin


按照以下步骤设置中文输入法:


DM_20240814094142_004.jpg


DM_20240814094142_005.jpg


DM_20240814094142_006.jpg

    选择Fcitx configuration添加Google PinYin输入法,取消 only show current Language 选项勾选,然后输入方式列表内容选择Google pinrin,最后点击OK选项,关闭这个界面。


Jetson中文输入法安装:

  • 更新软件源
sudo apt update


  • 安装Fcitx框架和Google PinYin输入法
sudo apt install fcitx fcitx-tools fcitx-config* fcitx-frontend* fcitx-module* fcitx-ui-* presage


  • 安装Google PinYin输入法
sudo apt install fcitx-googlepinyin


按照以下步骤设置中文输入法:

DM_20240814094142_007.jpg


DM_20240814094142_008.jpg


    打开 System settings Language Support Chinese(China) 调整到最上方,然后点击 Apply System-Wide ,将 Keyboard input method system 修改成 fcitx ,最后关闭这个界面。

六、Open WebUl安装

    除了在终端上进行大语言模型对话,我们也可以安装Open WebUI,在网页端使用用户界面进行对话。

DM_20240814094142_009.jpg


  • 更新本地软件包
sudo apt update


  • 安装必备软件
sudo apt install apt-transport-https ca-certificates curl gnupg2 lsb-release software-properties-common


  • 添加软件源的GPG秘钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg


  • 添加阿里云镜像软件源

echo "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 安装Docker
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin


  • 添加国内镜像源
sudo nano /etc/docker/daemon.json


  • 将下面的内容添加进文件
{    "registry-mirrors": [        "https://dockerproxy.com",        "https://docker.m.daocloud.io",        "https://cr.console.aliyun.com",        "https://ccr.ccs.tencentyun.com",        "https://hub-mirror.c.163.com",        "https://mirror.baidubce.com",        "https://docker.nju.edu.cn",        "https://docker.mirrors.sjtug.sjtu.edu.cn",        "https://github.com/ustclug/mirrorrequest",        "https://registry.docker-cn.com"    ]}


  • 重新启动Docker服务


sudo systemctl daemon-reloadsudo systemctl restart dockersudo docker info


  • 在Docker中拉去Open WebUI
sudo docker pull ghcr.io/open-webui/open-webui:main


  • 启动指定Docker
sudo docker run --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main

DM_20240814094142_010.jpg


  • 在浏览器中使用下面网址访问
http://localhost:8080/

    首次使用需要自己注册一个账号,该账号是管理员账号,注册并登录即可体验大语言模型对话平台,点击Select a model可以选择指定模型对话。


DM_20240814094142_011.jpg


DM_20240814094142_012.jpg


    使用ollama拉取的模型会自动添加到Open WebUI模型选项,刷新一下网页就会出现新模型。


DM_20240814094142_013.jpg


    那么以上就是我们给大家演示的大语言模型部署教程。