Bigdata
Huggingface - pipelines 설치 및 사용
올엠
2025. 8. 6. 22:03
반응형
Hugging Face 에서 제공하는 pipelines는 간편하게 AI를 무료로 이용할 수 있는 기능을 제공한다. 고수준의 라이브러리 단 몇줄로 AI를 활용할 수 있다. 여기에서는 어떻게 이용할 수 있는지 설치 부터 대표적인 이용 방법을 정리해본다.
1. 라이브러리 설치
!pip install -q --upgrade torch==2.5.1+cu124 torchvision==0.20.1+cu124 torchaudio==2.5.1+cu124 --index-url https://download.pytorch.org/whl/cu124
!pip install -q --upgrade transformers==4.48.3 datasets==3.2.0 diffusers
- 최신 버전의 PyTorch 및 관련 라이브러리 설치 (cu124는 CUDA 12.4 버전용).
- Hugging Face의 transformers, datasets, diffusers 라이브러리 설치.
2. 라이브러리 임포트
import torch
from google.colab import userdata
from huggingface_hub import login
from transformers import pipeline
from diffusers import DiffusionPipeline
from datasets import load_dataset
import soundfile as sf
from IPython.display import Audio
- 필요한 라이브러리들을 불러옵니다.
- userdata: Colab에서 사용자 토큰을 안전하게 불러오기 위해 사용.
- pipeline: Hugging Face의 다양한 작업을 쉽게 수행할 수 있는 API.
3. Hugging Face 로그인
hf_token = userdata.get('HF_TOKEN')
login(hf_token, add_to_git_credential=True)
- Hugging Face 토큰을 불러와 로그인합니다.
- 모델 다운로드 및 사용 권한을 위해 필요합니다.
이제부터는 이용방법들이다.
감정 분석 (Sentiment Analysis)
classifier = pipeline("sentiment-analysis", model="nlpai-lab/korean-sentiment-analysis", device="cuda")
result = classifier("요즘 인공지능 공부가 너무 재미있어요!")
print(result)
- 문장의 감정을 분석합니다 (긍정/부정).
- GPU를 사용하여 빠르게 처리.
개체명 인식 (Named Entity Recognition)
ner = pipeline("ner", model="kykim/bert-kor-base", grouped_entities=True, device="cuda")
result = ner("윤석열 대통령은 서울에서 회의를 가졌습니다.")
print(result)
- 문장에서 사람, 장소, 조직 등의 개체를 인식합니다.
질문 응답 (Question Answering)
question_answerer = pipeline("question-answering", model="deepset/bert-base-cased-squad2", device="cuda")
context = "윤석열은 대한민국의 대통령이다."
question = "대한민국 대통령은 누구입니까?"
result = question_answerer(question=question, context=context)
print(result)
- 주어진 문맥을 기반으로 질문에 답변합니다.
요약 (Summarization)
summarizer = pipeline("summarization", model="knkarthick/bert-base-cnn-korean", device="cuda")
text = """허깅페이스의 트랜스포머 라이브러리는 자연어 처리 분야에서 매우 강력하고 유용한 도구입니다.
텍스트 분류, 개체명 인식, 질문 응답 등 다양한 작업을 수행할 수 있으며, 오픈소스 커뮤니티에서 널리 사용되고 있습니다.
"""
summary = summarizer(text, max_length=50, min_length=25, do_sample=False)
print(summary[0]['summary_text'])
- 긴 텍스트를 간결하게 요약합니다.
번역 (Translation)
translator = pipeline("translation_en_to_ko", model="Helsinki-NLP/opus-mt-en-ko", device="cuda")
result = translator("The Hugging Face Transformers library is amazing.")
print(result[0]['translation_text'])
- 영어 → 한국어 번역.
제로샷 분류 (Zero-shot Classification)
classifier = pipeline("zero-shot-classification", model="joeddav/xlm-roberta-large-xnli", device="cuda")
result = classifier("허깅페이스 라이브러리는 정말 혁신적이에요!", candidate_labels=["기술", "스포츠", "정치"])
print(result)
- 사전 학습 없이 문장을 주어진 카테고리 중 하나로 분류.
텍스트 생성 (Text Generation)
generator = pipeline("text-generation", model="skt/kogpt2-base-v2", device="cuda")
result = generator("인공지능 기술은 앞으로", max_length=50, do_sample=True)
print(result[0]['generated_text'])
- 주어진 문장을 기반으로 이어지는 텍스트 생성.
이미지 생성 (Text-to-Image)
image_gen = DiffusionPipeline.from_pretrained(
"stabilityai/stable-diffusion-2",
torch_dtype=torch.float16,
use_safetensors=True,
variant="fp16"
).to("cuda")
text = "인공지능을 공부하는 한국 학생들, 미래적인 분위기"
image = image_gen(prompt=text).images[0]
image
- 텍스트를 기반으로 이미지를 생성 (Stable Diffusion 사용).
음성 생성 (Text-to-Speech)
synthesiser = pipeline("text-to-speech", "microsoft/speecht5_tts", device='cuda')
embeddings_dataset = load_dataset("Matthijs/cmu-arctic-xvectors", split="validation")
speaker_embedding = torch.tensor(embeddings_dataset[7306]["xvector"]).unsqueeze(0)
speech = synthesiser("안녕하세요. 인공지능 엔지니어의 길을 걷고 있는 여러분을 응원합니다!", forward_params={"speaker_embeddings": speaker_embedding})
sf.write("speech.wav", speech["audio"], samplerate=speech["sampling_rate"])
Audio("speech.wav")
- 텍스트를 음성으로 변환.
- 특정 화자의 음색을 반영하기 위해 xvector 임베딩 사용
반응형