以下是将自己训练的大模型发布到HuggingFace Model Hub的完整指南:
1. 准备工作
1.1 创建HuggingFace账户
- 注册账号:HuggingFace官网
- 生成访问令牌(Access Token):
- 点击右上角头像 →
Settings
→Access Tokens
→New Token
- 权限建议选择
write
(允许上传模型)
- 点击右上角头像 →
1.2 安装依赖库
pip install huggingface_hub transformers datasets
1.3 模型文件检查
确保模型目录包含以下文件:
- 必需文件:
pytorch_model.bin
或model.safetensors
(模型权重)config.json
(模型配置文件)tokenizer.json
或tokenizer_config.json
(分词器配置)
- 推荐文件:
README.md
(模型说明文档)LICENSE
(许可证文件,如Apache-2.0/MIT)special_tokens_map.json
(特殊标记映射)
2. 本地测试模型
2.1 验证模型可加载
from transformers import AutoModel, AutoTokenizer
model_path = "./your_model_directory"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModel.from_pretrained(model_path)
# 测试推理
input_text = "Hello, how are you?"
inputs = tokenizer(input_text, return_tensors="pt")
outputs = model(**inputs)
print(outputs)
2.2 生成模型卡(Model Card)
在模型目录中创建 README.md
,内容示例:
---
language:
- en
- zh
license: apache-2.0
tags:
- your-task-name
- custom-model
---
# Your Model Name
## Model Description
- **Architecture**: 基于LLaMA-2-7B微调
- **训练数据**: 自定义数据集(100万条样本)
- **应用场景**: 对话生成/文本分类等
## 使用示例
```python
from transformers import pipeline
pipe = pipeline("text-generation", model="your_hf_username/your_model_name")
print(pipe("What is AI?"))
许可证
Apache-2.0
---
### **3. 上传到HuggingFace Hub**
#### **3.1 命令行上传**
```bash
# 登录HuggingFace
huggingface-cli login
# 输入生成的Access Token
# 上传模型
huggingface-cli upload your_hf_username/your_model_name ./model_directory
3.2 Python代码上传
from huggingface_hub import HfApi
api = HfApi()
api.create_repo(
repo_id="your_hf_username/your_model_name",
repo_type="model",
exist_ok=True
)
api.upload_folder(
folder_path="./model_directory",
repo_id="your_hf_username/your_model_name",
repo_type="model"
)
4. 高级配置
4.1 处理大文件(>10GB)
- 使用Git LFS管理大文件:
git lfs install git clone https://huggingface.co/your_hf_username/your_model_name cp -r ./model_directory/* ./your_model_name/ cd your_model_name git add . && git commit -m "Add model files" git push
4.2 添加模型标签
在README.md的YAML头中指定:
tags:
- text-generation
- pytorch
- llama
4.3 设置模型类型
在 config.json
中明确指定:
{
"model_type": "llama",
"architectures": ["LlamaForCausalLM"]
}
5. 发布后操作
5.1 在线测试
访问模型页面:https://huggingface.co/your_hf_username/your_model_name
- 使用网页端的"Inference API"直接测试
- 分享Colab Notebook示例
5.2 版本管理
- 通过Git打标签管理版本:
git tag v1.0.0 git push origin v1.0.0
5.3 社区推广
- 在模型页面的"Community"选项卡发布公告
- 在HuggingFace论坛发帖介绍
常见问题解答
Q1: 上传失败提示存储空间不足
- 免费账户默认有10GB存储空间,可申请扩容:
- 个人主页 →
Settings
→Storage
→Request Quota Increase
- 个人主页 →
Q2: 如何选择合适的许可证?
- 推荐选择:
- 开源模型:Apache-2.0 / MIT
- 商业用途受限模型:CC-BY-NC-4.0
- 基于LLaMA的模型:需遵守Meta许可证
Q3: 模型上传后无法加载
- 检查文件完整性:
- 确认
config.json
中的model_type
与代码匹配 - 运行验证脚本:
python -c "from transformers import AutoModel; AutoModel.from_pretrained('your_model_name')"
- 确认
Q4: 如何更新已发布的模型?
- 直接通过Git推送新版本:
git add . && git commit -m "Update model" git push
通过以上步骤,你可以将自定义训练的大模型安全高效地发布到HuggingFace社区。建议在发布前仔细检查模型合规性(尤其涉及Llama/Mistral等受限模型),并参考官方文档:HuggingFace Model Hub指南。