[AI]从零开始的树莓派运行DeepSeek模型教程

一、前言

        在前面的教程中,教了大家如何在windows中使用llama.cpp来运行DeepSeek模型。根据前面的教程中,我们也了解到了,我们只需要编译好llama.cpp就可以运行DeepSeek以及类似的LLM模型。那么本次教程就来教大家如何使用树莓派来运行大模型。这里我树莓派运行的是Linux系统,也就是说,你将本次教程中的内容学会以后,你可以在任何Linux和类Linux的终端中完成大模型的部署。如果你准备好了,就让我们开始吧!

二、谁适合本次教程

        因为已经涉及到操作Linux了,并且还是操作Linux的开发板,学习本教程之前请具备一定的Linux基础和一定的解决问题的能力。本次的操作可以说是比较简单的,一般不会出现问题,如果你在安装环境或者编译时报错,可以尝试在浏览器中寻找类似的错误与这个错误对应的解决办法。学习本教程之前,建议学习我之前发布的在windows中运行llama.cpp的教程:

llama.cpp环境部署:[AI]从零开始的llama.cpp部署与DeepSeek格式转换、量化、运行教程_deepseek hf转gguf-CSDN博客

因为树莓派的性能太低了,我们需要对模型进行量化才能使用,所以现在的方案是,在windows上将模型格式和量化处理好,然后再将模型文件传输到树莓派上。而完成上面的操作就需要部署llama.cpp。 

三、环境的准备

        这里要求大家准备一个树莓派,这里我使用的是树莓派5,当然,也建议大家使用树莓派5。树莓派5运行1B并且F16量化的模型已经非常慢了。所以不推荐大家使用树莓派5以下的版本。这里要求大家将树莓派的系统安装好,并且可以远程到或者是使用HDMI连接显示器。总之需要大家能够操作到树莓派就行了。后面我就使用SSH远程树莓派进行演示。

四、llama.cpp的编译

        这里已经我为我的树莓派装好了一个全新的系统,并且使用SSH连接到了树莓派:

还有就是要求大家树莓派连接到互联网,这里假如我们ping一个网址需要能ping通:

1.安装llama.cpp编译所需的环境

        因为树莓派本质属于国外的嵌入式开发板,所以可能一些软件源我们拉取比较慢甚至无法拉取,那么现在我们就来换一些树莓派的下载源。这里参考了:debian | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

这里我们首先使用下面的命令打开软件源的配置文件:

sudo nano /etc/apt/sources.list

这里我们使用“#”将原本的源都注释掉:

然后将下面的内容复制到原本的源的下面:

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib

完成以上操作以后,我们保存并退出文件。

这里我们使用下面的命令来更新一下我们重新设置的源:

sudo apt update

如图所示,我们已经更新好了:

下面我们来安装编译所需的环境,直接使用下面的命令即可:

sudo apt install cmake gcc g++

这里执行完上面的命令以后llama.cpp的环境就安装完成了。

2.llama.cpp源码拉取

        这里拉取llama.cpp的源码我们需要使用到git命令,下面我们先使用下面的命令来安装一下git:

sudo apt install git

安装好git命令以后,我们就可以直接使用下面的命令拉取llama.cpp的源码了:

git clone https://github.com/ggml-org/llama.cpp.git

如果你这里拉取失败了,可以尝试配置一些正向代理,这里用小猫咪的代理举例,大家开启局域网代理,并且启动系统代理:

然后使用下面的命令来配置git clone的代理:

git config --global http.proxy http://192.168.112.22:7890
git config --global https.proxy http://192.168.112.22:7890

这里的“192.168.112.22”是我在内网中小猫咪所在设备的IP地址,大家写成自己的即可。

配置完成以后,我们应该就可以借助小猫咪的代理将llama.cpp的源码拉下来了:

如果有小伙伴使用上面的方法没办法拉取项目,可以考虑使用下面的git镜像站拉取:

git clone https://gitee.com/ggml-org/llama.cpp.git

使用gitee需要大家输入以下自己的账号。

如果上面的方法都不行,那就直接前往llama.cpp的开源主页下载源码压缩包,llama.cpp开源主页:

下载完以后,大家自行解压即可。解压得到的文件和直接拉取得到的文件是一样的。

不管是直接使用命令还是下载的压缩包进行解压,我们就可以得到下面的文件和文件夹:

3.llama.cpp的编译

        现在我们准备开始编译llama.cpp。这里我们需要在llama.cpp的项目目录下新建一个文件夹,我们在llama.cpp的项目目录下使用下面的命令:

mkdir build

然后使用下面的命令进入这个目录:

cd build/

进入目录以后,我们使用下面的命令生成makefile文件:

cmake .. -DLLAMA_NATIVE=OFF

这里加上“-DLLAMA_NATIVE=OFF”是为了在ARM设备中提升兼容性。

执行命令以后,就生成了编译相关的文件,这些文件指导了编译的过程:

命令执行完以后,我们的bulid目录下也多了很多文件:

然后我们使用下面的命令进行编译:

make -j$(nproc)

后面的“-j$(nproc)”是为了自动传递多核参数。也就是说它会自动识别树莓派的处理器数量并且调用处理器进行编译。

命令执行以后,编译就开始了:

编译的过程中可能出现警告,大家不用在意。只要没出现错误,都可以忽略。因为树莓派的性能确实比较低,所以编译的时间也相对较长。

如果你在未来的某天构建失败了,首先可以考虑去llama.cpp的开源主页看看编译目前的llama.cpp需要多少的cmake版本。当然,也可以将cmake和llama.cpp都降级到我目前的版本。现在是2025年2月23日,目前我的CMake版本是“3.25.1”:

当我们编译结束以后,build的bin文件夹下,就生成了许多可执行文件,这些就是我们后面要用到文件了:

至此,我们llama.cpp的编译就结束了。

五、使用llama.cpp运行GGUF格式的模型

        在前面我们已经部署好了llama.cpp,现在我们就使用llama.cpp来运行GGUF格式的模型了,至于什么是GGUF格式的模型以及如何对模型进行量化,在之前的windows部署llama.cpp里面讲过。大家可以参考那篇教程:

llama.cpp的部署及使用:[AI]从零开始的llama.cpp部署与DeepSeek格式转换、量化、运行教程_deepseek hf转gguf-CSDN博客

当我们将一个模型格式转换,这里我使用“DeepSeek-R1-Distill-Qwen-1.5B”模型,格式转换后如图所示:

这里我们使用ftp服务将这个文件传输到树莓派中,在终端中输入下面的命令:

sftp chulingxiao@192.168.112.10

这里的“chulingxiao”是登录使用的用户名,大家输入自己的用户名即可。后面的IP地址大家修改为自己树莓派的IP地址即可。

进入sftp模式以后,就可以使用sftp命令了:

使用put命令上传文件,格式如下:

put 本地文件路径 树莓派文件路径

这里我们首先在树莓派的llama.cpp的models目录下新建一个以模型名称命名的目录,使用下面的命令:

mkdir DeepSeek-R1-Distill-Qwen-1.5B

然后使用sftp将本地的模型文件上传到我们新建的目录中,这里我使用的命令如下,大家根据自己的路径修改命令即可:

ut F:\OpenProject\llama.cpp\models\DeepSeek-R1-Distill-Qwen-1.5B\DeepSeek-R1-Distill-Qwen-1.5B-F16.gguf /home/chulingxiao/llama.cpp/models/DeepSeek-R1-Distill-Qwen-1.5B/

模型上传后,如图所示:

模型上传完成以后,我们就用我们编译出来的二进制文件来运行这个模型,这里我们回到项目目录使用下面的命令:

./build/bin/llama-cli -m ./models/DeepSeek-R1-Distill-Qwen-1.5B/DeepSeek-R1-Distill-Qwen-1.5B-F16.gguf

大家这里需要根据自己的路径写命令。

输入命令以后。模型就启动起来了:

启动完成以后,就可以进行对话了:

至此,我们在树莓派运行DeepSeek就已经完成了。以后,只要是类似的模型都可以使用这样的方法来使用树莓派来运行。

六、结语

        本次教程中,教了大家如何使用树莓派来运行DeepSeek大模型,当然,也希望大家具有举一反三的能力,上面的方法在其它的Linux系统中也适用。剩下的就留给大家自己探索吧!最后,感谢大家的观看!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/25011.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

03_pyqt5 + vlc 实现视频播放器

1.功能需求如图 按钮: 播放/暂停, 前进/后退, 视频上一个/下一个, 打开视频进度条: 视频进度条显示, 进度条拖拽, 音量控制按键控制: 1,2,3,4缩放画面大小, 2.方案选择 开发语言: python UI界面: pyqt5 qt_designed 设计ui布局 视频编码: python-vlc 方案说明: 视频解码可…

Linux——高级IO(select后续poll,epoll)

目录 一、poll函数 1.函数原型 2.参数说明 3.struct pollfd 结构体 4.返回值 5.使用步骤 6.与 select 的对比 7.适用场景 8.缺点 9.总结 二、epoll函数 1.核心思想 2.核心函数 1. epoll_create - 创建 epoll 实例 2. epoll_ctl - 管理 epoll 事件表 3. epoll_w…

基于 ‌MySQL 数据库‌对三级视图(用户视图、DBA视图、内部视图)的详细解释

基于 ‌MySQL 数据库‌对三级视图(用户视图、DBA视图、内部视图)的详细解释,结合理论与实际操作说明: 一、三级视图核心概念 数据库的三级视图是 ANSI/SPARC 体系结构的核心思想,MySQL 的实现逻辑如下: …

突破性能极限:DeepSeek开源FlashMLA解码内核技术解析

引言:大模型时代的推理加速革命 在生成式AI大行其道的今天,如何提升大语言模型的推理效率已成为行业焦点。DeepSeek团队最新开源的FlashMLA项目凭借其惊人的性能表现引发关注——在H800 GPU上实现580 TFLOPS计算性能,这正是大模型推理优化的…

ROS ur10机械臂添加140夹爪全流程记录

ROS ur10机械臂添加140夹爪 系统版本:Ubuntu20.04 Ros版本:noetic Moveit版本:moveit-noetic 参考博客: ur3robotiq ft sensorrobotiq 2f 140配置rviz仿真环境_有末端力传感器的仿真环境-CSDN博客 UR5机械臂仿真实例&#xf…

Redis速成(1)VMware虚拟机安装Redis+Session验证登录注册+MybatisPlus

课程:黑马程序员Redis入门到实战教程,深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目_哔哩哔哩_bilibili Mybatis与MybatisPlus: 参考springboot,需要额外写mapper.class,在方法上Select等 在ssm中,…

thinkphp下的Job队列处理

需要think-queue扩展,没有的请composer安装一下 "require": {"php": ">7.2.5","topthink/framework": "^6.1","topthink/think-orm": "^2.0","topthink/think-multi-app": &qu…

2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(五)

2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(五) 第一部分:网络平台搭建与设备安全防护任务书第二部分:网络安全事件响应、数字取证调查、应用程序安全任务书任务 1:应急响应&…

JSON Schema 入门指南:如何定义和验证 JSON 数据结构

文章目录 一、引言二、什么是 JSON Schema?三、JSON Schema 的基本结构3.1 基本关键字3.2 对象属性3.3 数组元素3.4 字符串约束3.5 数值约束 四、示例:定义一个简单的 JSON Schema五、使用 JSON Schema 进行验证六、实战效果6.1 如何使用 七、总结 一、引…

VMware虚拟机Mac版安装Win10系统

介绍 Windows 10是由美国微软公司开发的应用于计算机和平板电脑的操作系统,于2015年7月29日发布正式版。系统有生物识别技术、Cortana搜索功能、平板模式、桌面应用、多桌面、开始菜单进化、任务切换器、任务栏的微调、贴靠辅助、通知中心、命令提示符窗口升级、文…

计算机网络:ICMP协议(Internet控制消息协议)介绍

目录 一、简介 二、为什么要有ICMP协议? 三、ICMP协议报文格式 四、ICMP报文的类型 4.1 差错报文 4.2 查询报文 五、ICMP报文的实际案例 5.1 Ping命令 5.2 Traceroute命令 总结 今天和大家聊聊ICMP协议相关的知识,感兴趣的可以一起了解一下! 一、简介 ICMP(Inte…

python读取sqlite温度数据,并画出折线图

需求: 在Windows下请用python画出折线图,x轴是时间,y轴是温度temperature 和体感温度feels_like_temperature 。可以选择县市近1小时,近1天,近1个月的。sqlite文件weather_data.db当前目录下,建表结构如下…

window下kafka安装

kafka下载 下载好,直接解压即可 默认是带有zookeeper(注册中心) 需要先启动zookeeper zookeeper配置 先配置下zookeeper 这个data文件夹是自定建的 随意建在哪里 注意 这里斜杠用和linux一样 启动zookeeper 进入bin/windows目录 启动zookeeper zookeeper-server-start.ba…

开发HarmonyOS NEXT版五子棋游戏实战

大家好,我是 V 哥。首先要公布一个好消息,V 哥原创的《鸿蒙HarmonyOS NEXT 开发之路 卷1:ArkTS 语言篇》图书终于出版了,有正在学习鸿蒙的兄弟可以关注一下,写书真是磨人,耗时半年之久,感概一下…

2月26(信息差)

🌍思科和英伟达新旧双王联手 目标重塑网络架构抢占下沉市场 🎄全球AI大混战升温!超越Sora的阿里万相大模型开源 家用显卡都能跑 ✨小米15 Ultra、小米SU7 Ultra定档2月27日 雷军宣布:向超高端进发 1.全球首个!人形机器…

物联网通信应用案例之《智慧农业》

案例概述 在智慧农业方面,一般的应用场景为可以自动检测温度湿度等一系列环境情况并且可以自动做出相应的处理措施如简单的浇水和温度控制等,且数据情况可远程查看,以及用户可以实现远程控制。 基本实现原理 传感器通过串口将数据传递到Wi…

C# Unity 唐老狮 No.1 模拟面试题

本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要: Unity课程 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho 目录 C# 1.其他类型转object类…

网络安全扫描--基础篇

前言 1、了解互联网安全领域中日趋重要的扫描技术 2、了解在不同网络场景下扫描技术手段 3、熟悉linux下系统内核防护策略并能大件一个有效的系统防护体系 4、增强工作安全意识,并能有效的实践于工作场景中 目录 1、熟悉主机扫描工具(fping,…

P8697 [蓝桥杯 2019 国 C] 最长子序列

P8697 [蓝桥杯 2019 国 C] 最长子序列 题目 分析代码 题目 分析 先分析一波xdm 题意呢就是在s中找有多少个能和t匹配的字符,注意:连续匹配,输出连续的次数 欧克,开始分析,首先,哎~字母!还强调…

一篇docker从入门到精通

Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙盒机制,相互之间不会有任何接口(类似 iP…