Skip to main content

Hugging Face 모델 다운로드 및 테스트하기

이 문서는 Elice Cloud Infrastructure(ECI) 에서 생성한 가상머신(VM)에서
Hugging Face Hub에 공개된 모델을 다운로드하고,
간단한 자연어 처리 추론 작업을 실행하는 실습 가이드입니다.

본 실습을 완료하면 다음을 할 수 있습니다.

  • ECI VM 환경에서 Python 실행 환경 구성
  • Hugging Face 모델 자동 다운로드 및 캐시 구조 이해
  • Transformers 라이브러리를 활용한 간단한 추론 실행

사전 준비 사항

  • ECI 계정
  • GPU 또는 CPU VM (본 실습은 CPU만으로도 가능)
  • Public IP가 설정된 VM
warning

Hugging Face 모델 다운로드를 위해 외부 인터넷 연결이 필요합니다.
VM 생성 시 반드시 Public IP를 설정해주세요.


Step 1. 가상머신 생성 및 실행

가상머신 생성 방법에 대한 자세한 설명은 아래 문서를 참고해주세요.

👉 가상머신 생성 가이드

VM 생성 시 아래 설정을 권장합니다.

  • OS: Ubuntu 22.04 LTS
  • 스토리지: 최소 30GiB
  • 네트워크: Public IP 포함

VM 생성 후 상태가 실행 중(Running) 인지 확인합니다.


Step 2. VM 접속

  1. ECI 포털에서 실행 중인 VM 선택
  2. 웹 콘솔 탭 클릭
  3. VM 생성 시 설정한 사용자 계정으로 로그인

Step 3. Hugging Face의 이해

Hugging Face는 머신러닝 모델을 공유하고 즉시 사용할 수 있도록 제공하는 오픈 플랫폼입니다.
특히 NLP와 LLM 분야에서 사실상 표준 생태계로 사용되고 있습니다.

핵심 구성 요소

Hub

  • 사전 학습된 모델, 데이터셋, 데모를 제공하는 중앙 저장소
  • model="org/name" 형태로 지정하면 자동 다운로드 & 캐시

Transformers

  • BERT, GPT, T5, ViT 등 주요 모델을 공통 인터페이스로 제공
  • pipeline API로 빠르게 추론 가능

Step 4. Python 환경 구성

VM에서 Python 실행 환경과 필수 라이브러리를 설치합니다.

# 패키지 목록 업데이트
sudo apt update

# Python 및 가상환경 도구 설치
sudo apt install -y python3 python3-venv python3-pip

# 실습 디렉토리 생성
mkdir hf-text-cls
cd hf-text-cls

# 가상환경 생성 및 활성화
python3 -m venv .venv
source .venv/bin/activate

# 라이브러리 설치
pip install -U pip
pip install transformers torch

Step 5. Hugging Face 모델로 감정 분석 실행

이번 실습에서는 가볍고 빠른 DistilBERT 기반 감정 분석 모델을 사용합니다.

1️⃣ 코드 파일 생성

nano text_cls_infer.py

2️⃣ 코드 작성

from transformers import pipeline

# Hugging Face 모델 ID
MODEL_ID = "distilbert-base-uncased-finetuned-sst-2-english"

# sentiment-analysis 파이프라인 생성
clf = pipeline(
"sentiment-analysis",
model=MODEL_ID
)

texts = [
"I love this product!",
"This is terrible and disappointing.",
"It's okay, not bad."
]

outputs = clf(texts)

for t, o in zip(texts, outputs):
print(f"TEXT: {t}")
print(f"PRED: {o}\n")

3️⃣ 실행

python text_cls_infer.py

Step 6. 실행 결과 확인

정상적으로 실행되면 다음과 같은 출력이 나타납니다.

TEXT: I love this product!
PRED: {'label': 'POSITIVE', 'score': 0.9998}

TEXT: This is terrible and disappointing.
PRED: {'label': 'NEGATIVE', 'score': 0.9997}

TEXT: It's okay, not bad.
PRED: {'label': 'POSITIVE', 'score': 0.9997}

이로써 Hugging Face 모델 다운로드 → 로드 → 추론까지의 기본 흐름을 완료했습니다 🎉


다음 단계


관련 문서