大模型微调实现一个医美诊断APP
最近收到一个小伙伴的需求,希望可以根据用户自拍上传的颈部图片,自动识别出用户颈纹的严重程度并给出评分等级。针对这个需求我们基本上可以用图文理解大模型来解决,但是由于没有在这方面进行过专门的训练,大模型在识别时容易出现幻觉,不能很好的对标我们自己的等级评分标准。
我们现在百度智能云平台选择一款多模态大模型进行试验,先在百度智能云平台选择一款多模态大模型进行试验,这里我们选择通义千问2.5vl模型来测试它的图文理解能力。

你是一名专业的颈纹分析师,根据用户上传的图片来给颈纹分等级,颈纹的等级分为1-5级,数字越大颈纹越严重,对比颈纹分级标准,1级几乎无颈纹,皮肤光滑,2级轻微的细小颈纹,仅在特定角度或表情下可见,3级颈纹较为明显,但深度和宽度较浅,4级颈纹较深且宽,分布广泛,5级颈纹非常深且宽,皮肤明显松弛
在对大模型进行了角色设定后,我们上传了一张颈部纹理比较严重的图片,大模型给出了等级为3的结果,这跟我们自己的评分标准出入比较大,这个用户颈纹严重程度在我们的标准里应该是最高等级5。
为了解决这个问题,我们可以利用百度智能云平台的模型训练能力对这个大模型进行微调,使它更符合我们的要求。
准备训练数据集
在进行模型精调之前先要准备好用户精调的数据集,数据集是一系列的对话数据,大模型根据对话数据进行微调使输出更符合我们的预期。
这里我在网上搜集了100张颈纹图片对应100条对话数据(平台要求训练数据不能少于100条),我们现在文本文档里对这100条数据进行简单的评分和描述,后面再用工具将数据处理成平台要求的训练数据格式。
这张图片里的颈纹很明显,褶皱比较多,可以归为5级 01.png
这张图片里的颈纹比较明显,褶皱略多,可以归为4级 02.png
这张图片里的颈纹很明显,褶皱比较多,可以归为5级 03.png
这张图片里的颈纹不太明显,可以归为2级 04.png
这张图片里的颈纹几乎看不到,颈部皮肤很光滑,可以归为1级 05.png
...
然后我们可以用python或者nodejs这种可以操作文件的脚本工具把数据处理成平台要求的训练数据格式,这步可以让cursor帮你生成,这里我生成了一个由100条对话组成的json数据文件。
{"images":["images/01.png"],"messages":[{"role":"system","content":"你是一名专业的颈纹分析师,根据用户上传的图片来给颈纹分等级,颈纹的等级分为1-5级,数字越大颈纹越严重,对比颈纹分级标准,1级几乎无颈纹,皮肤光滑,2级轻微的细小颈纹,仅在特定角度或表情下可见,3级颈纹较为明显,但深度和宽度较浅,4级颈纹较深且宽,分布广泛,5级颈纹非常深且宽,皮肤明显松弛"},{"role":"user","content":"请给图片<ImageHere>中的颈纹分等级"},{"role":"assistant","content":"这张图片里的颈纹很明显,褶皱比较多,可以归为5级"}]}
{"images":["images/02.png"],"messages":[{"role":"user","content":"请给图片<ImageHere>中的颈纹分等级"},{"role":"assistant","content":"这张图片里的颈纹比较明显,褶皱略多,可以归为4级"}]}
{"images":["images/03.png"],"messages":[{"role":"user","content":"请给图片<ImageHere>中的颈纹分等级"},{"role":"assistant","content":"这张图片里的颈纹很明显,褶皱比较多,可以归为5级"}]}
{"images":["images/04.png"],"messages":[{"role":"user","content":"请给图片<ImageHere>中的颈纹分等级"},{"role":"assistant","content":"这张图片里的颈纹不太明显,可以归为2级"}]}
{"images":["images/05.png"],"messages":[{"role":"user","content":"请给图片<ImageHere>中的颈纹分等级"},{"role":"assistant","content":"这张图片里的颈纹几乎看不到,颈部皮肤很光滑,可以归为1级"}]}
上传数据集开始训练
在模型精调里先选择我们之前测试过的通义千问大模型2.5vl-7B。

因为我们的数据集比较少,为了得到更好的效果,我们可以把迭代次数设置为5,并采用全量更新的方式,然后选择我们之前训练好的数据集。

部署和检验
大概过了40分钟我们的数据就训练好了,然后将我们训练好的数据进行部署。

图像理解模型的部署和体验的费用对于个人来说还是比较贵的,相信随着大模型的飞速发展这个价格后面也会降下来,我们也可以尝试选择deepseek的多模态版本进行微调和私有化部署。

最后我们在线测试一下模型微调以后的效果,可以看到模型微调后给出的等级评分基本上和我们的标准保持一致或者接近。

最后我们可以将发布好的大模型,提供外部接口给我们的小程序,APP或者H5来调用。