跳到主要内容

打造基于Qwen3-vl-30B-A3B-Instruct的中文作文自动阅卷助手

更新时间:2025-12-04 09:55:10
使用超便捷高性能GPU卡作文自动阅卷存储钜惠LoRA微调

打造基于Qwen3-vl-30B-A3B-Instruct模型的中文作文自动阅卷助手,旨在革新传统作文批改模式,精准应对K-12及高等教育中作文评估的三大核心挑战:减轻教师繁重负担、减少评分主观偏差、实现即时学习反馈。

该助手通过对高质量中文作文数据进行指令微调,使大语言模型深度对齐具体评分标准,能快速、客观、一致地完成作文多维度分析与评分,为教学提供高效、科学的智能支持。 LLaMA Factory作为成熟的大语言模型微调框架,凭借便捷的WebUI操作界面简化模型训练、推理与部署流程,为微调提供了理想工具支持。

前提条件

  • 用户已经获取LLaMA Factory Online平台账户和密码,如果需要帮助或尚未注册,可参考注册账户完成注册。
  • 当前账号的余额充裕,可满足模型微调服务的需要。单击可了解最新的活动费用信息,或前往充值,如需了解更多请联系我们

配置概览

配置参数配置项是否预置说明
模型Qwen3-vl-30B-A3B-Instruct稀疏激活,仅3B参数激活,支持高分辨率动态切换。
数据集AES_Dataset否(提供下载链接)这是一个专注于中国高中阶段的中文作文数据集,具有鲜明的教育领域特征。该数据集包含300篇精选作文样本。
GPUH800*1(推荐)--
微调方法lora-显著降低计算与存储成本,兼具高性能与部署灵活性。

资源消耗预览

使用推荐资源(H800*1)进行微调时微调过程总时长约45min。

操作步骤

步骤一:数据准备

本项目选用AES_Dataset作为核心训练数据。这是一个专注于中国高中阶段的中文作文数据集,具有鲜明的教育领域特征。该数据集包含编号从 A-0001A-0300 共300篇精选作文样本,涵盖了该阶段常见的主题指导及相关议论文/记叙文。这要求模型具备较高层次的逻辑推理、修辞赏析及价值观判断能力。

  1. 单击链接,下载AES_Dataset数据集。数据集下载完成后,在本地解压缩,然后需上传至LLaMA Factory Online平台的文件管理。具体操作,可参考SFTP上传下载完成数据集上传。

    SwanLab对比图

  2. 数据格式转换。将作文文本格式转换成图片格式。格式转换的具体步骤如下:

    a. 进入LLaMA-Factory Online平台,单击“控制台”,进入控制台后单击左侧导航栏的“实例空间”,然后在页面单击“开始微调”。

    开始微调

    b. 在弹出的页面选择镜像(如图①),选择“CPU”,核数选择“2核”(如图②),然后单击“启动”。

    开始微调

    提示

    系统会根据所需资源及其相关参数,动态预估数据处理费用,您可在页面底部查看预估结果。

    c. 实例启动后,单击[VSCode处理专属数据]页签,进入VSCode编辑页面。您也可以根据需要打开JupyterLab处理专属数据,本示例指导您通过VSCode处理数据。

    d. 在VSCode页面左侧user-data/datasets/AES_Dataset目录下新建一个.py后缀的文件(如图①),然后复制以下命令至文件中(如图②)。

    代码详情
    #多模态数据格式转换代码
    #文本转图片
    import os
    from PIL import Image, ImageDraw, ImageFont

    # ---------- 参数 ----------
    INPUT_DIR = "/workspace/user-data/datasets/AES_Dataset/essays" # 原始 txt
    OUTPUT_DIR = "/workspace/user-data/datasets/AES_Dataset/essays_png" # 输出 png
    WIDTH, HEIGHT = 1240, 1754 # A4 150 dpi
    MARGIN = 60 # 四边留白
    FONT_SIZE = 20
    LINE_HEIGHT = FONT_SIZE + 10
    BG_COLOR, FG_COLOR = "white", "black"
    FONT_PATH = "/workspace/user-data/datasets/AES_Dataset/SIMHEI.TTF" # 确保存在
    # --------------------------

    os.makedirs(OUTPUT_DIR, exist_ok=True)
    font = ImageFont.truetype(FONT_PATH, FONT_SIZE)

    def pixel_wrap(text: str, font: ImageFont.FreeTypeFont, max_px: float, draw: ImageDraw.Draw):
    """逐字符量像素,强制折行,返回行列表"""
    lines, line = [], ""
    for ch in text:
    if draw.textlength(line + ch, font=font) <= max_px:
    line += ch
    else:
    if line:
    lines.append(line)
    line = ch
    if line:
    lines.append(line)
    return lines

    for txt_name in os.listdir(INPUT_DIR):
    if not txt_name.endswith(".txt"):
    continue
    with open(os.path.join(INPUT_DIR, txt_name), encoding="utf-8") as f:
    text = f.read().strip()

    img = Image.new("RGB", (WIDTH, HEIGHT), BG_COLOR)
    draw = ImageDraw.Draw(img)

    max_width = WIDTH - 2 * MARGIN # 可打印像素宽度
    y = MARGIN
    for para in text.splitlines():
    if para.strip() == "":
    y += LINE_HEIGHT
    continue
    # 按像素折行
    for line in pixel_wrap(para, font, max_width, draw):
    draw.text((MARGIN, y), line, font=font, fill=FG_COLOR)
    y += LINE_HEIGHT
    if y > HEIGHT - MARGIN:
    break
    if y > HEIGHT - MARGIN:
    break

    out_path = os.path.join(OUTPUT_DIR, txt_name.replace(".txt", ".png"))
    img.save(out_path)
    print("saved", out_path)

    print("✅ 全部转换完成,右侧无截字。输出目录:", OUTPUT_DIR)

    开始微调

    e. 在VSCode页面,新建一个终端,依次执行以下命令,进行数据格式转换。

    conda activate /opt/conda/envs/lf
    python /workspace/user-data/datasets/AES_Dataset/text_to_image.py
    提示

    text_to_image.py为本示例新建的文件,请根据您的实际情况进行替换。

    回显信息如下图所示,说明格式转换成功。

    开始微调

  3. 数据集注册。

    在/workspace/llamafactory/data/dataset_info.json配置文件中(如图①),配置如下内容,注册数据集(如图②)。

    Details
     "aes_data": {
    "file_name": "/workspace/user-data/datasets/AES_Dataset/aes_data.json",
    "formatting": "sharegpt",
    "columns": {
    "messages": "conversations",
    "images": "images"
    },
    "tags": {
    "role_tag": "from",
    "content_tag": "value",
    "user_tag": "user",
    "assistant_tag": "assistant"
    },
    "customized_status": 8,
    "total_tokens": "319459",
    "num_samples": "300",
    "avg_tokens": "1064.86"
    }

    开始微调

  4. 数据集检测。

    a. 返回LLaMA-Factory Online控制台,单击左侧导航栏的“文件管理”。

    b. 单击目标数据集右侧“操作”列的"数据集检测",检测数据集。如下图所示,若“数据集格式检测”结果显示“符合”,则表示数据集符合格式要求。

    开始微调

步骤二:模型训练

我们使用LLaMA Factory Online通过任务模式运行微调任务,操作详情如下所示。

  1. 进入LLaMA-Factory Online平台,单击“控制台”,进入控制台后单击左侧导航栏的“模型微调”进入页面。

  2. 选择基础模型和数据集,进行参数配置。如下表所示,具体可参考下图。

    • 资源配置。推荐卡数为1卡。

    • 选择价格模式。本实践选择“极速尊享”,不同模式的计费说明参考计费说明

    • 开始训练。单击“开始训练”按钮,开始模型训练。

      配置参数参数说明参数
      基础配置
      model训练用的基模型。Qwen3-VL-30B-A3B-Instruct
      dataset训练使用的数据集名称。aes_data
      stage训练方式sft
      finetuning_type微调方法lora
      进阶配置
      LR Scheduling Type动态调整学习率的方式。cosine
      Max Gradient Norm梯度裁剪的最大范数,用于防止梯度爆炸。1.0
      训练配置
      Learning Rate学习率5e-05
      Epochs训练轮数3
      per_device_train_batch_size单GPU批处理大小。2
      Gradient Accumulation梯度累计,将一个完整批次的梯度计算拆分为多个小批次,逐步累积梯度,最后统一更新模型参数。4
      Save steps训练过程中每隔多少个训练步保存一次模型。200
      Warmup Ratio将学习率从零增加到初始值的训练步数比例。0
      Chat Template基模型的对话模版,训练和推理时构造prompt的模版。qwen3
      效率与性能配置
      Mixed Precision Train混合精度训练,模型在训练或推理时所使用的数据精度格式,如 FP32、FP16 或 BF16。bf16
      数据参数配置
      Max Sample Size每个数据集的最大样本数:设置后,每个数据集的样本数将被截断至指定的 max_samples。100000
      Cutoff Length输入的最大 token 数,超过该长度会被截断。2048
      Preprocess Workers预处理时使用的进程数量。32
      日志配置
      Logging Steps日志打印步数。5
      LoRA配置
      Lora RankLoRA 微调的本征维数 r,r 越大可训练的参数越多。8
      LoRA Scalling FactorLoRA 缩放系数。一般情况下为 lora_rank * 2。16
      Random dropoutLoRA 微调中的 dropout 率0
      LoRA ModulesLora作用模块all

      开始微调

      提示

      配置模型与数据集后,系统将根据所需资源及其相关参数,动态预估任务运行时长及微调费用,您可在页面底部查看预估结果。

  3. 通过任务中心查看任务状态。 在左侧边栏选择”任务中心“,即可看到刚刚提交的任务。可以通过单击任务框,可查看任务的详细信息、超参数、训练追踪和日志。 开始微调

  4. 任务完成后,模型自动保存在"文件管理->模型->output"文件夹中。可在"任务中心->基本信息->模型成果"处查看保存路径。

    开始微调 loss结果:

    开始微调

    通过loss曲线可以看出训练有效且逐步收敛,但存在一定波动,可通过调整训练策略(如增大 batch_size、微调学习率)进一步优化稳定性。

步骤三:模型评估

  1. 单击页面左侧导航栏“模型评估”,进行评估训练配置。

  2. 微调模型选择上一步骤微调后的模型,评估数据集选择文件管理处:aes_data。其他参数设置如下图所示。

    模型评估

    提示

    配置模型与数据集后,系统将根据所需资源及其相关参数,动态预估任务运行时长及微调费用,您可在页面底部查看预估结果。

  3. 可以在“任务中心->模型评估”下看到评估任务的运行状态。

    开始微调

  4. 单击swanapi图标,进入任务基本信息查看页面。用户可查看评估任务的基本信息、日志,评估结束后,可查看评估结果如下图所示。

    模型评估

    评估结果显示:ROUGE-1/ROUGE-2指标表现不错,说明生成内容在 “字词、短语层面” 与参考文本的覆盖度、匹配度较高;BLEU-4处于中等水平,意味着生成文本与参考文本的长短语重合度还有提升空间。

步骤四:模型对话

  1. 单击左侧导航栏“模型对话”按钮进入模型对话页面。

  2. 在微调模型处选择微调的模型名称(如图①)。单击右上角“开始对话”,在弹出的“LORA模型对话限时免费”对话框,单击“立即对话”。

  3. 在输入框上传一张作文图片(如图②),并输入问题(如图③),单击发送(如图④);在对话框中查看对话详情(如图⑤)。

    模型评估

    模型输出结果解读:这个阅卷结果维度完整、判断客观,既肯定了作文在结构逻辑、思想深度、语言表达上的优势,也精准点出了衔接的不足,其给出的得分与作文的实际质量匹配度较高,是一份专业的作文评析。

总结

综上所述,基于Qwen3-vl-30B-A3B-Instruct打造的中文作文自动阅卷助手,是聚焦K-12至高等教育场景的智能教学辅助工具,核心解决传统作文批改中 “教师批量批改负担重、评分主观性偏差大、学生反馈滞后” 的痛点。借助大语言模型(LLM)驱动的自动作文评分(AES)技术,该助手针对高质量中文作文数据集完成LoRA微调,实现了与标准化评分标准的精准对齐;同时依托LLaMA Factory Online平台提供的高性能GPU支持,兼顾了阅卷效率与成本优势。他既能为教师减轻批改压力,也能以客观量化的评估结果、即时的写作反馈助力学生迭代写作能力,是推动教学反馈环节智能化、高效化的实用方案。