https://github.com/huggingface/
https://www.modelscope.cn/organization/MTEB?tab=model
想用你熟悉的代码风格加载千问(Qwen)或智谱(GLM)的模型,关键就是把"gpt2"这个占位符,换成对应模型在 Hugging Face 或 ModelScope 上的仓库ID。

🔧 核心代码修改

只需要改动from_pretrained里的模型名称,结构是完全一样的。

1. 加载通义千问 (Qwen) 模型

  • Hugging Face: 模型ID通常是 "Qwen/Qwen-7B-Chat""Qwen/Qwen-14B-Chat" 等 。
  • ModelScope: 模型ID类似 "qwen/Qwen-7B-Chat-Int4",这是量化版本,对显存更友好 。
  • 代码示例 (以 Hugging Face 为例):
    from transformers import AutoModelForCausalLM, AutoTokenizer
    
    # 指定千问的模型名称
    model_name = "Qwen/Qwen-7B-Chat"
    
    tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
    model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", trust_remote_code=True)
    
    注意:千问模型通常需要加上trust_remote_code=True参数 。

2. 加载智谱 (GLM) 模型

  • Hugging Face: 智谱AI官方模型ID类似 "THUDM/glm-4-9b-chat-1m-hf" (支持超长上下文)或 "ZhipuAI/Open-AutoGLM"
  • 代码示例 (以智谱GLM-4为例):
    from transformers import AutoModelForCausalLM, AutoTokenizer
    
    # 指定智谱的模型名称
    model_name = "THUDM/glm-4-9b-chat-1m-hf"
    
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto")
    
    同样建议加上device_map="auto"让程序自动分配设备 。

💡 补充一点

如果加载时遇到网络问题,可以考虑从国内的ModelScope(魔搭)社区下载模型。只需要修改from_pretrained的路径,并确保安装了modelscope库即可 。

这个报错是典型的网络连接问题,意味着你的电脑无法直接访问 Hugging Face 的服务器。这通常是由于网络限制或防火墙引起的,而不是代码本身的问题。

🛠️ 解决方案(由易到难)

你可以按顺序尝试以下方法,通常第一种就能解决问题。

1. 使用国内镜像源(最推荐,最有效)
将模型下载源切换到国内的ModelScope(魔搭)社区,只需修改两行代码,不需要其他复杂配置:

# 1. 先安装 modelscope 库 (在终端执行)
# pip install modelscope

from modelscope import AutoModelForCausalLM, AutoTokenizer

# 使用魔搭的模型ID
model_name = "qwen/Qwen-7B-Chat"

tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", trust_remote_code=True)

2. 配置 Hugging Face 国内镜像加速
如果仍想从 Hugging Face 下载,可以设置环境变量,使用国内的镜像站(如 hf-mirror.com)来加速。在你的代码最前面加入:

import os
# 设置镜像站
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"

3. 手动下载模型并本地加载
如果自动下载始终失败,可以手动下载模型文件到本地文件夹,然后从本地路径加载。

  1. 在浏览器中访问魔搭社区 (www.modelscope.cn) 或 Hugging Face 镜像站,搜索并下载 Qwen-7B-Chat 的模型文件(通常包含 .bin.safetensors 权重文件和 config.json 等)。
  2. 将所有文件放在一个本地文件夹,例如 D:/models/Qwen-7B-Chat
  3. 修改加载代码:
from transformers import AutoModelForCausalLM, AutoTokenizer

# 使用本地文件夹路径
model_path = "D:/models/Qwen-7B-Chat"

tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_path, device_map="auto", trust_remote_code=True)

💡 补充提示

  • 注意显存Qwen-7B-Chat 是7B参数的模型,完整精度需要约14GB显存。如果你的显卡显存不足,可以考虑加载量化版本,模型ID为 qwen/Qwen-7B-Chat-Int4(需约6GB显存)。
  • 信任远程代码:加载千问和智谱模型时,参数 trust_remote_code=True必须的,因为它们的模型结构需要执行自定义的Python代码。

建议你先尝试方法1(使用ModelScope),这是目前最稳定、最快捷的方式。如果遇到其他问题,可以随时告诉我你的网络环境和显卡配置,我再帮你调整。

这个报错非常明确:你的代码仍在尝试从 Hugging Face 官网下载模型,而不是从你指定的本地路径或 ModelScope 加载。

根据你之前的问题,我判断你目前是混合使用了不同来源的代码,导致程序没有正确指向本地模型。

🎯 问题根源与解决方案

根本原因:你的 AutoTokenizer.from_pretrained(model_path, ...) 中的 model_path 没有被正确识别为本地路径,程序转而尝试从 Hugging Face 官网下载。

请立即按以下步骤检查和修改,问题即可解决:

  1. 检查 model_path 的值
    请确认你代码中的 model_path 变量是否"/""D:" 等盘符开头,且不包含 "Qwen/Qwen-7B-Chat" 这样的ID格式。

    • 错误示例model_path = "Qwen/Qwen-7B-Chat" (会被识别为网络ID)
    • 正确示例model_path = "D:/models/Qwen-7B-Chat" (本地路径)
  2. 确保本地文件夹完整
    如果你使用的是本地路径,请再次确认 D:/models/Qwen-7B-Chat 文件夹下确实有 config.json 文件。如果文件缺失或不完整,程序仍会回退到网络下载。

💡 最稳妥的解决方案:彻底切换到 ModelScope

鉴于你反复遇到网络问题,我强烈建议放弃本地文件管理,统一使用 ModelScope 社区的 API。这能同时解决网络连接和文件完整性问题。

请直接使用以下完整代码(复制粘贴即可运行):

# 1. 先确保安装了必要的库(在终端执行)
# pip install modelscope sentencepiece

# 2. 完整的加载代码
from modelscope import AutoTokenizer, AutoModelForCausalLM

# 使用 ModelScope 的模型 ID,而不是本地路径
model_id = "qwen/Qwen-7B-Chat"  # 如果显存不足,可改为 "qwen/Qwen-7B-Chat-Int4"

print("正在从 ModelScope 加载模型,首次会下载,请耐心等待...")
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto", trust_remote_code=True)
print("模型加载成功!")

# 可选的测试代码
inputs = tokenizer("你好,", return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=50)
print(tokenizer.decode(outputs[0]))

⚠️ 重要检查清单

如果上述方案仍不行,请按顺序检查:

  1. 网络环境:确保你的网络能正常访问 www.modelscope.cn(通常可以)。
  2. 库版本:在终端运行 pip install --upgrade modelscope transformers 更新到最新版。
  3. Python 环境:确认你安装库和运行代码使用的是同一个 Python 环境(比如都是 venv)。
    在这里插入图片描述

通过一下命令进行魔达社区下载模型
modelscope download --model Qwen/Qwen-7B-Chat

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐