×
Community Blog Transformers와 Gradio를 사용하여 Alibaba Cloud ECS에 사전 학습된 모델 배포하기

Transformers와 Gradio를 사용하여 Alibaba Cloud ECS에 사전 학습된 모델 배포하기

이 블로그에서는 단일 Alibaba Cloud ECS 인스턴스에 사전 학습된 여러 모델을 배포하는 방법을 설명합니다.

By Jawad

이 블로그에서는 단일 Alibaba Cloud ECS 인스턴스에 사전 학습된 여러 모델을 배포하는 방법을 설명할 것입니다. Hugging face와 Gradio에서 제공되는 사전 학습된 모델을 사용하여 모델과 상호 작용할 것입니다. 이 접근 방식은 프로토타이핑 및 개념 증명에 유용할 수 있는 ML 모델을 위한 로우코드 배포를 제공합니다. 데모를 위해 Natural Language Processing(NLP)와 컴퓨터 비전과 관련된 두 가지 배포 예제를 살펴보겠습니다. 계속 진행하기 전에 먼저 Gradio와 Hugging face에 대해 설명하겠습니다.

Gradio는 모든 머신러닝 모델에 대한 웹 기반 데모를 구축, 사용자 지정 및 공유하는 데 사용할 수 있는 Python 라이브러리입니다. 이를 통해 웹 브라우저를 사용하여 모델과 상호 작용할 수 있습니다.

Hugging FaceNatural Language Processing(NLP) 및 컴퓨터 비전 작업을 위한 오픈 소스 도구와 라이브러리에 대한 액세스를 제공하는 AI 연구 조직입니다. 가장 인기 있는 작품 중 하나는 텍스트 분류, 언어 번역, 질문-답변, 텍스트 생성, 이미지 분류 등 다양한 애플리케이션을 위해 사전 학습된 모델을 제공하는 'Transformers' 라이브러리입니다.

Hugging face transformers와 Gradio를 함께 사용하면 개발자와 연구자부터 머신러닝에 대한 전문 지식이 없는 최종 사용자까지 더 많은 사람들이 AI 모델에 더 쉽게 접근하고 사용할 수 있습니다.

Hugging face에서 사용된 사전 학습된 모델은 다음과 같습니다.

  1. NLP의 경우, 텍스트 분류(감성 분석): DistilBERT 모델
  2. 컴퓨터 비전의 경우, 이미지 분류: Vision Transformer(ViT) 모델

이 두 가지 모델을 예로 들었다는 점을 언급하는 것이 적절합니다. 독자들은 이보다 덜 또는 더 유사한 방식으로 Hugging face의 다른 모델을 사용해 볼 수 있습니다.

배포를 위해 ECS 인스턴스를 사용하는 세부 사항을 단계별로 살펴보겠습니다.

1.  Alibaba Cloud ECS 인스턴스 가동: 인스턴스의 사양은 ML 모델에 따라 다릅니다. 이 예제에서는 다음 사양을 사용하고 있습니다.

1


2
그림-1: ECS 구성

2.  설정 준비(1회 필요)

ECS 인스턴스가 실행되기 시작하면 인스턴스에 로그인합니다. 명령 프롬프트 사용:

  1. apt update를 실행하여 패키지 목록 업데이트
  2. 가상 환경 생성(환경 이름으로 "ai"를 사용하고 있음):
apt install python3-venv -y
python3 -m venv ai
  1. 다음을 사용하여 환경 활성화: source ai/bin/activate
  2. 다음 필수 python 라이브러리 설치:
pip install transformers
pip install gradio
        pip install torch
         pip install sentencepiece
         pip install sacremoses

3.  사전 학습된 모델을 사용하기 위한 Python 코드

a) NLP 모델: 터미널에서 nano nlp.py를 입력하여 python 파일 "nlp.py"를 생성합니다. 편집기가 열리면 다음 코드를 복사하여 붙여넣습니다.

from transformers import pipeline
import gradio as gr
pipe = pipeline("text-classification", model="distilbert-base-uncased-finetuned-sst-2-english")
demo = gr.Interface.from_pipeline(pipe)
demo.launch(server_name="0.0.0.0", server_port=8000)

그림-2는 나노 에디터 내부의 코드를 보여줍니다. Ctrl+x를 누르고 "Y"를 선택한 후 Enter 키를 눌러 파일을 저장합니다.

3
그림-2: 감성 분석용 코드

b) 이미지 분류 모델

nano classify.py`를 사용하여 다른 python 파일을 생성하고 그림 3과 같이 모델 유형, 이름, 제목, 포트 번호를 변경하여 코드를 수정합니다. 파일을 종료하고 저장합니다.

4
그림-3: 이미지 분류용 코드

4.  모델 실행

이 모델을 실행하려면 그림 4와 같이 Alibaba cloud ECS 인스턴스에서 두 개의 터미널을 열어야 합니다. python 가상 환경이 활성화되어 있는지 확인합니다. Alibaba Cloud ECS CLI에서 다음을 실행합니다.

  • 첫 번째 터미널: python run nlp.py
  • 두 번째 터미널: python run classify.py

5
그림-4: 두 개의 터미널을 사용하여 동일한 ECS 인스턴스에서 두 모델 모두 실행하기

5.  모델과 상호 작용

배포된 모델을 사용하려면 PC에서 브라우저를 열고 아래 그림-5 및 그림-6과 같이 포트 번호가 콜론(:)으로 구분된 ECS 인스턴스의 공용 IP 주소를 사용합니다.

ECS 공용 IP 주소를 사용하는 대신 도메인 네임을 사용하고 있습니다. 도메인 네임이 있는 경우 선택적으로 도메인 네임을 ECS 인스턴스의 공용 IP와 연결하여 사용할 수 있습니다.

6

두 번째 브라우저를 열고 컴퓨터 비전 모델과 상호 작용할 수 있도록 포트 번호(9000)를 변경합니다. 이미지를 업로드하고 분류 결과를 확인합니다.

7

다른 이미지를 시도하고 모델의 응답을 참조하십시오.


이 문서는 원래 영어로 작성되었습니다. 원본 문서는 여기를 참조하세요.

0 0 0
Share on

Regional Content Hub

86 posts | 3 followers

You may also like

Comments

Regional Content Hub

86 posts | 3 followers

Related Products