엔지니어링
Jan 29, 2024
엔지니어링
Backend.AI 와 Tool LLM 의 만남 : Tool 과 AI 의 협업 혁명 - 2부
Sergey Leksikov
머신러닝 연구원
Jan 29, 2024
엔지니어링
Backend.AI 와 Tool LLM 의 만남 : Tool 과 AI 의 협업 혁명 - 2부
Sergey Leksikov
머신러닝 연구원
- 1부. LLM 와 Tool 의 협업 소개
- 2부. Backend.AI 로 Gorilla LLM 모델 서빙하기
- 3부. 학습 및 서버 LLLM 없이 로컬에서 몇 줄의 코드만으로 자체 API 검색기 및 질문 답변 시스템을 만들기
2부. Backend.AI 로 Gorilla LLM 모델 서빙하기
이전 글에서는 Tool LLM의 기능과 사용법에 대해 설명했습니다. 이번 글에서는 Backend.AI 데스크탑 앱을 사용하면서 Backend.AI 클라우드에서 Gorilla LLM 모델을 실행하는 방법을 단계별로 데모 해 보겠습니다.
그림 1. MacO에 설치된 Backend.AI 데스크탑 앱
- 시작 버튼을 누르면 세션 생성 메뉴가 나타납니다.
그림 2. 새 세션 시작 화면
-
NGC-Pytorch 23.07 이미지를 선택합니다.
-
모델 파일이 포함된 작업 디렉토리 vFolder를 첨부합니다. 디렉토리명 예 api_helper/
그림 3. vFolder 첨부 화면
- 128 GB RAM 및 5 fGPU 크기의 리소스를 선택합니다.
그림 4. 리소스 선택 화면
- Visual Studio Code 데스크탑 환경을 선택합니다.
그림 5. IDE 환경 선택 화면
-
/home/work/api_helper/
디렉토리에 server.py 파일을 생성합니다. -
requirements.txt 파일을 생성합니다.
그림 6. requirements.txt 파일 내용
설치를 위해 다음 명령을 실행하세요: pip install -r requirements.txt
그림 7. 설치 명령 실행
- server.py 파일을 추가하고 트랜스포머 라이브러리를 사용하여 토큰화 및 모델 로더를 정의합니다.
그림 8. server.py 코드 스니펫
- 서버 IP 주소와 포트 번호를 명시합니다.
그림 9. 서버 IP 주소 및 포트 번호 명시
- 다음 명령으로 모델을 실행합니다: python server.py
그림 10. server.py 시작
- 생성된 서버에 접속합니다.
VSCode는 기기에서 Backend.AI 클라우드 서버로 포트 터널링 세션을 자동으로 생성합니다. 로컬 호스트 주소에 액세스하여 서버 상태를 확인할 수 있으며, 요청은 Backend.AI 클라우드로 터널링됩니다. 또한 필요에 따라 다른 사용자 지정 엔드포인트를 정의할 수 있습니다.
그림 11. 서버 실행 로그
그림 12. VSCode 포트 포워딩 구성
그림 13. 서버의 루트에 액세스하기
여기까지는 Backend.AI Cloud에 계산 세션을 생성하고, api_helper/ vFolder 디렉터리에 요구사항.txt 파일과 server.py를 첨부했습니다. 그런 다음 HuggingFace 리포지토리에서 Gorilla LLM을 다운로드하고 추론/api .endpoint를 사용하여 계산 세션 메모리로 로드하는 FastAPI 서버를 시작합니다.
- 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. 요청 수신 및 결과 인쇄에 대한 서버 로그
- UI 웹 앱을 정의합니다. 어떤 웹 기술이라도 사용하여 더 나은 방식으로 결과를 표시할 수 있는 UI 앱을 만들 수 있습니다. 예를 들어 html 및 JavaScript 파일을 사용하여 server.py의 루트 아래에 있는 정적 디렉터리에 배치한 다음 웹 앱의 엔드포인트를 정의할 수 있습니다.
그림 17. FastAPI 서버에 html 웹 앱 추가 예시
- Gorilla LLM 웹 앱 프로토타입 - API 질문 답변 및 코드 생성을 위해 API가 튜닝된 대규모 언어 모델입니다.
그림 18. Gorilla LLM 웹 앱 프로토타입. 예제 1
그림 19. Gorilla LLM 웹 앱 프로토타입. 예제 2
맺음말
고릴라 LLM이 제공하는 몇 가지 어려움에도 불구하고, 자체 API로 튜닝된 LLM은 큰 잠재력과 가능성을 가지고 있습니다. 상용 대형 모델보다 더 정확한 파라미터와 함수 호출로 가장 최신의 결과를 제공할 수 있으며, API를 통한 질문 답변, 코드 자동 완성, API 코드 실행과 같은 작업에 유용하게 사용할 수 있기 때문입니다.
한계점 및 어려움:
Gorilla LLM 모델을 서버로 전송하는 동안 다음과 같은 문제를 고려해야 했습니다:
- 모델이 예상과 다른 형식의 응답을 생성할 수 있음
- 동일한 질문에 대해 모델이 다른 결과를 생성할 수 있음
- LLM 응답 파싱 및 렌더링
- 중복된 문장과 줄 제거하기
- 1부. LLM 와 Tool 의 협업 소개
- 2부. Backend.AI 로 Gorilla LLM 모델 서빙하기
- 3부. 학습 및 서버 LLLM 없이 로컬에서 몇 줄의 코드만으로 자체 API 검색기 및 질문 답변 시스템을 만들기