[실습] 2-2 Pipeline 파라미터

Topic. 파이프라인 파라미터에 대해 알아봅니다.


* pipeline parameters

pipeline() 함수는 다양한 파라미터를 지원합니다. 일부는 작업별 파라미터이고 일부는 모든 파이프라인에 공통적인 파라미터입니다. 일반적으로 원하는 위치에서 파라미터를 지정할 수 있습니다:

transcriber = pipeline(model="openai/whisper-large-v2", my_parameter=1)

out = transcriber(...)  # 이 경우 `my_parameter=1`을 사용합니다.
out = transcriber(..., my_parameter=2)  # 이 경우 `my_parameter=2`로 재정의하여 사용합니다.
out = transcriber(...)  # 다시 `my_parameter=1`을 사용합니다.

 

중요한 파라미터 3가지를 살펴보겠습니다.


1. 디바이스

device={n} 을 사용하는 경우 파이프라인은 자동으로 모델을 지정된 디바이스(CPU or GPU)에 배치합니다.

PyTorch 또는 Tensorflow를 사용하든 관계없이 작동합니다.

transcriber = pipeline(model="openai/whisper-large-v2", device=0)

모델이 단일 GPU에 비해 너무 크고 PyTorch를 사용하는 경우 device_map="auto"를 설정하여 모델 가중치를 로드하고 저장하는 방법을 자동으로 결정할 수 있습니다. device_map 인수를 사용하려면 Accelerate 패키지가 필요합니다:

$ pip install accelerate

다음 코드는 자동으로 장치 간에 모델 가중치를 로드하고 저장합니다:

transcriber = pipeline(model="openai/whisper-large-v2", device_map="auto")

device_map="auto" 를 전달하는 경우, 예기치 않은 동작이 발생할 수 있으므로

pipeline을 인스턴스화할 때 device={device} 인수를 추가할 필요가 없습니다!


2. 배치 크기

기본적으로 파이프라인은 추론을 일괄 처리하지 않습니다. 그 이유는 배치 처리가 반드시 더 빠른 것은 아니며 실제로 일부 경우에 상당히 느릴 수 있기 때문입니다. 하지만 사용 사례에 적합하다면 다음을 사용할 수 있습니다:

transcriber = pipeline(model="openai/whisper-large-v2", device=0, batch_size=2)
audio_filenames = [f"https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/{i}.flac" for i in range(1, 5)]
texts = transcriber(audio_filenames)

이는 제공된 4개의 오디오 파일에 대해 파이프라인을 실행하지만, 추가 코드 없이 2개씩 모델(배치 처리가 더 도움이 될 가능성이 높은 GPU에 할당)에 전달합니다. 출력은 항상 배치 처리 없이 받았을 결과와 일치해야 합니다. 이는 단순히 파이프라인의 속도를 높이는 데 도움이 되는 방법입니다.

파이프라인은 일부 파이프라인의 경우 단일 항목(예: 길이가 긴 오디오 파일)을 모델에서 처리하기 위해 여러 부분으로 분할해야 하는 배치 처리의 복잡성을 완화할 수도 있습니다. 파이프라인은 이 chunk batching 을 수행합니다.


3. 작업별 파라미터

모든 작업은 작업을 완료하는 데 도움이 되는 추가적인 유연성과 옵션을 제공하는 작업별 파라미터를 제공합니다. 예를 들어, transformers.AutomaticSpeechRecognitionPipeline.call() 메서드에는 비디오 자막에 유용한 return_timestamps 파라미터가 있습니다:

>>> transcriber = pipeline(model="openai/whisper-large-v2", return_timestamps=True)
>>> 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```

 

 

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

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