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
'A.I.(인공지능) & M.L.(머신러닝) > transformers' 카테고리의 다른 글
[실습] 2-4 여러 Pipeline (0) | 2024.02.03 |
---|---|
[실습] 2-3 Pipeline datasets 활용 (0) | 2024.02.03 |
[실습] 2-2 Pipeline 파라미터 (0) | 2024.02.03 |
[실습] 1-2 transformers 시작 - 감성분석, 텍스트 분류 등... (0) | 2024.01.26 |
[라이브러리] 1-1 transformers for A.I. Deep Learning. (0) | 2024.01.26 |