엔지니어링

Jan 29, 2024

엔지니어링

Backend.AI 와 Tool LLM 의 만남 : Tool 과 AI 의 협업 혁명 - 2부

  • Sergey Leksikov

    머신러닝 연구원

Jan 29, 2024

엔지니어링

Backend.AI 와 Tool LLM 의 만남 : Tool 과 AI 의 협업 혁명 - 2부

  • Sergey Leksikov

    머신러닝 연구원

2부. Backend.AI 로 Gorilla LLM 모델 서빙하기

이전 글에서는 Tool LLM의 기능과 사용법에 대해 설명했습니다. 이번 글에서는 Backend.AI 데스크탑 앱을 사용하면서 Backend.AI 클라우드에서 Gorilla LLM 모델을 실행하는 방법을 단계별로 데모 해 보겠습니다.

그림 1. MacO에 설치된 Backend.AI 데스크탑 앱

  1. 시작 버튼을 누르면 세션 생성 메뉴가 나타납니다.

그림 2. 새 세션 시작 화면

  1. NGC-Pytorch 23.07 이미지를 선택합니다.

  2. 모델 파일이 포함된 작업 디렉토리 vFolder를 첨부합니다. 디렉토리명 예 api_helper/

그림 3. vFolder 첨부 화면

  1. 128 GB RAM 및 5 fGPU 크기의 리소스를 선택합니다.

그림 4. 리소스 선택 화면

  1. Visual Studio Code 데스크탑 환경을 선택합니다.

그림 5. IDE 환경 선택 화면

  1. /home/work/api_helper/ 디렉토리에 server.py 파일을 생성합니다.

  2. requirements.txt 파일을 생성합니다.

그림 6. requirements.txt 파일 내용

설치를 위해 다음 명령을 실행하세요: pip install -r requirements.txt

그림 7. 설치 명령 실행

  1. server.py 파일을 추가하고 트랜스포머 라이브러리를 사용하여 토큰화 및 모델 로더를 정의합니다.

그림 8. server.py 코드 스니펫

  1. 서버 IP 주소와 포트 번호를 명시합니다.

그림 9. 서버 IP 주소 및 포트 번호 명시

  1. 다음 명령으로 모델을 실행합니다: python server.py

그림 10. server.py 시작

  1. 생성된 서버에 접속합니다.

VSCode는 기기에서 Backend.AI 클라우드 서버로 포트 터널링 세션을 자동으로 생성합니다. 로컬 호스트 주소에 액세스하여 서버 상태를 확인할 수 있으며, 요청은 Backend.AI 클라우드로 터널링됩니다. 또한 필요에 따라 다른 사용자 지정 엔드포인트를 정의할 수 있습니다.

그림 11. 서버 실행 로그

그림 12. VSCode 포트 포워딩 구성

그림 13. 서버의 루트에 액세스하기

여기까지는 Backend.AI Cloud에 계산 세션을 생성하고, api_helper/ vFolder 디렉터리에 요구사항.txt 파일과 server.py를 첨부했습니다. 그런 다음 HuggingFace 리포지토리에서 Gorilla LLM을 다운로드하고 추론/api .endpoint를 사용하여 계산 세션 메모리로 로드하는 FastAPI 서버를 시작합니다.

  1. API 추론 테스트 로컬 컴퓨터 명령줄에서 curl 요청을 생성하여 Gorilla LLM의 API 추론을 테스트할 수 있습니다:
curl -X POST -H "Content-Type: application/json" -d '{"text":"Object detection on a photo. <<<api_domain>>>:"}' http://127.0.0.1:8000/inference

그림 14. curl 명령 예제

그림 15. 요청 수신 후 서버의 GPU 워크로드

그림 16. 요청 수신 및 결과 인쇄에 대한 서버 로그

  1. UI 웹 앱을 정의합니다. 어떤 웹 기술이라도 사용하여 더 나은 방식으로 결과를 표시할 수 있는 UI 앱을 만들 수 있습니다. 예를 들어 html 및 JavaScript 파일을 사용하여 server.py의 루트 아래에 있는 정적 디렉터리에 배치한 다음 웹 앱의 엔드포인트를 정의할 수 있습니다.

그림 17. FastAPI 서버에 html 웹 앱 추가 예시

  1. Gorilla LLM 웹 앱 프로토타입 - API 질문 답변 및 코드 생성을 위해 API가 튜닝된 대규모 언어 모델입니다.

그림 18. Gorilla LLM 웹 앱 프로토타입. 예제 1

그림 19. Gorilla LLM 웹 앱 프로토타입. 예제 2

맺음말

고릴라 LLM이 제공하는 몇 가지 어려움에도 불구하고, 자체 API로 튜닝된 LLM은 큰 잠재력과 가능성을 가지고 있습니다. 상용 대형 모델보다 더 정확한 파라미터와 함수 호출로 가장 최신의 결과를 제공할 수 있으며, API를 통한 질문 답변, 코드 자동 완성, API 코드 실행과 같은 작업에 유용하게 사용할 수 있기 때문입니다.

한계점 및 어려움:

Gorilla LLM 모델을 서버로 전송하는 동안 다음과 같은 문제를 고려해야 했습니다:

  • 모델이 예상과 다른 형식의 응답을 생성할 수 있음
  • 동일한 질문에 대해 모델이 다른 결과를 생성할 수 있음
  • LLM 응답 파싱 및 렌더링
  • 중복된 문장과 줄 제거하기

도움이 필요하신가요?

내용을 작성해 주시면 곧 연락 드리겠습니다.

문의하기

Headquarter & HPC Lab

서울특별시 강남구 선릉로100길 34 남영빌딩 4층, 5층

© Lablup Inc. All rights reserved.