使用Hugging Face平台下载模型&在HF平台上使用Spaces部署intern_cobuild&模型上传

上篇链接如下:

在 GitHub 上创建一个 Pull Request&创建并提交一个项目

在 GitHub 上创建一个 Pull Request&创建并提交一个项目-优快云博客icon-default.png?t=O83Ahttps://blog.youkuaiyun.com/quentinrt/article/details/143835857

今天的内容链接:

Tutorial/docs/L0/maas/readme.md at camp4 · InternLM/Tutorialicon-default.png?t=O83Ahttps://github.com/InternLM/Tutorial/blob/camp4/docs/L0/maas/readme.md使用Hugging Face平台下载模型

1.打开github页面,进入codespace,选择jupyter Notebook 界面。Sign in to GitHub · GitHubGitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.icon-default.png?t=O83Ahttps://github.com/codespaces

2.在终端安装transformers

# 安装transformers
pip install transformers==4.38
pip install sentencepiece==0.1.99
pip install einops==0.8.0
pip install protobuf==5.27.2
pip install accelerate==0.33.0

3.下载internlm2_5-7b-chat的配置文件

 以下载模型的配置文件为例,先新建一个hf_download_josn.py 文件

 touch hf_download_josn.py

<think>我们需要完成两个主要步骤: 1. 离线下载 Hugging Face 模型。 2. 使用 vLLM 部署下载好的模型。 ### 步骤1: 离线下载 Hugging Face 模型 我们可以使用 `huggingface_hub` 库中的 `snapshot_download` 函数来下载模型。此外,也可以使用 `git-lfs` 和 `git` 命令,但使用 `snapshot_download` 更为简便。 首先,安装必要的库: ```bash pip install huggingface-hub ``` 然后,编写一个Python脚本来下载模型。例如,我们要下载模型 "meta-llama/Llama-2-7b-chat-hf"(注意:需要获得授权)。 ### 步骤2: 使用 vLLM 部署模型 vLLM 是一个快速且易于使用的库,用于LLM推理和服务。安装 vLLM: ```bash pip install vllm ``` 然后,我们可以使用 vLLM 提供的 OpenAI 兼容的 API 服务来部署模型。 下面是详细的步骤和代码: #### 1. 离线下载模型 ```python from huggingface_hub import snapshot_download # 设置模型名称,这里以 Llama-2 为例(需要先登录huggingface-cli,并且有权限) model_id = "meta-llama/Llama-2-7b-chat-hf" # 下载模型到本地目录 local_model_path = snapshot_download( repo_id=model_id, revision="main", # 分支或tag cache_dir="./models", # 缓存目录,也可以不指定,默认在~/.cache/huggingface/hub local_dir="./models/Llama-2-7b-chat-hf", # 指定本地目录,将模型文件复制到这里(如果指定,则会在下载后复制一份) local_dir_use_symlinks=False, # 如果不使用符号链接,则直接复制文件 ) print(f"模型下载至: {local_model_path}") ``` 注意:如果模型需要认证,请先使用 `huggingface-cli login` 登录。 #### 2. 使用 vLLM 部署模型 vLLM 提供了命令行工具 `vllm.entrypoints.openai.api_server` 来启动一个 OpenAI 兼容的 API 服务器。我们可以指定我们下载模型路径。 ```bash python -m vllm.entrypoints.openai.api_server \ --model ./models/Llama-2-7b-chat-hf \ --trust-remote-code \ # 如果模型需要运行自定义代码,则加上此参数 --port 8000 ``` 或者,我们可以编写一个Python脚本来启动服务器: ```python from vllm.entrypoints.openai import api_server api_server.serve( model="./models/Llama-2-7b-chat-hf", trust_remote_code=True, port=8000 ) ``` 但是,注意:vLLM 的 API 服务器通常通过命令行启动,因为它需要设置一些环境变量和参数。所以推荐使用命令行启动。 #### 3. 测试部署模型 我们可以使用 curl 或者 Python 请求来测试部署模型。 ```bash curl http://localhost:8000/v1/completions \ -H "Content-Type: application/json" \ -d '{ "model": "./models/Llama-2-7b-chat-hf", "prompt": "San Francisco is a", "max_tokens": 7, "temperature": 0 }' ``` 或者使用 Python 代码: ```python from openai import OpenAI # 注意:这里使用OpenAI库,需要安装 openai 包(pip install openai) # 但vLLM的API服务器是兼容OpenAI API的,所以我们可以这样调用 client = OpenAI( base_url="http://localhost:8000/v1", # vLLM服务器的地址 api_key="token-abc123" # 如果服务器设置了api_key,否则可以随意填写 ) completion = client.completions.create( model="./models/Llama-2-7b-chat-hf", # 这里填写模型路径,但注意在vLLM服务器启动时已经指定了模型,所以这里其实可以忽略,或者保持一致 prompt="San Francisco is a", max_tokens=7, temperature=0 ) print(completion.choices[0].text) ``` ### 完整流程 1. 下载模型(离线环境需要先在有网络的环境中下载好,然后移动到离线环境)。 2. 使用 vLLM 部署模型(在离线环境中,确保已经安装好 vLLM 和所有依赖)。 3. 测试 API。 注意:vLLM 要求 CUDA 环境,并且需要安装与 CUDA 版本匹配的 PyTorch。 ### 相关问题 根据要求,我们提出以下相关问题: §§相关问题§§: 1. 如何在没有互联网的环境中下载 Hugging Face 模型? 2. vLLM 支持哪些模型?是否支持所有 Hugging Face 模型? 3. 使用 vLLM 部署模型时,如何启用多GPU推理? 4. 如何监控 vLLM 服务器的性能和资源使用情况? </think>### Hugging Face 离线下载模型使用 vLLM 部署 #### 1. 离线下载 Hugging Face 模型 使用 `snapshot_download` 方法下载模型到本地目录: ```python from huggingface_hub import snapshot_download # 下载模型(以 Meta-Llama-3-8B-Instruct 为例) snapshot_download( repo_id="meta-llama/Meta-Llama-3-8B-Instruct", local_dir="./llama-3-8b-instruct", # 本地保存路径 revision="main", # 模型版本分支 local_dir_use_symlinks="auto", # 自动处理符号链接 token="your_hf_token", # Hugging Face 访问令牌 ignore_patterns=["*.h5", "*.ot"], # 忽略非必要文件 max_workers=4 # 多线程下载 ) ``` **代码说明**: - `repo_id`: Hugging Face 模型仓库 ID - `local_dir`: 本地存储目录(建议至少 20GB 空间) - `token`: 从 [Hugging Face 设置页面](https://huggingface.co/settings/tokens) 获取 - `ignore_patterns`: 过滤非必需文件,减少下载量 - 下载完成后,目录结构包含: ``` llama-3-8b-instruct/ ├── config.json ├── model-00001-of-00002.safetensors ├── model.safetensors.index.json └── tokenizer.json ``` #### 2. 使用 vLLM 部署模型 安装 vLLM(需要 CUDA 环境): ```bash pip install vllm # 需要 Python 3.8+ 和 CUDA 11.8+ ``` 启动 API 服务器: ```bash python -m vllm.entrypoints.openai.api_server \ --model ./llama-3-8b-instruct \ # 模型路径 --tensor-parallel-size 2 \ # GPU 并行数量 --max-model-len 4096 \ # 最大上下文长度 --port 8000 \ # 服务端口 --trust-remote-code # 信任自定义代码 ``` #### 3. 测试部署服务 使用 OpenAI 兼容 API 发送请求: ```python from openai import OpenAI client = OpenAI( base_url="http://localhost:8000/v1", # vLLM 服务地址 api_key="no-key-required" ) response = client.completions.create( model="./llama-3-8b-instruct", # 与启动参数一致 prompt="Explain quantum physics in simple terms:", max_tokens=256, temperature=0.7 ) print(response.choices[0].text) ``` #### 关键注意事项: 1. **硬件要求**: - GPU:推荐 A100/A10 等显存 ≥ 24GB - 显存估算:模型参数量(GB)≈ 参数量 × 2(FP16) 2. **常见问题解决**: - 显存不足:添加 `--quantization awq` 使用 4-bit 量化 - 加载失败:检查模型目录是否包含 `config.json` - 权限问题:对模型目录执行 `chmod -R 755 ./llama-3-8b-instruct` 3. **生产建议**: - 使用 Docker 容器化部署 - 添加 `--api-key YOUR_SECRET_KEY` 启用认证 - 使用 Nginx 反向代理和 SSL 加密
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值