* 데이터 세트에 파이프라인 사용
파이프라인은 대규모 데이터 세트에서도 인퍼런스를 실행할 수 있습니다. 이를 수행하는 가장 쉬운 방법은 반복문을 사용하는 것입니다.
def data():
for i in range(1000):
yield f"My example {i}"
pipe = pipeline(model="gpt2", device=0)
generated_characters = 0
for out in pipe(data()):
generated_characters += len(out[0]["generated_text"])
함수 data()는 각 결과를 생성하고, 파이프라인은 입력이 반복 가능하다는 것을 자동으로 인식하고 GPU에서 처리를 계속하는 동안 데이터를 가져오기 시작합니다 (내부적으로 DataLoader를 사용). 이는 전체 데이터 세트에 대한 메모리를 할당할 필요가 없고 GPU를 최대한 빠르게 공급할 수 있기 때문에 중요합니다.
배치 처리가 속도를 높일 수 있으므로 여기에서 batch_size 매개변수를 조정하는 것이 좋습니다.
데이터 세트를 반복하는 가장 간단한 방법은 Datasets 에서 하나를 로드하는 것입니다.
로드된 데이터셋은 KeyDataset Class 를 활용하여 통째로 파이프라인에 전달할 수 있습니다.
# KeyDataset은 우리가 관심 있는 항목만 출력하는 유틸리티입니다.
from transformers.pipelines.pt_utils import KeyDataset
from datasets import load_dataset
pipe = pipeline(model="hf-internal-testing/tiny-random-wav2vec2", device=0)
dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation[:10]")
for out in pipe(KeyDataset(dataset, "audio")):
print(out)
함수 load_dataset() 은 Hugging Face Hub 에 있는 Dataset 저장소에서 가져옵니다.
'A.I.(인공지능) & M.L.(머신러닝) > transformers' 카테고리의 다른 글
[실습] 2-5 accelerate를 활용한 Pipeline (0) | 2024.02.03 |
---|---|
[실습] 2-4 여러 Pipeline (0) | 2024.02.03 |
[실습] 2-2 Pipeline 파라미터 (0) | 2024.02.03 |
[실습] 2-1 Pipeline 사용 (0) | 2024.02.03 |
[실습] 1-2 transformers 시작 - 감성분석, 텍스트 분류 등... (0) | 2024.01.26 |