Hub documentation
모델 업로드
모델 업로드
Hub에 모델을 업로드하려면 Hugging Face에서 계정을 생성해야 합니다. Hub의 모델은 Git 기반 저장소로, 버전 관리, 브랜치, 검색 및 공유 기능, 수십 개의 라이브러리와의 통합 등을 제공합니다. 저장소에 업로드할 내용은 사용자가 직접 제어할 수 있으며, 체크포인트, 설정 파일, 기타 파일 등을 포함할 수 있습니다.
개별 사용자, 예: osanseviero/fashion_brands_patterns, 또는 조직, 예: facebook/bart-large-xsum과 리포지토리를 연결할 수 있습니다. 조직은 회사, 커뮤니티 또는 라이브러리와 관련된 모델을 모을 수 있습니다! 조직을 선택하면 해당 모델은 조직 페이지에 소개되며, 조직의 모든 구성원은 리포지토리에 기여할 수 있습니다. 새 조직을 여기에서 만들 수 있습니다.
참고: 다운로드 메트릭을 얻으려면 Transformers/Diffusers 라이브러리와 호환될 필요가 없습니다. 모든 커스텀 모델이 지원됩니다. 아래에서 자세히 알아보세요!
모델을 업로드하여 Hub에 잘 통합되고 다운로드 지표를 받을 수 있는 여러 가지 방법이 있으며, 아래에 설명되어 있습니다.
- 모델이 내장 지원이 있는 라이브러리를 위해 설계된 경우, 해당 라이브러리가 제공하는 메서드를 사용할 수 있습니다.
trust_remote_code=True를 사용하는 커스텀 모델도 이러한 메서드를 활용할 수 있습니다. - 모델이 커스텀 PyTorch 모델인 경우, Transformers, Diffusers, Timm 라이브러리의 모델처럼
nn.Module클래스에from_pretrained,push_to_hub를 추가할 수 있으므로PyTorchModelHubMixin클래스를 활용할 수 있습니다. - 프로그램을 통한 업로드 외에도 웹 인터페이스 또는 git 명령줄을 항상 사용할 수 있습니다.
모델이 업로드되면, 모델에 대한 문서를 작성하고 검색 가능성을 높이기 위해 리포지토리에 Model Card를 추가하는 것을 권장합니다.
Example [repository](https://huggingface.co/LiheYoung/depth_anything_vitl14) that leverages [PyTorchModelHubMixin](#upload-a-pytorch-model-using-huggingfacehub). Downloads are shown on the right. 웹 인터페이스 사용
새로운 모델 저장소를 만들려면 huggingface.co/new으로 이동하세요. 다음 단계를 따르세요:
- “Files and versions” 탭에서 “Add File”을 선택하고 “Upload File”을 지정합니다:

- 그 후, 업로드할 파일을 컴퓨터에서 선택하고 업로드하는 내용을 알 수 있도록 유용한 커밋 메시지를 남겨야 합니다:

이후 Commit changes를 클릭하여 모델을 Hub에 업로드하세요!
파일 및 히스토리 검사
최근 추가된 모든 파일과 함께 저장소를 확인할 수 있습니다!

UI를 통해 모델 파일과 커밋을 탐색하고 각 커밋에서 도입된 diff를 확인할 수 있습니다:

- 메타데이터 추가
모델 카드에 메타데이터를 추가할 수 있습니다. 다음을 지정할 수 있습니다:
- 이 모델이 수행하는 작업의 유형으로, 위젯과 Inference Providers를 활성화합니다.
- 사용된 라이브러리(
transformers,spaCy등) - 언어
- 데이터셋
- metrics
- 라이선스
- 훨씬 더 많은 것들이 있습니다!
모델 태그에 대해 자세히 알아보려면 여기를 참조하세요.
- TensorBoard 트레이스 추가
tfevents가 포함된 파일명이 있는 모든 저장소는 TensorBoard 태그로 분류됩니다. 관례적으로 트레이스를 runs/ 하위 폴더에 저장하는 것을 권장합니다. 그러면 “Training metrics” 탭에서 loss나 accuracy와 같이 기록된 변수의 차트를 쉽게 검토할 수 있습니다.

🤗 Transformers로 학습된 모델은 tensorboard가 설치되어 있으면 기본적으로 TensorBoard traces를 생성합니다.
내장 지원이 있는 라이브러리에서 업로드
모델이 Hub에 push/load하는 기능을 내장 지원하는 라이브러리, 예를 들어 Transformers, Diffusers, Timm, Asteroid 등에서 온 것인지 먼저 확인하세요: https://huggingface.co/docs/hub/models-libraries. 아래에서는 Transformers와 같은 라이브러리에서 이 작업이 얼마나 쉬운지 보여줍니다:
from transformers import BertConfig, BertModel
config = BertConfig()
model = BertModel(config)
model.push_to_hub("nielsr/my-awesome-bert-model")
# reload
model = BertModel.from_pretrained("nielsr/my-awesome-bert-model")Transformers와 같은 일부 라이브러리는 Hub에서 코드를 로드하는 기능을 지원합니다. 이는 trust_remote_code=True 플래그를 사용하여 Transformers와 함께 모델을 작동시키는 방법입니다. 완전한 라이브러리 통합 대신 이 옵션을 고려해 볼 수 있습니다.
huggingface_hub를 사용하여 PyTorch 모델을 업로드
모델이 (사용자 정의) PyTorch 모델인 경우, huggingface_hub Python 라이브러리에서 사용할 수 있는 PyTorchModelHubMixin 클래스를 활용할 수 있습니다. 이 클래스는 nn.Module에 from_pretrained 및 push_to_hub 기능과 다운로드 메트릭을 추가하는 최소한의 클래스입니다.
pip install huggingface_hub을 실행했다고 가정할 때, 사용 방법은 다음과 같습니다:
import torch
import torch.nn as nn
from huggingface_hub import PyTorchModelHubMixin
class MyModel(
nn.Module,
PyTorchModelHubMixin,
# optionally, you can add metadata which gets pushed to the model card
repo_url="your-repo-url",
pipeline_tag="text-to-image",
license="mit",
):
def __init__(self, num_channels: int, hidden_size: int, num_classes: int):
super().__init__()
self.param = nn.Parameter(torch.rand(num_channels, hidden_size))
self.linear = nn.Linear(hidden_size, num_classes)
def forward(self, x):
return self.linear(x + self.param)
# create model
config = {"num_channels": 3, "hidden_size": 32, "num_classes": 10}
model = MyModel(**config)
# save locally
model.save_pretrained("my-awesome-model")
# push to the hub
model.push_to_hub("your-hf-username/my-awesome-model")
# reload
model = MyModel.from_pretrained("your-hf-username/my-awesome-model")보시다시피, 유일한 요구 사항은 모델이 PyTorchModelHubMixin을 상속받는 것입니다. 모든 인스턴스 속성은 자동으로 config.json 파일에 직렬화됩니다. init 메서드는 JSON 직렬화가 가능한 인자만 받을 수 있습니다. Python dataclasses는 지원됩니다.
이 기능에는 자동화된 다운로드 지표가 포함되어 있어, Transformers, Diffusers 또는 Timm 라이브러리에 네이티브로 통합된 모델과 동일한 방식으로 모델이 몇 번 다운로드되었는지 확인할 수 있습니다. 이 mixin 클래스를 사용하면 각 개별 체크포인트는 2개의 파일로 구성된 단일 저장소로 Hub에 저장됩니다:
- 가중치를 포함하는
pytorch_model.bin또는model.safetensors파일 - 모델 구성의 직렬화 버전인
config.json파일입니다. 이 클래스는 다운로드 메트릭을 집계하는 데 사용됩니다. 사용자가config.json을 로드하기 위해from_pretrained를 호출할 때마다 카운트가 1 증가합니다. 자동화된 다운로드 메트릭에 대해서는 이 가이드를 참조하세요.
각 체크포인트에 모델 카드를 추가하여 모델에 대한 설명, 관련 논문 링크 등을 확인할 수 있도록 하는 것이 좋습니다.
자세한 내용은 huggingface_hub 문서를 참조하세요.
대신, https://huggingface.co/docs/huggingface_hub/guides/upload에서 설명하듯 파일이나 폴더를 프로그래밍 방식으로 허브에 업로드할 수도 있습니다.
Git 사용
마지막으로, 모델 저장소는 Git 저장소이므로 Git을 사용하여 모델 파일을 Hub에 push할 수도 있습니다. 저장소 시작하기 가이드를 참고하여 git CLI를 사용해 모델을 commit하고 push하는 방법을 알아보세요.