[실습] 2-1 Pipeline 사용

Topic. 파이프라인 사용 방법에 대해 알아봅니다.


1. 파이프라인을 사용한 인퍼런스

pipeline() 함수를 사용하면 Hugging Face Hub에 있는 모든 모델을 언어, 컴퓨터 비전, 음성 및 멀티모달 작업에 대한 추론에 간편하게 사용할 수 있습니다. 특정 모달리티에 대한 경험이 없거나 모델의 기본 코드를 잘 알지 못하더라도 pipeline() 함수를 사용하여 추론을 수행할 수 있습니다!

 

파이프라인을 활용한 세가지 사용 방법을 알아봅시다.

  • pipeline() 함수를 사용한 추론
  • 특정 토크나이저 또는 모델 사용
  • 오디오, 비전 및 멀티모달 작업에 pipeline() 함수 사용

 

2. 파이프라인 사용법

각 작업에 해당하는 pipeline() 함수가 있지만, 모든 작업별 파이프라인을 포함하는 일반 pipeline() 추상화를 사용하는 것이 더 간단합니다. pipeline() 함수는 자동으로 기본 모델과 추론에 필요한 전처리 클래스를 로드합니다. 자동 음성 인식(ASR) 또는 음성-텍스트 변환에 pipeline() 함수를 사용하는 예를 살펴보겠습니다.

먼저 pipeline() 함수를 생성하고 인퍼런스 작업을 지정합니다:

>>> from transformers import pipeline

>>> transcriber = pipeline(task="automatic-speech-recognition")

pipeline() 함수에 입력을 전달합니다. 음성 인식의 경우 오디오 입력 파일입니다:

>>> 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'}

 

Hugging Face Hub에서 또다른 가장 많이 다운로드된 자동 음성 인식 모델을 확인하여

더 나은 결과를 얻을 수 있는지 확인해보아도 좋습니다.

 

이번에는 OpenAI의 Whisper large-v2 모델을 사용해 보겠습니다.

Whisper는 Wav2Vec2보다 2년 늦게 출시되었으며 약 10배 더 많은 데이터로 학습되었습니다.

따라서 대부분의 다운스트림 벤치마크에서 Wav2Vec2를 능가합니다. 또한 Wav2Vec2로는 불가능한 구두점 및 대소문자 예측 기능도 추가되었습니다.

>>> 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.'}

모델을 넣으니 이전보다 더 정확해진 결과를 볼 수 있습니다.

 

여러 개를 입력하는 경우 입력을 리스트로 전달할 수 있습니다:

transcriber(
    [
        "https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac",
        "https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/1.flac",
    ]
)

 

파이프라인은 모델 간 전환이 간단하기 때문에 실험에 유용합니다. 그러나 실험보다 더 큰 작업 부하를 위해 최적화하는 방법이 있습니다. 다음 장에서는 전체 데이터 세트에 대해 반복하거나 웹 서버에서 파이프라인을 사용하는 방법에 대해 알아보겠습니다.

 

 Hugging Face 공식문서 인용 - https://huggingface.co/docs

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유