1 项目介绍

1.1 项目背景

自《神农本草经》记载其 “主伤中,除痹,下气,补五脏虚劳羸瘦,强阴,久服厚肠胃" 以来,铁皮石斛便以 "九大仙草之首" 的美誉承载着千年中医药文化精髓。 随着健康中国战略深入推进与民众养生意识觉醒,兼具药用价值与生态观赏性的铁皮石斛,逐渐从传统中药材种植走向家庭场景,成为都市人群 "阳台经济" 与 "健康消费" 结合的新选择,家庭种植户数量近年以 20% 以上的年均增速增长,市场规模持续扩容。如图为石斛照片。

1.2 用户痛点

(1)病害诊断误判率高,专业能力不足 铁皮石斛病害症状高度相似,例如炭疽病与叶斑病均表现为褐色斑点、软腐病与茎基腐病均有茎秆软化特征,普通养护者缺乏专业鉴别能力,且检测手段仅依赖肉眼观察,叠加个人经验差异,导致病害误判率大大增高。误判后若误用药剂,不仅无法控制病害扩散,还会加剧植株损伤,造成幼苗成活率低、成株多糖积累量下降等问题。如图为石斛病害图片。

(2)养护知识壁垒高,环境调控难把控 铁皮石斛对微环境要求苛刻,普通用户难以精准把控:浇水过多易导致气生根腐烂,光照过强会引发叶片灼伤,温度波动过大则影响有效成分积累

2 技术方案

围绕上述痛点,本项目以文心ERNIE-4.5-VL-28B-A3B多模态大模型及ERNIE-4.5-0.3B模型为核心,结合物联网架构与ERNIEKit工具链,构建 “感知-诊断-决策-执行”全链路解决方案,形成软硬件协同方案。 以下为项目实物图。

以下以大模型应用方面的多模态病害诊断为例,展示对应的开发流程。

  • 多模态模型(ERNIE 4.5-VL):解析石斛病虫害图像,提取结构化视觉特征;
  • 文本模型(ERNIE 4.5-0.3B):融合视觉特征文本、传感器数据、人工感官描述,专项微调病虫害诊断能力;

2.1 环境准备

ERNIE系列模型的运行依赖特定的源码环境与依赖库,尤其是针对SFT微调与LoRA权重合并的需求,需严格按照“源码解压-依赖安装-模型下载”的流程操作,确保工具链与模型版本的兼容性。 首先需获取ERNIE的核心源码包,通过解压命令完成基础目录搭建。这里选用的ERNIE-develop源码包包含了ERNIEKit工具的完整实现,以及SFT微调、模型导出等所需的配置模板,是后续操作的基础。

# 解压ERNIE源码包,获取完整工具链与配置模板
!unzip ERNIE-develop.zip

解压完成后会生成“ERNIE”根目录,其中“erniekit”文件夹是核心工具集,“examples/configs”目录下则预置了ERNIE 4.5系列模型的微调与部署配置文件,为后续SFT与LoRA配置提供了便捷模板。

ERNIE模型对依赖库的版本要求较高,尤其是GPU环境下的训练加速、LoRA权重计算等功能,需通过指定的requirements文件安装对应依赖。采用“可编辑模式”安装ERNIE源码,能在后续修改配置文件或自定义微调逻辑时,无需重复安装即可生效,大幅提升开发效率。

# 进入源码目录并安装GPU环境依赖
%cd ERNIE
!python -m pip install -r requirements/gpu/requirements.txt
# 可编辑模式安装ERNIE,便于后续代码与配置修改
!python -m pip install -e .

上述命令中,“requirements/gpu/requirements.txt”已预置适配PaddlePaddle GPU版本的依赖包,包括模型训练所需的深度学习框架、数据处理库及权重计算相关工具,确保LoRA微调时的低秩矩阵运算高效执行。

本项目选用ERNIE 4.5-0.3B-Paddle作为文本模型的基础版本,该模型体积轻量、推理速度快,适配家庭养殖场景的端侧部署需求。通过AI Studio的模型下载命令,可直接获取预训练权重,避免手动下载的繁琐与版本错配问题。

# 返回上级目录,规范模型存储路径
%cd ..
# 从AI Studio模型库下载ERNIE 4.5-0.3B预训练模型
!aistudio download --model PaddlePaddle/ERNIE-4.5-0.3B-Paddle --local_dir baidu/ERNIE-4.5-0.3B-Paddle

下载后的模型会存储在“baidu/ERNIE-4.5-0.3B-Paddle”目录下,包含模型权重文件、配置文件及词表,可直接被ERNIEKit调用进行后续的SFT微调。

为实现模型训练后的快速部署,需提前安装FastDeploy部署框架,该框架支持ERNIE系列模型的端侧推理优化,能将微调后的模型快速适配到“灵斛园”HarmonyOS App的后端服务中。


# 安装FastDeploy GPU版本,支持模型高效部署
!pip install fastdeploy-gpu -i https://www.paddlepaddle.org.cn/packages/stable/fastdeploy-gpu-80_90/

2.2 模型训练

ERNIEKit作为百度官方的ERNIE模型开发工具,整合了模型训练、权重合并、导出部署等全流程能力,是实现SFT微调与LoRA轻量化策略的核心载体。其优势在于无需手动编写复杂的训练循环,仅通过修改配置文件即可完成定制化微调。

SFT微调配置:适配铁皮石斛诊断场景

SFT微调的核心是让预训练模型学习铁皮石斛病虫害诊断的“症状-结论”对应逻辑,需基于项目数据集配置训练参数。我们直接复用ERNIE源码中“examples/configs/ERNIE-4.5-0.3B/run_sft.yaml”配置模板,重点修改数据路径、LoRA参数与训练超参数:

  • 数据配置:指定“train_file”为我们基于典籍与专家知识构建的铁皮石斛病虫害数据集路径,“eval_file”为抽取的10条评估样本,确保模型学习专业且真实的诊断知识;

  • LoRA参数:配置lora_rank=8、lora_alpha=32,通过低秩矩阵更新模型参数,在减少计算量与显存占用的同时,保留模型的泛化能力;

  • 训练超参数:设置batch_size=1、gradient_accumulation_steps=8,适配AI Studio的GPU显存环境,max_steps=100完成基础微调,确保训练高效且收敛。

配置完成后,通过ERNIEKit的train命令启动SFT微调,工具会自动加载预训练模型、处理数据集并执行LoRA权重更新:

# 进入ERNIE目录,执行SFT+LoRA微调
%cd ERNIE
!erniekit train examples/configs/ERNIE-4.5-0.3B/run_sft.yaml

训练过程中,ERNIEKit会实时输出训练损失、步数等信息,最终在“output”目录下保存LoRA微调后的增量权重,该权重仅包含低秩矩阵参数,体积远小于完整模型,便于后续合并与部署。

2.3 权重合并

由于LoRA微调仅保存增量权重,需通过ERNIEKit的export命令将其与ERNIE 4.5-0.3B的预训练权重合并,生成完整的可推理模型。这一步是衔接训练与部署的关键,确保模型能独立执行诊断推理。

# 合并LoRA权重与预训练模型权重
!erniekit export examples/configs/ERNIE-4.5-0.3B/run_export.yaml lora=True

执行后,合并后的模型会保存至“ERNIE/output/export/”目录,包含 safetensors 格式的权重文件与配置文件。此时的模型已具备铁皮石斛病虫害诊断能力,可通过FastDeploy部署为后端服务,与ERNIE 4.5-VL多模态模型协同工作。

2.4 模型部署

在线服务模式将模型部署成一个标准的、持续运行的 Web API,任何支持 HTTP 请求的客户端(如网页、移动应用、其他后端服务)都可以通过网络来调用它。

FastDeploy 极大地简化了这个过程,并使其兼容 OpenAI 的 API 格式,在终端启动如下命令。

python -m fastdeploy.entrypoints.openai.api_server \
    --model ./output/export \
    --port 8188 \
    --max-model-len 8192

同时,通过后端调用,在App端进行拍照识别、快捷使用。

3 总结

完成文本模型的SFT+LoRA微调后,即可与ERNIE 4.5-VL多模态模型形成协同架构,落地到“灵斛园”HarmonyOS App的实际场景中。用户上传铁皮石斛叶片病灶图像或输入症状描述后,系统会自动调取物联网传感器的温湿度历史数据,由ERNIE 4.5-VL解析图像中的病灶特征并转化为结构化文本,再联合经微调的ERNIE 4.5-0.3B文本模型,结合症状描述与传感器数据进行多维度交叉分析。

例如,当用户输入“叶片黏腻感”并上传模糊的病灶图像时,单一图像模型可能误判为其他病害,而协同模型会结合传感器收集的“近日32℃高温、75%高湿”数据,快速匹配数据集中学到的“细菌性软腐病”特征,输出精准的诊断结果与“切除腐部+喷链霉素+降温至28℃以下”的养护方案,解决单一模态诊断的误判问题。

从环境搭建到模型微调,ERNIEKit工具贯穿了全流程,让SFT与LoRA等复杂技术变得简洁可控。最终,经过微调的双模型协同架构,将典籍知识与专家经验转化为可触达用户的智能诊断能力,同时也是“技术工具化、能力场景化”的核心价值体现。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐