You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将自定义标签传入HuggingFace数据收集器用于LLM微调?

关于Decoder LLM微调屏蔽输入部分Loss的问题解答

问题1:屏蔽输入数据的Loss计算逻辑是否合理?

完全没问题。对于GPT这类Decoder架构的LLM,采用「输入数据+标签」的Prompt格式做监督微调时,只对标签部分计算Loss是标准且合理的做法:

  • 用-100标记输入数据对应的labels位置,PyTorch的CrossEntropyLoss会自动忽略这些位置的Loss计算
  • 这样模型只会聚焦于学习从输入生成目标标签的能力,避免无意义的输入部分预测,节省算力同时提升训练效率

问题2:如何避免DataCollator覆盖自定义Labels?

不需要自定义收集器,直接用内置的DataCollatorWithPadding即可:

  • 原DataCollatorForLanguageModeling在mlm=False(因果语言建模模式)下,会强制将labels设置为和input_ids完全相同,这就是它覆盖你预先设置的labels的原因
  • 替换为DataCollatorWithPadding后,它仅负责对input_ids、attention_mask、labels等字段做padding对齐,不会修改你在tokenization阶段设置好的labels值,完美适配你的需求

示例代码片段:

from transformers import DataCollatorWithPadding

# 初始化收集器,指定tokenizer
data_collator = DataCollatorWithPadding(tokenizer=tokenizer)

内容的提问来源于stack exchange,提问作者Rgkpdx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 18:18:16