Model Upload & Card Generator
Create model cards and upload fine-tuned models to Hugging Face Hub.
Gather Context
If coming from training manager, you should have:
model_path, base_model, dataset, technique
training_config (LoRA rank, LR, epochs)
final_loss, training_time, hardware
If missing, ask for essential information.
Configuration
1. Repository Settings
Ask for:
- Repo name:
username/model-name
- Visibility: Public or Private
- License: MIT, Apache 2.0, CC-BY-4.0, Llama 3 Community, etc.
2. Export Formats
Options:
- LoRA adapter only (~50-200MB) - Users merge themselves
- Merged 16-bit (15-140GB) - Ready to use
- GGUF quantized (4-8GB) - For llama.cpp/Ollama
- All of the above (Recommended)
3. GGUF Quantization
If GGUF selected, ask which levels. See references/GGUF_GUIDE.md.
| Method |
Size |
Quality |
| Q4_K_M |
~4GB |
Good (Recommended) |
| Q5_K_M |
~5GB |
Better |
| Q8_0 |
~8GB |
Best |
Generate Model Card
Create README.md with:
- YAML Metadata - license, tags, base_model, datasets
- Model Description - Table with key attributes
- Training Details - Hyperparameters, LoRA config, results
- Usage Examples - Transformers, Unsloth, Ollama, llama.cpp
- Intended Use - Primary use cases, out-of-scope
- Limitations - Biases, known issues
- Citation - BibTeX entry
Execute Upload
1. Create Repository
from huggingface_hub import create_repo
create_repo("username/model-name", private=False, exist_ok=True)
2. Upload Files
from huggingface_hub import HfApi
api = HfApi()
# LoRA adapter
api.upload_folder(folder_path="./outputs/lora_adapter", repo_id="username/model")
# Model card
api.upload_file(path_or_fileobj="README.md", path_in_repo="README.md", repo_id="username/model")
3. Generate GGUF (if selected)
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained("./outputs/lora_adapter")
model.save_pretrained_gguf("./gguf", tokenizer, quantization_method="q4_k_m")
Use scripts/convert_gguf.py for multiple quantizations.
4. Verify
from huggingface_hub import list_repo_files
print(list_repo_files("username/model"))
Final Report
Upload Complete!
Model: https://huggingface.co/{repo_name}
Uploaded:
- LoRA adapter
- Model card
- GGUF files (if selected)
Next steps:
- Verify model page
- Add example outputs
- Run benchmarks
- Share on social media
Model Card Best Practices
- Be specific about limitations
- Include usage examples - copy-pasteable
- Document training details
- Credit sources - base model, dataset, tools
- Use tables - easier to scan
Error Handling
| Error |
Resolution |
| Repo exists |
Use exist_ok=True |
| Permission denied |
Check HF token has write access |
| Upload timeout |
Use chunked upload |
Bundled Resources
- scripts/convert_gguf.py - GGUF conversion
- references/GGUF_GUIDE.md - GGUF details and Ollama setup
- references/TROUBLESHOOTING.md - Upload issues
1---2name: funsloth-upload3description: Generate comprehensive model cards and upload fine-tuned models to Hugging Face Hub with professional documentation4---5
6# Model Upload & Card Generator
7
8Create model cards and upload fine-tuned models to Hugging Face Hub.
9
10## Gather Context
11
12If coming from training manager, you should have:
13- `model_path`, `base_model`, `dataset`, `technique`
14- `training_config` (LoRA rank, LR, epochs)
15- `final_loss`, `training_time`, `hardware`
16
17If missing, ask for essential information.
18
19## Configuration
20
21### 1. Repository Settings
22
23Ask for:
24- **Repo name**: `username/model-name`
25- **Visibility**: Public or Private
26- **License**: MIT, Apache 2.0, CC-BY-4.0, Llama 3 Community, etc.
27
28### 2. Export Formats
29
30Options:
311. **LoRA adapter only** (~50-200MB) - Users merge themselves
322. **Merged 16-bit** (15-140GB) - Ready to use
333. **GGUF quantized** (4-8GB) - For llama.cpp/Ollama
344. **All of the above** (Recommended)
35
36### 3. GGUF Quantization
37
38If GGUF selected, ask which levels. See [references/GGUF_GUIDE.md](references/GGUF_GUIDE.md).
39
40| Method | Size | Quality |
41|--------|------|---------|
42| Q4_K_M | ~4GB | Good (Recommended) |
43| Q5_K_M | ~5GB | Better |
44| Q8_0 | ~8GB | Best |
45
46## Generate Model Card
47
48Create README.md with:
49
501. **YAML Metadata** - license, tags, base_model, datasets
512. **Model Description** - Table with key attributes
523. **Training Details** - Hyperparameters, LoRA config, results
534. **Usage Examples** - Transformers, Unsloth, Ollama, llama.cpp
545. **Intended Use** - Primary use cases, out-of-scope
556. **Limitations** - Biases, known issues
567. **Citation** - BibTeX entry
57
58## Execute Upload
59
60### 1. Create Repository
61
62```python
63from huggingface_hub import create_repo
64create_repo("username/model-name", private=False, exist_ok=True)
65```
66
67### 2. Upload Files
68
69```python
70from huggingface_hub import HfApi
71api = HfApi()
72
73# LoRA adapter
74api.upload_folder(folder_path="./outputs/lora_adapter", repo_id="username/model")
75
76# Model card
77api.upload_file(path_or_fileobj="README.md", path_in_repo="README.md", repo_id="username/model")
78```
79
80### 3. Generate GGUF (if selected)
81
82```python
83from unsloth import FastLanguageModel
84
85model, tokenizer = FastLanguageModel.from_pretrained("./outputs/lora_adapter")
86model.save_pretrained_gguf("./gguf", tokenizer, quantization_method="q4_k_m")
87```
88
89Use [scripts/convert_gguf.py](scripts/convert_gguf.py) for multiple quantizations.
90
91### 4. Verify
92
93```python
94from huggingface_hub import list_repo_files
95print(list_repo_files("username/model"))
96```
97
98## Final Report
99
100> **Upload Complete!**
101>
102> Model: https://huggingface.co/{repo_name}
103>
104> **Uploaded:**
105> - LoRA adapter
106> - Model card
107> - GGUF files (if selected)
108>
109> **Next steps:**
110> - Verify model page
111> - Add example outputs
112> - Run benchmarks
113> - Share on social media
114
115## Model Card Best Practices
116
1171. **Be specific about limitations**
1182. **Include usage examples** - copy-pasteable
1193. **Document training details**
1204. **Credit sources** - base model, dataset, tools
1215. **Use tables** - easier to scan
122
123## Error Handling
124
125| Error | Resolution |
126|-------|------------|
127| Repo exists | Use `exist_ok=True` |
128| Permission denied | Check HF token has write access |
129| Upload timeout | Use chunked upload |
130
131## Bundled Resources
132
133- [scripts/convert_gguf.py](scripts/convert_gguf.py) - GGUF conversion
134- [references/GGUF_GUIDE.md](references/GGUF_GUIDE.md) - GGUF details and Ollama setup
135- [references/TROUBLESHOOTING.md](references/TROUBLESHOOTING.md) - Upload issues