AI 또는 풀스택 개발에 어려움을 겪고 계신가요? 맞춤형 조언, 기술 통합 등 유니티 전문가가 도와드리겠습니다. 다음 연락처로 문의하세요. [email protected].

AWS의 A10 GPU에 미스트랄 7b 제너레이티브 모델 배포하기

Summary

이 NLP 클라우드 과정에서는 AWS의 NVIDIA A10 GPU에서 미스트랄 7b 제너레이티브 AI 모델을 배포하고 사용하는 방법을 알아봅니다.

미스트랄 7b 모델은 모든 벤치마크에서 LLaMA 3 7b를, 많은 벤치마크에서 LLaMA 3 13b를 능가합니다. 실제로 LLaMA 1 34b 모델과도 동등한 수준입니다.

이를 배포하고 사용하려면 최소 15GB의 VRAM이 필요하므로 최소 24GB의 VRAM을 갖춘 A10 GPU가 필요합니다.

코스의 구조는 다음과 같습니다:

Transcript

안녕하세요, NLP Cloud의 줄리엔 사이나스입니다.

오늘은 AWS A10 GPU에 미스트랄 7b 제너레이티브 모델을 배포하는 방법을 알아보겠습니다.

미스트랄 7b는 미스트랄 AI라는 프랑스 회사에서 출시한 최첨단 제너레이팅 모델입니다.

이 모델은 2023년 9월에 출시되었으며 모든 공식 벤치마크에서 Lama 2 7b를 능가합니다.

더욱 흥미로운 점은 여러 벤치마크에서 Lama 2 13b를 능가하며, Lama 1 34b와 동등한 수준이라는 점입니다.

미스트랄 AI는 이 모델을 아파치 라이선스와 함께 출시했으며, 이 라이선스를 사용하면 원하는 대로 이 모델을 사용할 수 있습니다.

팀은 기본 모델과 미세 조정된 채팅 버전을 모두 출시했습니다.

오늘 이 동영상에서는 채팅 버전을 배포할 예정입니다.

미스트랄 7b는 컨텍스트 크기가 큰 경우 최소 14기가 이상의 가상 메모리가 필요합니다.

이 GPU는 24기가의 가상 메모리를 가지고 있고 비용 효율성이 매우 높기 때문에 AWS의 A10 NVIDIA GPU에 배포할 것입니다.

미스트랄 7b를 배포하는 가장 쉬운 방법은 허깅 페이스 프레임워크를 사용하고 미스트랄 AI의 공식 가이드라인을 따르는 것입니다.

첫 번째 단계로 올바른 AWS 머신을 선택해야 합니다.

AWS에는 수많은 머신이 있으므로 이 인스턴스 유형 페이지에서 시작하여 왼쪽의 가속 컴퓨팅으로 이동하는 것이 가장 좋습니다.

여기에는 AWS가 제공하는 모든 가속 하드웨어 인스턴스 목록이 있으며, 오늘 우리가 원하는 것은 G5입니다.

여기에서 볼 수 있듯이 G5는 우리가 원하는 A10 GPU를 내장하고 있습니다.

G5 인스턴스에는 여러 가지 종류가 있습니다.

GPU가 하나만 있는 제품도 있고, 4개 또는 8개가 있는 제품도 있습니다.

하나의 GPU에 충분한 가상 메모리가 있기 때문에 하나의 GPU로 충분하지만, 미스트랄 7b 모델을 시작할 때 모델을 로드하는 데 일시적으로 약간의 메모리가 필요하기 때문에 인스턴스의 메모리 양에 매우 주의해야 합니다.

64기가면 충분하기 때문에 오늘 G5 4X 대형 인스턴스를 선택할 것입니다.

이제 AWS 콘솔로 전환하고 인스턴스 시작을 클릭합니다.

테스트 A10 미스트랄이라고 부르겠습니다.

우분투 OS를 선택하겠지만, 한 가지 트릭이 있습니다.

표준 우분투 OS를 선택하지 않으려는 이유는 NVIDIA 드라이버를 수동으로 설치해야 하기 때문인데, 이는 매우 번거로운 작업입니다.

여기서 딥 러닝 AMI GPU PyTorch 서버를 선택할 것인데, 이 AMI는 우분투와 엔비디아 드라이버, CUDA 툴킷, 파이토치 등 오늘 테스트에 필요한 모든 것을 포함하고 있기 때문에 훨씬 더 좋습니다.

여기서는 G5 4X 대형 인스턴스를 선택합니다.

키 쌍이 없는 경우 키 쌍을 만들어야 합니다.

이 작업을 처음 시도하고 VS Code를 AWS 인스턴스에 연결하는 방법을 잘 모르신다면 VS Code를 사용한 원격 개발 환경에 대한 전용 비디오를 시청하는 것이 좋습니다.

다른 포트를 열 필요가 없으며, 100기가 정도의 디스크를 추가하는 것이 좋습니다.

이론적으로 이 모델에는 20기가의 하드 디스크만 필요하지만, 라이브러리를 설치해야 할 수도 있기 때문에 항상 더 많은 용량을 확보하는 것이 가장 좋으므로 여기서는 안전합니다.

인스턴스 시작을 클릭해 보겠습니다.

좋아요, 생성되었습니다.

8N GPU를 처음 실행하여 할당량 문제가 있는 경우, AWS 지원팀에 문의하는 것이 좋습니다.

이제 여기에서 퍼블릭 IP를 사용하고 VS Code로 전환하고 있습니다.

왼쪽 하단에서 현재 창을 호스트에 연결하려면 먼저 호스트를 구성해야 합니다.

여기서는 방금 AWS에서 검색한 IP 주소와 제 SSH 키입니다.

파일을 저장하고 다시 같은 작업을 수행한 다음 이번에는 Mistral 7B를 클릭합니다.

새 지문을 수락하고 싶습니다.

완벽합니다.

이제 8N GPU 머신을 사용 중입니다.

먼저 GPU에 올바른 드라이버를 사용할 수 있는지 확인해 보겠습니다.

NVIDIA SMI와 함께라면 완벽합니다.

여기에 8N GPU가 있고 비어 있는 것을 볼 수 있으므로 현재 제 모델에는 거의 24기가의 VRAM이 있습니다.

VS Code로 열 테스트 디렉터리를 만들고 이제 테스트 파일을 만들고 있습니다.

infer.py라고 부르겠습니다.

그렇다면 이 infer.py 파일에 무엇을 넣어야 할까요? 간단합니다.

허깅 페이스의 미스트랄 AI 모델로 이동해 보겠습니다.

허깅 페이스에서 모델을 처음 다운로드하는 경우 기본적으로 여기에서 모델로 이동할 수 있으며, 수많은 모델을 사용할 수 있습니다.

여기를 클릭하고 미스트랄 7B를 입력하세요.

보시다시피, 미스트랄은 요즘 매우 트렌디하기 때문에 이미 목록의 최상위에 올랐습니다.

오늘은 더 재밌게 플레이할 수 있는 인스트럭트 모델을 선택했고, 여기서는 미스트랄 AI 팀의 지침을 따르려고 합니다.

그래서 VS Code에 코드를 복사하여 붙여넣기만 하면 됩니다.

그 전에 트랜스포머 라이브러리를 설치해야 하기 때문에 그대로 작동하지 않습니다.

따라서 이 미스트랄 7B 모델은 이제 막 트랜스포머에 추가되었기 때문에 아직 PyPy 패키지에서 사용할 수 없지만 문제될 것은 없습니다.

GitHub 리포지토리에서 직접 트랜스포머를 설치합니다.

좋아요.

이제 트랜스포머가 올바르게 설치되었습니다.

마지막으로 해야 할 일은 부동 소수점 16 버전의 모델을 사용하는 것입니다. 모델의 기본 버전인 부동 소수점 32를 사용하면 A10 GPU에 비해 너무 커지고 대부분의 경우 이러한 종류의 모델에서 FP16과 FP32의 차이는 전혀 눈에 띄지 않기 때문입니다.

따라서 오늘 해야 할 일은 Torch를 임포트하고 모델을 로드할 때 이 매개변수인 Torch dtype을 추가하는 것입니다.

좋아요.

이제 추론 스크립트를 실행해 보겠습니다.

좋아요.

그래서 마요네즈에 대한 적절한 레시피가 있습니다.

다른 방법을 시도해 볼 수 있을 것 같습니다.

모델에게 리눅스 서버에 트랜스포머를 설치하는 방법을 물어보겠습니다.

이를 제거할 수 있습니다.

좋아요.

그래서 CSS, 이유를 잘 모르겠습니다.

여기 CSS 마크업을 제외하면 맞는 말입니다.

왜 이런 디테일이 있는지는 잘 모르겠지만, 이 정도면 멋진 7B 모델이라는 것을 보여주기에 충분하다고 생각하며, 이제 사용법을 알았으니 이제 여러분의 차례입니다.

이제 자체 서버에 Mistral 7B 모델을 배포하는 방법을 알게 되었습니다.

보시다시피, 오늘날에는 하나의 단일 GPU만 사용하기 때문에 반드시 복잡하지는 않습니다.

가상 메모리가 충분한 A10 GPU가 없는 경우 여러 개의 작은 GPU가 필요할 수 있습니다.

이 경우 모델을 여러 개의 작은 GPU로 분할해야 합니다.

조금 더 복잡해지므로 이를 위한 또 다른 전용 동영상이 필요합니다.

좋은 하루 되세요.