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

使用SFTTrainer微调Mistral模型时遇tokenizer参数错误的解决咨询

解决TRL中SFTTrainer传入tokenizer的报错问题

在TRL最新版本(v0.7及以后)中,SFTTrainer的初始化参数确实移除了tokenizer,相关配置已整合到SFTConfig中,这就是你遇到TypeError的核心原因。

正确处理步骤

将tokenizer直接传入SFTConfig的初始化参数,而非SFTTrainer,同时移除SFTTrainer中的tokenizer参数。具体修改如下:

修改训练配置部分

# Training configuration
training_arguments = SFTConfig(
    output_dir="mistral-finetuned-alpaca",
    per_device_train_batch_size=8,
    gradient_accumulation_steps=1,
    optim="paged_adamw_32bit",
    learning_rate=2e-4,
    lr_scheduler_type="cosine",
    save_strategy="epoch",
    logging_steps=100,
    num_train_epochs=1,
    max_steps=250,
    fp16=True,
    packing=False,
    max_seq_length=512,
    dataset_text_field="text",
    push_to_hub=True,
    tokenizer=tokenizer  # 在这里传入tokenizer
)

修改Trainer初始化部分

# Initialize trainer
trainer = SFTTrainer(
    model=model,
    train_dataset=data,
    peft_config=peft_config,
    args=training_arguments
    # 移除此处的tokenizer参数
)

关于移除tokenizer后分词报错的原因

当你不传入tokenizer时,SFTConfig会尝试从模型关联配置中自动加载tokenizer,但对于你使用的GPTQ量化模型(Mistral-7B-Instruct-v0.1-GPTQ),模型本身未绑定对应的tokenizer,因此会导致分词阶段失败。显式将tokenizer传入SFTConfig后,训练过程就能正确调用分词逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 14:38:26