保姆级拆解!Qwen2.5-VL-7B菜品大模型训练全流程:从数据清洗到99%识别率,一篇吃透!
本次大模型训练使用的数据集是原用于训练Paddle的PPLCNET模型的数据集中的图片,排除了部分类别后,剩余总类别为3600类,每个类别(菜品)用独立文件夹区分存储。但原数据集并没有特别完善的中文菜名,如使用英文+数字的命名或使用主要食材进行命名,因此,本次数据集的构建采用了如下过程进行二次构建。
1. 模型训练流程
1.1 数据集构建
本次大模型训练使用的数据集是原用于训练Paddle的PPLCNET模型的数据集中的图片,排除了部分类别后,剩余总类别为3600类,每个类别(菜品)用独立文件夹区分存储。但原数据集并没有特别完善的中文菜名,如使用英文+数字的命名或使用主要食材进行命名,因此,本次数据集的构建采用了如下过程进行二次构建。
1.1.1 调用第三方在线大模型构建菜品语义信息
本次数据集的构建使用了其他在线大模型(GPT4.1、豆包)的能力,通过给予在线大模型有效的提示词,让大模型识别图片中与图片符合的语义信息(每个类别识别一张图,然后展开至全数据集),包含:菜品名、主要食材、菜系、烹饪方式、卡路里、营养成分、颜色、形状、口味、制作难度以及节日关联等等数据。 数据示例:
{
"name": "干锅土豆片",
"cuisine": "川菜",
"cooking_method": [
"干锅"
],
"ingredients": [
"土豆片",
"干辣椒",
"青蒜",
"花椒",
"辣椒油"
],
"calories": 130.0,
"serving_temperature": "热食",
"flavor": [
"辣",
"咸"
],
"nutrients": [
"碳水化合物",
"膳食纤维",
"少量蛋白质"
],
"is_vegetarian": "是",
"allergens": [],
"color": [
"红棕色"
],
"shape": [
"片状"
],
"associated_festival": [],
"difficulty": "简单"
}
通过这些丰富的结构化数据可以组合多样的prompt进行大模型的训练或微调。
1.1.2 调用第三方在线大模型构建菜品简介、食谱
同样通过调用第三方大模型获取每个类别(菜品)的简介以及对应的食谱,这类数据在全参数训练或微调时能够保持模型的基本语言理解能力以及增强泛化能力,在构建训练数据时按比例加入可提升训练效果。 数据示例:
干锅土豆片的做法步骤如下:
1. 土豆去皮后切成均匀薄片,用清水冲洗去多余淀粉,沥干备用。
2. 锅中倒入适量油,放入花椒和干辣椒,小火慢炸出香味,不要炸糊。
3. 下土豆片,大火翻炒至表面微微焦黄,土豆片变软。
4. 淋入辣椒油,继续翻炒均匀,让土豆片充分裹上红亮的辣油和香料。
5. 加入切段的青蒜,快速翻匀,撒适量盐调味。
6. 翻炒均匀后即可盛入干锅,趁热食用。
这道菜色泽红亮,香辣微咸,土豆片口感外香内糯,非常适合作为下饭或聚会小吃。
这道菜是川菜中颇受欢迎的“干锅土豆片”。
它的主角是切成片状的新鲜土豆,经过干锅的特色做法翻炒,充分保留了土豆本身的粉糯口感。烹制时加入大量的干辣椒和花椒,使得整道菜香辣四溢,麻中带香,回味无穷。点缀的青蒜让整个菜肴增添了一抹清新的绿色,同时提升了整体的香味层次。辣椒油的加入,不仅带来了浓郁的川菜风味,也给菜肴赋予了诱人的红棕色泽,看上去十分开胃。
干锅土豆片通常热食,是川菜馆或家庭聚餐桌上的明星素菜。作为川菜中的经典代表之一,它味型以辣、咸为主,麻辣爽口,非常下饭。虽然食材简单,却能通过干锅爆香的技艺,激发出丰富的口感和香气。
营养方面,土豆本身富含碳水化合物、膳食纤维,配搭蔬菜又更加健康。这道菜属于素食,做法简单,适合各种烹饪水平的人士尝试,也是辣味爱好者不可错过的家常佳肴。无论是搭配米饭,还是作为下酒小菜,都别具风味,深受各年龄层欢迎。
1.1.3 使用原方案(yolo+pplcnet)确定相似菜
相似菜品难以区分是当前方案(yolo+pplcnet)难以克服的关键问题,我们希望大模型能够依托天然的大参数、高泛化能力以及更细致的图片编码能力来解决相似菜问题,那么在准备数据集时就应该构建出相似菜的数据。
使用pplcnet对数据集中的每个类别进行注册(每个类别注册2张),然后再随机选出一张同类别中的其他图片进行特征比对,选出分数相近的其他若干类别,构建出每个类别(菜品)对应的若干相似菜数据。
1.1.4 train、test以及validation的构建
根据Qwen2.5-vl官方的训练示例以及大模型训练的相关范式,将上述数据构建为两种类型的数据: 第一类:只提供一张菜品图片,让模型识别图片对应的菜品名,数据示例:
{
"image": "/mnt/data/菜品数据/DISH_NJZW_ZLP_GX4.6/train/凉拌鸡胗@ZHONGGUANGHE_20220901/20220609174506-5#90.jpg",
"conversations": [
{
"from": "human",
"value": "<image>\n图中的菜品是什么?"
},
{
"from": "gpt",
"value": "凉拌鸡胗"
}
]
},...
第二类:提供一张图片以及一个候选菜单(包含相似菜),让模型在候选菜单中选择一个最符合图片的菜品名,数据示例:
{
"image": "/mnt/data/菜品数据/DISH_NJZW_ZLP_GX4.6/train/红烧鱼1@HGD_20211221/20210301181427_8190820012282_00044bdebaf5$798_549_1324_811#51.jpg",
"conversations": [
{
"from": "human",
"value": "<image>\n根据提供的菜单(油豆腐烧青椒、素鸡(豆制品)、蚵仔煎、面包片配蛋黄酱、炒鹅肠、豆腐脑、青红椒炒鸡胗、凉拌鸭掌、粉条白菜回锅肉、红烧鱼)和图片内容,请指出图片最可能是哪道菜。限制:只能输出菜单中提供的菜品名称,不要添加其他内容。"
},
{
"from": "gpt",
"value": "红烧鱼"
}
]
},...
每种类型的数据都会包含多种prompt来提升模型的泛化能力。当然在数据集的设计之初还包含了其他类别的数据,如包含菜品的营养成分、菜品简介或菜谱等,但本次训练主要聚焦在模型的菜品识别能力,因此构建的数据集只包含上文所述的两类训练数据。
所构建的数据集包含3600类菜品,用于训练的数据约10万张。
1.2 训练平台选择
由于Qwen2.5-vl 7B大模型参数庞大(官方所谓7B指的是llm模块参数量级为7B,但加上vision相关模块后规模是大于7B的),普通消费级显卡不能加载完整模型参数,因此选择了Nvidia的专业计算卡——H20,H20拥有96GB的大显存,能够胜任7B量级参数的训练。当然分布式训练也进行了尝试,但由于机器的网络带宽问题(千兆网卡,数据传输太慢,训练时长不可接受),遂放弃分布式训练。
在训练过程中内存的使用量最高达到80GB,为了确保足够的内存,至少需要100GB的内存才能保障训练过程不会因为内存溢出而崩溃。硬盘的要求不是很高,但如果设置了检查点都保存模型文件、参数文件以及完整的优化器检查点等信息,那么每个检查点占用的硬盘约44GB.
1.3 模型训练
模型训练可分为全参数训练与微调,在实践中两种方式都进行了测试,其中微调模型使用的是unsloth对大模型进行约全参数的2.5%的参数进行微调,验证集loss最终维持在0.07左右;而全参数训练最终的loss维持在0.0005左右,效果更好,因此下面介绍具体的全参数训练流程。
虽然说是全参数训练,但H20的96GB显存也不能完全加载qwen2.5-vl-7B的全部参数(如果同时训练LLM、Vsion、MLP层比爆显存),考虑到我们的场景其实是要训练模型的vision层编解码能力以及mlp层的多模态特征融合能力,对于LLM层在该场景下作用不是很大,当前的大模型的语言理解能力已经非常强大,足够理解我们的应用场景,因此我们只训练了vision层与mlp层。
即便只加载了vision层与mlp层,在关闭梯度检查后,H20单次也只能输入8张图片进行训练,此时显存占用在70GB左右,设置全局学习率为
,mlp层学习率可以高一些为,视觉塔学习率为,使用deepspeed的zero3级别的显存优化,启用梯度累计后,可模拟 16 或更高 batch size 进行稳定的训练。
10万左右的数据量在H20上进行训练,单个epoch的时间约3.5小时,训练总计10个epoch,耗时近40小时。由于官方提供的训练脚本并没有实现验证功能,因此每个epoch都保存一个检查点,且保存完整的优化器检查点等数据,方便后续的测试或resume来选出最优模型。
2. 模型评估
模型评估分为内部数据与外部数据
2.1 内部数据评估
使用构建数据集时创建的测试集对模型的基础能力进行测试,对应数据集中的两类数据,评估也分为两类评估:
2.1.1 第一类测试(已有标签)
只给模型提供图片,让模型输出菜品名,然后与已有标签值比对,要求强等于算正确,否则算错误。 测试了3633 条数据,结果如下:
具体测试结果:
2.1.2 第二类测试(增加候选菜单列表)
给模型提供图片以及一个候选菜单列表(长度为20),测试了3469条数据,结果如下:
具体测试结果:
2.2 外部数据评估
外部数据评估使用了三个现场数据,zg核现场、浦东现场以及苏州gd现场数据,候选菜单长度为20。
2.2.1 zg核现场(模型起名后,框菜单)
2.2.2 浦东现场(模型起名后,框菜单)
2.2.3 苏州gd现场(模型起名后,框菜单)
2.3 与在线模型对比
如何学习大模型 AI ?
我国在AI大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着Al技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国Al产业的创新步伐。加强人才培养,优化教育体系,国际合作并进,是破解困局、推动AI发展的关键。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
2025最新大模型学习路线
明确的学习路线至关重要。它能指引新人起点、规划学习顺序、明确核心知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。
对于从来没有接触过AI大模型的同学,我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线。
针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。
大模型经典PDF书籍
新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路!
配套大模型项目实战
所有视频教程所涉及的实战项目和项目源码等
博主介绍+AI项目案例集锦
MoPaaS专注于Al技术能力建设与应用场景开发,与智学优课联合孵化,培养适合未来发展需求的技术性人才和应用型领袖。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
为什么要学习大模型?
2025人工智能大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。
适合人群
- 在校学生:包括专科、本科、硕士和博士研究生。学生应具备扎实的编程基础和一定的数学基础,有志于深入AGI大模型行业,希望开展相关的研究和开发工作。
- IT行业从业人员:包括在职或失业者,涵盖开发、测试、运维、产品经理等职务。拥有一定的IT从业经验,至少1年以上的编程工作经验,对大模型技术感兴趣或有业务需求,希望通过课程提升自身在IT领域的竞争力。
- IT管理及技术研究领域人员:包括技术经理、技术负责人、CTO、架构师、研究员等角色。这些人员需要跟随技术发展趋势,主导技术创新,推动大模型技术在企业业务中的应用与改造。
- 传统AI从业人员:包括算法工程师、机器视觉工程师、深度学习工程师等。这些AI技术人才原先从事机器视觉、自然语言处理、推荐系统等领域工作,现需要快速补充大模型技术能力,获得大模型训练微调的实操技能,以适应新的技术发展趋势。
课程精彩瞬间
大模型核心原理与Prompt:掌握大语言模型的核心知识,了解行业应用与趋势;熟练Python编程,提升提示工程技能,为Al应用开发打下坚实基础。
RAG应用开发工程:掌握RAG应用开发全流程,理解前沿技术,提升商业化分析与优化能力,通过实战项目加深理解与应用。
Agent应用架构进阶实践:掌握大模型Agent技术的核心原理与实践应用,能够独立完成Agent系统的设计与开发,提升多智能体协同与复杂任务处理的能力,为AI产品的创新与优化提供有力支持。
模型微调与私有化大模型:掌握大模型微调与私有化部署技能,提升模型优化与部署能力,为大模型项目落地打下坚实基础。
顶尖师资,深耕AI大模型前沿技术
实战专家亲授,让你少走弯路
一对一学习规划,职业生涯指导
- 真实商业项目实训
- 大厂绿色直通车
人才库优秀学员参与真实商业项目实训
以商业交付标准作为学习标准,具备真实大模型项目实践操作经验可写入简历,支持项目背调
大厂绿色直通车,冲击行业高薪岗位
文中涉及到的完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
更多推荐
所有评论(0)