본문 바로가기
Tech Insights

허깅 페이스(Hugging Face) - 인공지능의 허브(Hub)

by Kudos IT Daily 2023. 10. 15.
반응형

허깅 페이스(Hugging Face) - 인공지능의 허브(Hub)

목차

  • 허깅 페이스(Hugging Face)란?
  • 허깅 페이스 Transformers 라이브러리
  • 허깅 페이스 Transformers 라이브러리 예제
  • 마치며

 

허깅 페이스(Hugging Face)란?

안녕하세요, 오늘은 자연어 처리(NLP), 데이터 사이언스(Data Science), 머신러닝(Machine Learning) 플랫폼에서 매우 핫한 플레이어 허깅 페이스(Hugging Face)에 대해 소개하는 포스팅을 가지려고 합니다. 허깅 페이스란 앞서 말씀드린 것처럼 오픈소스 데이터 사이언스, 머신러닝 플랫폼입니다. 개발자들 사이에서 널리 사용되는 Github처럼 AI 분야의 GIthub이라고 생각하시면 되겠습니다.

 

허깅 페이스는 AI 모델의 호스팅 기능뿐만 아니라 모델을 트레이닝, 상호 협력할 수 있는 공간으로도 활용될 수 있습니다. 또한 코드 작성부터 실시간 AI 앱, 서비스를 배포하는 것까지 다양한 인프라를 제공합니다. 이러한 기능을 활용하여 다른 개발자들이 공유하는 모델을 활용하거나 데이터셋을 얻을 수 있고 프로젝트를 구성해서 테스트를 해볼 수도 있습니다. 허깅 페이스는 인공지능 관련 기능을 설계 및 개발하기 위한 많은 기능을 제공하기 때문에 유용하게 활용한다면 AI 기반의 어플리케이션 개발 과정에서 개발 시간을 단축하고 효과적인 정보를 활용할 수 있을 것입니다.

 

허깅 페이스의 주요 기능 중 하나는 자신의 AI 모델을 만들 수 있다는 것입니다. Github 저장소와 유사하게 연관된 정보를 업로드하거나 업데이트된 모델을 개발하면서 버전관리를 수행할 수 있습니다. 또한, Github과 유사하게 공개(Pulbic), 비공개(Private) 저장소를 관리할 수 있습니다. 허깅 페이스의 장점 중 하나는 개발 과정 중에 다른 개발자들과 협업할 수 있고, 자신의 모델을 굳이 다른 플랫폼에서 사용하지 않아도 허깅 페이스에서 제공하는 인프라를 활용해서 사용할 수 있다는 장점이 있습니다.

 

허깅 페이스 Transformers 라이브러리

허깅 페이스의 가장 큰 장점 중 하나는 수많은 개발자가 만들고 학습시킨 인공지능 모델을 제공하는 것이고, API를 통해 쉽게 가져다가 활용할 수 있다는 것입니다. 허깅 페이스에서는 Transformers라는 라이브러리를 제공합니다. 해당 라이브러리는 자연어 처리뿐만 아니라 컴퓨터 비젼, 오디오, 멀티모달 모델 모두 제공합니다. 또한, Transformers는 PyTorch, TensorFlow, JAX 프레임워크 간 상호 운영성을 지원하기 때문에 유연하게 인공지능 플랫폼 개발에 활용할 수 있습니다. 예를 들어, PyTorch에서 모델을 훈련하고, TensorFlow에서 추론을 위해 모델을 로드할 수 있습니다.

 

허깅 페이스에 대한 상세한 가이드를 참고하고 싶으신 분들께서는 공식적으로 제공하는 Transformers 공식 문서를 참고하시면 많은 도움이 되실 겁니다. 공식 문서에는 어떻게 Transformers를 사용할지 튜토리얼과 개념 가이드, API에 대한 설명을 제공하고 어떤 모델을 활용할 수 있는지 상세히 설명되어 있습니다.

 

오늘 포스팅에서는 Colab에서 허깅 페이스의 Transformers 모델을 사용해서 간단한 예제를 수행해 보도록 하겠습니다. 추후, 기회가 된다면 허깅페이스에서 제공하는 자체 인프라를 활용해서 동작시키는 예제를 소개할 수 있도록 하겠습니다.

 

허깅 페이스 Transformers 라이브러리 예제

우선, Colab에서 Transformers 라이브러리를 사용하기 위해 설치를 진행합니다. 또한, 저희가 오늘 사용할 모델을 로드하기 위해 pipeline을 임토트 합니다. pipeline은 자연어 처리, 컴퓨터 비젼, 음성 및 멀티 모달 모델을 Hub로부터 불러올 수 있도록 합니다. 모델에 대한 상세한 코드를 모르더라도 pipeline을 사용해서 추론에 사용할 수 있습니다.

 

!pip install transformers
from transformers import pipeline

 

임포트 한 pipline() 함수를 활용해서 어떤 추론을 수행할지 결정할 수 있는데요. task 파라미터에 아래와 같이 자동 음성 인식 파라미터(task="automatic-speech-recognition")를 전달해 봤습니다. 이후 생성된 객체에 오디오 파일을 전달합니다.

 

transcriber = pipeline(task="automatic-speech-recognition")
transcriber("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac")

# {'text': 'I HAVE A DREAM BUT ONE DAY THIS NATION WILL RISE UP LIVE UP THE TRUE MEANING OF ITS TREES'}

 

위의 방식 말고도 직접 모델을 지정해 줄 수도 있습니다. 이번 예제에서는 OpenAI의 Whisper large-v2 모델을 사용해 보도록 하겠습니다. Whisper는 Wav2Vec2 보다 2년 늦게 출시되었으며 약 10배 더 많은 데이터를 통해 트레이닝되었습니다. 아래의 예제를 한번 확인해 볼까요? 아래의 예제를 수행하면 사용하고자 하는 모델을 설치하고 해당 모델을 활용해서 추론을 수행합니다.

 

transcriber = pipeline(model="openai/whisper-large-v2")
transcriber("https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac")

# {'text': ' I have a dream that one day this nation will rise up and live out the true meaning of its creed.'}

 

너무 간단하지 않나요? 단 코드 몇 줄 만에 인공지능 모델을 활용해서 추론하는 작업을 수행했습니다. 방금 보여드린 예제는 음성을 인식하는 예제지만 다양한 분야의 인공지능 모델을 활용할 수 있습니다. 그리고 특정 모델을 활용해서 나만의 새로운 모델을 만들어볼 수도 있습니다. 또한, 모델을 쉽게 변경해 가면서 테스트해 볼 수 있기 때문에 대규모 작업을 수행할 때, 파이프라인 최적화를 할 때도 용이합니다. pipeline 기능은 단순히 어떤 작업을 할지, 어떤 모델을 불러올 수 있을 뿐만 아니라 파라미터, 디바이스, 배치 사이즈 등을 조절도 가능하게 함으로써 최적화를 용이하게 합니다. 관련 내용 또한 허깅 페이스의 공식 문서 내용을 살펴보시면 자세하게 살펴보실 수 있습니다.

 

마치며

오늘은 인공지능 분야에서 매우 큰 관심을 받고 있는 허깅페이스에 대해 알아보았습니다. 사실 오늘 소개드린 내용은 허깅 페이스의 극히 일부 내용입니다. 제공하는 기능이 워낙 유용하기 때문에 여러 차례 나눠서 살펴보고 여러 기능에 대한 설명 다양한 활용 사례를 통해 소개할 수 있도록 하겠습니다. 한 번씩 사용해 보시고 멋진 인공지능 모델과 플랫폼을 만드시기를 바랍니다. 오늘도 제 포스팅을 읽어주셔서 감사합니다.

반응형