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