闲社服务运行正常AI智能体自动化平台
中文
语言 / Language简体中文SelectedEnglish

选择显示语言

Fluoroscope

smau0441/Fluoroscope

发布机构smau0441

下载访问条件魔搭来源

通过微调的方式,能够在少量数据上训练出一个针对特定数据集的模型。完成这一步,可以学习以下知识;数据集的制作、模型环境的配置、LoRA 微调、数据集优化、模型超参数优化等知识。 建议使用 miniconda 创建虚拟环境,可参考 https://docs.anaconda.com/miniconda/ 。 参考官方 Github https://github.com/modelscope/ms-swift ,从源码编译。同时运行 ms-swift/requirements/in

图文理解
模型详情

模型介绍

中文整理
  • 前言

文件格式

显存占用

模式 显存占用(GiM)

  • --- ----

LoRA 32.62

LoRA-Plus 35.99

推理 21.41

  • 微调

通过微调的方式,能够在少量数据上训练出一个针对特定数据集的模型。完成这一步,可以学习以下知识;数据集的制作、模型环境的配置、LoRA 微调、数据集优化、模型超参数优化等知识。

  • 1 配置环境

建议使用 miniconda 创建虚拟环境,可参考 https://docs.anaconda.com/miniconda/ 。

  • 1.1 安装 ms-swift

参考官方 Github https://github.com/modelscope/ms-swift ,从源码编译。同时运行 ms-swift/requirements/install all.sh ,安装额外的依赖。

  • 1.2 安装 flash-attn

参考官方 Github https://github.com/Dao-AILab/flash-attention ,建议从源码编译。

  • 1.3 requirements.txt 安?

以下是一份完整的 requirements.txt ,包含了 ms-swift 和 flash-attn 的所有依赖。

requirements.txt

  • 2 数据集获取

使用的数据集已经上传 modelscope,参考 https://www.modelscope.cn/datasets/smau0441/www2025-train/files 。

  • 2.1 数据来源

该数据集来自于**WWW2025 多模态对话系统意图识别挑战赛**,网址:https://tianchi.aliyun.com/competition/entrance/532277/information 。数据集中包括 1000 个标记的对话样本用于训练。

  • 2.2 数据介绍

该数据集全部为文本结合图像的分类任务,包含 2 大类:图片场景分类以及多轮对话意图分类。

  • 2.2.1 图片场景分类

图片场景分类的具体场景为用户向客服发了一张图片,需要判断这张图片属于电商场景的哪个类型。具体类型标签以及对应的描述如下:

label 描述

  • --- ----

商品分类选项 商品颜色、规格选项

商品头图 商品首页大图

商品详情页截图 可能出现在商品详情页各个部分的截图

下单过程中出现异常(显示购买失败浮窗) 下单过程中出现异常(显示购买失败浮窗)的截图

订单详情页面 呈现出完整订单信息的订单页面

支付页面 包含支付方式选择、支付成功的页面

评论区截图页面 在淘宝 APP 内或其他 APP 内的评论区截图

物流页面 - 物流列表页面 呈现出两个以上物流信息的页面

物流页面 - 物流跟踪页面 呈现出物流运输路径的页面

物流页面 - 物流异常页面 包含物流异常信息的页面

退款页面 含有退款信息的页面

退货页面 含有退货信息的页面

换货页面 含有换货信息的页面

购物车页面 淘宝购物车页面的列表图或金额计算图

店铺页面 店铺首页截图

活动页面 活动截图

优惠券领取页面 店铺首页或活动页中领取优惠券的截图

账单/账户页面 包含交易明细列表、资产列表、卡券红包列表等

投诉举报页面 投诉或举报页面

实物拍摄(含售后) 用户用相机实拍的照片,包括用户售后的照片(损坏、缺失、与描述不符),或者其他用相机实拍的图片

外部 APP 截图 各种非淘宝、菜鸟 APP 的截图,包括京东、拼多多、短信、手机系统截图

平台介入页面 平台客服介入处理的截图

其他类别图片 拿不准的其他图片

  • 2.2.2 对话意图分类

对话意图分类的场景为通过用户与客服的对话历史以及当前用户的问题判断用户的意图,对话历史中包含至少一张用户发的图片,可能有助于意图的判断。意图标签以及对应的描述如下:

label 描述

  • --- ----

反馈密封性不好 买家反馈商品密封性差会漏

是否好用 买家咨询商品是否好用

是否会生锈 咨询商品是否会生锈

排水方式 (适用产品:洗衣机、热水器)咨询商品排水方式

包装区别 咨询商品不同包装的区别

发货数量 咨询商品发货数量

反馈用后症状 买家反馈用完后引起的人体反应

商品材质 咨询商品具体材质,配件材质,填充物

功效功能 咨询商品功效功能

是否易褪色 咨询商品是否易褪色

适用季节 咨询商品适用季节

能否调光 咨询商品光源/灯光/光线/亮度是否可调

版本款型区别 咨询两个版本/型号/款式/类型/套装/组合等区别,不包括商品数量/重量/尺寸类区别

单品推荐 消费者咨询能否帮助推荐一下某类/某个商品,非 sku 级别

用法用量 咨询商品使用方法/步骤/顺序,包括但不限于用量,使用时间,使用部位

控制方式 咨询商品如何控制,能否可以通过手机/电脑控制

上市时间 咨询商品的上市时间

商品规格 咨询商品的数量、重量、含量、容量

信号情况 咨询手机使用的信号是否良好,以及信号不佳如何处理

养护方法 咨询商品的养护方法

套装推荐 消费者希望能推荐一些套装

何时上货 咨询补货/上货时间

气泡 咨询贴膜如何避免产生气泡及除气泡方法

  • 3 Qwen2-VL-7B-Instruct 权重获取

获取模型权重可参考魔搭官方仓库 https://www.modelscope.cn/models/qwen/Qwen2-7B-Instruct/files 。

  • 4 制作用于微调的数据集的配置文件

首先需要将原始的 train.json 数据做成 swift 能够读取的数据格式。make ms dataset.py 与 train.json 同级,下面代码是 make ms dataset.py 的内容,该脚本将 1000 个数据打乱之后,划分成 900 个训练数据和 100 个测试数据,并给图像增加相对路径,确保能够正确读取图像。

  • 5 Qwen2-VL-7B-Instruct LoRA 微调实验

微调脚本

对于 7B 的模型,需要极致缩小 MAX PINXELS 的参数,才能够勉强将模型跑起来。

微调结果

验证集上,eval token acc 达到 91%。

训练损失

验证损失

验证精度

  • prompt改造
  • 1 原始词条

意图识别

场景分类

  • 1 问题分析:
  • 词条缺少解释,部分词条难以区分(从微调结果分析得知);
  • prompt结构性不强,背景目标逻辑模糊,没有强调。
  • 2 优化prompt

针对词条缺少解释,在官方的解释基础上进行完善,缓解词条之间难以区分的问题,增强模型对逻辑和重点的理解。\

优化后的prompt为:

意图识别

场景分类

  • 3 改进数据集代码
  • 使用改进后的数据集微调
  • 1 微调脚本
  • 2 微调结果

验证集上,eval token acc 达到 95%,提升了4%。

训练损失

验证损失

验证精度

  • 推理
  • 1 合并模型

合并原始模型和 LoRA 模型。

  • 2 推理脚本

可以使用 bash 脚本推理,唯一缺点就是扩展性不够:

推荐使用 python 脚本推理,扩展性更好:

  • 2 推理结果

对所有的训练数据进行推理,统计错误数和错误率。

模型类型 错误数 错误率

  • --- ---- ----

原始模型 529 个 52.9%

LoRA 模型 130 个 13.0%

LoRA-Plus 模型 90个 9%

  • gradio 服务

部署代码

python

import gradio as gr

from modelscope import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessor

from qwen vl utils import process vision info, smart resize

import json

import os

import pandas as pd

import copy

from datetime import datetime

import torch

from tqdm import tqdm

import os

import json

import random

import re

from tqdm import tqdm

class Model:

def init (self):

model path = os.getcwd() + "/lora-plus/best-checkpoint-merged"

self.model = Qwen2VLForConditionalGeneration.from pretrained(model path,

torch dtype=torch.bfloat16,

attn implementation="flash attention 2",

device map="auto")

self.processor = AutoProcessor.from pretrained(model path, max pixels = 256 * 28 * 28)

def preprocess(self, input):

new template = '''

作为一名资深电商客服专家,你的任务是根据用户与客服之间的多轮对话,精准判断用户的意图,并从给定的分类标签中选择与之匹配的标签。

### 分类标签及详细说明

  • **反馈密封性不好**:买家反馈商品密封性差,存在渗漏问题。
  • **是否好用**:买家就商品的使用体验、实用性等方面进行询问。
  • **是否会生锈**:针对商品是否会生锈这一特性展开咨询。
  • **排水方式**:适用于洗衣机、热水器等产品,询问其排水的具体方式。
  • **包装区别**:对不同商品包装之间的差异进行咨询。
  • **发货数量**:咨询下单后商品的发货数量。
  • **反馈用后症状**:买家反馈使用商品后,身体出现的反应情况。
  • **商品材质**:涉及商品主体、配件以及填充物等具体材质的询问。
  • **功效功能**:咨询商品所具备的功效和功能。
  • **是否易褪色**:询问商品在使用过程中是否容易出现褪色现象。
  • **适用季节**:针对商品适合在哪些季节使用进行咨询。
  • **能否调光**:咨询商品的光源、灯光、光线或亮度是否可以调节。
  • **版本款型区别**:询问不同版本、型号、款式、类型、套装、组合之间的区别,不包含商品数量、重量、尺寸等方面的差异。
  • **单品推荐**:消费者请求推荐某类或某个商品,并非针对具体SKU(库存保有单位)。
  • **用法用量**:咨询商品的使用方法、步骤、顺序,包括但不限于用量、使用时间、使用部位等。
  • **控制方式**:询问商品的控制方法,例如能否通过手机、电脑等设备进行控制。
  • **上市时间**:咨询商品的上市日期。
  • **商品规格**:咨询商品的数量、重量、含量、容量等规格参数。
  • **信号情况**:针对手机使用时的信号状况进行咨询,以及信号不佳时的解决办法。
  • **养护方法**:询问商品的日常保养、维护方法。
  • **套装推荐**:消费者希望获得关于套装产品的推荐。
  • **何时上货**:咨询商品的补货时间或重新上架时间。
  • **气泡**:咨询贴膜过程中避免产生气泡以及去除气泡的方法。

### 任务要求

请严格依据对话内容,仅输出分类标签结果,不需要任何多余的解释或说明。

### 用户与客服的对话

'''

template image task = '''

作为一名资深电商客服专家,你的任务是解读消费者上传的软件截图或实物拍摄图。请

优先采用原作者提供的中文模型卡片;仅有英文说明时由闲社AI翻译整理。重要参数、许可证和商用范围请以原文为准。

你将获得什么

完整仓库方式包含该固定版本中的权重、配置、分词器及说明文件;指定版本方式只下载所选文件或整组分片。多模态模型的投影文件、配置等依赖,请按作者说明配齐。

完整仓库可能包含多个权重格式,因此需要的磁盘空间可能大于单一格式的模型大小。下载文件不等于完成模型部署。

使用前须知

运行环境

运行模型需要的设备、工具与依赖,以原作者说明为准。

授权范围

是否允许商用、修改和分发,请查看模型许可证。

闲社提供资料与镜像下载方法,不代表已运行模型或完成安全审计。下载的代码应先检查,再执行。

返回顶部