제퍼넷 로고

변환기 모델 배포

시간

퀄리안 태너

GCP, FastAPI, Docker, Huggingface를 사용하여 SOA 언어 모델 배포

API에 대해 2 개 이상의 모델을 사용하는 것이 대부분의 배포 절차에 비해 너무 큽니다. 이 문제를 해결하는 방법을 알고 있으면 알려주세요.

이 스택은 FastAPI를 사용하여 모델에 엔드 포인트를 제공합니다. FastAPI는 서비스를 위해 uvicorn이 필요하고 요청 메시지의 입력을 처리하려면 pydantic이 필요합니다. 허깅 페이스 트랜스포머 라이브러리는 많은 사람들을 위해 미세 조정할 수있는 파이썬 라이브러리에 최첨단 NLP 모델을 묶는 데 특화되어 있습니다. NLP 명명 된 엔티티 인식을위한 Google의 bert 모델 또는 텍스트 생성을위한 OpenAI GPT2 모델과 같은 작업. 선호하는 패키지 관리자를 사용하여 변압기, FastAPI, uvicorn 및 pydantic. 패키지가 설치되면 app이라는 폴더를 만들고 여기에 nlp.py 및 main.py 파일을 추가합니다. 디렉터리의 최상위 수준에서 Dockerfile 및 docker-compose.yml 파일을 추가합니다. 패키지가 설치된 후 requirements라는 폴더를 만듭니다. 폴더에 requirements.txt를 추가합니다. pipenv를 사용하여 Python 환경을 관리했기 때문에 다음을 실행해야했습니다.

pipenv run pip freeze > requirements/requirements.txt

나중에 Docker 컨테이너를 빌드하려면이 폴더가 필요합니다. 주제를 다루는 동안 docker를 설치했는지 확인하고 docker 데몬이 시작되었는지 확인하십시오. 설정 가이드 링크 여기에서 지금 확인해 보세요.. 또한 docker compose, linked 여기에서 지금 확인해 보세요.. 마지막으로 연결된 Google Cloud SDK를 설치하십시오. 여기에서 지금 확인해 보세요.. 이제 다음 단계로 진행하는 데 필요한 모든 것이 준비되었습니다. 작업 디렉토리는 다음과 유사해야합니다.

앱/
메인.파이
nlp.py
요구 사항 /
requirements.txt
docker-compose.yml
도커 파일
핍파일

허깅 페이스는 SOA 트랜스포머 모델을 구현하고 제공하기 정말 쉽습니다. 변환기 라이브러리를 사용하여 텍스트 생성 및 감정 분석이 가능한 API를 구현합니다. 이 코드는 대지, 그래서 나는 시간을 위해이 기사에서 변압기 아키텍처를 심층적으로 다루지 않을 것입니다. 이것은 또한 우리 모델이 특정 작업에 맞게 미세 조정되지 않았 음을 의미합니다. 향후 대화 형 에이전트를 미세 조정하고 배포하는 방법에 대한 다음 기사를 참조하십시오. 해당 면책 조항을 없애고, 우리의 책임이있는 코드의 스 니펫을 살펴 보겠습니다. NLP 작업.

이것은 텍스트 생성 및 감정 분석을위한 코드를 추상화하는 매우 간단한 클래스입니다. 프롬프트가 토큰 화되고 인코딩 된 시퀀스의 길이가 캡처되고 출력이 생성됩니다. 그런 다음 디코딩 된 출력을 수신하고 생성 된 텍스트로 반환합니다. 텍스트는 다음과 같습니다.

'모든 것이 똑같이 좋다는 개념을 받아들이면 인식 론적 한계는 매우 잘 이해됩니다. 이것은 단순한 공리가 아니라, 삼각형의 왼쪽에있는 사물이 사물을 구성하지 않는다는 개념을 포함하여 명제의 공리적 현실입니다. 그 삼각형의 오른쪽에있는 어떤 것, 그 삼각형의 왼쪽에있는 다른 것으로부터 떨어져있는 것이 아닙니다. 따라서이 삼각형을 가로 지르는 선이 있기 때문에 각 것이 삼각형의 선에 있어야한다고 가정하면, 각 것은 그 선에 놓일 수 없습니다. 그러나이 점을 넘어서는 점이 있기 때문에 삼각형에 직각을 갖는 것은 없습니다. 그러므로“삼각형의 오른쪽에있는 것은 사물을 구성하지 않는다”라는 명제는 사실을 전제하는 사실이며, 이는 존재하지 않는다는 명 제일 수 있습니다. 반면에 만약

Godel은 자랑스러워 할 것입니다! 파이프 라인 껴안기 페이스가 제공하기 때문에 감정 분석이 더 쉽습니다. 파이프 라인에 텍스트를 전달하고 반환하기 만하면됩니다.

>> nlp에서 NLP 가져 오기
>> nlp = NLP ()
>> print (nlp.sentiments ( "벌침은 멋지지 않습니다"))
'label : NEGATIVE, 점수 : 0.9998'

이것이이 부분의 전부입니다. 이제이 코드를 API에서 사용할 것입니다.

1. 마케팅에 챗봇을 사용하는 8 가지 입증 된 방법 (실제 사례 포함)

2. Texthero를 사용하여 NLP 프로젝트를위한 텍스트 기반 데이터 세트를 준비하는 방법

3. 인간 중심의 챗봇 디자인을위한 5 가지 팁

4. 챗봇 컨퍼런스 온라인

API

FastAPI는 Python에서 요청을 빌드하고 제공하는 가장 빠른 API 프레임 워크 중 하나입니다. 제공하는 도커 이미지에서 크기를 조정하고 배포하거나 Python 이미지에서 직접 만들 수 있습니다. Flask API를 작성한 적이 있다면 이것은 전혀 어렵지 않습니다. API의 기능을 확장하는 방법에 대한 자세한 내용은 FastAPI 설명서를 참조하는 것이 좋습니다.

API에는 XNUMX 개의 섹션이 있습니다. 첫 번째 부분은 요청 메시지에 대한 입력을 처리하기 위해 pydantic 객체를 설정하는 것입니다. 이는 입력 유효성 검사를 받고 잘못된 입력에 대한 오류 메시지를 지우는 것을 의미합니다. 문자열 만 처리해야하므로 완벽합니다. 그런 다음 끝점의 인스턴스를 만들고 NLP 수업. 다음으로 앱이 통신 할 요청 원본 URL을 설정합니다. 전용 원본 주소가없는 경우 코드는 계속 실행되지만 누구나 API에 액세스 할 수 있으므로주의해야합니다. 그 후 미들웨어를 설정하여 출처, 요청 방법, 헤더 및 쿠키를 제어합니다. FastAPI에서 대부분의 코드를 가져 왔지만 특정 보안 요구 사항에 맞게 확장 할 수 있습니다. 마지막 부분에는 API 호출을 처리하고 생성 된 텍스트 또는 감정 분석을 반환하는 두 개의 비동기 게시 요청 메서드가 포함되어 있습니다.

이제 API를 확인할 때입니다. 터미널에서 실행

uvicorn app.main : app --reload

그런 다음 URL로 이동 http://127.0.0.1:8001/docs. 브라우저에서 API를 사용해 볼 수 있어야합니다.

Source: https://chatbotslife.com/deploying-transformer-models-1350876016f?source=rss—-a49517e4c30b—4

spot_img

최신 인텔리전스

spot_img