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

训练模型无pytorch_model.bin但可运行,上传HuggingFace是否有问题?

模型训练后缺少pytorch_model.bin但能正常工作,上传HuggingFace是否有问题?

我训练了一个GPT2模型,输出目录里有training_args.bin等必要文件,但找不到pytorch_model.bin。查资料和相关信息显示这个文件应该存在,但模型能正常生成符合预期的响应。现在打算把模型上传到HuggingFace,想确认这会不会有问题。

训练代码

from transformers import GPT2Tokenizer, GPT2LMHeadModel, Trainer, TrainingArguments, DataCollatorForLanguageModeling
from datasets import load_from_disk

# Load the dataset from disk
dataset = load_from_disk("./kipling_dataset")

# Load the tokenizer
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")

# Load the previously trained model
model = GPT2LMHeadModel.from_pretrained("gpt2")  # Load the saved model

# Ensure tokenizer has padding token
tokenizer.pad_token = tokenizer.eos_token
model.resize_token_embeddings(len(tokenizer))

# Data collator for language modeling
data_collator = DataCollatorForLanguageModeling(
    tokenizer=tokenizer, mlm=False
)

# Define training arguments
training_args = TrainingArguments(
    output_dir="./aikipling_model",  # Save model to this directory
    overwrite_output_dir=True,  # Overwrite existing model
    num_train_epochs=5,  # Train for 5 epochs (you can adjust this based on your data size)
    per_device_train_batch_size=4,  # Adjust batch size (you can try increasing this if you have sufficient memory)
    save_steps=500,  # Save model every 500 steps
    save_total_limit=2,  # Limit saved models to the last 2
    logging_dir="./logs",  # Directory for logs
    logging_steps=100,  # Log every 100 steps
    fp16=False,  # Set to True if you're using a GPU that supports FP16
)


# Initialize Trainer
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=dataset,
    tokenizer=tokenizer,
    data_collator=data_collator,
)

# Start training
trainer.train()

# Save final model
trainer.save_model("./aikipling_model_final")
tokenizer.save_pretrained("./aikipling_model_final")

问题分析与解决建议

  • 权重文件格式变更:Hugging Face Transformers库现在默认使用safetensors格式(对应文件model.safetensors)替代传统的pytorch_model.bin,这是更安全的序列化格式。检查你的./aikipling_model_final目录,如果存在model.safetensors,就说明模型权重已经正常保存,上传到HuggingFace完全没问题,平台会自动识别这个文件。
  • 如何生成pytorch_model.bin:如果确实需要生成pytorch_model.bin,可以通过两种方式实现:
    1. 在TrainingArguments中添加参数save_safetensors=False;
    2. 调用trainer.save_model()时指定参数:trainer.save_model("./aikipling_model_final", safe_serialization=False)。
  • 验证模型可用性:在本地执行GPT2LMHeadModel.from_pretrained("./aikipling_model_final"),如果能成功加载模型,就说明权重文件是有效的,上传后不会影响使用。
  • 上传前的目录检查:确保./aikipling_model_final目录包含以下关键文件:config.json、tokenizer相关文件(vocab.json、merges.txt、tokenizer.json)、权重文件(model.safetensors或pytorch_model.bin)、training_args.bin,这些文件是HuggingFace识别模型的必要条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 08:18:26