인공지능 - Hugging Face 멀티모달 파이프라인 실습 예제 정리
Hugging Face 멀티모달 파이프라인 실습 예제 정리
AI와 딥러닝 프레임워크들이 점점 더 다양한 입력을 이해하고 처리하는 방향으로 발전하고 있습니다. 이번 글에서는 Hugging Face의 transformers
, diffusers
, 그리고 LangChain을 활용하여 다음과 같은 입력을 처리하는 전체 실습 예제를 소개합니다:
- 텍스트 감정 분석
- 번역
- 이미지 캡셔닝
- 음성 인식
- 이미지 분류
- 얼굴 감정 분류
- 텍스트 기반 이미지 생성
1. 환경 설정
os.environ["USER_AGENT"] = "Mozilla/5.0 ..."
load_dotenv(dotenv_path='openapi_key.env')
load_dotenv(dotenv_path='huggingface_key.env')
- Hugging Face의 인증 토큰을 불러오기 위해
.env
파일을 사용합니다. - ffmpeg 환경도 미리 지정하여 오디오 처리를 위한 준비를 완료합니다.
2. 감정 분석 (Sentiment Analysis)
classifier = pipeline("sentiment-analysis", device=-1)
# print(classifier("I love Hugging Face!"))
- 간단한 문장을 넣으면 긍정/부정을 판단해주는 모델입니다.
- 현재 예제에서는 주석 처리되어 있지만, CPU 환경에서도 충분히 작동합니다.
3. 번역 파이프라인 (Translation)
translator = pipeline("translation_en_to_fr", device=-1)
result = translator("Hello, how are you?")
print(result)
- 영어 → 프랑스어 번역을 수행합니다.
- PyTorch가 설치되어 있다면 손쉽게 실행 가능합니다.
4. 이미지 캡셔닝 (Image Captioning)
image_to_text = pipeline('image-to-text', model='Salesforce/blip-image-captioning-base')
image = Image.open('image/dog.jpg')
- 이미지를 입력하면 사람이 설명하듯 자연어로 설명을 생성합니다.
BLIP
모델을 사용해 간단한 이미지에 대한 문장을 만들어냅니다.
5. 음성 인식 (Speech Recognition)
pipe = pipeline("automatic-speech-recognition", model="openai/whisper-small")
result = pipe(audio_file, return_timestamps=True)
- OpenAI의 Whisper 모델로 mp3 파일의 내용을 텍스트로 변환합니다.
- ffmpeg이 설치되어 있어야
.mp3
파일을 로딩할 수 있습니다.
6. 이미지 분류 (Image Classification)
pipe = pipeline("image-classification", model="google/vit-base-patch16-224")
result = pipe('image/dog.jpg')
- 이미지에 무엇이 있는지 분류해주는 비전 트랜스포머 기반 모델입니다.
- 예: 개, 고양이, 컵 등 일상 사물을 잘 분류합니다.
7. 얼굴 감정 분류 (Face Emotion Classification)
pipe = pipeline("image-classification", model="RickyIG/emotion_face_image_classification_v3")
rst = pipe('image/d.jpg')
- 얼굴 표정을 인식해 감정 상태(행복, 슬픔 등)를 분류합니다.
- 감정 기반 UI/UX 개발 시 활용할 수 있습니다.
8. 텍스트 기반 이미지 생성 (Text-to-Image)
pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4")
image = pipe("cute cat").images[0]
- 자연어로 묘사한 내용을 기반으로 이미지를 생성합니다.
- 생성된 이미지는
.save()
로 저장 가능하며, 웹 UI에서도 활용할 수 있습니다.
9. 정리 및 활용 팁
이 예제 하나로 Hugging Face의 거의 모든 주요 입력 타입(text, image, audio)에 대한 파이프라인을 한 번에 실습할 수 있습니다. 특히 다음과 같은 상황에 매우 유용합니다:
- 자연어 처리뿐만 아니라 이미지, 음성까지 연계된 멀티모달 서비스 기획
- AI 도입을 고민 중인 기획자/개발자 POC
- LLM(대형언어모델) 기반 응용서비스 구성
10. 참고 사항
- PyTorch 또는 TensorFlow 둘 중 하나는 반드시 설치되어야 합니다.
ffmpeg
설치 및 환경변수 등록은 Whisper 모델 사용 시 필수입니다.pip install torch transformers diffusers huggingface_hub
등 주요 패키지를 미리 설치해 두는 것이 좋습니다.
댓글남기기