File size: 5,375 Bytes
6f2c7f0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
# Hướng dẫn Deploy MIMO lên Hugging Face Spaces
## Tổng quan
MIMO là một mô hình AI để tạo video nhân vật có thể điều khiển được. Hướng dẫn này sẽ giúp bạn deploy dự án lên Hugging Face Spaces.
## Chuẩn bị Files
### 1. Files cần thiết đã được tạo/cập nhật:
- ✅ `app_hf.py` - Ứng dụng Gradio được tối ưu cho HF Spaces
- ✅ `README_HF.md` - README với metadata cho HF Spaces
- ✅ `requirements.txt` - Dependencies đã được cập nhật
- ✅ `.gitattributes` - Cấu hình Git LFS cho files lớn
### 2. Cấu trúc thư mục sau khi deploy:
```
repo/
├── app.py (rename from app_hf.py)
├── README.md (use README_HF.md content)
├── requirements.txt
├── .gitattributes
├── configs/
├── src/
├── tools/
├── assets/ (sẽ được tải tự động hoặc cần upload)
└── pretrained_weights/ (sẽ được tải tự động)
```
## Các bước Deploy
### Bước 1: Tạo Repository trên Hugging Face
1. Truy cập https://huggingface.co/new-space
2. Chọn "Create new Space"
3. Điền thông tin:
- **Space name**: `mimo-demo` (hoặc tên khác)
- **License**: Apache 2.0
- **SDK**: Gradio
- **Hardware**: GPU (khuyến nghị T4 hoặc A10G)
- **Visibility**: Public
### Bước 2: Clone và Setup Repository
```bash
# Clone space repository
git clone https://huggingface.co/spaces/YOUR_USERNAME/mimo-demo
cd mimo-demo
# Copy files từ project hiện tại
cp /path/to/mimo-demo/app_hf.py ./app.py
cp /path/to/mimo-demo/README_HF.md ./README.md
cp /path/to/mimo-demo/requirements.txt ./
cp /path/to/mimo-demo/.gitattributes ./
cp -r /path/to/mimo-demo/configs ./
cp -r /path/to/mimo-demo/src ./
cp -r /path/to/mimo-demo/tools ./
# Tạo thư mục assets cơ bản (nếu chưa có)
mkdir -p assets/masks assets/test_image assets/video_template
```
### Bước 3: Cấu hình Git LFS
```bash
# Initialize git lfs
git lfs install
# Add large files to git lfs tracking
git lfs track "*.pth"
git lfs track "*.bin"
git lfs track "*.safetensors"
git lfs track "*.mp4"
git lfs track "assets/**"
git lfs track "pretrained_weights/**"
```
### Bước 4: Upload Assets và Model Weights
Có 2 cách để xử lý model weights và assets:
#### Cách 1: Tự động download (Khuyến nghị)
Code trong `app_hf.py` đã được thiết kế để tự động download models từ Hugging Face khi khởi động. Điều này giúp giảm kích thước repository.
#### Cách 2: Upload manual
```bash
# Download và upload assets manually nếu cần
# (Chỉ nên dùng cho files nhỏ < 50MB)
```
### Bước 5: Commit và Push
```bash
git add .
git commit -m "Initial deployment of MIMO demo"
git push
```
### Bước 6: Cấu hình Space Settings
1. Truy cập settings của Space trên Hugging Face
2. Kiểm tra:
- **Hardware**: Chọn GPU phù hợp (T4 minimum, A10G khuyến nghị)
- **Environment variables**: Thêm nếu cần
- **Secrets**: Thêm API keys nếu cần
## Tối ưu hóa Performance
### 1. GPU Memory Management
- App đã được tối ưu để sử dụng `@spaces.GPU` decorator
- Tự động fallback về CPU nếu không có GPU
- Clear GPU cache sau mỗi inference
### 2. Model Loading Optimization
- Lazy loading cho models
- Error handling cho missing files
- Fallback mechanisms
### 3. File Size Optimization
- Sử dụng Git LFS cho files > 10MB
- Automatic model downloading thay vì upload
- Compress assets khi có thể
## Troubleshooting
### Lỗi thường gặp:
#### 1. "Model files not found"
- **Nguyên nhân**: Models chưa được download
- **Giải pháp**: Kiểm tra function `download_models()` và network connection
#### 2. "CUDA out of memory"
- **Nguyên nhân**: GPU memory không đủ
- **Giải pháp**:
- Upgrade lên GPU lớn hơn
- Reduce batch size trong code
- Optimize model loading
#### 3. "Assets not found"
- **Nguyên nhân**: Assets folder trống
- **Giải pháp**:
- Upload assets manually
- Sử dụng fallback mechanisms trong code
#### 4. "Build timeout"
- **Nguyên nhân**: Requirements install quá lâu
- **Giải pháp**:
- Optimize requirements.txt
- Use pre-built images
- Split installation steps
### Logs và Monitoring
- Kiểm tra logs trong HF Spaces interface
- Monitor GPU usage và memory
- Check app performance metrics
## Cấu hình nâng cao
### Environment Variables
```bash
# Thêm trong Space settings nếu cần:
HF_TOKEN=your_token_here
CUDA_VISIBLE_DEVICES=0
```
### Custom Dockerfile (Nếu cần)
```dockerfile
FROM python:3.10
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 7860
CMD ["python", "app.py"]
```
## Kết luận
Sau khi hoàn thành các bước trên, Space của bạn sẽ:
- ✅ Tự động build và deploy
- ✅ Load models từ Hugging Face
- ✅ Có GPU acceleration
- ✅ UI thân thiện với người dùng
- ✅ Error handling tốt
**Lưu ý quan trọng**:
- GPU Spaces có chi phí. Kiểm tra pricing trên Hugging Face
- Test thoroughly trước khi public
- Monitor usage và performance
## Support
Nếu gặp vấn đề:
1. Check Space logs
2. Review Hugging Face documentation
3. Check MIMO GitHub repository issues
4. Contact repository maintainers |