这是我经过团队智能垃圾分类项目讨论后的第一篇技术博客。我希望通过这篇记录,整理在项目启动初期的构想、思路以及相关的技术探索过程,一方面是为了梳理思路,另一方面也是为了沉淀过程中涉及的技术知识点。因为是早期探索,我根据我们讨论的初步想法搜索了一些相关的技术。
一、 项目背景与核心构想
A. 项目起始:聚焦于智能垃圾分类
在寻找具体应用场景时,我们注意到了“垃圾分类”这一领域。垃圾分类和大模型的文本处理和语义理解能力十分吻合,垃圾分类不仅与每个人的日常生活息息相关,也是推动环境保护和资源循环利用的关键环节。但是现实中垃圾分类面临诸多挑战:
- 复杂性高: 分类标准繁多,不同城市、地区的标准存在差异,且涉及大量物品种类。
- 认知门槛: 普通居民难以准确掌握所有分类规则,尤其对于复合材料、受污染物品等特殊情况,判断难度更大。
- 效率低下: 人工查询或依赖有限经验进行分类,效率不高,也容易出错。
这些挑战导致垃圾分类的实际效果往往不尽如人意,存在“高实践、低效果”的现象。我们认为,这恰恰是技术可以发挥价值的地方。如果能利用AI技术,特别是结合视觉理解和语言推理能力,开发一款智能应用,帮助用户快速、准确地完成垃圾分类,将具有显著的社会价值和实用意义。
B. 核心思路
我们初步的核心构想是构建一个基于图像识别的智能垃圾分类系统。用户只需通过手机或其他设备拍摄并上传垃圾物品的图片,系统就能自动识别图片中的物品,并结合相关的垃圾分类知识,给出准确的分类建议和处理指导。
这个思路的关键在于结合视觉理解和智能决策:
- 视觉理解: 系统需要能够看懂用户上传的图片,识别出图片中的主要物品是什么,这就遇到了第一个问题,DeepSeek并不是一个多模态模型,它看不懂图片。
- 智能决策: 在能够通过图片识别物品的基础上,系统需要调用语言模型和相关的垃圾分类知识库,判断该物品属于哪个垃圾类别,并能处理特殊情况(如污染、复合材质等)。
二、 技术探索与思考
为了实现上述构想,我们需要整合多种AI技术。以下是我初步的技术探索。
A. 图像理解
要让系统理解用户上传的图片,我们首先想到了使用传统的深度学习框架,通过大量的训练来识别垃圾类别,但这种方式需要大量前置知识,并且技术栈本科并未接触到。最终还是选择了搭配另一个小型多模态模型。多模态模型能够同时处理和理解多种类型的数据,如图像和文本。我们的计划是:
-
本地部署VLM: 考虑到成本、响应速度和数据隐私(虽然本项目敏感度不高,但本地处理总是一个优势),我们计划先在本地部署一个视觉语言模型。VLM能够接受图像输入并生成文本描述(即Image Captioning)。
-
选择合适的VLM: 市场上存在多种开源VLM可供选择,例如 LLaVA(基于LLaMA,有明确的本地部署指南和资源需求说明,如7B模型需约8GB VRAM),BLIP(Salesforce开发,同样支持图像描述,有Hugging Face集成和本地运行示例 ),以及Florence-2 、MiniCPM-Llama3-V 等。我们需要评估这些模型的性能(描述准确性、与垃圾物品的相关性)、资源需求(VRAM、CPU、内存)以及本地部署的复杂度。选择时需注意,图像描述任务与简单的图像分类不同,它需要模型生成更自然的语言描述。
- 表1: 本地VLM初步选型考虑
模型 | 关键特性 | 部署资源 (参考) | 优点 | 缺点/挑战 |
LLaVA | 基于LLaMA/Vicuna,支持图像问答和描述,有明确部署指南 | 7B需~8GB VRAM, 13B需~16GB VRAM (4-bit量化) | 社区活跃,部署步骤清晰,支持Gradio WebUI | 性能依赖基础LLM,描述细节可能不如专用模型 25 |
BLIP/BLIP-2 | Salesforce开发,支持图像描述、VQA,集成于Hugging Face Transformers | 未明确VRAM,但有本地运行代码示例 | 官方支持,易于通过Transformers库使用,有多种预训练版本 23 | 部署细节需自行探索,性能对比需测试 |
Florence-2 | Microsoft开发,视觉基础模型,支持多种视觉任务(描述、检测等) | 未明确VRAM | 功能全面,来自大厂 | 部署和使用文档相对较少 |
MiniCPM-Llama3-V | 清华系开发,紧凑型8B模型,支持图像、多图、视频理解,多语言,易于部署 | 8B参数 | 体积小,性能强,支持多模态,易于本地部署 | 相对较新,社区和长期支持待观察 |
其他模型 | 如Llama 3.2 Vision, Molmo, Pixtral 11 等 | 各异 | 开源,性能先进 | 可能需要更多研究和适配工作 |
- 构建微调数据集:,由于小型视觉语言模型训练参数量较少,可能需要进一步构建数据集进行微调。
B. 垃圾分类决策
单纯的图像描述不足以完成分类任务,我们需要一个文本模型来理解物品描述并根据分类规则进行判断。这就是DeepSeek发挥作用的地方。
- 选择DeepSeek模型: DEEPSEEK提供了多个模型,如
deepseek-chat
(基于DeepSeek-V3) 和deepseek-reasoner
(基于DeepSeek-R1) 。考虑到垃圾分类任务需要一定的理解和推理能力(尤其是在处理复杂情况时),并且DeepSeek模型在NLP任务上表现出色,我初步倾向于使用deepseek-reasoner
。DeepSeek-R1尤其强调了其推理能力。 - 微调(Fine-tuning): 预训练的通用LLM可能无法直接、准确地执行垃圾分类任务。我们可能需要使用预处理的数据集对其进行微调。微调的目标是让DEEPSEEK模型学习理解特定领域的文本描述(即VLM生成的垃圾物品描述),并将其与正确的垃圾分类标签关联起来。
额外需要注意的是,在微调这一步,我们可能不仅需要是DeepSeek学习垃圾分类领域的文本描述,还需要进行指令微调,让DeepSeek的输出更具有格式。
学习过程中发现的文章以及文档: