星图·微调试&全参数调试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可以看到最终得结果,整体感觉星图算力的操作不复杂,很容易微调入门,致力于微调大模型的伙伴们可以试试~

相关推荐
乐迪信息8 小时前
乐迪信息:船舶AI逆行检测算法在单向航道中的强制管控
大数据·人工智能·安全·计算机视觉·目标跟踪
Ronaldinho Gaúch8 小时前
权重初始化
深度学习·神经网络
⊱⋛赫宇⋚⊰8 小时前
转专业数学
线性代数·机器学习·概率论
羊小猪~~8 小时前
LLM--BERT架构解析
人工智能·深度学习·大模型·llm·nlp·bert·ai算法
未来之窗软件服务8 小时前
SenseVoicecpp ggml-hexagon.cpp大模型[AI人工智能(七十九)]—东方仙盟
人工智能·算法·仙盟创梦ide·东方仙盟
NOCSAH8 小时前
统好AI数智平台CRM:用自然语言高效管理客户
大数据·人工智能·统好ai·数智一体化平台
仙人掌_lz8 小时前
Antigravity突然完全停止工作、无响应或卡死的问题
人工智能
Are_You_Okkk_8 小时前
AI编程赋能研发效率:核心能力与实践经验总结
人工智能·开源·ai编程
鱼骨不是鱼翅9 小时前
jupyter notebook
ide·人工智能·jupyter
圣殿骑士-Khtangc9 小时前
OpenClaw 完整部署教程(2026最新版)|Windows / macOS / Linux 全平台保姆级指南
人工智能·openclaw