LlamaGPT - 직접 실행 가능한 LLama 2 기반, ChatGPT 스타일의 챗봇

소개

LlamaGPT

image

umbrel에서 자사의 umbrelOS 및 Docker / k8s / apple Silicon(M1/M2) 등에서 실행 가능한 LlamaGPT를 공개했습니다. (MIT License)

LlamaGPT는 Llama 2 기반의 ChatGPT 스타일의 챗봇으로, 직접 오프라인에서 실행하면서 어떠한 데이터도 외부로 내보내지 않고 실행할 수 있습니다.

umbrel.com

umbrel은 개인이 데이터에 대한 소유/제어/사용을 가지면서도 Cloud의 편리함과 혜택을 누릴 수 있도록 별도 H/W(umbrel home)자체 OS(umbrelOS)를 개발하고 있는 회사입니다.

데모 영상

지원 모델

Model name Model size Model download size Memory required
Nous Hermes Llama 2 7B Chat (GGML q4_0) 7B 3.79GB 6.29GB
Nous Hermes Llama 2 13B Chat (GGML q4_0) 13B 7.32GB 9.82GB
Nous Hermes Llama 2 70B Chat (GGML q4_0) 70B 38.87GB 41.37GB
Code Llama 7B Chat (GGUF Q4_K_M) 7B 4.24GB 6.74GB
Code Llama 13B Chat (GGUF Q4_K_M) 13B 8.06GB 10.56GB
Phind Code Llama 34B Chat (GGUF Q4_K_M) 34B 20.22GB 22.72GB

실행 방법

umbrelOS에서 실행하기

umbrel에서 제공하는 umbrelOS를 사용하고 있다면, Umbrel App Store에서 바로 설치가 가능하다고 합니다.
(대부분의 사용자들에게는 해당되지 않는 옵션일 것 같습니다;:wink:

Apple Silicon에서 실행하기 (M1/M2 칩 탑재 Mac)

0. Docker와 XCode가 미리 설치되어 있어야 합니다.

1. 설치(GitHub 저장소 Clone)

git clone https://github.com/getumbrel/llama-gpt.git
cd llama-gpt

2. 실행

./run-mac.sh --model <ModelOption>
  • Llama Chat Model: 7b, 13b, 70b
  • Llama Code Model: code-7b, code-13b, code-34b

예. 7B Chat 모델 실행시: ./run-mac.sh --model 7b
예. 13B Code 모델 실행시: ./run-mac.sh --model code-13b

3. 사용

실행 후 localhost:3000 으로 접속하여 사용

Docker에서 실행하기

0. Docker가 설치된 x86 또는 arm64 시스템에서 실행해주세요.

1. GitHub 저장소 Clone

git clone https://github.com/getumbrel/llama-gpt.git
cd llama-gpt

2. 실행

./run.sh --model <ModelOption>
  • Llama Chat Model: 7b, 13b, 70b
  • Llama Code Model: code-7b, code-13b, code-34b

예. 7B Chat 모델 실행시: ./run.sh --model 7b
예. 13B Code 모델 실행시: ./run.sh --model code-13b

2-1. CUDA를 사용하여 실행

CUDA 지원 장치가 있을 경우 --with-cuda 옵션을 추가하여 실행

예. 7B Chat 모델을 CUDA 사용하여 실행시: ./run.sh --model 7b --with-cuda

3. 사용

실행 후 localhost:3000 으로 접속하여 사용

k8s(kubenetes)에서 실행하기

0. kubectl로 접근 가능한 k8s 시스템에서 실행해주세요.

1. GitHub 저장소 Clone

git clone https://github.com/getumbrel/llama-gpt.git
cd llama-gpt

2. k8s namespace 생성

kubectl create ns llama

3. k8s에 배포

kubectl apply -k deploy/kubernetes/. -n llama

OpenAI 대응 API

llama-cpp-python을 사용하여 OpenAI API 대체 API를 지원합니다.

벤치마크 결과

Nous Hermes Llama 2 7B Chat (GGML q4_0)

Device Generation speed
M1 Max MacBook Pro (64GB RAM) 54 tokens/sec
GCP c2-standard-16 vCPU (64 GB RAM) 16.7 tokens/sec
GCP c2-standard-4 vCPU (16 GB RAM) 4.3 tokens/sec
Umbrel Home (16GB RAM) 2.7 tokens/sec
Raspberry Pi 4 (8GB RAM) 0.9 tokens/sec

Nous Hermes Llama 2 13B Chat (GGML q4_0)

Device Generation speed
M1 Max MacBook Pro (64GB RAM) 20 tokens/sec
GCP c2-standard-16 vCPU (64 GB RAM) 8.6 tokens/sec
GCP c2-standard-4 vCPU (16 GB RAM) 2.2 tokens/sec
Umbrel Home (16GB RAM) 1.5 tokens/sec

Nous Hermes Llama 2 70B Chat (GGML q4_0)

Device Generation speed
M1 Max MacBook Pro (64GB RAM) 4.8 tokens/sec
GCP e2-standard-16 vCPU (64 GB RAM) 1.75 tokens/sec
GCP c2-standard-16 vCPU (64 GB RAM) 1.62 tokens/sec

Code Llama 7B Chat (GGUF Q4_K_M)

Device Generation speed
M1 Max MacBook Pro (64GB RAM) 41 tokens/sec

Code Llama 13B Chat (GGUF Q4_K_M)

Device Generation speed
M1 Max MacBook Pro (64GB RAM) 25 tokens/sec

Phind Code Llama 34B Chat (GGUF Q4_K_M)

Device Generation speed
M1 Max MacBook Pro (64GB RAM) 10.26 tokens/sec

더 읽어보기

LlamaGPT GitHub 저장소

LlamaGPT 개발사 umbrel 홈페이지