0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开发者分享 | 在 MCU 上探索 Qwen2.5 代码生成

先楫半导体HPMicro 2026-06-10 08:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

最近,我做了一个开发者实验:尝试把 Qwen2.5-0.5B-Instruct 部署到 HPM6800EVK 上,让它在板端完成本地推理。

这里的“本地”不是把 MCU 当成串口终端,再去调用云端 API;也不是由 PC 代跑模型、板子只负责显示结果。模型权重、Tokenizer、推理框架、采样逻辑、交互流程都运行在 HPM6800EVK 开发板上。用户通过 UART 输入问题,MCU 在本地完成推理并流式输出回答。

这次视频演示的是两个方向:

第一个是本地聊天。

我将 Qwen2.5-0.5B-Instruct 移植到 HPM6800EVK 上运行。这个模型约 4.94 亿参数,经过混合量化后,模型文件约 414MB,Tokenizer 文件约 2.9MB。板端从 SD/TF 卡加载模型和词表,在 MCU 上完成前向推理,并通过 UART 提供交互式聊天体验。

在这个演示工程中,主要做了几件关键工作:

将模型推理流程用 C 实现并适配 MCU 运行环境;

将 Qwen2.5 的 Tokenizer 导出为板端可加载的二进制格式;

针对 HPM6880 的 RISC-V/Andes D45 内核使用 P 扩展 SIMD 指令优化矩阵计算;

对 KV cache、权重布局和运行时内存进行压缩与规划,让模型能够在板载 DDR 资源中运行;

保留 UART 流式输出,让用户能看到模型逐 token 生成结果。

在当前实验配置下,这个聊天 demo 可以演示中文问答、多轮对话和一些基础代码类问题。需要注意的是,整体生成速度并不快,更适合观察流式输出过程和验证链路,而不是追求即时响应。它验证的重点不是“MCU 要和 GPU 拼吞吐”,而是在特定硬件和模型配置下,观察小规模量化语言模型的完整推理链路能在 MCU 平台上做到什么。


第二个是代码生成。

聊天只是第一步。更进一步,我希望尝试让板端模型不仅能回答问题,还能把自然语言任务转成可执行代码。

在代码生成 demo 中,用户可以输入类似这样的任务:

求 10 的阶乘,并打印结果

板端大模型会生成 Python 代码,然后交给同一块 MCU 上嵌入的 MicroPython 运行时执行,最后把结果打印出来。

这部分的交互速度会更慢,更像是等待模型逐步生成一段可执行脚本,而不是云端代码助手那种即时响应体验。

也就是说,这条链路不是简单地“模型输出一段文本”,而是:


自然语言任务 → 本地大模型生成 Python → MicroPython 在板端执行 → 输出运行结果

为了让这条链路真正跑通,代码生成 demo 中需要增加几个工程模块:

针对代码生成任务设计 prompt,让模型尽量输出可执行 Python;

在 MCU 上集成 MicroPython 编译器、VM 和 GC 运行时;

增加mathrandom等常用能力的板端适配;

将 MicroPython 的open()和简化os模块桥接到板端文件系统接口

支持代码运行失败后的错误反馈和重试,让模型有机会根据错误重新生成代码;

因此,视频里看到的文件读写也不是预置输出。模型生成的 Python 代码可以通过 MicroPython 直接访问 SD/TF 卡上的文件系统,例如创建文件、写入内容、读取文件、遍历目录等。

这里也需要强调:代码生成 demo 更适合简单、受控任务演示,例如计算、字符串处理和基础文件读写。它不能被理解为可以稳定完成复杂工程代码,也不能直接用于安全关键或实时控制逻辑。


这块板子是什么?

本次演示使用的是 HPM6800EVK 开发板。它搭载 HPM6800/HPM6880 系列高性能 RISC-V MCU,主频可达 600MHz,并配备大容量 DDR3L 外部存储、Quad SPI NOR Flash、eMMC、TF 卡等存储资源。开发板还提供 LCD、MIPI-DSI、MIPI-CSI、DVP 摄像头、千兆以太网USB 2.0 OTG、音频CAN、RGB LED 等丰富外设接口,适合用于图形显示、音视频处理、工业控制以及边缘 AI 等场景验证。

在这次 LLM demo 中,模型文件从 SD/TF 卡加载,模型权重、KV cache、运行时缓冲区等主要依赖板载 DDR 资源,推理和交互逻辑运行在 MCU 端,通过 UART 与用户交互。


为什么要在 MCU 上跑大模型?

从开发者视角看,我主要关注三个点。

首先,它让我能观察小规模量化语言模型在 MCU 平台上的运行边界。过去更多讨论的是服务器、PC、手机、边缘计算盒子,现在具备外部 DDR 的高性能 MCU 也可以进入本地模型推理的实验范围。

其次,它让我看到传统 MCU 工程可以接入一些语言模型相关模块,比如 Tokenizer、采样、脚本运行时和文件系统接口。

第三,代码生成这段比较有意思:模型先生成一段脚本,再由板端 MicroPython 执行。现在只适合简单任务,但这个链路本身值得继续试。

当然,这仍然是一个展示和方向探索 demo。它依赖特定硬件、板载 DDR 和量化后的模型配置,响应速度也比较慢。目前更适合用来观察“MCU 本地跑小模型”这条路能走到哪里,而不是作为产品应用来理解。

这也是我做这个 demo 最想表达的点:


这次 demo 至少说明:在这类硬件和模型配置下,MCU 本地跑小模型推理链路是可以做方向探索的。


下面这条视频,是从开发者视角做的一次实际演示。视频中展示了 HPM6800EVK 上的本地聊天、自然语言代码生成、MicroPython 板端执行,以及 SD/TF 卡文件读写。

后续我也会继续关注边缘 AI、本地小模型和 MCU 智能化方向的更多探索。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    19314

    浏览量

    405702
  • uart
    +关注

    关注

    22

    文章

    1328

    浏览量

    107306
  • 开发者
    +关注

    关注

    1

    文章

    811

    浏览量

    18132
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    openEuler基于vLLM Ascend部署Qwen3

    验证。目前,开发者可以基于OpenAtom openEuler(简称“openEuler”)和vLLM昇腾设备完成 Qwen3 推理。
    的头像 发表于 05-07 14:44 2217次阅读
    <b class='flag-5'>在</b>openEuler<b class='flag-5'>上</b>基于vLLM Ascend部署<b class='flag-5'>Qwen</b>3

    2024年上海海思MCU开发者体验官招募,手机/MatePad大奖等你拿!

    名。 2)优秀MCU开发者体验官奖:按评选标总分第4-10名。 3)MCU开发者体验官贡献奖:按评选标准总分大于60分,不含前10名。 4)最具商业价值奖:
    发表于 08-02 17:29

    MCU代码自动生成功能,Gokit二次开发视频教学

    Gokit3V的程序实现原理,以及开发中所需注意的数据处理。针对于已使用过“代码自动生成工具”,并且想要深入了解设备端MCU版程序实现机制的开发者
    发表于 10-31 18:30

    代码自动生成工具,支持独立MCU方案、SOC方案

    1.什么是“代码自动生成工具”为了降低开发者开发门槛,缩短开发周期,降低开发资源投入,机智云推
    发表于 12-20 16:25

    STM32峰会:机智云MCU代码开发工具降低智能硬件开发成本

    全球最大的物联网应用开发者社区。平台通过多元化的API支持,完善的SDK、IDE开发环境,全自动的嵌入式和移动应用代码生成器等完整的工具链,帮助开发
    发表于 04-27 12:02

    绝对干货!HarmonyOS开发者日资料全公开,鸿蒙开发者都在看

    731HarmonyOS开发者日大会PPT资料全在这了,想要了解的小伙伴可以自行下载啦~下载资料的小伙伴还可以评论区回复领取5个积分哦1、HarmonyOS 职业认证解读:该主题是开发者非常关注
    发表于 08-04 14:36

    c语言代码自动生成工具,MCU代码自动生成工具介绍

    MCU代码自动生成工具介绍文档编辑原标题:GoKit3二次开发-代码自动生成工具介绍前文需知1.
    发表于 10-28 17:36 8次下载
    c语言<b class='flag-5'>代码</b>自动<b class='flag-5'>生成</b>工具,<b class='flag-5'>MCU</b><b class='flag-5'>代码</b>自动<b class='flag-5'>生成</b>工具介绍

    涂鸦标准模组MCU SDK开发流程

    MCU SDK 是根据涂鸦 IoT 开发平台定义的产品功能,自动生成MCU 代码。目前主要支持的MC
    发表于 10-28 20:36 15次下载
    涂鸦标准模组<b class='flag-5'>MCU</b> SDK<b class='flag-5'>开发</b>流程

    openEuler Summit开发者峰会:欧拉社区与开发者持续活跃 原创项目代码仓新增50%

    openEuler Summit开发者峰会:欧拉社区与开发者持续活跃,原创项目代码仓新增50%,多样性算力多样化场景的全方面发展。
    的头像 发表于 11-10 10:17 1846次阅读
    openEuler Summit<b class='flag-5'>开发者</b>峰会:欧拉社区与<b class='flag-5'>开发者</b>持续活跃 原创项目<b class='flag-5'>代码</b>仓新增50%

    号称全球最强开源模型 ——Qwen2.5 系列震撼来袭!PerfXCloud同步上线,快来体验!

    。PerfXCloud(澎峰云)大模型开发与服务平台第一时间支持 Qwen2.5 72B 并在平台完成上线,赶快来体验吧! Qwen2.5系列模型 更大的训练数据集: Qwen2.5
    的头像 发表于 09-25 16:52 2675次阅读
    号称全球最强开源模型 ——<b class='flag-5'>Qwen2.5</b> 系列震撼来袭!PerfXCloud同步上线,快来体验!

    阿里云开源Qwen2.5-Coder代码模型系列

    Qwen2.5-Coder-32B-Instruct,代码生成领域取得了显著成就。据官方介绍,该模型EvalPlus等十多个主流的
    的头像 发表于 11-14 11:28 1937次阅读

    Qwen大模型助力开发低成本AI推理方案

    阿里巴巴的开源Qwen2.5模型近期AI领域引发了广泛关注。这一大模型的推出,为斯坦福大学与伯克利大学的研究人员提供了强大的技术支持,使他们能够成功开发出低成本的AI推理模型。 据悉,斯坦福大学
    的头像 发表于 02-12 09:19 1294次阅读

    阿里巴巴Qwen大模型助力开发低成本DeepSeek替代方案

    近日,阿里巴巴的开源Qwen2.5模型AI领域再次展现其强大实力,为斯坦福大学与伯克利大学的研究人员提供了低成本的AI训练解决方案。借助这一技术,两所知名学府的研究团队成功开发出价格低于50美元
    的头像 发表于 02-12 13:42 1596次阅读

    开发者分享】开源硬核玩家集结:这些MCU板子泰酷了!

    前言本篇文章内容主要收录了由开发者基于先楫半导体高性能MCU开发的各类DIY开源硬件项目,涵盖不同应用方向与创意实践。部分项目代码可直接在本仓库下载,部分则由
    的头像 发表于 05-26 17:31 1967次阅读
    【<b class='flag-5'>开发者</b>分享】开源硬核玩家集结:这些<b class='flag-5'>MCU</b>板子泰酷了!

    GTT2.5协议开发者手册解读

    GTT2.5协议开发者手册解读 一、GTT2.5协议简介 GTT 2.5命令协议是面向对象软件设计的一次进化。它允许用户通过RAM中存储值
    的头像 发表于 06-02 14:05 111次阅读