Project Icon

pi-card

树莓派上的离线AI智能助手

Pi-C.A.R.D是一个完全运行在树莓派上的离线AI智能助手项目。它集成了标准大语言模型的对话能力,同时支持拍照、图像描述和分析功能。该系统通过唤醒词或按钮触发对话,具有可配置的对话记忆功能。Pi-C.A.R.D采用C++实现音频转录和视觉语言模型,确保高效运行,同时保护用户隐私。

Pi-C.A.R.D

目录

演示

(更好的视频即将推出)

介绍

Pi-Card 是一个完全运行在树莓派上的 AI 驱动助手。它能够在对话环境中完成标准 LLM(如 ChatGPT)可以做的任何事情。 此外,如果配备了摄像头,你还可以要求 Pi-card 拍照、描述所见内容,并询问关于该图像的问题。

为什么叫 Pi-card?

树莓 Pi - 摄像头 音频 识别 设备

如果你能想到更好的方式来强制这个缩写,请提交问题或拉取请求。

它是如何工作的?

Pi-Card 完全运行在你的树莓派上。

使用唤醒词。一旦运行 main.py,系统将监听你的唤醒词。说出唤醒词后,你就正式进入对话。在对话中,你不需要重复唤醒词。系统将继续监听你的命令,直到你说"停止"、"退出"或"再见"之类的话。

使用按钮。如果你能弄到一个面包板、一些线和一个按钮,使用按钮来处理对话是一种更流畅的交互方式(根据我的经验)。这是通过按下按钮,然后说出你的命令来实现的。按钮是一个简单的 GPIO 按钮,可以按照 main_button.py 文件中的说明进行设置。

聊天机器人有一个可配置的对话记忆,这意味着如果你想让助手重复它说过的话,或者详细说明之前的话题,你可以这样做。为了获得更快的响应,你可以在 config.py 文件中将记忆设置为一个较小的数字。

它有多有用?

该系统旨在成为一个有趣的项目,可以作为一个 有点 有帮助的 AI 助手。由于一切都在本地完成,系统的功能和速度不会像基于云的系统那样强大或快速。然而,该系统仍然有很大的改进空间。

为什么这不是一个应用程序?

主要原因是我想创建一个完全离线且不需要任何互联网连接的语音助手。这主要是因为我想确保用户的隐私受到保护,用户的数据不会被发送到任何第三方服务器。我还想知道在完全离线的环境中,语音助手能有多强大。

使用方法

下载存储库、安装所需的软件包并按照其他设置说明操作后,你可以通过运行以下命令来运行主程序:

python main.py

python main_button.py

程序运行后,你可以通过说出唤醒词来开始与助手对话。默认的唤醒词是"hey assistant",但你可以在 config.py 文件中更改它。如果使用按钮版本,你可以按下按钮开始对话,或随时打断助手。

设置

软件

为了使系统尽可能快速和精简,我们使用音频转录和视觉语言模型的 C++ 实现。这是通过出色的库 whisper.cpp(用于音频转录)和 llama.cpp(用于视觉语言模型)来完成的。

在这两种情况下,请在你喜欢的位置克隆这些存储库,并将它们的路径添加到 config.py 文件中。

克隆后,请进入每个存储库,按照设置说明让模型运行起来。下面给出一些提示:

对于 llama.cpp,我们使用的是视觉语言模型功能,这与标准设置略有不同。你需要按照 LlaVA 的设置说明进行操作,但将使用的模型更新为更适合这个设备的 Moondream2

要安装 Moondream,你需要去 HuggingFace 模型中心下载模型。我使用 Python 完成了这个操作,命令如下。再次确保将视觉模型路径添加到 config.py 文件中。

from huggingface_hub import snapshot_download
model_id="vikhyatk/moondream2"
snapshot_download(repo_id=model_id, local_dir=your/local/path, local_dir_use_symlinks=False, revision="main")

工具

为了让 pi-card 更像一个真正的助手,它可以访问几个工具。这些是通过 tool-bert 实现的,这是一个经过微调的 BERT 版本,用于决定何时访问外部信息。关于如何制作这个版本的更多信息可以在这里找到。

该模型很容易安装,但要启用工具访问,请查看 .env.example 文件,了解需要哪些密钥和秘密。

对于 whisper.cpp,你需要按照 README 中的快速入门指南进行操作。

由于这个项目依赖于公开可用的模型,根据使用的模型,这个助手的限制将与模型的限制相同。

硬件

硬件设置相当简单。你需要一个树莓派 5 Model B、一个 USB 麦克风、一个扬声器和一个摄像头。

USB 麦克风和扬声器可以插入树莓派的 USB 端口。摄像头可以连接到树莓派的摄像头端口。

我在我的设置中使用了以下硬件:

请注意,树莓派5有新的摄像头接口,因此需要新的摄像头连接器。同时,虽然这个项目主要针对树莓派5,但它也应该适用于其他设备。

关于设置GPIO按钮,我发现这个教程的前几分钟非常有帮助。

你可以自由选择,这些是对我有用的组件!

基准测试

这个表格是对各种模型响应时间的非常粗略的基准测试。

转录模型

模型加载时间总时间
Whisper Tiny (en)0.113秒1.76秒
Whisper Base (en)0.159秒3.36秒

大型语言模型

由于这个因对话/响应的大小而异,这里只列出了大约的每秒令牌处理量。

模型提示评估~响应时间
Phi 3 Instruct (3B) (Q4_0)4.65令牌/秒3.8令牌/秒3.5秒
Llama 3 Instruct (8B) (Q4_0)2.37秒2.00秒5.0秒
Qwen2 Instruct (1.5B) (Q4_0)--1.0秒
Picard (0.5B) (fp16)--0.9秒

(响应时间 ~= 提示评估持续时间)

视觉语言模型

模型在上下文中加载图像时间开始生成时间
Moondream262秒3.5秒

这意味着对于视觉语言模型,最大的瓶颈是将所有"静默"图像令牌加载到LLM内存中。对于Moondream来说,这是729个图像令牌,所以需要一定的时间是可以理解的。

这是Moondream2的5月修订版,我最近没有经常使用它,但如果这个模型改用池化层,它的延迟应该会大幅下降,这将是一个巨大的改进。

超频

请自行承担风险!

我发现加快上述所有数字的一种方法是给我的树莓派超频。你可以按照这里的说明进行操作。我不建议将频率提高到3.0 GHz,而且你的机器可能甚至不允许你这么做。我只能将我的机器提高到2.6 GHz,它崩溃过一次,但除此之外工作正常,并且加快了上述所有基准测试的速度,我认为这大致与提高的时钟速度成正比。

如果你能接受设备烧毁的风险和额外的功耗,我建议你这样做。确保你有一个好的散热系统。

路线图

即将推出,但我计划在这里添加关于当前已实现的功能和未来可以做的事情的注释。以下是一些简要说明:

  • 基本对话能力
  • 摄像头功能
  • 基准响应时间
  • 测试超频
  • 弄清楚如何加快Whisper的速度
  • 添加更多外部服务
  • 添加中断助手并提出新问题的能力
  • 使用自定义调优模型
  • 新的YouTube视频
  • 使用带有图像令牌池化的Moondream模型
  • 改进外部服务功能模型(tool-bert)
  • 连接便携电源时进行测试
  • 正式写下我如何进行微调和移植的过程(因为我已经忘记了)
  • 将仓库Docker化以便在更多设备上测试
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号