본문 바로가기
데이터 AI 인사이트 👩🏻‍💻/정리노트

허깅페이스 주요 역할과 사용법

by Hayley S 2025. 2. 6.

허깅페이스는 자연어 처리(NLP) 및 AI 모델을 쉽게 활용하고 배포할 수 있도록 하는 플랫폼이다. Transformers 라이브러리, Datasets, Tokenizers, Spaces 등의 다양한 기능을 제공한다. 사용 방법은 크게 사전 학습된 모델 사용, 파인튜닝(Fine-tuning), 데이터셋 활용, 모델 배포로 나눌 수 있다.

Multimodal /  Computer Vision / Natural Language Processing 모델을 찾을 수 있다.
spaces 에서는 모델을 실습해볼 수 있는 공간도 있다.

 

🔹 Hugging Face의 주요 역할

1. 사전 학습된 모델 제공 (Pretrained Models)

  • 대표적으로 BERT, GPT, T5, RoBERTa, Llama 등의 모델이 있음.
  • 이미 학습된 모델을 가져와서 새로운 데이터에 맞게 추가 학습(파인튜닝, Fine-tuning) 가능 → 전이 학습을 쉽게 할 수 있도록 지원함.

 

2. 모델 배포 및 공유 (Model Hub)

  • 연구자나 개발자가 만든 모델을 공유하고 활용할 수 있는 Hugging Face Model Hub 제공.
  • 즉, 전이 학습 없이도 바로 모델을 다운받아 사용 가능.

 

3. 라이브러리 제공 (Transformers, Datasets, Tokenizers)

  • transformers: BERT, GPT 등 다양한 모델을 쉽게 활용할 수 있도록 하는 라이브러리.
  • datasets: NLP 데이터셋을 쉽게 불러올 수 있도록 지원.
  • tokenizers: 빠르고 효율적인 토크나이저 제공 (Byte-Pair Encoding, WordPiece 등).

 

4. RAG, AutoTrain, Spaces 등 추가 기능

  • RAG(Retrieval-Augmented Generation): 검색 기반 AI 생성 모델을 쉽게 구축할 수 있도록 지원.
  • AutoTrain: 데이터만 입력하면 자동으로 모델을 학습시켜주는 기능.
  • Spaces: 간단한 AI 애플리케이션을 만들고 공유할 수 있는 공간.

 

👉 Hugging Face는 전이 학습을 쉽게 하기 위한 플랫폼이기도 하지만, 그것만을 위한 것은 아니다.
👉 이미 학습된 모델을 가져다 바로 사용할 수도 있고, 새로운 모델을 훈련시키거나 배포하는 용도로도 활용 가능하다.
👉 즉, "전이 학습을 위한 도구"라기보다는 "AI/NLP 모델을 쉽게 개발하고 배포할 수 있도록 돕는 플랫폼"이라고 보는 것이 더 정확하다.

 

1️⃣ Hugging Face 모델 사용 (Pretrained Model 활용)

Hugging Face의 transformers 라이브러리를 사용하면, 사전 학습된 모델을 손쉽게 불러와 사용할 수 있다.

✅ 1.1 transformers 라이브러리 설치

pip install transformers

✅ 1.2 사전 학습된 모델 로드하고 사용하기

from transformers import pipeline

# 감정 분석(Sentiment Analysis) 모델 로드
classifier = pipeline("sentiment-analysis")

# 예제 문장 분석
result = classifier("I love using Hugging Face!")
print(result)  # [{'label': 'POSITIVE', 'score': 0.9998}]
  • pipeline("sentiment-analysis")는 감정 분석 모델을 자동으로 불러와서 사용 가능.
  • label이 POSITIVE이며, 0.9998 확률로 긍정적인 문장이라고 예측.
  • 모델을 직접 불러오지 않아도 Hugging Face Model Hub에서 제공하는 모델을 바로 사용할 수 있음.

✅ 1.3 특정 모델 불러와서 사용하기

from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch

# 모델과 토크나이저 로드
model_name = "nlptown/bert-base-multilingual-uncased-sentiment"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

# 문장 토큰화
inputs = tokenizer("Hugging Face is amazing!", return_tensors="pt")

# 모델 예측
outputs = model(**inputs)
print(outputs.logits)
  • AutoTokenizer와 AutoModelForSequenceClassification을 사용해 특정 모델을 직접 로드 가능.
  • 이 방법을 사용하면, 원하는 모델을 더 세밀하게 제어할 수 있음.

2️⃣ Hugging Face 모델 파인튜닝 (Fine-Tuning)

사전 학습된 모델을 특정 작업(예: 감정 분석, 기계 번역, 문서 분류 등)에 맞게 학습하는 과정.

✅ 2.1 데이터셋 준비

Hugging Face의 datasets 라이브러리를 이용하면 데이터셋을 쉽게 불러올 수 있음.

pip install datasets
from datasets import load_dataset

# IMDb 영화 리뷰 데이터셋 로드
dataset = load_dataset("imdb")
print(dataset)

✅ 2.2 모델 파인튜닝

Trainer API를 사용하면 쉽게 파인튜닝할 수 있음.

from transformers import AutoModelForSequenceClassification, TrainingArguments, Trainer

# 사전 학습된 모델 불러오기
model = AutoModelForSequenceClassification.from_pretrained("distilbert-base-uncased", num_labels=2)

# 학습 설정
training_args = TrainingArguments(
    output_dir="./results",
    evaluation_strategy="epoch",
    save_strategy="epoch",
    per_device_train_batch_size=8,
    per_device_eval_batch_size=8,
    num_train_epochs=3,
)

# Trainer 객체 생성
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=dataset["train"],
    eval_dataset=dataset["test"],
)

# 모델 학습
trainer.train()
  • Trainer를 활용하면 모델 학습을 쉽게 실행할 수 있음.
  • distilbert-base-uncased 모델을 감정 분석 용도로 파인튜닝하는 예제.

3️⃣ Hugging Face Datasets 활용

Hugging Face에서는 다양한 공개 데이터셋을 제공하며, 이를 쉽게 로드하고 활용할 수 있음.

✅ 3.1 datasets 라이브러리 설치 및 사용

from datasets import load_dataset

# Yelp 리뷰 데이터셋 로드
dataset = load_dataset("yelp_review_full")

# 데이터셋 확인
print(dataset["train"][0])  
  • datasets 라이브러리를 사용하면 대형 NLP 데이터셋을 쉽게 가져올 수 있음.
  • IMDB, Yelp, SQuAD, WMT, CoLA 등 다양한 데이터셋 지원.

4️⃣ Hugging Face Spaces와 Gradio를 이용한 모델 배포

✅ 4.1 Hugging Face Spaces란?

  • AI 모델을 쉽게 배포할 수 있도록 Hugging Face에서 제공하는 무료 서비스.
  • Gradio 또는 Streamlit을 사용하여 웹 인터페이스를 만들고, 이를 바로 배포 가능.

✅ 4.2 Gradio로 간단한 AI 웹앱 만들기

pip install gradio
import gradio as gr
from transformers import pipeline

# 감정 분석 모델 불러오기
classifier = pipeline("sentiment-analysis")

# 함수 정의
def analyze_sentiment(text):
    result = classifier(text)
    return result[0]["label"]

# Gradio 인터페이스 생성
demo = gr.Interface(fn=analyze_sentiment, inputs="text", outputs="text")
demo.launch()
  • 실행하면 웹 브라우저에서 텍스트 입력 → 감정 분석 결과 출력되는 인터페이스가 생성됨.
  • 이를 Hugging Face Spaces에 올리면 웹사이트처럼 배포 가능.

🔹 결론: Hugging Face 사용법 정리

1. 사전 학습된 모델 사용

  • transformers의 pipeline()을 이용해 간단히 사용.
  • 특정 모델을 직접 로드해 커스터마이징 가능.

2. 모델 파인튜닝

  • Trainer API를 이용해 쉽게 학습 가능.
  • datasets 라이브러리로 데이터셋 활용 가능.

3. 데이터셋 활용

  • datasets.load_dataset()으로 공개된 데이터셋을 가져와 사용.

4. 모델 배포

  • Gradio, Streamlit을 활용해 간단한 웹 인터페이스 생성.
  • Hugging Face Spaces에서 무료 배포 가능.

👉 Hugging Face는 모델 활용, 학습, 배포까지 전 과정을 쉽게 할 수 있도록 돕는 강력한 AI 플랫폼이다. 🚀