Bootstrap

将自己训练好的大模型发布到HuggingFace

以下是将自己训练的大模型发布到HuggingFace Model Hub的完整指南:


1. 准备工作

1.1 创建HuggingFace账户
  • 注册账号:HuggingFace官网
  • 生成访问令牌(Access Token):
    • 点击右上角头像 → SettingsAccess TokensNew Token
    • 权限建议选择 write(允许上传模型)
1.2 安装依赖库
pip install huggingface_hub transformers datasets
1.3 模型文件检查

确保模型目录包含以下文件:

  • 必需文件
    • pytorch_model.binmodel.safetensors(模型权重)
    • config.json(模型配置文件)
    • tokenizer.jsontokenizer_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 社区推广

常见问题解答

Q1: 上传失败提示存储空间不足
  • 免费账户默认有10GB存储空间,可申请扩容:
    • 个人主页 → SettingsStorageRequest 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指南

;