3-2. 허깅페이스 라이브러리 쉽게 사용해보기
3.3 허깅페이스 라이브러리 사용법 익히기
Hugging Face 라이브러리는 사전 학습된 트랜스포머 모델을 쉽게 사용할 수 있도록 돕는 도구예요. 이번에는 모델을 더 세부적으로 다루는 방법과 토크나이저 및 데이터셋 활용법을 배워볼게요.
3.3.1 모델 활용하기
허깅페이스에서는 사전 학습된 모델을 불러와 바로 사용할 수 있어요. 앞서 우리는 파이프라인을 사용해 감정 분석을 수행했지만, 이번에는 좀 더 세부적인 방식으로 모델을 다루는 방법을 알아볼게요.
from transformers import BertTokenizer, BertModel
# BERT 토크나이저 및 모델 불러오기
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertModel.from_pretrained('bert-base-uncased')
# 텍스트를 토큰화
input_text = "Hello, Hugging Face!"
inputs = tokenizer(input_text, return_tensors="pt")
# 모델을 사용해 입력 처리
outputs = model(**inputs)
# 마지막 숨겨진 상태 (임베딩) 출력
last_hidden_states = outputs.last_hidden_state
print(last_hidden_states)
이 코드는 BERT 모델을 불러와 입력된 문장을 처리한 후, 마지막 숨겨진 상태(hidden state)를 출력하는 예시예요. 이를 통해 모델 내부의 작동 방식을 더 깊이 이해할 수 있죠. '마지막 숨겨진 상태(Hidden State)'란 트랜스포머 모델의 마지막 값을 의미해요. 예를 들면, 처음 텍스트가 입력이 되면 모델의 여러 층을 거치면서 단어, 문맥 등의 분류화가 이루어지죠. 이때, 필터링을 모두 거치고 나서 최종적으로 얻은 값을 '마지막 숨겨진 상태'라고 표현을 하는 것이에요.
- 요약:
BERT 모델을 불러와 텍스트를 처리한 후, 마지막 숨겨진 상태를 출력하는 예제입니다. - 용어설명:
- 마지막 숨겨진 상태: 트랜스포머 모델이 텍스트를 처리한 후 마지막으로 생성하는 임베딩 값.
3.3.2 토크나이저 활용하기
토크나이저는 텍스트를 모델이 이해할 수 있는 형식으로 변환하는 역할을 해요. 즉, 텍스트를 개별 토큰으로 나누고, 이를 숫자 벡터로 변환하는 작업을 하지요.
- 토큰화: 텍스트를 개별 단어 또는 하위 단위로 나누는 과정이에요.
- 토큰 임베딩: 토큰화된 단어들을 숫자 벡터로 변환하는 과정이에요. 이를 통해 컴퓨터는 텍스트를 이해할 수 있는 형태로 변환하게 돼요.
- 요약:
토크나이저는 텍스트를 개별 토큰으로 나누고 이를 벡터로 변환하는 과정을 수행해요. - 용어설명:
- 토크나이저: 텍스트를 토큰화하고 숫자 벡터로 변환하는 도구.
3.3.3 데이터셋 활용하기
Hugging Face는 datasets 라이브러리를 통해 다양한 데이터셋을 제공해요. 이를 통해 모델을 훈련하거나 평가할 때 사용할 수 있어요. 아래 코드는 IMDB 감정 분석 데이터셋을 불러오는 예시예요.
from datasets import load_dataset
# IMDB 감정 분석 데이터셋 불러오기
dataset = load_dataset("imdb")
print(dataset['train'][0])
이 코드는 Hugging Face 데이터셋 허브에서 IMDB 감정 분석 데이터를 불러오는 예시예요. 이를 통해 쉽게 다양한 데이터셋을 사용할 수 있고, 이를 활용해 모델을 훈련하거나 평가할 수 있어요.
- 요약:
Hugging Face datasets 라이브러리를 통해 다양한 데이터셋을 쉽게 불러와 사용할 수 있어요. - 용어설명:
- 데이터셋: 모델 학습과 평가를 위한 대량의 데이터 모음.
정리
- 모델 활용하기에서는 BERT 모델을 사용해 텍스트를 처리하고, 마지막 숨겨진 상태를 출력하는 과정을 배웠어요.
- 토크나이저는 텍스트를 개별 토큰으로 나누고 숫자 벡터로 변환하는 과정을 수행해요.
- 데이터셋 활용하기에서는 Hugging Face의 datasets 라이브러리를 통해 다양한 데이터셋을 불러와 모델을 훈련하거나 평가할 수 있어요.