짜리몽땅 매거진

[LLM] Hugging Face Transformers 라이브러리 실습 본문

Data/Deep Learning

[LLM] Hugging Face Transformers 라이브러리 실습

쿡국 2025. 2. 18. 11:39

지난 포스팅들에서 Transformer 모델의 작동원리와 구조에 대해 살펴보았으니, 이젠 직접 Transformers 라이브러리를 활용해 실습을 진행해보자. 

 

Hugging Face(허깅페이스)란 자연어 처리, 이미지 생성모델, 컴퓨터 비전모델 등 다양한 도구와 라이브러리를 제공하는 곳이다. 쉽게 말해서 다양한 인공지능 모델들을 오픈 소스로 제공하는 곳이라고 생각하면 된다. 그래서 허깅페이스에서 제공하는 Transformers 라이브러리를 활용해 실습을 진행해보려 한다.

 

본격적인 실습 전에 먼저 허깅페이스에 회원가입을 하고 토큰을 발급받아 Hugging Face Hub를 컴퓨터에 설치하자.


1. 필수 라이브러리 설치 및 환경 조성

pip install transformers datasets accelerate torch torchvision torchaudio

 

  • transformers : 사전 학습된 LLM을 로드하고 활용하는 라이브러리
  • datasets : 다양한 공개 데이터셋을 쉽게 가져올 수 있는 라이브러리
  • accelerate : 모델 학습을 멀티 GPU 또는 TPU에서 최적화할 수 있도록 지원
  • torch, torchvision, torchaudio : PyTorch 기반의 모델 학습을 위해 필요

 

2. 사전 학습된 모델 활용 및 간단한 추론 실습

from transformers import pipeline

 

다양한 Task를 pipeline()을 통해 쉽게 테스트할 수 있다. transformers에서 지원하는 Task 리스트는 아래와 같다.

  • text-classification (문장 분류)
  • text-generation (텍스트 생성)
  • token-classification (NER 개체명 인식)
  • question-answering (질의응답)
  • summarization (요약)

(1) 텍스트 생성 (Text Generation) 실습

from transformers import pipeline

# Hugging Face의 사전 학습된 텍스트 생성 모델 (GPT-2)
generator = pipeline("text-generation", model="gpt2")

result = generator("The stock market is", max_length=50, num_return_sequences=1)
print(result)

결과

(2) 문장 분류 (Sentiment Analysis) 실습

classifier = pipeline("sentiment-analysis")
print(classifier("I love this new AI model!"))

 

이 코드는 transformers 라이브러리의 기본 감성 분석 모델을 사용하는데, 기본적으로 "distilbert-base-uncased-finetuned-sst-2-english" 모델이 적용된다.

결과

 

(3) 개체명 인식 (NER) 실습

ner = pipeline("ner", model="dbmdz/bert-large-cased-finetuned-conll03-english")
print(ner("Elon Musk is the CEO of Tesla."))

결과