当前位置: 首页 > article >正文

从DeepSeek到Qwen,AI大模型的移植与交互实战指南

在不久前发布的《技术实战 | OK3588-C开发板上部署DeepSeek-R1大模型的完整指南》一文中,小编为大家介绍了DeepSeek-R1在飞凌嵌入式OK3588-C开发板上的移植部署、效果展示以及性能评测,本篇文章不仅将继续为大家带来关于DeepSeek-R1的干货知识,还会深入探讨多种平台的移植方式,并介绍更为丰富的交互方式,帮助大家更好地应用大语言模型。

1、移植过程

1.1 使用RKLLM-Toolkit部署至NPU

RKLLM-Toolkit是瑞芯微为大语言模型(LLM)专门开发的转换与量化工具,可以将训练好的模型转化为适应瑞芯微平台的RKLLM格式。该工具针对大语言模型进行了优化,使其能高效地在瑞芯微的NPU(神经网络处理单元)上运行。上一篇文章中提到的部署方式即为通过RKLLM-Toolkit进行的NPU部署。具体步骤如下:

(1) 下载RKLLM SDK:

首先从GitHub下载RKLLM SDK包,并上传至虚拟机。SDK下载链接:

[GitHub - airockchip/rknn-llm](https://github.com/airrockchip/rknn-llm)。

(2) Python版本检查:

确保安装的SDK版本与目标环境兼容(目前只支持python3.8或python3.10)。

(3) 准备虚拟机环境:

在虚拟机中安装rkllm-toolkit轮子,轮子包路径(rknn-llm-main\rkllm-toolkit)。

pip install rkllm_toolkit-1.1.4-cp38-cp38-linux_x86_64.whl

(4) 下载模型:

选择需要部署的DeepSeek-R1模型。

git clone https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B

(5) 使用示例代码进行模型转换:

在rknn-llm-main\examples\DeepSeek-R1-Distill-Qwen-1.5B_Demo路径下,使用RKLLM-Toolkit提供的示例代码进行模型格式转换。

python generate_data_quant.py -m /path/to/DeepSeek-R1-Distill-Qwen-1.5B
python export_rkllm.py

(6) 编译可执行程序:

通过运行deploy下build-linux.sh脚本(将交叉编译器路径替换为实际路径)直接编译示例代码。这将在目录中生成一个文件夹,其中包含可执行文件和文件夹。

进行交叉编译生成可执行文件。

./build-linux.sh

(7) 部署模型:

将已编译好的 _W8A8_RK3588.rkllm 文件和librkllmrt.so动态库文件(路径为:rknn-llm-main\rkllm-runtime\Linux\librkllm_api\aarch64 ),一同拷贝到编译后生成的 build_linux_aarch64_Release 文件夹内,然后将此文件夹上传到目标板端。

接着,为目标板端build_linux_aarch64_Release文件夹中的 llm_demo 文件添加执行权限并执行它。

chmod +x llm_demo
./llm_demo _W8A8_RK3588.rkllm 10000 10000
演示效果图1

优势与不足:

- 优势:部署至NPU后,大语言模型能高效运行,性能表现优异,且对CPU资源的占用较少。

- 不足:相较于其他方法,部署过程稍显复杂,需要较强的技术背景和经验。

1.2 使用Ollama一键部署至CPU

Ollama是一个开源的本地化大型语言模型(LLM)运行框架,支持在本地环境下运行各种开源LLM模型(如LLaMA、Falcon等),并提供跨平台支持(macOS、Windows、Linux)。

通过Ollama,用户可以无需依赖云服务,轻松部署和运行各种大语言模型。尽管Ollama支持快速部署,但由于DeepSeek-R1尚未在RK3588芯片上进行优化,因此只能在CPU上运行,可能会占用较高的CPU资源。具体步骤如下:

(1) 下载Ollama:

根据需要下载并安装Ollama,

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

若下载速度较慢,可参考以下镜像方式进行加速。

curl -fsSL https://ollama.com/install.sh -o ollama_install.sh
chmod +x ollama_install.sh
sed -i 's|https://ollama.com/download/|https://github.com/ollama/
ollama/releases/download/v0.5.7/|' ollama_install.sh
sh ollama_install.sh

(2) 查看Ollama结果:

确认Ollama正确安装,并运行相关命令查看部署结果。

Ollama --help

(3) 下载DeepSeek-R1:

从Ollama官网渠道获取下载DeepSeek-R1模型的指令。

(4) 运行DeepSeek-R1:

通过Ollama命令行接口启动DeepSeek-R1模型。

ollama run deepseek-r1:1.5b
演示效果图2

优势与不足:

- 优势:部署过程简便快捷,适合快速测试和应用。

- 不足:因模型未针对RK3588优化,在CPU上运行时可能导致较高的CPU占用,影响性能。

2、在FCU3001平台上部署其他大模型

除了DeepSeek-R1,Ollama还支持部署其他大语言模型,如通义千问(Qwen)等,这展示了Ollama的广泛适用性。接下来,我们以通义千问为例,在飞凌嵌入式推出的一款搭载英伟达处理器的AI边缘计算终端 FCU3001(基于NVIDIA Jetson Xavier NX处理器)上部署大语言模型:

FCU3001通过其强大的计算能力和优化的软件支持,能够高效地运行Ollama所支持的大语言模型,如通义千问。在部署过程中,我们可以充分利用Ollama提供的灵活性和易用性,确保大语言模型在FCU3001上稳定、流畅地运行。步骤如下:

(1) 安装CUDA环境:

可以使用NVIDIA Jetson Xavier NX的GPU来运行模型。Ollama的安装方法可以参考上述。

sudo apt update
sudo apt upgrade
sudo apt install nvidia-jetpack -y

(2) 进入Ollama官网:

浏览Ollama支持的其他模型。

(3) 选择版本:

从Ollama支持的模型列表中选择千问Qwen 1.8B版本。

(4) 运行模型:

在Ollama环境下,使用命令ollama run qwen:1.8b启动通义千问模型。

ollama run qwen:1.8b
演示效果图3

3、交互方式

在前述的部署方式中,交互方式主要基于串口调试,缺少图形界面,无法展示图片、表单等元素,也不能呈现历史对话。为了提升用户体验,我们可以通过集成Chatbox UI或Web UI等方式,提供更为丰富的交互体验。

3.1 Chatbox UI

Chatbox是一款集成多种语言模型的AI助手工具,支持如ChatGPT、Claude等多种模型。它不仅具备本地数据存储和多语言切换功能,还支持图像生成、Markdown和LaTeX等格式,提供人性化的界面和团队协作功能。Chatbox支持Windows、macOS、Linux系统,用户可在本地快速实现对大语言模型的交互。步骤如下:

(1) 下载Chatbox:

从Chatbox官网(https://chatboxai.app/zh)下载适合的安装包。

(2) 安装并配置:

下载完成后是一个Chatbox-1.10.4-arm64.AppImage的文件,其实就是一个可执行文件,添加权限即可运行,就可以配置本地ollama API下的LLM模型了。

chmod +x Chatbox-1.10.4-arm64.AppImage
./Chatbox-1.10.4-arm64.AppImage

(3) 问答对话:

用户可以通过直观的图形界面与模型进行交流,体验更为便捷、流畅的交互。

演示效果图4

3.2 Web UI

Web UI通过网页或网络应用提供图形化用户界面,使得用户能够轻松通过浏览器与大语言模型进行交互。用户只需在浏览器中访问相应的IP地址和端口号,即可进行实时提问。步骤如下:

(1) Web UI环境搭建:

配置Web UI所需的环境。Web UI建议使用python3.11版本。所以使用的Miniconda创建python==3.11虚拟环境。

安装Miniconda

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
chmod +x Miniconda3-latest-Linux-aarch64.sh
./Miniconda3-lates

搭建Web UI环境。

conda create --name Web-Ui python=3.11
conda activate Web-Ui
pip install open-webui -i https://pypi.tuna.tsinghua.edu.cn/simple

(2) 启动Web UI:

使用open-webui serve启动Web UI应用,服务器的IP地址和端口号为0.0.0.0:8080。

open-webui serve

出现以下红框信息证明启动成功。

(3) 访问Web UI:

在浏览器中输入IP地址和端口号,打开Web UI界面,开始与大语言模型互动。

注册账号

演示效果图5

4、总结

本文全面展示了OK3588-C开发板及FCU3001边缘AI网关上大语言模型的多种移植方式,并介绍了如何通过Chatbox UI和Web UI等多种交互方式提升用户体验。

飞凌嵌入式推出了多款嵌入式AI产品,如OK3588-C、OK3576-C、OK-MX9352-C、OK536-C等开发板,还有AI边缘计算终端FCU3001,算力范围从0.5TOPS到21TOPS不等,可以满足不同客户的AI开发需求。如果您对这些产品感兴趣,欢迎随时与我们联系,飞凌嵌入式将为您提供详细的技术支持与指导。

相关文章:

从DeepSeek到Qwen,AI大模型的移植与交互实战指南

在不久前发布的《技术实战 | OK3588-C开发板上部署DeepSeek-R1大模型的完整指南》一文中,小编为大家介绍了DeepSeek-R1在飞凌嵌入式OK3588-C开发板上的移植部署、效果展示以及性能评测,本篇文章不仅将继续为大家带来关于DeepSeek-R1的干货知识&#xff0…...

SkyWalking+Springboot实战

1、下载SkyWalking APM 1.手动下载 Downloads | Apache SkyWalkinghttps://skywalking.apache.org/downloads/ 2.链接下载 https://dlcdn.apache.org/skywalking/10.2.0/apache-skywalking-apm-10.2.0.tar.gzhttps://dlcdn.apache.org/skywalking/10.2.0/apache-skywalking-…...

算法 | 河马优化算法原理,公式,应用,算法改进及研究综述,matlab代码

以下是关于河马优化算法(Hippopotamus Optimization Algorithm, HO)的完整综述,包含原理、公式、应用场景、改进方向及可直接运行的 Matlab 完整代码。一、算法原理 河马优化算法(HO)由Amiri等人于2024年提出,是受河马群体行为启发的元启发式算法,其核心基于以下三阶段行…...

org.apache.maven.surefire:surefire-junit-platform:jar:2.22.2 Maven打包失败

org.apache.maven.surefire:surefire-junit-platform:jar:2.22.2 解决办法 勾上这个,打包时跳过测试代码...

nginx-rtmp-module之ngx_rtmp_live_module.c代码详解

ngx_rtmp_live_module.h 头文件分析 这个头文件定义了直播模块相关的结构体、函数声明和一些常量,主要用于支持 RTMP 协议中的直播流。 1. 核心数据结构: ngx_rtmp_live_chunk_stream_t: 该结构体用于表示一个数据流中的“块”,…...

【MVCC快照如何实现】

MVCC(多版本并发控制)快照的实现原理 MVCC(Multi-Version Concurrency Control)是现代数据库实现事务隔离级别的核心技术,它通过数据多版本和快照机制来实现高效的并发控制。下面我将详细解析MVCC快照的实现机制。 一、MVCC核心组件 1. 版本链结构 MVCC通过以下…...

在机器人和无人机时代,测绘人的出路在哪里?

一、技术革命:当测绘行业按下“加速键” 无人机与机器人技术正在重塑测绘行业的底层逻辑。传统测绘依赖人工作业,效率低、成本高且风险大,而无人机凭借其灵活性和高效性,已能快速完成大范围地形测绘,精度可达厘米级&a…...

linux》》docker 、containerd 保存镜像、打包tar、加载tar镜像

Linux》》docker: 默认情况下,Docker镜像保存在/var/lib/docker/目录下。 当您使用docker pull命令从Docker Hub或私有镜像仓库中拉取镜像时,Docker会自动将镜像文件保存在/var/lib/docker/image/目录下。 每个镜像都由一个或多个层组成,这些…...

DeepSeek+Kimi:PPT制作的效率革命

摘要:传统PPT制作面临模板选择困难、内容逻辑混乱、设计排版能力有限以及反复修改等问题。DeepSeek和Kimi两款AI工具的组合为PPT制作提供了全新的解决方案。DeepSeek擅长内容生成与逻辑推理,能够快速生成高质量的PPT大纲和内容;Kimi则专注于长…...

电影交流|基于Java+vue的电影交流平台小程序系统(源码+数据库+文档)

电影交流平台 目录 基于SprinBootvue的电影交流平台小程序系统 一、前言 二、系统设计 三、系统功能设计 1用户信息管理 2 电影信息管理 3公告信息管理 4论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&…...

深度学习入门(二):从感知机到神经网络

文章目录 前言一个神经网络的例子激活函数登场3层神经网络的实现矩阵运算3层神经网络示意图符号定义第一层信号传递第二层信号传递第三层信号传递 代码实现实践:手写数字识别参考资料 前言 上一篇文章我们学习了感知机,因为它和神经网络有很多共同点&am…...

Sentinel 相关知识点

Sentinel 实现原理? Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护等多个维度来帮助开发者保障微服务的稳定性。以下是 Sentinel 的实现原理: 核心概念 资源&…...

AI三大主义 和 深度学习三大主义

在人工智能(AI)研究领域,"三大主义"通常指三种核心方法论或思想流派,它们代表了不同的技术路径和哲学观点。以下是主流的划分方式: 1. 符号主义(Symbolicism) 核心思想:智…...

探索 Vue 中的多语言切换:<lang-radio /> 组件详解!!!

探索 Vue 中的多语言切换&#xff1a;<lang-radio /> 组件详解 &#x1f30d; 嗨&#xff0c;大家好&#xff01;&#x1f44b; 今天我们来聊聊如何在 Vue 项目中实现一个优雅的多语言切换功能——<lang-radio /> 组件。这是一个小而美的组件&#xff0c;出现在登…...

安卓的布局方式

一、RelativeLayout 相对布局 特点&#xff1a;每个组件相对其他的某一个组件进行定位。 (一)主要属性 1、设置和父组件的对齐&#xff1a; alignParentTop &#xff1a; 设置为true&#xff0c;代表和父布局顶部对齐。 其他对齐只需要改变后面的Top为 Left、Right 或者Bottom&…...

Kotlin基础知识学习(五)

Lambda表达式 Lambda表达式是一种简洁的方式来定义匿名函数。Kotlin的Lambda表达式非常灵活&#xff0c;常用于函数式编程、集合操作、高阶函数等场景。 无参数的Lambda表达式 格式&#xff1a;{函数体} 调用&#xff1a;{函数体}() val greet { println("Hello, Kotl…...

搭建私人对外git空间

# 创建用户&#xff0c;指定不可登录的 Shell&#xff08;git-shell 或 /usr/sbin/nologin&#xff09; sudo adduser --system --shell /usr/bin/git-shell --group git # 验证用户配置 grep git /etc/passwd # 预期输出&#xff1a;git:x:998:998::/home/git:/usr/bin/git-s…...

5种特效融合愚人节搞怪病毒

内容供学习使用,不得转卖,代码复制后请1小时内删除,此代码会危害计算机安全,谨慎操作 并在虚拟机里运行此代码!&#xff0c;病毒带来后果自负! #include <windows.h> #include <cmath> #include <thread> using namespace std; // 屏幕特效函数声明 void In…...

DeepSeek本地部署(linux)

一、下载并安装Ollama 1.下载Ollama Ollama官网:Ollama 点击"Download",会跳转至下载页面。 1.1在线下载安装 可复制此命令到Linux服务器进行在线下载,如下载速度过慢,可选择离线下载安装。 curl -fsSL https://ollama.com/install.sh | sh1.2离线下载安装 …...

MySQL的基础语法1(增删改查、DDL、DML、DQL和DCL)

目录 一、基本介绍 二、SQL通用语法 三、SQL分类(DDL、DML、DQL、DCL) 1.DDL 1.1数据库操作 1.2表操作 1.2.1表操作-查询创建 1.2.2表操作-数据类型 1&#xff09;数值类型 2&#xff09;字符串类型 3&#xff09;日期时间类型​编辑 4&#xff09;表操作-案例 1.2.3…...

Oracle数据库数据编程SQL<3.3 PL/SQL 游标>

游标(Cursor)是Oracle数据库中用于处理查询结果集的重要机制&#xff0c;它允许开发者逐行处理SQL语句返回的数据。 目录 一、游标基本概念 1. 游标定义 2. 游标分类 二、静态游标 &#xff08;一&#xff09;显式游标 【一】不带参数&#xff0c;普通的显示游标 1. 显式…...

畅享电脑流畅运行:深度卸载、智能监视与空间释放

软件介绍 在数字化办公与娱乐高度融合的当下&#xff0c;电脑承载着我们诸多重要任务&#xff0c;然而&#xff0c;随着软件的频繁安装与卸载&#xff0c;系统逐渐被各种顽固软件及其残留 “拖垮”&#xff0c;运行速度变慢、磁盘空间告急等问题接踵而至。别愁&#xff0c;今天…...

R --- Error in library(***) : there is no package called ‘***’ (服务器非root用户)

步骤 步骤一&#xff1a;在自己目录下创建R包安装路径步骤二&#xff1a;配置用户本地的R库路径步骤三&#xff1a;安装缺失的包&#xff08;在终端&#xff09;步骤四&#xff1a;验证安装 步骤一&#xff1a;在自己目录下创建R包安装路径 mkdir -p ~/R_libs步骤二&#xff1…...

Visual Studio Code 无法打开源文件解决方法

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux &#x1f525; 系列专栏&#xff1a;C从入门到精通 目录 一&#xff1a;&#x1f525; 突发状况 二&#xff1a;&#x1f525; 共勉 一&#xff1a;&#x1f525; 突发状况 &#x1f42c;…...

核函数(机器学习深度学习)

一、核函数的基本概念 核函数&#xff08;Kernel Function&#xff09; 是机器学习中处理非线性问题的核心工具&#xff0c;通过隐式映射将数据从原始空间转换到高维特征空间&#xff0c;从而在高维空间中实现线性可分或线性建模。其数学本质是计算两个样本在高维空间中的内积…...

【工具】BioPred一个用于精准医疗中生物标志物分析的 R 软件包

介绍 R 语言包 BioPred 提供了一系列用于精准医疗中的亚组分析和生物标志物分析的工具。它借助极端梯度提升&#xff08;XGBoost&#xff09;算法&#xff0c;并结合倾向得分加权和 A 学习方法&#xff0c;帮助优化个体化治疗规则&#xff0c;从而简化亚组识别过程。BioPred 还…...

【银河麒麟系统常识】命令:dotnet --list-sdks(列出已安装的 .NET SDK 版本)

命令&#xff1a; dotnet --list-sdks 功能 列出当前系统中所有已安装的 .NET SDK 版本&#xff1b; 返回值规则 # 1. 格式&#xff1a;<版本号>[<安装路径>]&#xff1b; # 2. 排序&#xff1a;按版本号从低到高排序&#xff1b;示例...

【深度学习】不管理论,入门从手写数字识别开始

1. 环境安装 学习深度学习&#xff0c;开发语言是Python。Python开发工具有很多。其中 anaconda vscode的Python开发环境很好用&#xff0c;建议使用这个组合。 编写手写数字识别测试代码&#xff0c;需要在使用Anaconda安装以下4个库&#xff1a; NumpyScipymatplotlibsci…...

3.使用epoll实现单线程并发服务器

目录 1. epoll的概述 2. 多线程与epoll的处理流程 2.1 多线程处理流程 2.2 epoll处理流程 3. epoll与多线程的比较 4. epoll的操作函数 4.1 epoll_create() 4.2 epoll_ctl() 4.3 epoll_wait() 5. 示例代码 6. epoll的工作模式 7. 使用O_NONBLOCK防止阻塞 8.运行代…...

关于JVM和OS中的栈帧的区别和内存浅析

关于JVM和OS中的栈帧的区别和内存浅析 刚看了黑马JVM中的栈帧的讲解&#xff0c;感觉和自己理解的栈帧有一定出入&#xff0c;查询资料研究了一下发现的确有天壤之别&#xff0c;可惜黑马并没有讲。 故写下这篇文章巩固一下, OS的栈帧&#xff1a; ​ OS的栈帧会在调用一个函…...