星图·微调试&全参数调试qwen3.1-B对比

整体微调流程

1. 整体目标

  • 使模型能够根据用户输入的医学问题,先给出 <think> 思考过程,再输出最终答案,以提升回答的专业性和可解释性。

  • 使用 LoRA(Low-Rank Adaptation)进行高效参数微调,降低显存和计算开销。

2. 关键模块与技术

数据预处理
  • 原始数据格式:{"question":..., "think":..., "answer":...}

  • 下载

    复制代码
    {
      "instruction": "系统提示(医学专家)",
      "input": "问题",
      "output": "<think>思考过程</think> \n 答案"
    }
  • 下载

    复制代码
    <|im_start|>system\n{PROMPT}<|im_end|>
    <|im_start|>user\n{input}<|im_end|>
    <|im_start|>assistant\n{output}

    并生成对应的 input_idsattention_masklabels(其中系统部分和用户部分的 labels 设为 -100,不参与损失计算)。

模型与 LoRA 配置
  • 使用 snapshot_download 从 ModelScope 下载 Qwen3-1.7B 模型。

  • 加载模型时启用 device_map="auto"torch.bfloat16 以节省显存。

  • 配置 LoRA:

    • 目标模块:q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj(覆盖了自注意力和前馈网络的关键线性层)。

    • r=8lora_alpha=32dropout=0.1

训练参数
  • 批次大小:per_device_train_batch_size=1,梯度累积 4 步,实际 batch size 为 4。

  • 学习率 1e-4,训练 2 个 epoch。

  • 启用梯度检查点(gradient_checkpointing=True)以进一步降低显存占用。

  • 使用 DataCollatorForSeq2Seq 动态填充序列。

  • 日志与模型保存间隔:每 10 步记录日志,每 100 步评估验证集,每 400 步保存一次模型。

实验跟踪
  • 集成 swanlab:记录超参数、训练过程中的 loss、以及训练后的模型预测示例(前 3 条验证集样本)。

3. 流程总结

  1. 下载模型并加载 tokenizer 和模型。

  2. 配置 LoRA 并封装模型。

  3. 转换原始 JSONL 数据集为微调格式。

  4. 使用 Dataset.map 进行 tokenization 预处理。

  5. 设置 TrainingArguments 并创建 Trainer

  6. 开始训练。

  7. 训练结束后对验证集前 3 条进行推理,将结果记录到 swanlab。

总结

swanlab可以看到最终得结果,整体感觉星图算力的操作不复杂,很容易微调入门,致力于微调大模型的伙伴们可以试试~

相关推荐
Clarence Liu2 小时前
用大白话讲解人工智能(5) SVM支持向量机:找一条“最宽的分隔线“
人工智能·算法·支持向量机
宇擎智脑科技2 小时前
Crawl4AI:面向大语言模型的开源智能网页爬虫框架深度解析
人工智能·爬虫·语言模型
冰西瓜6002 小时前
深度学习的数学原理(六)—— 梯度消失与激活函数
人工智能·深度学习
查无此人byebye2 小时前
【超详细解读(GPU)】基于DiT的MNIST扩散模型(DDPM)完整实现
python·深度学习·nlp·transformer·多分类
青铜弟弟2 小时前
LSTM与Transformer
人工智能·lstm·transformer
紫微AI2 小时前
深度综述:Effective Harnesses for Long-Running Agents
人工智能·claude·anthropic
袁气满满~_~2 小时前
深度学习笔记四
人工智能·笔记·深度学习
乌萨奇5372 小时前
【2025考研复试】深度学习扩展知识:从ViT到多模态,以及简历项目挖掘策略(第11章复盘)
人工智能·深度学习·考研·计算机视觉·nlp·多模态
nimadan122 小时前
**免费专业的小说创作软件2025推荐,解锁高效写作新体验*
人工智能·python