首页/新闻资讯/正文详情

Raspberry Pi 官方分享:利用 14MB 的 Function-Calling LLM 实现端侧自然语言硬件控制

发布时间:2026/9/24 17:06:54 来源:云帆数科 栏目:资讯中心
Raspberry Pi 官方分享:利用 14MB 的 Function-Calling LLM 实现端侧自然语言硬件控制
各位开发者好这里是 Raspberry Pi。在边缘计算和嵌入式开发中将自然语言处理NLP与物理硬件控制结合通常需要依赖云端 API 或是笨重的本地硬件加速器。今天我们和大家分享一种极度轻量化的端侧解决方案由 Cactus Compute 开发的 Needle 2 模型。打破硬件限制纯 CPU 运行Needle 2 是一个专门针对函数调用Function-Calling微调的大语言模型体积仅有 14MB。最核心的突破在于它可以在 Raspberry Pi 5 上完全依赖 CPU 离线运行无需搭配任何专用的 AI HAT 或 NPU。极简的开发体验与代码示例在配置上整个环境搭建非常简单python3 -m venv needle-env source needle-env/bin/activate python -m pip install cactus-needle首次下载后Needle 即可在本地运行无需云 API 或网络连接。此示例无需任何额外硬件。import needle from pathlib import Path import subprocess notes_path Path(needle-notes.txt)该类Needle接受使用 Deked 装饰器的函数needle.tool。该装饰器使用每个函数的名称、文档字符串和类型注解来构建其工具模式。在save_note下面的示例中Deked 注解告诉 Needlefunctiontext必须是一个字符串。模型会在底层分析出结构化的 JSON精准选择需要调用的函数并自动填充参数needle.tool def save_note(text: str): Append a note to a local text file. with notes_path.open(a, encodingutf-8) as notes: notes.write(text \n) return {text: text, path: str(notes_path)} needle.tool def get_temperature(): Return the current CPU temperature of this Raspberry Pi in Celsius. out subprocess.check_output([vcgencmd, measure_temp], textTrue) return {temperature_c: float(out.split()[1].split()[0])} agent needle.Needle(tools[save_note, get_temperature]) response agent.run(Save a note that says the cooler is working.)run()在模型内部首先生成以下工具选择为清晰起见输出已进行裁剪{ type: call, function_calls: [ { name: save_note, arguments: { text: the cooler is working } } ] }run()执行该函数并将其返回值包含在response[results][ { text: the cooler is working, path: needle-notes.txt } ]在本次运行中初始complete()内部run()选择了该函数并在 107 毫秒内生成了它的参数。我们还可以问agent.reset() response agent.run(How hot is this Raspberry Pi?)针头呼叫{ type: call, function_calls: [ {name: get_temperature, arguments: {}} ] }run()执行读取操作vcgencmd并将读取结果包含在其结果中{ temperature_c: 49.9 }我们还声明了 __init__set_led(on)、blink_led(times)__init__ 和 __init__并take_photo()通过rpicam-still__init__ 来测试工具选择。Needle 会选择工具普通的 Python 代码决定接下来会发生什么。类似地你可以使用 __init__ 来修饰任何具有清晰名称、类型注解和描述的 Python 函数needle.tool。Needle 的搜索范围刻意缩小。例如询问“法国的首都是什么”它会{ function_calls: [] }在 92 毫秒内返回结果因为我们提供的所有工具都无法回答这个问题。对于一个动作模型来说拒绝不相关的请求才是正确的反应。Needle 的原生会话大小约为 28MB。在这个 Python 演示中包括解释器在内的整个进程最大占用空间在 43MB 到 46.4MB 之间。这些示例运行于 Raspberry Pi 58GB 内存、Raspberry Pi OS仅 CPU 运行cactus-needle版本 2.0.7上。“预填充”和“解码”计数器是 Needle 的会话计数器。 “耗时complete()”列中的每个延迟值都是所选 Python 函数运行之前单次调用的实际耗时。如果您已经编写了 GPIO Zero 函数您可以对其进行修饰并传入。其他应用程序逻辑也同样适用。此外Needle 还可以在笔记本电脑上针对特定工具集进行本地微调。您可以在huggingface.co/Cactus-Compute/needle2和github.com/cactus-compute/needle找到权重和代码。两者都以 Apache 2.0 许可发布。

相关推荐

Windows 跑 Codex:原生 PowerShell 还是 WSL2?仓库放错最容易踩坑
Windows 跑 Codex:原生 PowerShell 还是 WSL2?仓库放错最容易踩坑

Windows 跑 Codex:原生 PowerShell 还是 WSL2?仓库放错最容易踩坑 [!NOTE] Windows 版 ChatGPT 桌面应用默认使用 Windows 原生 Codex Agent,并在 PowerShell 环境运行;也可以把 Agent 切换到 WSL2。 “Agent 在哪里运行”“集成终端显示什么”“仓库实际存在哪个文件系统”… · 2026/9/24 17:06:41

深入解析 React Effect 反模式:将交互逻辑放入事件处理器(Vercel React Best Practices 实战指南)
深入解析 React Effect 反模式:将交互逻辑放入事件处理器(Vercel React Best Practices 实战指南)

深入解析 React Effect 反模式:将交互逻辑放入事件处理器(Vercel React Best Practices 实战指南) 【免费下载链接】phoenix AI Observability & Evaluation 项目地址: https://gitcode.com/gh_mirrors/phoenix13/phoenix 本文源自… · 2026/9/24 17:06:41

一个项目挂 3 个仓库:Codex 多文件夹项目与跨仓 Diff 怎么审
一个项目挂 3 个仓库:Codex 多文件夹项目与跨仓 Diff 怎么审

一个项目挂 3 个仓库:Codex 多文件夹项目与跨仓 Diff 怎么审 [!NOTE] ChatGPT 桌面应用的本地 Project 可以附加多个文件夹,并指定一个 Primary folder;Codex 能读写所有附加目录,但自动发现 AGENTS.md、Skills、config.toml 和默认 Git 操作仍以主目录为中心。 Review pan… · 2026/9/24 17:06:41

为什么职员能工资20K?熟悉掌握了这些Python自动化办公模块
为什么职员能工资20K?熟悉掌握了这些Python自动化办公模块

今天, 我将继续来给大家去分享一下这个自动化办公库, 而这个库是我花费了两周的时间去进行整理的。这次的这个内容, 它就是把那些库给说完了, 这些库里头, 包括了Excel、Word、PPT、ODF、PDF、邮件、微信、文件处理等所有能在办公场景实现自动化的库, 就是希望这些东西能够对大… · 2026/9/24 17:44:33

python常用内置函数大全,python内置函数有哪些
python常用内置函数大全,python内置函数有哪些

一、数学函数1.关于abs()这个函数, 它的主要作用就是帮你去取绝对值。print(abs(-10))>>>102.该函数用于在同一操作过程中, 同时获取除法运算所得到的商值以及余数值。print(divmod(7,2))>>>(3, 1)3.sum()这一函数, 它的主要功能是用来进行求和计算。li[1,2,… · 2026/9/24 17:44:33

实现,提供客户端和服务器功能
实现,提供客户端和服务器功能

它是SSHv2协议的实现, 提供客户端和服务器功能。它本身是一个纯粹的接口, 这个接口紧密围绕着SSH网络的概念来构建。我们可以使用它, 通过这样的方式来进行ssh操作, 而且这个过程会变得相当的方便。该方案由两个核心组件构成, 具体表现为: 和。它的作用, 实际上就跟咱们平时用的… · 2026/9/24 17:44:33

Python数据处理教程:多表格文件单元格数据平均值计算
Python数据处理教程:多表格文件单元格数据平均值计算

我们来详细讲解一下, 如何针对那一些存放在多个表格文档里面的单元格数据, 进行平均数值的计算操作。我们在日常的这种数据处理的实际工作过程里面, 总是会经常去面对一些比较具体的情况, 就是我们需要从一个或者多个包含表格格式的文件里面把相关的数据信息给提取出来。在提取… · 2026/9/24 17:44:33

『无为则无心』Python函数 — 30、Python变量的作用域
『无为则无心』Python函数 — 30、Python变量的作用域

1、作用于的概念变量作用域指的是变量生效的范围, 在中一共有两种作用域。函数作用域的第二部分我们来讨论一下局部变量。所谓局部变量呢, 它就是被定义在函数体内部的那些变量, 也就是只在函数体内部有效。def testA():# 局部变量a# 在函数中为变量赋值时,默认都是… · 2026/9/24 17:44:21

没错,最强的Python编辑器还是它
没错,最强的Python编辑器还是它

为什么说才是搞的真爱,没用过的人可能体会不到所有人都在讨论, 哪一个写代码时最好用? 大家争论得非常激烈。许多人认为它是最厉害的工具。事实果真如此吗? 有人站出来说, 那个更轻巧灵活, 而且插件很多。这种说法听起来确实有道理。但是它的特点依然很突出, 它是… · 2026/9/24 17:44:21

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码