* 웹 서버에 파이프라인 사용
1. 시각적 파이프라인
시각적 작업에 pipeline()을 사용하는 방법도 이전 방법들과 거의 동일합니다. 작업을 지정하고 이미지 분류기에 이미지를 전달합니다. 이미지는 링크, 로컬 경로 또는 base64로 인코딩된 이미지일 수 있습니다.
pipeline() 을 사용하여 아래 고양이사진을 어떻게 판단하는지 분류해보겠습니다.
>>> from transformers import pipeline
>>> vision_classifier = pipeline(model="google/vit-base-patch16-224")
>>> preds = vision_classifier(
... images="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
... )
>>> preds = [{"score": round(pred["score"], 4), "label": pred["label"]} for pred in preds]
>>> preds
[{'score': 0.4335, 'label': 'lynx, catamount'}, {'score': 0.0348, 'label': 'cougar, puma, catamount, mountain lion, painter, panther, Felis concolor'}, {'score': 0.0324, 'label': 'snow leopard, ounce, Panthera uncia'}, {'score': 0.0239, 'label': 'Egyptian cat'}, {'score': 0.0229, 'label': 'tiger cat'}]
모델은 위 사진을 링스(스라소니), 고양이과의 야생 동물, 고양이일 확률이 43% 확률이라고 예측했습니다.
2. 텍스트 파이프라인
자연어처리(NLP) 작업에 pipeline()을 사용하는 것도 거의 동일합니다.
>>> from transformers import pipeline
>>> # This model is a `zero-shot-classification` model.
>>> # It will classify text, except you are free to choose any label you might imagine
>>> classifier = pipeline(model="facebook/bart-large-mnli")
>>> classifier(
... "I have a problem with my iphone that needs to be resolved asap!!",
... candidate_labels=["urgent", "not urgent", "phone", "tablet", "computer"],
... )
{'sequence': 'I have a problem with my iphone that needs to be resolved asap!!', 'labels': ['urgent', 'phone', 'computer', 'not urgent', 'tablet'], 'scores': [0.504, 0.479, 0.013, 0.003, 0.002]}
3. 멀티모달 파이프라인
pipeline()은 둘 이상의 모달리티를 지원합니다. 예를 들어, 시각적 질문 답변(VQA) 작업은 텍스트와 이미지를 결합합니다. 원하는 이미지 링크와 이미지에 대해 묻고 싶은 질문을 자유롭게 사용할 수 있습니다. 이미지는 이미지의 URL 또는 로컬 경로일 수 있습니다.
>>> from transformers import pipeline
>>> vqa = pipeline(model="impira/layoutlm-document-qa")
>>> vqa(
... image="https://huggingface.co/spaces/impira/docquery/resolve/2359223c1837a7587402bda0f2643382a6eefeab/invoice.png",
... question="What is the invoice number?",
... )
[{'score': 0.42515, 'answer': 'us-001', 'start': 16, 'end': 16}]
위의 예제를 실행하려면 Transformers 외에도 pytesseract가 설치되어 있어야 합니다:
sudo apt install -y tesseract-ocr
pip install pytesseract
* Hugging Face 공식문서 인용 - https://huggingface.co/docs
'A.I.(인공지능) & M.L.(머신러닝) > transformers' 카테고리의 다른 글
[이론] 3-1 AutoClass (0) | 2024.02.03 |
---|---|
[실습] 2-5 accelerate를 활용한 Pipeline (0) | 2024.02.03 |
[실습] 2-3 Pipeline datasets 활용 (0) | 2024.02.03 |
[실습] 2-2 Pipeline 파라미터 (0) | 2024.02.03 |
[실습] 2-1 Pipeline 사용 (0) | 2024.02.03 |