허깅페이스는 자연어 처리(NLP) 및 AI 모델을 쉽게 활용하고 배포할 수 있도록 하는 플랫폼이다. Transformers 라이브러리, Datasets, Tokenizers, Spaces 등의 다양한 기능을 제공한다. 사용 방법은 크게 사전 학습된 모델 사용, 파인튜닝(Fine-tuning), 데이터셋 활용, 모델 배포로 나눌 수 있다.
🔹 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 플랫폼이다. 🚀
'데이터 AI 인사이트 👩🏻💻 > 정리노트' 카테고리의 다른 글
ImageNet 등장배경, 관계성 정리 (1) | 2025.02.06 |
---|---|
[딥러닝 프로젝트] LSTM 기반 운동 동작 인식: 미디어파이프 활용 (0) | 2025.02.06 |
파이썬 자료구조 - 튜플, 딕셔너리, set, 리스트, 클래스, 객체지향언어 특징 (0) | 2025.01.28 |
딥러닝 학습 순서 (0) | 2025.01.16 |
K-Nearest Neighbors (KNN) (0) | 2025.01.14 |