Huggingface transformers 和 modelscope 框架运行原理

以Huggingface上的 google-bert/bert-base-chinese模型为例。我们使用Huggingface提供的transformers框架来启动模型

#加载模型
from transformers import AutoModelForMaskedLM
#加载分词器
from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("bert-base-chinese")
model = AutoModelForMaskedLM.from_pretrained("bert-base-chinese")

虽然填入的模型只有 bert-base-chinese 这一截,实际上完整的是 google-bert/bert-base-chinese,请求达到 huggingface.co 之后,它会搜索 bert-base-chinese,然后取第一个,于是就重定向到了 google-bert/bert-base-chinese

相关的代码如下:D:\ProgramData\Anaconda3\Lib\site-packages\transformers\utils\hub.py:376行。

函数是 cached_file(),其中 revision 默认值是 main 分支。
完整路径:https://huggingface.co/google-bert/bert-base-chinese/tree/main

下载的文件会保存到 cache_dir 目录下,默认为 C:\Users\Administrator.DESKTOP-TPJL4TC.cache\huggingface\hub,即 HOME 目录下。
force_download 是强制重新下载。但是默认都是断点续传的,如果你上次下载中途断掉了,下次会接着下。

现在无论是Huggingface还是modelscope平台,大部分模型都不会上传代码,也就是只有几个配置文件和模型权重参数文件,但是,在运行模型的时候是需要构建分词器和构建模型,这就需要根据不同的模型架构使用python代码来实现,在Huggingface和modelscope框架中都内置了很多模型的构建代码,它根据内置的mapping隐射信息找到具体的类,如果本地没有这个代码,它还可以自动从网上下载(这需要在config中配置)

下面是 AutoTokenizer 的过程:
tokenizer 的 from_pretrained 是构建分词器,因此它只会下载三个文件(tokenizer_config.json,vocab.txt,tokenizer.json),不会下载巨大的模型文件。

如果你使用的是 AutoTokenizer,那它是如何寻找到要使用哪个类呢,比如这里应该是 BertTokenizer?
它判断的根据依次是:你传入的参数,模型配置文件(tokenizer_config.json, tokenizer.json, config.json)。
相关字段 tokenizer_class, model_type,此例中根据 model_type=bert,在 CONFIG_MAPPING_NAMES 中找到 bert --> BertConfig,最终会返回 BertTokenizer

但是在构建model的时候,却不能简单的使用AutoModel,因

<think>好的,我需要帮助用户了解Qwen3的本地部署方法。首先,我得回顾一下用户提供的引用内容,看看有哪些相关的部署指南。引用[1]提到了使用SGLang部署Qwen3-30B-A3B-FP8模型,运行命令包括设置环境变量启动服务器。引用[3]详细说明了使用Hugging Face TransformersModelScope下载Qwen3-32B模型,并提到SGLang的部署步骤。引用[4]则介绍了使用VLLM框架进行部署,包括环境准备、依赖安装模型下载。用户之前可能已经询问过相关问题,所以需要综合这些信息给出清晰的步骤。 用户的需求是本地部署Qwen3,可能需要不同的方法,比如使用SGLang或VLLM。我应该分步骤说明,确保结构清晰。首先环境准备,安装必要的库工具,比如Python虚拟环境、ModelScope、SGLang或VLLM。然后模型下载,通过ModelScope或Hugging Face获取模型文件。接着部署方法,分两种:SGLangVLLM,每种都要具体的命令参数。最后验证服务,确保部署成功,比如运行测试代码或API调用。 需要注意用户提供的引用中有不同的模型版本,如30B32B,需要指出用户应根据需求选择合适的模型。同时,硬件要求如GPU显存可能影响部署方式,需要提及。可能的问题包括依赖冲突或模型路径错误,提醒用户注意这些点。最后生成相关问题,帮助用户进一步了解优化应用场景。</think>以下是Qwen3本地部署的详细指南,整合了多种主流部署方案: ### 一、环境准备 1. 安装Python虚拟环境 ```bash conda create -n qwen3 python=3.10 conda activate qwen3 ``` 2. 安装基础依赖库 ```bash pip install modelscope transformers torch ``` ### 二、模型下载 #### 方案1:通过ModelScope下载 ```bash modelscope download --model Qwen/Qwen3-32B --local_dir ./Qwen3-32B ``` #### 方案2:HuggingFace下载 ```python from transformers import AutoModel model = AutoModel.from_pretrained("Qwen/Qwen3-32B", trust_remote_code=True) ``` ### 三、部署方法 #### 方案A:SGLang部署(适合交互式开发) 1. 安装依赖 ```bash pip install sglang ``` 2. 启动服务 ```bash SGLANG_USE_MODELSCOPE=true python -m sglang.launch_server \ --model-path ./Qwen3-32B \ --port 8000 \ --gpu-memory-utilization 0.9 ``` 3. 验证服务 ```python from sglang import function @function def qa(s, question): s += f"问题:{question}\n回答:" s += runtime.generate("answer", max_tokens=256) qa(question="解释量子计算的基本原理") ``` #### 方案B:VLLM部署(适合生产环境) 1. 安装依赖 ```bash pip install vllm flash-attn --extra-index-url https://download.pytorch.org/whl/cu118 ``` 2. 启动服务 ```bash python -m vllm.entrypoints.openai.api_server \ --model ./Qwen3-32B \ --tensor-parallel-size 4 \ --gpu-memory-utilization 0.85 \ --served-model-name qwen3-32b ``` 3. API调用示例 ```python import openai client = openai.OpenAI(base_url="http://localhost:8000/v1") response = client.chat.completions.create( model="qwen3-32b", messages=[{"role": "user", "content": "编写Python快速排序算法"}] ) print(response.choices[0].message.content) ``` ### 四、硬件要求建议 | 模型版本 | 最小显存 | 推荐显存 | 部署方案 | |----------|----------|----------|----------------| | 7B | 16GB | 24GB | 单卡部署 | | 14B | 24GB | 40GB | 单卡/双卡 | | 32B | 80GB | 120GB | 多卡并行 | ### 五、常见问题排查 1. **CUDA内存不足**:调整`--gpu-memory-utilization`参数(建议0.8-0.95) 2. **下载中断**:使用`modelscope download --resume-download`续传 3. **依赖冲突**:建议使用干净的Python虚拟环境
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值