通过命令将模型和数据下载到本地,通过代码准备预训练提示下面的错误。

TimeoutError: Unsloth: HuggingFace seems to be down after trying for 120 seconds 😦

Check https://status.huggingface.co/ for more details.

As a temporary measure, use modelscope with the same model name ie:


pip install modelscope

import os; os.environ['UNSLOTH_USE_MODELSCOPE'] = '1'

from unsloth import FastLanguageModel

model = FastLanguageModel.from_pretrained('unsloth/gpt-oss-20b')

解决方法:开启“离线模式”
要彻底禁止 Unsloth 尝试联网,你需要通过环境变量强制开启 离线模式。

方案一:在 Python 代码中设置(推荐)

在你的 train.py 最开头(必须在 from unsloth import … 之前)添加以下代码:

import os

# 1. 强制 HF 进入离线模式,不检查远程元数据
os.environ["HF_HUB_OFFLINE"] = "1"

# 2. 如果你不想让它尝试连接 ModelScope 也可以加上这个(可选)
# os.environ['UNSLOTH_USE_MODELSCOPE'] = '0' 

from unsloth import FastLanguageModel
import torch

# 你的本地路径
local_model_path = "/root/autodl-tmp/DeepSeek-R1-Distill-Llama-8B/"

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = local_model_path,
    max_seq_length = 2048,
    dtype = None,
    load_in_4bit = True,
    local_files_only = True, # 关键:强制只读取本地文件
)

方案二:在终端执行(最彻底)

如果你是通过终端运行脚本的,可以在运行前直接设置环境变量:

export HF_HUB_OFFLINE=1
python /root/autodl-tmp/py/train.py
为什么还会报错?原因分析
从你的 Traceback(报错堆栈)可以看到:
File ".../unsloth/models/_utils.py", line 1446, in get_statistics

这是 Unsloth 内部的一个数据采集逻辑。它本意是想检查模型是否有更新或者上报使用情况,但在国内服务器上,这个 get_statistics 步骤由于无法访问远程服务器,成了死循环直到超时。

总结需要修改的点:
添加 os.environ[“HF_HUB_OFFLINE”] = “1”:这是解决问题的核心。

在 from_pretrained 中添加 local_files_only = True:这会告诉 Transformers 库不要去网上找 config 文件。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐